我正在尝试使用我的树莓派作为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 内的互联网访问
问题消除
- 192.168.1.100 未被路由器上的任何其他设备使用
- 取消注释net.ipv4.ip_forward=1在/etc/sysctl.conf没有什么区别,确切的问题仍然是一样的,网络访问ip4 注释或取消注释 wg0 向下,否网络访问ip4 注释或取消注释 wg0 up
- 在此阶段,wireguard 客户端无关紧要
- 这个问题与wireguard私钥/公钥无关,因为它会抛出错误。
答案1
当wireguard接口启动时,它被定义为通过VPN发送所有内容:
AllowedIPs = 0.0.0.0/0, ::/0
这是一个典型的客户配置几乎肯定不适合服务器配置。
相反,您应该声明客户端在连接后自行使用的(小)子网。例如,
192.168.0.2/32
只需确保该网络地址不属于您在其他地方使用的子网的一部分