Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

配置静态IP时应该允许默认网关留空 #2718

Closed
SwimmingTiger opened this issue May 20, 2020 · 2 comments
Closed

配置静态IP时应该允许默认网关留空 #2718

SwimmingTiger opened this issue May 20, 2020 · 2 comments
Assignees
Labels
suggestion | feature request 功能建议和期待的拥有的功能

Comments

@SwimmingTiger
Copy link

SwimmingTiger commented May 20, 2020

目前配置静态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=1iptables -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地址是我唯一的选择。虽然我讨厌如此,在其他操作系统里也不必如此。

@SwimmingTiger
Copy link
Author

更新2:发现我的网速问题还和火狐的版本有关。清除缓存后,Firefox 76.0.1 打开同一网页的速度明显比 Firefox 75.0 更慢!

录了个动态图:
https://github.com/SwimmingTiger/dde-control-center/releases/download/img/img.gif

@SwimmingTiger
Copy link
Author

更新3:我最后发现我的火狐网速很慢是安全中心(deepin-defender软件包)造成的。它严重影响应用新建连接的性能,所以明显影响了火狐打开网页的速度。
相关issue:
#2409

不过我认为,允许默认网关留空的诉求还是有价值的。

@BLumia BLumia transferred this issue from linuxdeepin/dde-control-center Mar 23, 2022
@justforlxz justforlxz self-assigned this Mar 29, 2022
@BLumia BLumia added the suggestion | feature request 功能建议和期待的拥有的功能 label Mar 31, 2022
@linuxdeepin linuxdeepin locked and limited conversation to collaborators Mar 31, 2022
@BLumia BLumia converted this issue into discussion #2986 Mar 31, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
suggestion | feature request 功能建议和期待的拥有的功能
Projects
None yet
Development

No branches or pull requests

4 participants