下面是设置和复原网络规则的完整命令集合。你可以直接按照以下步骤运行每条命令,快速实现配置和清理。
以下命令将指定设备 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 MASQUERADE
ip 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
。
通过这些命令,你可以轻松实现网络规则的设置和复原,同时保持系统的可控性和灵活性!