wireguard 客户端未连接到互联网
Posted
技术标签:
【中文标题】wireguard 客户端未连接到互联网【英文标题】:wireguard client not connecting to the internet 【发布时间】:2020-11-26 10:15:52 【问题描述】:出于所有目的的简单性,我根本无法设置wireguard,以便客户端可以通过wireguard ***访问互联网(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 ###
wireguard 客户端配置
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,路由器的 UDP 和 TCP 端口 8765 均已打开(否则客户端将无法外部连接)
【问题讨论】:
【参考方案1】:根据您的云提供商,您可能需要更改 MTU,Wireguard 默认 MTU 为 1420,而 Google Cloud MTU 为 1460。因此,如果您使用 google Cloud,请将 MTU 设置为 1460,方法是在两者的界面中添加 MTU = 1460
客户端和服务器将解决问题。
有问题可以查看我的full tutorial on Github。
【讨论】:
以上是关于wireguard 客户端未连接到互联网的主要内容,如果未能解决你的问题,请参考以下文章