有一台国产化工控设备,安装的统信UOS操作系统,有两个网卡,分别连接客户的内网和一台网络打印机。现在单独连接内网或者打印机都可以正常工作,如果两个网线都插上,就会出现能打印但不能连内网的情况。
情况介绍和预设
首先我们要检查UOS系统网络配置是否正确。然后需要给系统设置路由来规定网络通信从哪个网口走。
现在假设内网接在网卡eth0上,网段为192.168.10.x,本机IP192.168.10.100;网络打印机接在网卡eth1上,打印机ip为192.168.100.101,对应本机IP192.168.100.102。具体可以看表格:
类型 | 内网 | 打印机 |
---|---|---|
网卡接口 | eth0 | eth1 |
本机ip | 192.168.10.100 | 192.168.100.102 |
网关 | 192.168.10.1 | 192.168.100.1 |
备注 | 打印机的ip192.168.100.101 |
ps.
网口名称需要使用ifconfig进行确认,UOS系统中网口名称比较长,可以保留查询的终端窗口用于后续复制
验证路由:
1、首先设置默认网关,让全部流量走内网:
route add default gw 119.168.10.1
2、设置打印机网段通过指定网卡走
route add -net 192.168.100.0 netmask 255.255.255.0 dev eth1
3、进行测试验证指令是否正确,否则要使用route del
来清除,或者直接重启恢复默认的环境。
注意:
1、eht1要换成第二个网口的具体名称。
2、192.168.100.0,最后是0,那么掩码为255.255.255.0,如果是192.168.0.0,那么掩码是255.255.0.0,0必须一一对应否则报错。不能输入192.168.100.101
写入系统
刚刚的操作重启就会失效,我们需要把指令自启动。
1、 启动NetwordManager-dispatcher服务
sudo systemctl enable NetworkManager-dispatcher.service
2、创建脚本来执行此操作。路径 /etc/NetworkManager/dispatcher.d
,使用管理员权限创建文件。文件名要求数字开头,不要有文件名后缀,便于识别
sudo touch /etc/NetworkManager/dispatcher.d/10-LANandPrinter
3、往脚本里写入上面验证成功的内容
#!/bin/bash
route add default gw 119.168.10.1
route add -net 192.168.100.0 netmask 255.255.255.0 dev eth1
4、设置脚本的权限,不正确的话是不能运行的。
sudo chown root:root 10-LANandPrinter
sudo chmod 755 10-LANandPrinter
5、重启系统即可