我正在尝试设置 Wireguard VPN 来访问在我的家庭服务器(路由器和 ISP NAT 后面)和其他一些计算机上运行的服务。
同行包括:
- Wireguard 反弹服务器(A),一个 VPS。
- 另一个 VPS(B)运行着一些绑定到 wireguard 接口的服务。
- 我的家庭网络上的笔记本电脑(C)。
- 工作中的笔记本电脑(D)。
- 我的家庭服务器(E)以客户端模式通过另一个路由器连接到我的家庭 WiFi。
几乎一切都运行良好:
- 我可以通过我的笔记本电脑访问 A 和 B 上的服务。
- 我可以通过 A 路由来自笔记本电脑的流量(隐藏我的 IP)。
- 当使用家庭 wifi IP 地址(不是 VPN)时,我可以访问家庭服务器(E)上的服务。
- 我可以从任何地方 ping 到 E。
- 我可以通过 netcat 从任何地方向 E 发送消息并返回。
不起作用的是:我无法从 C 或 D 笔记本电脑通过浏览器访问在我的家庭服务器 E 上运行的 Web 服务。
反弹服务器(A)配置(相关部分):
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o ens2 -j MASQUERADE;
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens2 -j MASQUERADE;
我尝试tcpdump
在 E 上执行此操作,它似乎正在尝试响应,但无法响应。与此同时,浏览器卡在“等待服务器”状态。
alice# tcpdump -n -i wg0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wg0, link-type RAW (Raw IP), capture size 262144 bytes
21:01:57.709120 IP 10.100.100.3.60880 > 10.100.100.5.9091: Flags [SEW], seq 3428632112, win 65535, options [mss 1380,nop,wscale 6,nop,nop,TS val 786593373 ecr 0,sackOK,eol], length 0
21:01:57.709172 IP 10.100.100.5.9091 > 10.100.100.3.60880: Flags [S.E], seq 172168014, ack 3428632113, win 64296, options [mss 1380,sackOK,TS val 4134630026 ecr 786593373,nop,wscale 7], length 0
21:01:57.814616 IP 10.100.100.3.60880 > 10.100.100.5.9091: Flags [.], ack 1, win 2052, options [nop,nop,TS val 786593482 ecr 4134630026], length 0
21:01:57.816591 IP 10.100.100.3.60880 > 10.100.100.5.9091: Flags [P.], seq 1:445, ack 1, win 2052, options [nop,nop,TS val 786593482 ecr 4134630026], length 444
21:01:57.816626 IP 10.100.100.5.9091 > 10.100.100.3.60880: Flags [.], ack 445, win 502, options [nop,nop,TS val 4134630133 ecr 786593482], length 0
21:01:57.816754 IP 10.100.100.5.9091 > 10.100.100.3.60880: Flags [P.], seq 1:220, ack 445, win 502, options [nop,nop,TS val 4134630133 ecr 786593482], length 219
21:01:58.255972 IP 10.100.100.5.9091 > 10.100.100.3.60880: Flags [P.], seq 1:220, ack 445, win 502, options [nop,nop,TS val 4134630572 ecr 786593482], length 219
21:01:58.895991 IP 10.100.100.5.9091 > 10.100.100.3.60880: Flags [P.], seq 1:220, ack 445, win 502, options [nop,nop,TS val 4134631212 ecr 786593482], length 219
21:02:00.175994 IP 10.100.100.5.9091 > 10.100.100.3.60880: Flags [P.], seq 1:220, ack 445, win 502, options [nop,nop,TS val 4134632492 ecr 786593482], length 219
21:02:02.895994 IP 10.100.100.5.9091 > 10.100.100.3.60880: Flags [P.], seq 1:220, ack 445, win 502, options [nop,nop,TS val 4134635212 ecr 786593482], length 219
它似乎10.100.100.5:9091
正在尝试响应,但它不断重试,并10.100.100.3
不断等待响应。因此数据包到达 E,但由于某种原因无法返回。