目前配置静态IP时默认网关不能留空,这对于想把电脑作为默认网关(软路由)的用户非常不友好,~~我们只能取巧(比如配置默认网关为`x.x.x.0`)来避免多余的默认网关被加入路由表~~(并没有用,看“更新一”。目前,通过命令行配置IP看起来是唯一选择)。 而一但我们不小心为不想拥有默认网关的接口配置了默认网关,就会引发严重的网速变慢问题,并且难以排查。 其他Linux桌面(比如Ubuntu)和Windows都允许省略默认网关,它们之所以不强求默认网关,不是没有道理的。 希望尽快去除此限制。 -------------------------- 附我的惨痛经历: # 双默认网关导致网速极慢:记一起Deepin网络配置错误 我正在笔记本上运行 Deepin v20,前几天都很正常,网速非常快。但是今天,网速突然变得奇慢无比,百度搜索一个东西都需要几秒甚至十几秒后才出来。火狐(Firefox)和 Chrome 都在时间线上记录下了不同寻常的红色线条,火狐称其为“阻塞”:   刚开始我以为是WiFi热点出了问题,但是手机访问同样的网站就一点也不卡。 然后我以为是Linux的WiFi驱动出了问题,尝试调整 `/etc/modprobe.d/iwlwifi.conf`,但不管调什么参数,结果都没什么区别,还是一样的慢,还是一样的红色“阻塞”。 我怀疑火狐的参数(`about:config`)配置不合理,做了调整,结果还是没变化。而且Chrome也一样糟糕。明明昨天一切都很流畅! 最后,我只能怀疑是操作系统本身出了什么问题。在我安装了一系列软件之后,Deepin被我弄坏了? 抱着这个想法,我重启到 Windows。打开火狐,百度搜索——非常流畅,一点也不卡,也没有出现红色的“阻塞”! 所以我的Deepin被我弄坏了?怎么坏的?哪里坏了?我百思不得其解。 突然,我注意到摆在桌子上的向日葵控控A2开始闪烁黄灯。在我使用Linux(Deepin)系统时,它一直是亮着白灯的,因为我把电脑配置为软路由,通过网线共享了我的WiFi给它。黄灯闪烁表示断网,我没有在Windows里共享网络给它。 对了,网络共享,这是今天早上刚配置好的! 而且 Deepin 的网络设置界面有一个非常讨厌的地方,不允许“默认网关”留空,所以我只好勉为其难的填了本机IP,就是这样:  我的本意是想,既然默认网关是我自己,系统就应该知道这是无效路由,完全不应该尝试向这个默认网关发包。而且`ip route`的结果也支持了这一观点:  可以看到,有线接口的“度”(metric)是`20100`,远大于无线接口的`600`,“度”越大,表示电脑到路由器的距离越远,优先级越低。有线接口的“度”远大于无线接口,联网时本来从来都不该选择有线IP,从来都不该往有线的默认网关发包! 但是事实证明我错了。不知道为什么,有线IP确确实实就是网络应用程序的首选通信IP,有线默认网关也是首选默认网关,最开始的几秒钟,包全部发到了有线接口,然后因为默认网关是自身,所有包都因为没有后续路由而被丢弃。 几秒后,应用程序这才反应过来有线网络不通,转而选择无线网络。次次如此,总是如此。 在关掉有线网络开关之后,网速瞬间恢复正常。。。。。。 ----------------- 但是软路由还是要做的啊,我又不想用命令行配置IP地址,而 Deepin 又不让我省略默认网关,该怎么办呢? 试试 `192.168.137.0`?我突发奇想,既然合法的IP不行,不在本网段的IP(比如`0.0.0.0`)不行,那填个本网段内的非法IP不就可以了嘛。 一试,~~果然可以~~!(并不!看更新一!)  控控可以联网(备注:我还配置了`net.ipv4.ip_forward=1`和`iptables -t nat -A POSTROUTING -s 192.168.137.0/24 -o wlp3s0 -j MASQUERADE`),多余的默认路由也不再出现,网速恢复正常,~~两全其美!~~(并不!看更新一!) ----------------- 综上所述,这个故事再次告诉了我一个真理:不要配置两个默认网关,除非它们俩都能上网还一样快,否则一定会出问题! ----------------- 更新一:网关配置为`192.168.137.0`之后,大概过了10分钟,提示“未能加入有线网络”,有线网络状态变为“断开”,然后子网路由`192.168.137.0/24 dev enp2s0`被从路由表中删除!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 我无言以对。 看来Deepin必须解决该问题,否则用命令行配置IP地址是我唯一的选择。虽然我讨厌如此,在其他操作系统里也不必如此。
Activity
SwimmingTiger commentedon May 21, 2020
更新2:发现我的网速问题还和火狐的版本有关。清除缓存后,Firefox 76.0.1 打开同一网页的速度明显比 Firefox 75.0 更慢!
录了个动态图:
https://github.com/SwimmingTiger/dde-control-center/releases/download/img/img.gif
SwimmingTiger commentedon May 22, 2020
更新3:我最后发现我的火狐网速很慢是安全中心(
deepin-defender软件包)造成的。它严重影响应用新建连接的性能,所以明显影响了火狐打开网页的速度。相关issue:
#2409
不过我认为,允许默认网关留空的诉求还是有价值的。