Wireguard VPN,无互联网访问

Wireguard VPN,无互联网访问

我正在尝试 Wireguard VPN,虽然我相信我最终可以连接它,但我无法访问互联网,也无法 ping 通互联网上的各个站点。

我获取了 VPN 供应商提供的 Wireguard .conf 文件,重命名并将其复制到 /etc/wireguard/wg0.conf。

[Interface]
PrivateKey = redacted
ListenPort = 51820
Address = redacted/32
DNS = 10.100.0.1

[Peer]
PublicKey = redacted
PresharedKey = redacted
AllowedIPs = 0.0.0.0/0
Endpoint = redacted:51820
PersistentKeepalive = 25

如果我这样做,sudo wg-quick up wg0它似乎可以连接,但我无法访问互联网。

$ sudo wg-quick up wg0

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add redacted/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] wg set wg0 fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev wg0 table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n

$ sudo wg 显示

interface: wg0
  public key: redacted
  private key: (hidden)
  listening port: 51820
  fwmark: 0xca6c

peer: redacted
  preshared key: (hidden)
  endpoint: redacted:51820
  allowed ips: 0.0.0.0/0
  transfer: 0 B received, 2.89 KiB sent
  persistent keepalive: every 25 seconds

我试过禁用防火墙,但没有成功。我试过,sysctl -w net.ipv4.ip_forward=1但没有成功。

知道为什么没有互联网吗?

答案1

通过分析配置的要点,我成功解决了 Wireguard 链接的问题:

  1. 是否已重新启动 wireguard 端点,以便它们都能识别对方的密钥,并且不会生成错误消息?

  2. VPN 网络范围是否与端点中存在的所有范围不同,因此 VPN 可以拥有自己独立的网络?

  3. 本地防火墙是否允许流量通过每个节点使用的 UDP 端口进入?

  4. 每个节点在 VPN 范围内是否都有唯一的 IP 地址?

  5. VPN IP 地址/范围的掩码是否允许所需节点的可见性?

  6. 如果配置了 DNS 地址,服务器是否可直接访问并响应,或者通过 VPN 允许的范围?

  7. 对等端所声明的端点是否可以被它直接访问?

  8. 对等端通过其允许的 IP 行创建的路由是否指的是链接另一端存在的范围?

  9. wg-quick 添加的防火墙规则是否允许通过/来自 VPN 和本地/远程 IP 范围的流量?

  10. 内核ip_forward变量已启用?

  11. 出口流量是否需要 NAT?

笔记

直接地:不使用VPN。

VPN 范围:为所有节点的对等地址行和掩码选择的IP范围。

每个问题都需要不同的规则/技术来测试/解决,但需要一些 IP 寻址知识和访问网络工具(如pingnmap或 )nslookup/dig以及相应的操作系统命令来询问网络接口地址、路由和防火墙的当前状态。一些操作可以是:

  1. 检查 /var/log/syslog 中的错误消息,并检查 wg 接口是否已定义且是否具有配置的 IP 地址。

2,4,5,8。计算所有涉及的范围/掩码的 IP 地址间隔,并绘制一个图表,表明它们如何互连以及流量如何在它们之间流动。检查是否存在不一致。

3,9.检查当前使用的防火墙(iptables、ufw、nftables等)以及当前应用的规则。

  1. 使用dignslookuphost检查 DNS 解析(man如果需要,每个命令都会增加详细程度)。

  2. 端点线路必须使用公网IP地址,或者无需使用VPN即可直接访问的IP地址。

最后,11.(必须添加“Last”字样,以避免自动将“11”重新编号为“8”)如果我们想要访问的远程主机(除了远程对等节点)没有通过 VPN/对等节点到达我们本地 IP 地址/范围的路由,那么我们需要在对等节点进行 NAT 转换。

例如,如果我们需要通过 VPN 路由所有流量,则远程对等节点必须对从 VPN 定向到互联网的所有流量进行 NAT,以便 Google/Facebook 等远程主机直接响应对等节点,这样数据就可以正确地重新路由给我们。

答案2

我从我的 VPN 供应商处获得了一个新的 wireguard .conf 文件,使用了不同的(正确的)对等主机名,我的初步测试表明它现在可以正常工作。

相关内容