dov*_*178 4 routing centos vpn firewalld
我使用的是 CentOS 7.6 版本,并且安装了测试 Wireguard VPN 服务器。整个安装和配置非常简单,至少根据文档,所以我做了什么,我安装了wireguard-tools、wireguard-dkms和linux-headers
下一步是,我生成了服务器的私钥和公钥,并将服务器的配置写为:
[Interface]
Address = 10.7.0.1/24
ListenPort = 34777
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.2/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.3/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.4/32
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.5/32
Run Code Online (Sandbox Code Playgroud)
从服务器端,我在防火墙上打开了端口 34777 udp,并设置 sysctl -w net.ipv4.ip_forward(启用转发),因为该服务器应该假设将流量从客户端转发到 VPN 服务器子网中的其他服务器。现在让我们假设这个服务器的公共 IP 是 11.11.11.11/23
在客户端,配置如下所示:
[Interface]
Address = 10.7.0.4/24
PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=
AllowedIPs = 10.7.0.1/32,11.11.11.0/23 (for having route to 11.11.11.0/23 subnet) or 0.0.0.0/0
Endpoint = 11.11.11.11:34777
Run Code Online (Sandbox Code Playgroud)
现在 0.0.0.0/0 意味着我将所有流量转发到我的 VPN(它不是强制性的),它可以是一个拆分隧道......我不明白,当我连接时,我可以 ping 服务器的接口10.7.0.1,但我无法从网络 11.11.11.0/23 ping 任何东西。由于网络 11.11.11.0/23 是公共网络,因此没有 NAT。还要提一下,在 CentOS 上,我使用 firewalld 而不是 iptables。
我如何以及为什么看不到隧道接口后面的内部网络?
PS 在图片上,主机 A 和 Wireguard 服务器之间,还有另一个 linux 路由器(一个主路由器),所以请记住这一点。
我遇到了同样的问题 - 我的服务器又名“Wireguard SRV”在图表中(= Centos8,带有 iptables 和 ferm)不路由流量。
问题:我忘记了sysctl -w net.ipv4.ip_forward=1。
但这不是唯一的问题——ip route add ...不是解决方案。
所以我将这些行添加到我的wireguard-config中(/etc/wireguard/wg0.conf根据您的地址位于):
[Interface]
// ...
PreUp = iptables -A POSTROUTING -s 10.7.0.0/24 -o eth0 -j SNAT --to-source 11.11.11.11 -t nat
PreDown = iptables -D POSTROUTING -s 10.7.0.0/24 -o eth0 -j SNAT --to-source 11.11.11.11 -t nat
Run Code Online (Sandbox Code Playgroud)
经过这么多次尝试和失败并与wireguard IRC chanel人员集思广益,显然我忘记为wireguard后面的每个服务器添加10.7.0.0/24的静态路由。Ping 进入服务器,但不会返回,因为服务器不知道将回显回复发送到哪里:
ip route add 10.7.0.0/24 via 11.11.11.11 dev eth0 (main device for communication)
Run Code Online (Sandbox Code Playgroud)
对我来说,问题解决了;-)
| 归档时间: |
|
| 查看次数: |
29093 次 |
| 最近记录: |