双宽带通常指同时使用两条不同的互联网线路(如电信、联通、移动)以提升带宽、实现负载均衡或故障切换。在 Linux 系统中,可以通过编写 shell 脚本 来管理双宽带路由、流量标记和策略规则,并在脚本中执行一系列 Linux 命令实现自动化配置。以下是专业、准确的操作方法。

首先,在脚本中执行 Linux 命令的基础是使用 bash 脚本 语法。脚本开头需指定解释器 #!/bin/bash,然后直接写入需要执行的命令,例如 ip route add、iptables -t mangle 等。脚本需赋予执行权限 chmod +x script.sh,并通过 ./script.sh 或 bash script.sh 运行。
实现双宽带的核心思路是:策略路由。即为每条宽带线路分配独立的路由表,根据源地址或标记将流量导向对应线路。以下是一个典型的双宽带脚本示例,假设两条线路的网关分别为 192.168.1.1(WAN1)和 192.168.2.1(WAN2),接口分别为 eth0 和 eth1。
脚本内容如下:
#!/bin/bash
# 定义变量
WAN1_IF="eth0"
WAN1_GW="192.168.1.1"
WAN2_IF="eth1"
WAN2_GW="192.168.2.1"
# 创建两个独立的路由表
echo "100 WAN1" >> /etc/iproute2/rt_tables
echo "200 WAN2" >> /etc/iproute2/rt_tables
# 向 WAN1 路由表添加默认路由
ip route add default via $WAN1_GW dev $WAN1_IF table 100
# 向 WAN2 路由表添加默认路由
ip route add default via $WAN2_GW dev $WAN2_IF table 200
# 配置策略路由:根据源地址或标记选择路由表
# 例如,将来自 192.168.10.0/24 的流量走 WAN1
ip rule add from 192.168.10.0/24 table 100 priority 100
# 将来自 192.168.20.0/24 的流量走 WAN2
ip rule add from 192.168.20.0/24 table 200 priority 200
# 使用 iptables 标记连接,实现负载均衡(可选)
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -m mark ! --mark 0 -j ACCEPT
iptables -t mangle -A PREROUTING -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -m statistic --mode random --probability 0.5 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -j CONNMARK --save-mark
# 根据标记将流量路由到对应表(需配合 ip rule 使用 fwmark)
ip rule add fwmark 1 table 100 priority 300
ip rule add fwmark 2 table 200 priority 400
脚本中每个 Linux 命令 都会在运行时依次执行。注意 修改 /etc/iproute2/rt_tables 需要 root 权限,推荐在脚本开头使用 if [ "$EUID" -ne 0 ]; then echo "请以 root 运行"; exit 1; fi 检查权限。
为了实现 故障切换,可以在脚本中加入 ping 检测命令,例如:
if ping -c 1 -W 1 $WAN1_GW > /dev/null 2>&1; then
echo "WAN1 正常"
else
echo "WAN1 故障,切换至 WAN2"
ip route del default table 100
ip rule del table 100
fi
此外,双宽带脚本中常需执行 ip link set 调整接口状态、sysctl 开启 IP 转发(sysctl -w net.ipv4.ip_forward=1)、以及 conntrack 管理连接跟踪。建议在脚本末尾添加 ip route flush cache 刷新路由缓存。
注意:双宽带配置涉及 网络中断风险,建议在脚本中加入回滚机制或使用 cron 定时检查。另外,某些 ISP 可能限制多线接入,需遵守当地法规。
总结:在双宽带脚本中运行 Linux 命令,只需将命令按顺序写入 bash 脚本,并确保使用 root 权限 执行。核心是配置 策略路由 和 iptables 标记,通过 ip rule、ip route 命令实现流量分发。上述示例可直接复制修改后使用,请根据实际网络接口、网关和子网调整参数。

查看详情

查看详情