Wireguard 从单个 NIC 进行路由的问题

Wireguard 从单个 NIC 进行路由的问题

我遇到了 Wireguard 似乎无法路由所有内容的问题。基本上,我家里有一个 Ubuntu 盒子,我在那里安装了 Wireguard。

我希望能够连接到该盒子并访问局域网和互联网,就像在我家里一样。

还算管用。我可以毫无问题地进行 tracert 和 ping。我可以毫无问题地访问一些网站。但如果我尝试使用 speedtest.net 之类的东西,尝试下载某些东西,或者尝试使用流媒体服务之类的东西。它不起作用。

我已经玩了好几天了,但我很茫然。

值得注意的是,我目前在同一个网络上有一个 GLiNet 盒,我能够将 Wireguard 放入其中,并且访问任何东西都没有问题。

它们位于同一子网等,并且位于不同的入站端口。因此,这看起来与我的路由器或 ISP 无关。

wg0.conf (已删除密钥)

[Interface]
Address = 10.253.1.0/24
ListenPort = 11820
PrivateKey = A private key
MTU = 1450

[Peer]
PublicKey = A public key
PresharedKey = A preshared key
AllowedIPs = 10.253.1.1/32

客户端配置:

[Interface]
Address = 10.253.1.1/32
PrivateKey = Public key
DNS = 192.168.101.115,8.8.8.8,8.8.4.4
MTU = 1450
FwMark = 0xca6c

[Peer]
PublicKey = Public key
PresharedKey = Preshared key
AllowedIPs = 0.0.0.0/0
Endpoint = <a domain>:11820
PersistentKeepalive = 15

/etc/sysctl.conf 设置为:

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

由于我已经尝试了很多解决方案,所以我目前正在连接后手动进行路由。

iptables -t nat -I POSTROUTING 1 -s 10.253.1.0/24 -o enp4s0 -j MASQUERADE
iptables -I INPUT 1 -i wg0 -j ACCEPT
iptables -I FORWARD 1 -i enp4s0 -o wg0 -j ACCEPT
iptables -I FORWARD 1 -i wg0 -o enp4s0 -j ACCEPT

这是我拥有的最好的工作版本,大多数网站都会下载所有内容。

当尝试加载 speedtest.net 时,我得到了基本的 HTML,但没有 CSS 等。错误:

b.cdnst.net/fonts/HCo_fonts.css:1 
 Failed to load resource: net::ERR_TIMED_OUT
b.cdnst.net/styles/m…da11a5ad32a75.css:1 
 Failed to load resource: net::ERR_TIMED_OUT
amazon.js:1 
 Failed to load resource: net::ERR_TIMED_OUT
ad.js:1 
 Failed to load resource: net::ERR_TIMED_OUT
groupblack-white_on_black-2x.png:1 
 Failed to load resource: net::ERR_TIMED_OUT
b.cdnst.net/javascri…bid.6.18.0.min.js:1 
 Failed to load resource: net::ERR_TIMED_OUT
b.cdnst.net/javascri…41d7f51600e38d977:1 
 Failed to load resource: net::ERR_TIMED_OUT
www.googletagservice…com/tag/js/gpt.js:1 
 Failed to load resource: net::ERR_TIMED_OUT
www.googletagmanager….js?id=GTM-K7SNBZ:1 
 Failed to load resource: net::ERR_TIMED_OUT
favicon.ico:1 
 Failed to load resource: net::ERR_TIMED_OUT
api.btloader.com/country:1 
 Failed to load resource: net::ERR_TIMED_OUT
tag?o=5075500865683456&upapi=true:1 
 Uncaught (in promise) TypeError: Failed to fetch
    at tag?o=50755008656834…&upapi=true:1:16474
    at tag?o=5075500865683456&upapi=true:1:1259
    at Object.next (tag?o=5075500865683456&upapi=true:1:1364)
    at o (tag?o=5075500865683456&upapi=true:1:107)
api.btloader.com/pv?…2Add7F&upapi=true:1 
 Failed to load resource: net::ERR_TIMED_OUT
b.cdnst.net/manifest.webmanifest:1 
 Failed to load resource: net::ERR_TIMED_OUT
b.cdnst.net/images/f…icons/favicon.svg:1 
 Failed to load resource: net::ERR_TIMED_OUT

为了http://icmpcheck.popcount.org/

得到http://icmpcheck.popcount.org/net::ERR_CONNECTION_RESET 200 (正常)

来自谷歌的搜索:

无法访问该站点。www.google.com响应时间太长。尝试:

检查连接
检查代理和防火墙
运行 Windows 网络诊断

超时错误

Disney.com 加载正常,看上去不错,但有几个错误(略作清理):

en-US?logLevel=INFO:13          GET https://www.google.com/recaptcha/enterprise.js?render=6Lck8IUfAAAAABpd98whDTBeR8-QFbpFUYbFcz6P&hl=en net::ERR_TIMED_OUT

(anonymous) @ en-US?logLevel=INFO:13
window.setInitialData @ en-US?logLevel=INFO:13
(anonymous) @ en-US?logLevel=INFO:24
head-56277e6a3815.js:1          GET https://tredir.go.com/capmon/GetDE/?set=j&param=geo&raw=true net::ERR_TIMED_OUT
GET https://www.googletagservices.com/tag/js/gpt.js net::ERR_TIMED_OUT
GET https://dcf.espn.com/TWDC-DTCI/prod/Bootstrap.js net::ERR_TIMED_OUT

简短版本:通过隧道进入服务器(192.168.101.119 - 隧道 10.253.1.0/24)将所有流量从隧道路由到 LAN(192.168.101.0/24)和互联网。Ping、tracert 一切正常,一些网站也正常。无法使用流媒体服务,无法下载文件等,无法使用 speedtest.com 等网站。

我完全没有主意了,尤其是它大部分时候都是有效的。

请问有什么建议吗?

- - - - - - - - - 更新 - - - - - - - - - -

路线详情如下:

知识产权

default via 192.168.101.1 dev enp4s0 proto dhcp src 192.168.101.119 metric 100
8.8.4.4 via 192.168.101.1 dev enp4s0 proto dhcp src 192.168.101.119 metric 100
8.8.8.8 via 192.168.101.1 dev enp4s0 proto dhcp src 192.168.101.119 metric 100
10.253.1.0/24 dev wg0 proto kernel scope link src 10.253.1.0
192.168.101.0/24 dev enp4s0 proto kernel scope link src 192.168.101.119 metric 100
192.168.101.1 dev enp4s0 proto dhcp scope link src 192.168.101.119 metric 100
192.168.101.115 dev enp4s0 proto dhcp scope link src 192.168.101.119 metric 100

sudo 路线-n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.101.1   0.0.0.0         UG    100    0        0 enp4s0
8.8.4.4         192.168.101.1   255.255.255.255 UGH   100    0        0 enp4s0
8.8.8.8         192.168.101.1   255.255.255.255 UGH   100    0        0 enp4s0
10.253.1.0      0.0.0.0         255.255.255.0   U     0      0        0 wg0
192.168.101.0   0.0.0.0         255.255.255.0   U     100    0        0 enp4s0
192.168.101.1   0.0.0.0         255.255.255.255 UH    100    0        0 enp4s0
192.168.101.115 0.0.0.0         255.255.255.255 UH    100    0        0 enp4s0

sudo ufw 状态

Status: inactive

IP 的详细信息

192.168.101.1 - main router (to internet)
8.8.8.8 and 8.8.4.4 (google DNS)
192.168.101.115 - Local DNS server
10.253.1.0 used inside the VPN

希望这能提供一些额外的信息来帮助查找故障。为了清楚起见,这是带有 VPN 连接和所有应用的发布规则的路由表(我希望您已经看到了)。

相关内容