4G与有线网卡路由冲突解决方案

发布时间 2024-01-03 09:36:20作者: 夜星织梦

移远4G模块与有线网卡路由冲突

上位机设置路由表

设置网关,设置前要删除之前网关(192.168.1.1替换成要设置的网关地址)

sudo route del default gw 192.168.1.1
sudo route add default dev enp1s0

4G拨号脚本

问题:防止在内网环境中使用公网IP段
解决方案:去除拨号脚本中iptables设置的规则。

问题:4G网卡偷跑流量
解决方案:使用route设置路由表指定IP通过4G网卡

拨号脚本添加代码

echo "123456" | sudo -S route add default dev enp1s0 metric 100

if [ ! -f /etc/ppp/ip-up.local ]; then
    echo "123456" | sudo -S touch /etc/ppp/ip-up.local
    echo "123456" | sudo -S chmod 777 /etc/ppp/ip-up.local

    # 通过4G的ip地址
    echo "route add 120.77.148.139 dev ppp0" >> /etc/ppp/ip-up.local
    echo "route add 132.163.96.6 dev ppp0" >> /etc/ppp/ip-up.local
fi

案例

工控板上Ubuntu系统的设置网关功能与4G功能不兼容

现象

在使用4G模块的情况下开机,在相应软件中测试所需链接的平台,提示「主机不能访问」

原因

  • 开机后4G模块需要时间挂载初始化,否则偶尔拨不上号
  • 当程序设置默认网关时,网关会覆盖4G网卡的默认网关,导致4G无法通信

解决方案

  • 启动脚本中运行拨号脚本前增加延时5S,确保4G模块准备好了再进行拨号
  • 修改设置网关的逻辑,使ppp0始终保持有默认路由,且不影响当前默认网关的使用

流程图

设置网关

graph LR START(开始) --> Q1{自动或手动设置IP?} Q1 --> 手动设置IP 手动设置IP --> 重启网卡 重启网卡 --> 设置网关 设置网关 --> 处理ppp0 处理ppp0 --> END(结束) Q1 --> 自动获取IP 自动获取IP --> 处理ppp0

处理ppp0