Ubuntu

Wireguard VPN 出站和入站

  • June 28, 2018

我正在嘗試設置一個 Wireguard 隧道,以便 A 將 B 的 IP 用於出站和入站流量(如代理,而不是標準 VPN 配置)。兩個盒子都是 Ubuntu 16.04。

A 是 eth0,位於具有 NAT 和 DMZ 的路由器後面,具有 IP A

B 有兩個公共 IP:一個主 IP(ens3 aka B1)和一個輔助 IP(ens3:0 aka B2)。第二個應該專用於 WG 隧道。

A上的工作組:

Interface Address = 10.200.1.2/24 SaveConfig = true ListenPort = 50614 FwMark = 0xca6c PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx [Peer] PublicKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy AllowedIPs = 0.0.0.0/0 Endpoint = <B2>:51820 PersistentKeepalive = 10

B 工作組:

[Interface] Address = 10.200.1.1/24 SaveConfig = true ListenPort = 51820 PrivateKey = wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [Peer] PublicKey = zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz AllowedIPs = 10.200.1.0/24 Endpoint = A:50614

A路線:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

B路線:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 B1.B1.B1.1 0.0.0.0 UG 0 0 0 ens3 B2.B2.B2.0 0.0.0.0 255.255.255.0 U 0 0 0 ens3 B1.B1.B1.0 0.0.0.0 255.255.254.0 U 0 0 0 ens3 169.254.169.254 B1.B1.B1.1 255.255.255.255 UGH 0 0 0 ens3

我需要添加哪條路由,以便來自 A 的每個出站數據包都通過 B2 發出,並且每個入站到 B2 的數據包都發送到 A?

我從 Wireguard 社區得到了很多幫助,這就是有效的方法。

一個客戶)

[Interface]
Address = B2/32
PrivateKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = 0.0.0.0/0
Endpoint = B2:51820
PersistentKeepalive = 10

B(伺服器)

[Interface]
ListenPort = 51820
PrivateKey = yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

[Peer]
PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
AllowedIPs = B2/32

不要忘記通常的步驟(在 B 上)

  • 在防火牆中打開 51820/udp
  • net.ipv4.ip_forward = 1

如果 B 上的 wg0 介面顯示不斷增長的錯誤計數,您可能希望為 A 禁用 DMZ 或限制 B2 上正在使用的埠上的入站,這些埠也可能通過 A 到 WG 介面的流量。如果您正在執行基於對等的服務,則可能會出現這種情況。

引用自:https://serverfault.com/questions/917411