一、确认openwrt含有kmon-tun模块
docker pull bestoray/pgyvpn
二、创建容器
docker run -d --restart=always --device=/dev/net/tun --net=host --cap-add=NET_ADMIN --env PGY_USERNAME="orkj273695rz6vjv" --env PGY_PASSWORD="xxxxxxxx" bestoray/pgyvpn
三、查看网络
ip addr
四、openwrt配置
1、创建接口
【网络】-【接口】-创建新接口
2、新建一个防火墙
3、配置新的防火墙
入站、出站、转发都接受
ip动态伪装打开
网络选择刚刚创建的oray
允许转发到WAN
运行从LAN转发
4、防火墙LAN设置
打开ip伪装
五、访问对端
本地增加静态路由
区域(接口)选择 oray
ip 选择 oray的ip,可通过 ip addr查看
目标对象,写对方网段/24
附
群晖安装蒲公英
1、
sudo -i
2、
insmod /lib/modules/tun.ko
3、
cat > /usr/local/etc/rc.d/tun.sh <<EOF
#!/bin/sh -e
insmod /lib/modules/tun.ko
EOF
chmod a+x /usr/local/etc/rc.d/tun.sh
4、
docker run -d \
--restart=always \
--device=/dev/net/tun \
--net=host \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
--env PGY_USERNAME=蒲公英用户名 \
--env PGY_PASSWORD=蒲公英密码 \
--name pgyvpn \
benzbrake/pgyvpn
6、互访iptables规则和静态路由设置
A主机命令行需要输入一下内容:
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p
iptables -I FORWARD -i oray_vnc -j ACCEPT
iptables -I FORWARD -o oray_vnc -j ACCEPT
iptables -t nat -I POSTROUTING -o oray_vnc -j MASQUERADE
route add -net B主机网段 netmask 255.255.255.0 gw B主机虚拟IP地址
iptables -I FORWARD -i A主机物理网卡名称 -j ACCEPT
iptables -I FORWARD -o A主机物理网卡名称 -j ACCEPT
iptables -t nat -I POSTROUTING -o A主机物理网卡名称 -j MASQUERADE
B主机命令行需要输入一下内容:
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
sysctl -p
iptables -I FORWARD -i oray_vnc -j ACCEPT
iptables -I FORWARD -o oray_vnc -j ACCEPT
iptables -t nat -I POSTROUTING -o oray_vnc -j MASQUERADE
route add -net A主机网段 netmask 255.255.255.0 gw A主机虚拟IP地址
iptables -I FORWARD -i B主机物理网卡名称 -j ACCEPT
iptables -I FORWARD -o B主机物理网卡名称 -j ACCEPT
iptables -t nat -I POSTROUTING -o B主机物理网卡名称 -j MASQUERADE
7、保存iptables规则(树莓派和群晖都需要输入)
树莓派等linux系统输入命令:
iptables-save > /etc/iptables
cat > /etc/network/if-pre-up.d/iptables <<EOF
#!/bin/sh
/sbin/iptables-restore < /etc/iptables
EOF
chmod +x /etc/network/if-pre-up.d/iptables
cat > /root/tianluyou.sh <<EOF
#!/bin/sh
需要添加上面树莓派的部分命令
EOF
chmod +x /root/tianluyou.sh
群晖保存规则没有找到比较好的方法,
cat > /root/tianluyou.sh <<EOF
#!/bin/sh
需要添加上面群晖的部分命令
EOF
chmod +x /root/tianluyou.sh