下面是设置和复原网络规则的完整命令集合。你可以直接按照以下步骤运行每条命令,快速实现配置和清理。
以下命令将指定设备 192.168.1.6 的流量通过 USB 网口 eth4 (网关 192.168.88.1) 出网。
将路由表名称 usb_route 写入 /etc/iproute2/rt_tables 文件:
echo "200 usb_route" >> /etc/iproute2/rt_tables为路由表 usb_route 添加默认路由:
ip route add default via 192.168.88.1 dev eth4 table usb_route设置特定设备 192.168.1.6 使用 usb_route 路由表:
ip rule add from 192.168.1.6 lookup usb_route为 USB 网口 eth4 设置 NAT 规则,伪装流量:
iptables -t nat -A POSTROUTING -s 192.168.1.6 -o eth4 -j MASQUERADE运行以下命令验证规则是否设置成功:
ip rule show输出中应包含:
<规则序号>: from 192.168.1.6 lookup usb_route
ip route show table usb_route输出中应包含:
default via 192.168.88.1 dev eth4
iptables -t nat -L POSTROUTING输出中应包含类似以下内容:
MASQUERADE all -- 192.168.1.6 anywhere eth4
以下命令将删除所有之前配置的路由规则和 NAT 转发设置,恢复系统默认状态。
删除流量来源 192.168.1.6 的路由规则:
ip rule del from 192.168.1.6 lookup usb_route清空 usb_route 路由表中所有规则:
ip route flush table usb_route清除针对 192.168.1.6 的 NAT 转发规则:
iptables -t nat -D POSTROUTING -s 192.168.1.6 -o eth4 -j MASQUERADE如果之前添加了多个 NAT 规则,可以逐条查看并删除:
iptables -t nat -L POSTROUTING --line-numbers假设要删除第 x 条规则,运行:
iptables -t nat -D POSTROUTING x运行以下命令验证是否成功清理规则:
ip rule show确认没有与 192.168.1.6 相关的规则。
ip route show table usb_route确认 usb_route 路由表为空。
iptables -t nat -L POSTROUTING确认没有与 192.168.1.6 相关的 NAT 转发配置。
echo "200 usb_route" >> /etc/iproute2/rt_tables
ip route add default via 192.168.88.1 dev eth4 table usb_route
ip rule add from 192.168.1.6 lookup usb_route
iptables -t nat -A POSTROUTING -s 192.168.1.6 -o eth4 -j MASQUERADEip rule del from 192.168.1.6 lookup usb_route
ip route flush table usb_route
iptables -t nat -D POSTROUTING -s 192.168.1.6 -o eth4 -j MASQUERADE如果需要持久化配置(使规则在重启后依然有效),可以将设置命令添加到 /etc/rc.local 文件:
设置规则写入 /etc/rc.local:
# 添加 USB 路由规则
ip route add default via 192.168.88.1 dev eth4 table usb_route
ip rule add from 192.168.1.6 lookup usb_route
iptables -t nat -A POSTROUTING -s 192.168.1.6 -o eth4 -j MASQUERADE保存文件后,下一次重启规则会自动加载。
如无需持久化,也可以选择不编辑 /etc/rc.local。
通过这些命令,你可以轻松实现网络规则的设置和复原,同时保持系统的可控性和灵活性!