为什么当我运行 wg-quick up wg0 时 Wireguard 会中断我的互联网访问

为什么当我运行 wg-quick up wg0 时 Wireguard 会中断我的互联网访问

我正在尝试使用我的树莓派作为wireguard 服务器。

当通过以太网线将我的树莓派连接到路由器时,我的路由器将 pi 分配给 ip192.168.1.35

我已经确认 pi 通过运行接收互联网访问www.startpage.com当通过 SSH 连接到 pi 时

然而,一旦我跑了wg-快速启动 wg0在 pi 上,我失去了所有互联网访问权限。通过 ssh 执行 Ping 操作不再有效。

要重新获得互联网访问权限,我必须运行wg-快速下降 wg0

Wireguard 正在做一些事情来破坏我的互联网

我的 Raspberry Pi 线卫配置文件

sudo nano /etc/wireguard/wg0.conf

[Interface]
PrivateKey = PI_PRIVATE_KEY
Address = 192.168.1.100
ListenPort = 51820

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::0

客户端配置文件

sudo nano /etc/wireguard/wg0.conf

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 192.168.1.101/24

[Peer]
PublicKey = PI_PUBLIC_KEY
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = PI/ROUTER_PUBLIC_IP:51820

注意:我在两个配置中多次更改了AllowedIPs设置,以测试不同的结果,我的Pi上的wg-quick up wg0仍然通过我的pi中断互联网,没有它,互联网运行正常

我注意到wg-快速启动 wg0正在修改我的 nft 规则集时向上

sudo nft list ruleset
 
 
table ip wg-quick-wg0 {
        chain preraw {
                type filter hook prerouting priority raw; policy accept;
                iifname != "wg0" ip daddr 192.168.2.100 fib saddr type != local drop
        }
 
        chain premangle {
                type filter hook prerouting priority mangle; policy accept;
                meta l4proto udp meta mark set ct mark
        }
 
        chain postmangle {
                type filter hook postrouting priority mangle; policy accept;
                meta l4proto udp meta mark 0x0000ca6c ct mark set meta mark
        }
}

当 wg0 接口关闭时,这些规则不存在因此,这些规则中的某些内容可能会阻止 pi 内的互联网访问

问题消除

  1. 192.168.1.100 未被路由器上的任何其他设备使用
  2. 取消注释net.ipv4.ip_forward=1/etc/sysctl.conf没有什么区别,确切的问题仍然是一样的,网络访问ip4 注释或取消注释 wg0 向下,否网络访问ip4 注释或取消注释 wg0 up
  3. 在此阶段,wireguard 客户端无关紧要
  4. 这个问题与wireguard私钥/公钥无关,因为它会抛出错误。

答案1

当wireguard接口启动时,它被定义为通过VPN发送所有内容:

AllowedIPs = 0.0.0.0/0, ::/0

这是一个典型的客户配置几乎肯定不适合服务器配置。

相反,您应该声明客户端在连接后自行使用的(小)子网。例如,

192.168.0.2/32

只需确保该网络地址不属于您在其他地方使用的子网的一部分

相关内容