虚拟机 + Wireguard 的 NAT 问题

2021-07-22 21:35:13 +08:00
 evemoo

阿里云轻量服务器:

有公网 IP + 安全组端口全开 + 打上 Fullcone 补丁 。

服务器配置:

192.168.1.222 是 NS 的 局域网地址。

Virtualbox 虚拟机:

有线桥接模式,连上后能互相 ping 通。

客户端配置:

防火墙配置:

存在问题: Nintendo Switch 将网关设置成虚拟机 IP 后,网络测试结果为服务器地址,但 NAT 类型没有提升到 A 。

3552 次点击
所在节点    宽带症候群
17 条回复
nuk
2021-07-23 01:26:26 +08:00
做两次 port static map,直接给 switch 分配你的公网地址,没必要搞这么复杂
evemoo
2021-07-23 01:39:16 +08:00
@nuk
目前已有的 iptables tproxy 方案做成透明代理网关没问题,但还是想排查一下这种威皮恩方案问题在哪。
顺便对比一下这两种方案哪个对主机 p2p 游戏( MHR )加速效果比较好。
evemoo
2021-07-23 02:06:47 +08:00
谷歌翻了很多主机代理资料和实际折腾经历总结一下, 如果有错误请指正。

多个玩家都在国内联机 P2P 游戏,即便拥有 NAT A 条件但游戏内玩家瞬移瞬移的情况还是存在,至于校园网或 NAT C 玩家就更卡了。各运营商链路质量不同或者存在丢包情况都是导致瞬移的原因,此时搭建中心节点让双方走代理能改善这种情况。

在不过墙的时候 $$ 因为 0-RTT 的缘故是个不错的选择,但拿来加速游戏则需要 L5 转 L3,不那么适合加速游戏(实际用途 vs 特殊需求)。

Windows 路由表不像 Linux 那么好处理,虚拟机方案需要有线桥接,无线模式下真机流量无法被转发。
绝大部分无线网卡不支持混杂模式: https://www.virtualbox.org/manual/ch06.html#network_bridged
目前能找到的方案是 socks5 + pcap2socks ( Netch 已整合)。

同时选择香港联机节点,不同厂商加速器的联机效果也不完全能保证稳定,技术壁垒或劣化特定 IP 段暂未考证。
guanyin8cnq12
2021-07-23 07:53:51 +08:00
参考,https://vps.gitbook.io/discount/pubglite-jia-su-dai-li-shi-xian

客户端,建议不要搞的 那么复杂,不需要在 op 上搞 udp 全局代理,用 tunsafe,或者官方指定的 wireguard client 。
guanyin8cnq12
2021-07-23 08:03:56 +08:00
udp 数据包会被 qos,你需要解决 udp over tcp(tls)。不要用 udpspeeder,根本没用。在 udp over tls 上 多想想出路。
cwbsw
2021-07-23 08:35:11 +08:00
不用 FullCone 补丁,入站流量全部 DNAT 到 NS 呢?
evemoo
2021-07-23 12:52:39 +08:00
@guanyin8cnq12
目标是主机加速,NS 不支持 Socks 代理只能走网关形式了。
至于 qos 问题,国内服务器我用 udpping 测过,没有丢包。
evemoo
2021-07-23 12:55:16 +08:00
@cwbsw
让 NS 数据走隧道到服务器后再进行 NAT 转换,这么理解?
guanyin8cnq12
2021-07-23 13:11:45 +08:00
@evemoo 不丢包 不等于 qos
cwbsw
2021-07-23 13:25:04 +08:00
@evemoo
"让 NS 数据走隧道到服务器后再进行 NAT 转换" 你本来就是这样了啊。我看你的拓扑,OpenWrt 没有做 NAT,VPS 上 AllowedIP 也写了 NS 地址。
我的意思是不要用 FullCone 补丁,简单粗暴地把所有入站流量全部转发到 NS 。
iptables -t nat -I POSTROUTING -o eth0 -s 192.168.1.222 -j SNAT --to-source eth0's address
iptables -t nat -I PREROUTING -i eth0 -j DNAT --to-destination 192.168.1.222
类似这样。
另外据 Support,Type B 应该是不影响联机的。
https://www.support.com/how-to/how-to-change-nat-type-on-nintendo-switch-12474
cwbsw
2021-07-23 13:30:39 +08:00
@guanyin8cnq12
现在 TLS 也没法用了。
https://v2ex.com/t/788719
evemoo
2021-07-23 13:33:10 +08:00
@guanyin8cnq12
原 $$ 方案实际游戏体验还行,联机还要套个 tls 有点累
evemoo
2021-07-23 13:49:52 +08:00
@cwbsw
在服务器执行吗,我可能需要 dd 系统
evemoo
2021-07-28 16:11:31 +08:00
@cwbsw
所有入站流量全部转发到 NS 能 NAT A,但 SSH 反而连不上了
cwbsw
2021-07-28 17:40:47 +08:00
@evemoo DNAT 前加个规则排除掉吧。
evemoo
2021-07-29 11:44:40 +08:00
@cwbsw
iptables 这块不太熟,能讲解一下吗
cwbsw
2021-07-30 10:47:40 +08:00
@evemoo
iptables -t nat -I PREROUTING 1 -i eth0 -p tcp --dport 22 -j ACCEPT

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/791155

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX