我用 AWS 设置了一个wireguard 服务器,用一个树莓派设置了wireguard 客户端。
现在我需要将 WG 流量 (wg0) 重定向到 eth1(eth0 是我的交换机的上行链路)
-- 我的目标是在客户端连接到 PI eth1(全隧道)时从我的 WG 服务器获取 IP
我的 WG 配置
[Interface]
Address = 10.1.1.1/24
ListenPort = 51820
PrivateKey = ##
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = ##
AllowedIPs = 10.1.1.2/32
我安装了 Netplan,但我对配置很迷茫(我需要将 WG0 流量发送到 ETH1)
以下配置是否有意义:(可能不是......)
network:
version: 2
renderer: networkd
bonds:
bond0:
dhcp4: yes
interfaces:
- wg0
- eth1
parameters:
primary: wg0
It's would be even better for the Raspberry PI to joint my UniFi VLAN (uplink) and get an IP from there but still sent/receive all the traffic from WG server but that's to complex for me I guess
更新:我应该将 WG 配置添加到 Netplan 吗?
tunnels:
network:
version: 2
renderer: networkd
bonds:
bond0:
dhcp4: yes
interfaces:
- wg0
- eth1
parameters:
primary: wg0
wg0:
mode: wireguard
addresses: 10.1.1.1/24
peers:
- keys:
Public_key?
...
key: Private_key?
首先与此
bond
无关,基本上,练习是使用 ip 规则,该规则dev wg0
为来自eth1
.(数字
123
是任意的。如果您希望eth1
主机能够访问主机,则需要对其进行细化eth0
。)当然,IP 转发也需要启用(sysctl)和允许(防火墙,如果有)。
然后,您决定是否要为
eth1
IP 子网伪装/NAT,或者在wireguard 服务器上为其添加返回路由。如果可能,建议使用后者,其中一个原因是您无论如何都需要在wireguard服务器上进行伪装/ NAT(对于任何一个10.1.1.2
或eth1
IP子网),假设您想使用其接口之一进行Internet连接。(NAT 的层数应尽量减少。)(我假设
10.1.1.2
是 Pi 上的 WG IP。目前尚不清楚您展示了哪个配置。)如果您选择不在 Pi 上对其进行 NAT,请确保
eth1
IP 子网与wireguard 服务器上使用的任何子网不冲突。在这种情况下,还需要AllowIPs=
在wireguard 服务器上添加子网。您很可能应该将
PostUp=
用于上述设置,因为我不确定 netplan 是否有办法让您指定它。(添加的路由消失了应该wg0
也没有了,所以只需要用Pre
/删除ip规则即可PostDown=
。)编辑:您可能应该
Table=off
在客户端 conf 上使用,除非您希望 Pi 自己的流量也进入隧道。