我正在尝试让在线蒸汽游戏在我的笔记本电脑上运行。我遇到这个问题:如果我在 Linux 上运行游戏,则无法连接到游戏服务器。如果我在 Windows 上运行它们,它们就可以正常工作。该网络上的其他 Windows 笔记本电脑也可以正常工作。如果我在 Linux 上运行游戏但在另一个网络上它也可以正常运行。
目前我认为MTU是问题所在。
$ ip link list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN mode DEFAULT group default qlen 1000
link/ether 68:f7:28:24:00:3f brd ff:ff:ff:ff:ff:ff
3: wlp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
link/ether ac:d1:b8:76:05:5b brd ff:ff:ff:ff:ff:ff
$ ping -M do -s 700 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 700(728) bytes of data.
ping: local error: Message too long, mtu=576
ping: local error: Message too long, mtu=576
ping: local error: Message too long, mtu=576
^C
--- 192.168.0.1 ping statistics ---
3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2004ms
我的问题是为什么这么ping
说mtu=576
?从中ip link list
我们可以看出wlp3s0
有mtu 1500
。另外,我根据ISP的信息将路由器的MTU设置为1492。
UPD。我发现576 Typically recommended as the MTU for dial-up type applications, leaving 536 bytes of TCP data.
更新2
192.168.0.108
是我的IP,192.168.0.1
是我的路由器的IP。
$ ip route show
default via 192.168.0.1 dev wlp3s0 src 192.168.0.108 metric 303 mtu 576
192.168.0.0/24 dev wlp3s0 proto kernel scope link src 192.168.0.108 metric 303 mtu 576
更新3我还尝试ping google.com -f -l 1480
在同一网络中的 Windows 10 笔记本电脑上执行此操作。它按其应有的方式工作。长度小于~1500 pass 和超过~1500 需要分段。所以,问题出在我这边。
答案1
这是我第一次,ip route
但我这样做了:
ip route del
所有路线,然后
ip route add default via 192.168.0.1 dev wlp3s0 mtu 1492
通过我的路由器添加默认路由。我希望我没有错过任何重要的事情。