向 eth1 發送 WG 流量
我用 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
.ip route add default dev wg0 table 123 ip rule add iif eth1 lookup 123
(數字
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 自己的流量也進入隧道。