解决Ubuntu服务器多网口使用情况下外网老掉线问题

问题背景

Ubuntu服务器有两个网口eno3和eno4,eno3配置了192.168.110.253用于连接4台扫描仪,网关192.168.110.1,无DNS,

eno4配置了192.168.100.182用于连接中控室和外网路由,网关192.168.100.1(外网路由器的地址),DNS也设置成了192.168.100.1;

问题是安装Todesk远程桌面软件后,一会儿能用,一会儿掉线,掉线频率10分钟以内,在掉线期间能够ping通外网路由器192.168.100.1以及无线连接到这个外网路由的设备,这现象说明,eno4连接外网的物理链路是没问题的,试了很多办法,不限于:

修改DNS域名解析配置文件
bash 复制代码
$cat /etc/resolv.conf

信息为:

bash 复制代码
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.53

在nameserver 后接的应该是dns地址,而这里是本地回环地址,把它修改成dns地址,

bash 复制代码
$sudo vi /etc/resolv.conf
bash 复制代码
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.100.1
关闭ipv6

首先在设置界面的网络设置里面,给两张网卡都禁用了ipv6,然后设置如下配置文件:

sudo vim /etc/sysctl.conf

复制代码
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 =1

sudo sysctl -p,使得以上修改生效

关闭防火墙
bash 复制代码
sudo ufw status
sudo ufw disable
关闭systemd-networkd

两个网络管理NetworkManager和systemd-networkd,只留NetworkManager即可:

bash 复制代码
sudo systemctl status NetworkManager
sudo systemctl status systemd-networkd

如果看到 NetworkManager和systemd-networkd都是active状态,那么关闭systemd-networkd:

bash 复制代码
sudo systemctl stop systemd-networkd
sudo systemctl disable systemd-networkd

用了以上办法后还是没有解决问题,最终我在有网和掉网状态下,都用命令traceroute新浪网,跟踪路由,发现如下状态:

有网时:

bash 复制代码
dell@dell-PowerEdge-R740:~$ traceroute www.sina.com
traceroute to www.sina.com (61.241.15.63), 30 hops max, 60 byte packets
 1  homerouter.cpe (192.168.100.1)  0.502 ms  1.623 ms  1.676 ms
 2  * * *
 3  ool-ad020042.dyn.optonline.net (173.2.0.66)  67.160 ms  67.143 ms  67.167 ms
 4  172.29.63.2 (172.29.63.2)  76.313 ms  76.296 ms 172.29.64.2 (172.29.64.2)  77.231 ms
 5  * * *

没网时:

bash 复制代码
dell@dell-PowerEdge-R740:~$ traceroute www.sina.com
traceroute to www.sina.com (163.179.228.87), 30 hops max, 60 byte packets
 1  dell-PowerEdge-R740 (192.168.110.253)  2222.405 ms !H  2222.386 ms !H  2222.374 ms !H

对比有网和没网时的第一跳ip, 有网时是192.168.100.1,没网时是192.168.110.253,????很奇怪吧,按理说不管有网没网,去外网www.sina.com都是经过外网路由器192.168.100.1啊!怎么在没网时会去192.168.110.253?这里就意识到路由表有问题了,参看了如下文章:
https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_10341810855457822784%22%7D&n_type=0&p_from=1

查看原先的路由表情况:

bash 复制代码
dell@dell-PowerEdge-R740:~$ route -n
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
0.0.0.0         192.168.110.1   0.0.0.0         UG    20100  0        0 eno3
0.0.0.0         192.168.100.1   0.0.0.0         UG    20101  0        0 eno4
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eno3
192.168.100.0   0.0.0.0         255.255.255.0   U     101    0        0 eno4
192.168.110.0   0.0.0.0         255.255.255.0   U     100    0        0 eno3

可见去往外网0.0.0.0,192.168.110.1和192.168.100.1网关都可以,且192.168.110.1的跃点更小,优先级更高,所以会有上面掉网时,路由第一跳是192.168.110.253的现象发生,由于192.168.110.x网段只用于内网扫描器,不应涉及外网,所以应该把上面第一条路由删掉:

bash 复制代码
sudo route del -net 0.0.0.0 gw 192.168.110.1 netmask 0.0.0.0 dev eno3

改完后路由表:

bash 复制代码
dell@dell-PowerEdge-R740:~$ route -n
内核 IP 路由表
目标            网关            子网掩码        标志  跃点   引用  使用 接口
0.0.0.0         192.168.100.1   0.0.0.0         UG    20101  0        0 eno4
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eno3
192.168.100.0   0.0.0.0         255.255.255.0   U     101    0        0 eno4
192.168.110.0   0.0.0.0         255.255.255.0   U     100    0        0 eno3

之后,Todesk便稳定了。

相关推荐
M78佐菲39 分钟前
ARM学习笔记(1)
linux·arm开发·笔记·嵌入式硬件·学习
益达丫2 小时前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
比兔代理2 小时前
正向代理与反向代理技术辨析,为什么代理 IP 属于正向代理
服务器·网络·http·ip
Wang's Blog3 小时前
Java 接入Redis: 通用命令与键管理
java·服务器·redis
Wang's Blog3 小时前
Java 接入Redis: 列表集合与有序集合操作命令
java·服务器·redis
Ivanqhz4 小时前
SVD++算法
java·服务器·网络·深度学习·神经网络
chicheese4 小时前
Linux 面试速查表:从初级到高级,附高频场景答题模板
linux·运维
Linux-lucky5 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
vortex56 小时前
常用终端模拟器全面对比:Kitty、WezTerm、Ghostty 与 Konsole
linux
骇客野人6 小时前
测试环境MySQL迁移Vastbase(海量数据库)完整改造与落地实施方案
运维·服务器