VPN Wireguard - 握手正常,但无法访问互联网和 LAN

Jas*_*ite 4 server vpn networking 20.04 wireguard

我的wireguard 设置有问题。设置完成后,我可以连接到我的设备。握手没问题,但我无法访问互联网和局域网。

设备:树莓派 4b 8gb RAM 操作系统:Ubuntu 服务器 ARM x64 20.04 LTS

我的 wg0.conf 文件内容

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = (hidden)
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = oqL4CC4Y572iOvVtpDbASiajjgJPAjJhDODffMezcxA=
PresharedKey = (hidden)
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = a6z779DYdezo/TMLbC7AJuenHpseaIqUr/gRx97D4Rw=
PresharedKey = (hidden)
AllowedIPs = 10.0.0.3/32

[Peer]
PublicKey = Fe4Nv3Ef8T5bc1p7sDCfNkLO/pTv5cIgHMJ0XCMa8Gg=
PresharedKey = (hidden)
AllowedIPs = 10.0.0.4/32

[Peer]
PublicKey = IdKkIYDctdHYwMx+ULlgntVllaBkIP8G8eIRxEQ9QWQ=
PresharedKey = (hidden)
AllowedIPs = 10.0.0.5/32

[Peer]
PublicKey = qdpWjwlnUuwVxqKnCfta+W/B4XyxZT868aOPtmSOek8=
PresharedKey = (hidden)
AllowedIPs = 10.0.0.6/32
Run Code Online (Sandbox Code Playgroud)

第一个客户端配置文件:

  [Interface]
Address = 10.0.0.2/24
ListenPort = 51820
PrivateKey = OPgCJeBSPevFR+oleTbDqVCNyn+7G0mhSA0QRHqnklg=

[Peer]
PublicKey = W6B77KxgOpshDLX7gc0Jz10Z/WfUl4zVCLrIL/luoR4=
PresharedKey = tI3YFvK195G257yQBAYx+bS9S1j2qkZZOgsdoN3/yPI=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = {my_external_ip_address}:51820
Run Code Online (Sandbox Code Playgroud)

我的路由器设置说明。我有一个 UPC Connect Box 设备,其 IP:192.168.0.1。UPC Connect Box 是我的网关。我已将其他路由器连接到此 UPC 连接盒。IP地址:192.168.1.1。我可以从我的所有路由器访问其他子网。我还可以访问我的局域网内任何子网中的所有计算机。我还可以从安装了wireguard的设备访问我的网络和子网上的所有内容,但当我作为客户端连接时它不起作用。

端口转发在我的 upc 连接盒上正确设置,端口 51820 到我的其他路由器 192.168.1.1,并从该设备到我的树莓派 ubuntu 设备,内部 IP:192.168.1.12。

我做了什么 ?允许使用以下命令进行 ipv4 端口转发:

sudo sysctl -w net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)

还做了:

sudo ufw allow 51820/tcp
sudo ufw allow 51820/udp
sudo ufw allow in on wg0 to any
sudo ufw allow out on wg0 to any
Run Code Online (Sandbox Code Playgroud)

UFW状态:

Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere                  
51820                      ALLOW       Anywhere                  
51820/tcp                  ALLOW       Anywhere                  
51820/udp                  ALLOW       Anywhere                  
OpenSSH                    ALLOW       Anywhere                  
51821/udp                  ALLOW       Anywhere                  
51821/tcp                  ALLOW       Anywhere                  
446/tcp                    ALLOW       Anywhere                  
993/tcp                    ALLOW       Anywhere                  
8080/tcp                   ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
5900/tcp                   ALLOW       Anywhere                  
Anywhere on wg0            ALLOW       Anywhere                  
22/tcp (v6)                ALLOW       Anywhere (v6)             
51820 (v6)                 ALLOW       Anywhere (v6)             
51820/tcp (v6)             ALLOW       Anywhere (v6)             
51820/udp (v6)             ALLOW       Anywhere (v6)             
OpenSSH (v6)               ALLOW       Anywhere (v6)             
51821/udp (v6)             ALLOW       Anywhere (v6)             
51821/tcp (v6)             ALLOW       Anywhere (v6)             
446/tcp (v6)               ALLOW       Anywhere (v6)             
993/tcp (v6)               ALLOW       Anywhere (v6)             
8080/tcp (v6)              ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
5900/tcp (v6)              ALLOW       Anywhere (v6)             
Anywhere (v6) on wg0       ALLOW       Anywhere (v6)             

22/tcp                     ALLOW OUT   Anywhere                  
Anywhere                   ALLOW OUT   Anywhere on wg0           
22/tcp (v6)                ALLOW OUT   Anywhere (v6)             
Anywhere (v6)              ALLOW OUT   Anywhere (v6) on wg0
Run Code Online (Sandbox Code Playgroud)

我可以从 iOS、Android 或 macOS 设备进行连接,但无法访问互联网和 LAN。连接成功后我无法 ping 通任何内容。甚至无法 ping 通子网和当前网络上的设备。无法 ping 任何外部内容,例如:8.8.8.8 或 1.1.1.1 一切看起来都很好 - 握手没问题。请指导我哪里错了。

我需要通过wireguard VPN 访问LAN 和互联网。

Jas*_*ite 5

解决了!看来这不正确。将“%i”替换为“wg0”解决了问题。

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

应该:

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
Run Code Online (Sandbox Code Playgroud)

LAN 访问工作正常。互联网接入正常!

感谢视频中的这个人: https://www.youtube.com/watch ?v=bVKNSf1p1d0