Wireguard NAT穿透配置
如下图所示:
家庭网 的出口是一个 NAT路由器 设备
公司网 的出口是一个 NAT路由器 设备
当 家庭网 主机 访问 公司网 主机, 就相当于 一个内网在访问 另一个远程内网.
当 公司网 主机 访问 家庭网 主机, 就相当于 一个内网在访问 另一个远程内网.
一般情况下, 外网设备 访问 内网设备, 是不可能的.
比如: 你什么时候见过 百度的服务器 能主动访问你的 电脑?
使用 wireguard NAT 穿透技术, 如你所愿!
在家里访问公司网络.
在公司访问家庭网络.
网络 拓扑图下图:
公网节点配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| root@shenzhen:~/wg# cat VPN.conf # echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf; sysctl -p # wg-quick up ./VPN.conf ; wg-quick down ./VPN.conf # /etc/wireguard/VPN.conf; systemctl restart wg-quick@VPN
[Interface] PrivateKey = YE2/ALgVldYaztYGISHDOUAteO2FgerpqelDn29XXXX= Address = 192.168.175.100/24 PostUp = iptables -A FORWARD -i VPN -j ACCEPT; iptables -A FORWARD -o VPN -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i VPN -j ACCEPT; iptables -D FORWARD -o VPN -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE ListenPort = 20001 MTU = 1420
[peer] PublicKey = EhcINyIRiiqcCrSbCAPdvVNJFgZbnOk/7qesy7AXXXX= AllowedIPs = 192.168.175.101/32,192.168.88.0/24 PersistentKeepalive = 25
[peer] PublicKey = k8K8ZqB6ejAQib+ILze8/9ts1KsG9hFesKDQjP+XXXX= AllowedIPs = 192.168.175.102/32 PersistentKeepalive = 25
[peer] PublicKey = 002CLnEGEbqGo05I3l9awFTVZEh9D5N19vG/GEFXXXX= AllowedIPs = 192.168.175.103/32 PersistentKeepalive = 25
[peer] PublicKey = ONEQmsMnSjCzuUoGk08+dIHqfTjyVi9mCroRWY9XXXX= AllowedIPs = 192.168.175.104/32 PersistentKeepalive = 25
[peer] PublicKey = R4FH4nqGGnHiL1mGU8+pvoD2hB6s2SLpoWJAjCpXXXX= AllowedIPs = 192.168.175.105/32 PersistentKeepalive = 25
[peer] PublicKey = p/PkWzu7eRo3PuZzdBYYUrg3K462L7I0Yc2kosGXXXX= AllowedIPs = 192.168.175.106/32 PersistentKeepalive = 25 root@shenzhen:~/wg#
|
NAT 节点配置示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| root@ubuntu:~# cat wg/client.conf # echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf; sysctl -p # wg-quick up ./VPN.conf ; wg-quick down ./VPN.conf # /etc/wireguard/VPN.conf; systemctl restart wg-quick@VPN [Interface] PostUp = iptables -A FORWARD -i client -j ACCEPT; iptables -A FORWARD -o client -j ACCEPT; iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE PostDown = iptables -D FORWARD -i client -j ACCEPT; iptables -D FORWARD -o client -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
PrivateKey = uCYSx/TOreOr13MRTKeD3NaF1APc/9OgeqcYMTtXXXX= Address = 192.168.175.101/24 MTU = 1420
[Peer] PublicKey = sRtKLuV+9h/elGd/4uI/elOMDx0yStjARJ8jcdwXXXX= AllowedIPs = 192.168.175.0/24 Endpoint = fly.li-chunli.top:20001 PersistentKeepalive = 25
root@ubuntu:~#
|
手机节点配置示例
1 2 3 4 5 6 7 8 9 10 11 12
| root@shenzhen:~/wg# cat 192.168.175.103.conf [Interface] PrivateKey = QNmVNTJ/p/etgujAZ4tClEidxdJisquYnPhmfrwXXXX= Address = 192.168.175.103/24 MTU = 1420
[Peer] PublicKey = sRtKLuV+9h/elGd/4uI/elOMDx0yStjARJ8jcdwXXXX= AllowedIPs = 192.168.175.0/24,192.168.88.0/24 Endpoint = fly.li-chunli.top:20001 PersistentKeepalive = 25 root@shenzhen:~/wg#
|
测试
- 手机ping 192.168.175.100
- 手机ping 192.168.88.1