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 客户端未连接到互联网的主要内容,如果未能解决你的问题,请参考以下文章

Wireguard 服务器连接到客户端

未连接到互联网时如何显示警报? iOS

ios以离线模式存储URL图像(未连接到互联网)

新安装的 pi*** (wireguard) 连接的客户端没有互联网

查尔斯调试代理未连接到本地主机

Hbase 客户端 API 未连接到 Hbase