解决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域名解析配置文件
$cat /etc/resolv.conf

信息为:

# 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地址,

$sudo vi /etc/resolv.conf
# 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,使得以上修改生效

关闭防火墙
sudo ufw status
sudo ufw disable
关闭systemd-networkd

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

sudo systemctl status NetworkManager
sudo systemctl status systemd-networkd

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

sudo systemctl stop systemd-networkd
sudo systemctl disable systemd-networkd

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

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  * * *

没网时:

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
查看原先的路由表情况:

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网段只用于内网扫描器,不应涉及外网,所以应该把上面第一条路由删掉:

sudo route del -net 0.0.0.0 gw 192.168.110.1 netmask 0.0.0.0 dev eno3

改完后路由表:

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便稳定了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值