家用住宅主机多网卡分流跨境网络流量

为什么需要多网卡分流

很多家庭用户有一台多网卡主机(比如装了双网卡的小主机或旧电脑),平时要访问国内网站(百度、淘宝),又要访问跨境服务(Google、GitHub)。
如果所有流量都走一条线路,要么国内慢,要么跨境封闭。
通过策略路由,可以让国内流量走普通宽带,跨境流量走另一条线路(比如代理网关或专线),互不干扰。
本文用一台Ubuntu 22.04主机演示,其他Linux发行版操作类似。

前置准备

  • 一台双网卡主机:至少两个有线网卡(eth0、eth1),或一有线一无线。系统预装Ubuntu Server。
  • 确认两条线路信息:
  • 国内宽带网卡A:IP 192.168.1.100/24,网关 192.168.1.1。
  • 跨境线路网卡B:IP 10.0.0.100/24,网关 10.0.0.1(例如是OpenWrt等代理网关)。
  • 登录主机,先查看网卡名称:ip link show。记下你实际名称(例如enp2s0、enp3s0)。

分步操作:配置策略路由

1. 添加自定义路由表

编辑 /etc/iproute2/rt_tables 文件,在末尾添加两行:

200 china
300 oversea

保存退出。200300是路由表编号,只要不与已有编号冲突即可。

2. 为每条线路配置路由规则

# 国内线路默认路由
sudo ip route add default via 192.168.1.1 dev eth0 table china
# 跨境线路默认路由
sudo ip route add default via 10.0.0.1 dev eth1 table oversea

3. 设置策略路由规则

让国内目标IP走china表,其余走oversea表。
这里需要知道国内IP段(可使用geoiplookup或下载离线库)。
为了演示,假设我们只用一条规则:

  • 所有流量默认走跨境线路;
  • 访问国内常见IP段(比如114.114.114.114)走国内线路。
# 标记:从国内网卡进来的包,或目标为国内IP的包,使用china表
sudo ip rule add from 192.168.1.100 table china priority 1000
sudo ip rule add to 114.114.114.114 table china priority 1001
# 其余流量使用oversea表(注意:如果已经有默认规则会被覆盖,需要清除默认)
sudo ip rule add to 0.0.0.0/0 table oversea priority 1002
# 删除默认的local和main规则之外的冗余(慎用,建议仅测试)
# 如果不放心,保留默认,但确保优先级较低

更好的做法是使用iptables标记特定连接。
篇幅有限,此处给出最简方案。

4. 持久化配置

Ubuntu 22.04推荐使用netplan,但策略路由持久化更通用方法是在/etc/rc.local(或systemd服务)中写入上面所有命令。
创建文件:

sudo nano /etc/rc.local

内容示例:

#!/bin/bash
# 国内线路
ip route add default via 192.168.1.1 dev eth0 table china
ip route add default via 10.0.0.1 dev eth1 table oversea
ip rule add from 192.168.1.100 table china priority 1000
ip rule add to 114.114.114.114 table china priority 1001
ip rule add to 0.0.0.0/0 table oversea priority 1002
exit 0

保存后执行 sudo chmod +x /etc/rc.local && sudo systemctl enable rc-local 并启动。

避坑指南

  1. 网卡名称偏差:不同机型名字不一样(eth0、enp3s0)。使用 ip link 确认后全局替换。
  2. 默认路由冲突:系统本身会有一条默认路由,加上策略路由后可能会起点,建议先 ip route show table main 检查,如果已有默认路由,可以删除或降低优先级。
  3. DNS适配:跨境流量需要解析境外域名,最好在跨境线路网关上设置DNS,或在本机 /etc/resolv.conf 中指定公共DNS(如8.8.8.8),但要确保国内线路也能正常解析。
  4. 防火墙干扰:如果启用了ufw或iptables规则,确保没有禁止转发或NAT。本配置仅涉及路由,不影响防火墙默认策略。
  5. 重启后失效:确保/etc/rc.local可执行且正确,或者使用systemd timer更稳妥。

效果验证

  1. 测试国内线路:运行 traceroute 114.114.114.114,观察第一跳是否为国内网卡网关(192.168.1.1)。
  2. 测试跨境线路traceroute 8.8.8.8,看第一跳是否为跨境网关(10.0.0.1)。
  3. 访问网站验证:在一个浏览器中同时打开百度(国内)和google.com(跨境),检查是否都能正常打开。如果google.com打不开,检查跨境线路的代理网关是否正常工作。
  4. 查看路由表ip route show table chinaip route show table oversea 确认规则。

高频问题解答

Q:我的主机是Windows,怎么做?
A:Windows支持路由表,但操作复杂。可以用route add -p命令添加永久路由,但策略路由能力有限。建议改用Linux或虚拟机。

Q:跨境线路一定要指定IP段吗?
A:如果只是简单分“国内”和“国外”,可以用IP段列表,推荐使用geoip库自动更新。更优雅的方法是联合iptables的-m geoip模块。

Q:配置后国内网站打不开?
A:很可能是国内路由表没包含所有国内IP。先用ip route add default via 192.168.1.1 dev eth0 table china把国内默认路由引向国内网关,然后设置from规则确保从国内网卡发出的流量也走该表。如果还是不行,检查/etc/iproute2/rt_tables编号是否重复。

总结

多网卡分流是家庭服务器提升跨境访问质量的有效手段。
文中策略路由方案能在不修改设备路由的前提下实现精细分流。
遇到异常时优先检查网卡名称、路由表编号和默认路由冲突。
如果你有更复杂的网络环境(如多条跨境线路),可以考虑使用mwan3或自己编写更灵活的iptables标记规则。

分享到:
上一篇
外贸站WAF拦截海外CC恶意攻击配置
下一篇
跨境独立站灰度发布新版本零停机更新实操指南
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意