Wireguard 将多个客户端隧道连接到服务器和互联网(allowedips)

Wireguard 将多个客户端隧道连接到服务器和互联网(allowedips)

我最近设置了 wireguard,并让它在一个客户端(笔记本电脑)上运行,然后将我的手机添加到组合中,我的笔记本电脑停止连接。如果我将另一个注释掉,它就会工作。我知道在这两种情况下都是由于允许的ips 0.0.0.0/0。问题是我不确定我需要输入什么才能让它工作。我只尝试了客户端的 wg ip,例如 10.0.0.2/24 和 10.0.0.2/32。

理想的目标是能够访问我的服务器并为两个客户端建立隧道流量。我知道我可以通过为每个客户端创建一个单独的 wg 接口来实现这一点,但我想知道我是否可以在服务器上仅使用一个 (wg0) 来实现这一点。我在服务器上运行了一个 adguard DNS 容器,当与单个设备连接时(另一个在服务器配置中注释掉)。该设备命中 DNS 并按预期工作,并将我的请求重写到我的服务器并阻止广告,我可以看到客户端 ip 作为 wg ip。我并不真正关心这两个设备的 LAN 访问,我只想访问我的服务器 IP 并转发其余部分。目前我可以使用 0.0.0.0/0 对一个客户端执行此操作

在客户端上将允许的 IP 更改为 10.0.0.2/32 时,它不起作用。我无法 ping DNS 服务器 10.0.0.1 适用于每个设备,但不能同时使用,因为它们重叠 0.0.0.0/0。

我的首要任务是转发两个设备的所有流量,但如果做不到这一点,我很高兴笔记本电脑可以访问所有内容,而手机至少可以访问 10.0.0.1 的服务器

欢迎提供任何有关允许 IP 的帮助或想法。感谢您的时间

服务器配置

[Interface]
PrivateKey = xxxxxxxxxxx
Address = 10.0.0.1/24
ListenPort = 55555
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
# Laptop 
PublicKey = xxxxxxx
AllowedIPs = 10.0.0.2/32

# Phone
PublicKey = xxxxxxxx
AllowedIPs = 10.0.0.3/32

笔记本电脑配置

[Interface]
Address = 10.0.0.2/24
PrivateKey = xxxxxx
DNS= 10.0.0.1

[Peer]
PublicKey = xxxxxxxx
Endpoint =  my.dd.ip:55555
AllowedIPs = 0.0.0.0/0

电话配置

[Interface]
Address = 10.0.0.3/24
PrivateKey = xxxxxx
DNS= 10.0.0.1

[Peer]
PublicKey = xxxxxxxx
Endpoint =  my.dd.ip:55555
AllowedIPs = 0.0.0.0/0

另外我应该补充一下,我已经允许在服务器上转发 net.ipv4.ip_forward = 1

答案1

在服务器端配置上,您必须[Peer]为每个对等点添加一个块。

[Interface]
PrivateKey = SERVER%XXXXXXX # PUBLIC SERVER%PPPPPPP
Address = 10.0.0.1/24
ListenPort = 55555
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

# Laptop
[Peer] 
PublicKey = LAPTOP%PPPPPPP
AllowedIPs = 10.0.0.2/32

# Phone
[Peer]
PublicKey = PHONE%PPPPPPP
AllowedIPs = 10.0.0.3/32

笔记本电脑配置

[Interface]
Address = 10.0.0.2/32
PrivateKey = LAPTOP%XXXXXXX 
DNS = 10.0.0.1

[Peer]
PublicKey = SERVER%PPPPPPP
Endpoint =  my.dd.ip:55555
AllowedIPs = 0.0.0.0/0

电话配置

[Interface]
Address = 10.0.0.3/32
PrivateKey = PHONE%XXXXXXX 
DNS = 10.0.0.1

[Peer]
PublicKey = SERVER%PPPPPPP
Endpoint =  my.dd.ip:55555
AllowedIPs = 0.0.0.0/0

相关内容