是否考虑过使用 ip route
命令来直接管理路由表?它在动态调整和脚本化场景中可能更灵活。
如何使用 nmcli 配置路由表并设置默认路由?
使用 nmcli
配置路由表及默认路由的命令为:nmcli connection modify <连接名> +ipv4.routes "<目标网络> <网关>"
和 nmcli connection modify <连接名> ipv4.gateway "<默认网关IP>"
。
延伸知识点:路由 Metric 的作用
路由 Metric 用于决定相同目标网络的多条路由的优先级,值越小优先级越高。例如,若存在两条默认路由(如同时连接有线和无线网络),系统会选择 Metric 更低的路由。通过 nmcli connection modify <连接名> ipv4.route-metric <数值>
可手动设置,避免冲突。此参数在多网卡或 VPN 分流等场景中尤为重要,确保流量按预期路径转发。
更多回答
使用nmcli
配置路由表和默认路由的步骤如下:
-
查看当前连接:
nmcli connection show
确认要修改的网卡连接名称(如
eth0
或Wired-connection1
)。 -
添加静态路由:
nmcli connection modify <连接名称> +ipv4.routes "<目标网段>/<子网掩码> <下一跳网关>"
例如:
nmcli connection modify eth0 +ipv4.routes "192.168.2.0/24 10.0.0.1"
-
设置默认路由:
nmcli connection modify <连接名称> ipv4.gateway <默认网关IP>
示例:
nmcli connection modify eth0 ipv4.gateway 10.0.0.1
-
重启连接生效:
nmcli connection down <连接名称> && nmcli connection up <连接名称>
-
验证路由表:
ip route
注意事项:
- 使用
-ipv4.routes
可删除指定路由 - 若存在多网卡,需通过
ipv4.route-metric
调整优先级 - 配置会持久化,无需额外保存
-
查看当前连接名称:
nmcli con show
记录目标连接的 NAME(如 "Wired")。 -
添加静态路由(示例):
nmcli con mod <连接名称> +ipv4.routes "192.168.2.0/24 10.0.0.1"
(将 192.168.2.0/24 网段路由指向 10.0.0.1) -
设置默认路由(推荐方式):
nmcli con mod <连接名称> ipv4.gateway "10.0.0.254"
(将默认网关设为 10.0.0.254) -
使配置生效:
nmcli con down <连接名称>
nmcli con up <连接名称>
验证命令:
ip route show
查看完整路由表route -n
检查默认网关(0.0.0.0 行)
注意:若存在多网卡场景,需通过 metric 参数调整优先级,建议保持默认自动分配。
-
确定网络连接名称:
nmcli con show
记录需配置的连接名称(如
eth0
或ens192
)。 -
设置默认路由(网关):
nmcli con mod <连接名称> ipv4.gateway <网关IP>
示例:
nmcli con mod eth0 ipv4.gateway 192.168.1.1
-
添加静态路由(可选):
nmcli con mod <连接名称> +ipv4.routes "<目标网络>/<掩码> <下一跳IP>"
示例:
nmcli con mod eth0 +ipv4.routes "10.0.0.0/24 192.168.1.254"
-
应用配置:
nmcli con reload <连接名称> nmcli con down <连接名称> && nmcli con up <连接名称>
-
验证路由表:
ip route list
注意:
- 使用
+ipv4.routes
为追加路由,用ipv4.routes
会覆盖现有配置 - 网关需与接口IP同网段
- 配置自动持久化,重启有效