尽管其目的很简单,但我根本无法设置wireguard,以便客户端可以通过wireguard VPN访问互联网(WAN)。我已经用谷歌搜索了几天,但没有任何效果。我在下面有我的配置,任何人都可以看到可能有什么问题吗?
- 服务器上的wireguard配置
- 如您所见,我尝试将 AllowedIPs 设置为 0.0.0.0/0 也无济于事。看起来虽然使用 0.0.0.0/0 到 facebook 的 IP (176.13.69.63) 的跟踪路由有效,但我无法访问它。
root@hattusa:~# cat /etc/wireguard/wg0.conf
[Interface]
PrivateKey = ***
Address = 10.6.0.1/24
ListenPort = 8765
### begin android ###
[Peer]
PublicKey = ***
PresharedKey = ***
#AllowedIPs = 0.0.0.0/0
AllowedIPs = 10.6.0.2/32
### end android ###
- 线卫客户端配置
root@hattusa:~# cat /etc/wireguard/configs/android.conf
[Interface]
PrivateKey = ***
Address = 10.6.0.2/24
DNS = 8.8.8.8, 8.8.4.4
[Peer]
PublicKey = ***
PresharedKey = ***
Endpoint = ***:8765
AllowedIPs = 0.0.0.0/0, ::0/0
- 启用了 IPv4 转发
root@hattusa:~# sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
- 我尝试了不同的 iptables 规则,我现在添加的是;我没有运行防火墙
root@hattusa:~# iptables --list-rules
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 8765 -j ACCEPT
-A INPUT -i wg0 -j ACCEPT
-A FORWARD -i wg0 -o eth0 -j ACCEPT
-A FORWARD -i eth0 -o wg0 -j ACCEPT
- 我也有一个伪装规则,但它没有出现。这是
iptables -t nat -I POSTROUTING 1 -s 10.6.0.2/24 -o eth0 -j MASQUERADE
- 客户端可以成功连接,正在发送和接收数据,并且来自客户端的 ping 也可以工作(所以 DNS 解析没问题,但即使 DNS 不工作,我也应该能够通过 IP 直接访问主机)
root@hattusa:~# wg
interface: wg0
public key: ***
private key: (hidden)
listening port: 8765
peer: ***=
preshared key: (hidden)
endpoint: ***:31053
allowed ips: 10.6.0.2/32
latest handshake: 12 minutes, 32 seconds ago
transfer: 1.32 MiB received, 2.13 MiB sent
- 在 raspbian 上运行 debian buster,端口 8765 在路由器上打开 UDP 和 TCP(否则客户端将无法外部连接)