我正在试用 Wireguard VPN,虽然我相信我终于可以连接上了,但我无法访问 Internet,并且无法 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
,它似乎可以连接,但我无法访问 Internet。
$ sudo wg-快速启动 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
没有运气。
任何想法为什么没有互联网?
通过分析配置的要点,我成功地对 Wireguard 链接进行了故障排除:
是否重新启动了 wireguard 端点,以便它们都识别另一侧键,并且没有生成错误消息?
VPN 网络范围是否与端点中存在的所有范围不同,以便 VPN 可以拥有自己的单独网络?
本地防火墙是否允许通过每个节点中使用的 UDP 端口进入流量?
每个节点在 VPN 范围内是否有唯一的 IP 地址?
VPN IP 地址/范围的掩码是否允许所需节点的可见性?
如果配置了 DNS 地址,服务器是否可访问并直接响应或通过 VPN 允许的范围?
在对等体中声明的端点是否可以直接被它访问?
由其 Allowed IPs 行在对等方中创建的路由是指存在于链路另一端的范围?
wg-quick 添加的防火墙规则允许通过/来自 VPN 和本地/远程 IP 范围的流量?
内核ip_forward变量是否启用?
出口流量是否需要 NAT?
笔记
直接:不使用VPN。
VPN 范围:为所有节点的对等地址行和掩码选择的 IP 范围。
每个问题都需要不同的规则/技术来测试/解决,但需要一些 IP 寻址知识和访问网络工具(如
ping
)nmap
或nslookup/dig
相应的操作系统命令来询问接口地址、路由和防火墙的网络当前状态。一些行动可能是:2,4,5,8。计算所有涉及的范围/掩码的 IP 地址间隔,并绘制一个图表,说明它们如何互连以及它们之间的流量如何流动。检查不一致。
3,9。检查当前使用的防火墙(iptables、ufw、nftables 等)和当前应用的规则。
使用
dig
,nslookup
或host
检查 DNS 解析(man
如有必要,每个命令都会增加详细程度)。端点线路必须使用公共 IP 地址,或者不使用 VPN 即可直接访问的 IP 地址。
最后,11。(必须添加“Last”一词以避免“11”自动重新编号为“8”)如果我们想要访问的远程主机(除了远程对等节点)没有我们的路由通过 VPN/peer 节点的本地 IP 地址/范围,然后我们需要在 peer 中进行 NAT 转换。
例如,如果我们需要通过 VPN 路由所有流量,则远程对等节点必须对从 VPN 定向到互联网的所有流量进行 NAT,以便谷歌/Facebook 等远程主机直接响应对等方,因此可以重新路由数据对我们正确。
我从我的 VPN 供应商处获得了一个新的 wireguard .conf 文件,使用不同的(正确的)对等主机名,我的初始测试表明它现在可以工作。