nmcli配置静态路由实现物理隔离的核心是路由分流与拒绝转发:先禁用自动路由(ipv4.ignore-auto-routes yes),再为敏感网段添加黑洞路由(如+ipv4.routes "192.168.100.0/24 127.0.0.1")或专用接口精确路由,并配合nftables丢弃规则及禁用IP转发,最后重启连接验证生效。

在Linux中用nmcli配置静态路由实现物理隔离,核心是让特定网段流量不经过默认网关,而是走独立网卡或明确指定的下一跳,从而切断与不安全网络的路径依赖。关键不在“物理隔离”本身(nmcli不能改变硬件连接),而在于路由层面的强制分流与拒绝转发——让系统主动不把敏感数据发往风险区域。
明确目标网段并禁用默认路由匹配
先确认不安全网络的IP范围,比如 192.168.100.0/24 是需隔离的测试网段。你不能只加一条“去这里的路由”,更要确保没有其他路由(尤其是默认路由)会意外兜底转发过去。
- 查当前所有路由:
ip route show或nmcli device show <iface> | grep IP4.ROUTE - 若该网段已通过DHCP或默认策略被纳入路由表,先删掉冲突项:
nmcli connection modify <conn-name> +ipv4.routes "192.168.100.0/24 0.0.0.0"这类写法反而可能引入错误;正确做法是先清空自动获取的路由:nmcli connection modify <conn-name> ipv4.ignore-auto-routes yes - 再设为“不可达”或黑洞路由(最稳妥的隔离):
nmcli connection modify <conn-name> +ipv4.routes "192.168.100.0/24 127.0.0.1",配合sysctl -w net.ipv4.conf.all.accept_redirects=0防绕过
绑定静态路由到专用接口,切断跨网卡转发
如果有一块网卡(如 enp0s8)专连隔离网络,就只允许它处理该网段,其他网卡一律禁止响应、转发或路由到这个地址空间。
当代理已经知道网站路由或内容URL,并且在启动前需要有效的sitemap XML、sitemap索引或robots.txt引用时,请使用sitemap。这是一个发布构件技能,而不是爬虫或SEO平台。
- 为该连接关闭IPv4转发:
nmcli connection modify <isolated-conn> ipv4.ip-forwarding no - 添加精确路由,仅限本接口生效:
nmcli connection modify <isolated-conn> +ipv4.routes "192.168.100.0/24 192.168.100.1"(假设网关是 .1) - 对主业务连接(如 enp0s3),显式排除该网段:
nmcli connection modify <main-conn> +ipv4.routes "192.168.100.0/24 0.0.0.0" ipv4.never-default yes,再 reload 生效
配合防火墙策略做双重保险
nmcli管路由,iptables/nftables管包过滤。即使路由指向了某接口,也可在内核层面丢弃进出该网段的所有包。
- 添加拒绝规则(以nftables为例):
nft add rule inet filter output ip dst 192.168.100.0/24 drop - 限制入向:
nft add rule inet filter input ip src 192.168.100.0/24 drop - 保存规则并启用:
nft list ruleset > /etc/nftables.conf,然后systemctl enable nftables
验证与持续防护
配置完不是结束,要验证是否真正隔离:从本机ping、traceroute目标网段,检查是否超时或走错路径;同时用 tcpdump -i any host 192.168.100.5 看是否有意外包进出。
- 每次修改后必须重启连接:
nmcli connection down <conn-name> && nmcli connection up <conn-name> - 检查路由表是否按预期加载:
ip route show table main | grep 192.168.100 - 确认 sysctl 中
net.ipv4.ip_forward保持为 0,防止被其他服务意外开启


















