本文基于CentOS 7系统编写,所有操作都是系统原生工具,无需额外下载第三方软件,如果提示ip命令不存在,执行以下命令安装依赖即可:
``` yum install -y iproute iptables-services ```你需要提前准备好:
远程连接服务器后,先执行以下命令查看所有网卡和绑定的IP:
``` ip addr ```输出结果中,找到两个不同运营商公网IP对应的网卡名称,格式类似eth0、eth1,记录下来。本文后续示例中默认:电信IP为1.1.1.1,对应网卡eth0,网关1.1.1.254;联通IP为2.2.2.2,对应网卡eth1,网关2.2.2.254,你操作时所有占位内容都要替换成自己的实际信息。
再执行命令查看当前默认路由,确认原有配置:
``` ip route ```多线适配的核心是为每个运营商单独创建路由表,实现不同来源的流量走对应出口。编辑路由表配置文件:
``` vi /etc/iproute2/rt_tables ```在文件末尾添加以下两行内容,保存后退出vi:
``` 100 tele_table 101 cnc_table ```这里编号100、100只要不和文件中已有的编号冲突即可,名称自定义方便识别就行。如果操作错误会导致网络全断,添加前可以先备份原文件:cp /etc/iproute2/rt_tables /etc/iproute2/rt_tables.bak
先为两个路由表分别添加对应运营商的默认路由,执行以下命令,替换成你自己的信息:
``` ip route add default via 1.1.1.254 dev eth0 table tele_table ip route add default via 2.2.2.254 dev eth1 table cnc_table ```然后添加规则,指定对应源IP的流量走对应路由表:
``` ip rule add from 1.1.1.1/32 table tele_table ip rule add from 2.2.2.2/32 table cnc_table ```执行以下命令验证规则是否生效:
``` ip rule list ```输出结果中能看到刚添加的两条规则,说明这一步配置正确。

以上配置是临时生效,服务器重启后会丢失,我们需要把配置加到开机启动脚本中,CentOS 7执行以下命令编辑开机脚本:
``` vi /etc/rc.d/rc.local ```必须把以下内容添加到文件中exit 0这一行的前面,替换成你自己的实际信息:
然后给脚本添加执行权限,这一步90%的新手都会遗漏,必须执行:
``` chmod +x /etc/rc.d/rc.local ```这是绝大多数新手配置失败的关键步骤,默认系统只对主网卡做地址转换,不配置这一步会导致其中一条线路完全不通。
先开启系统IP转发:
``` echo 1 > /proc/sys/net/ipv4/ip_forward ```再把永久转发配置写入sysctl,开机自动生效:
``` echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf sysctl -p ```然后添加SNAT规则,用iptables的执行以下命令:
``` iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 1.1.1.1 iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 2.2.2.2 ```保存iptables配置并设置开机自启:
``` service iptables save systemctl enable iptables ```如果你用的是系统默认的firewalld,执行以下命令添加规则:
``` firewall-cmd --permanent --add-masquerade firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o eth0 -j SNAT --to-source 1.1.1.1 firewall-cmd --direct --permanent --add-rule ipv4 nat POSTROUTING 0 -o eth1 -j SNAT --to-source 2.2.2.2 firewall-cmd --reload ```配置完成后,我们可以分两步验证效果:
先检查网卡名称、IP、网关是否填写正确,再执行ip route list table tele_table查看对应路由表的路由是否存在,执行ip rule list确认规则是否加载,大多是信息填写错误导致。
检查两个点:一是/etc/rc.d/rc.local是否有可执行权限,二是添加的配置是不是放在了exit 0之后,放在exit 0之后不会执行。
检查DNS解析是否配置了智能解析,如果没有配置,所有用户都解析到同一个IP,自然会出现跨运营商访问慢的问题,多线适配+智能解析搭配才能生效。












易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图