在Linux网络管理中,默认路由是一项至关重要的配置,它扮演着“最后手段网关”的角色,当系统要发送的数据包目标地址不在任何已知的路由表中时,便会将其全部转发至默认路由指定的网关地址,正是这个机制,使得我们的主机能够与互联网或其他外部网络进行通信,本文将详细介绍如何在Linux系统中配置默认路由,涵盖临时与永久两种方法,并提供不同主流发行版的配置示例。

临时配置默认路由
临时配置主要用于测试、调试或临时的网络变更,其特点是立即生效,但在系统重启后会丢失,最常用的工具是ip命令,它是现代Linux发行版中net-tools(如route命令)的替代品。
要添加一条默认路由,你需要知道网关的IP地址以及本机要使用的网络接口,命令格式如下:
sudo ip route add default via <网关IP地址> dev <网络接口>
假设你的网关地址是168.1.1,网络接口是ens33,那么命令就是:
sudo ip route add default via 192.168.1.1 dev ens33
执行后,你可以使用ip route show或简写的ip r来查看当前路由表,其中应该会出现一行以default开头的记录。
对于一些老旧系统,可能仍在使用route命令,其语法为:
sudo route add default gw <网关IP地址>
虽然route命令依然可用,但强烈推荐使用功能更强大的ip命令。
永久配置默认路由
为了让配置在系统重启后依然生效,必须将其写入网络配置文件中,不同Linux发行版的配置文件和方式有所不同。

Debian/Ubuntu 系统 (使用Netplan)
现代的Ubuntu版本(如18.04及以后)和Debian版本倾向于使用Netplan来管理网络配置,其配置文件通常位于/etc/netplan/目录下,以.yaml
你需要编辑相应的YAML文件,为指定接口配置网关,编辑/etc/netplan/01-netcfg.yaml:
network:
version: 2
ethernets:
ens33:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]这里,gateway4关键字就指定了IPv4的默认网关,保存文件后,使用以下命令使配置生效:
sudo netplan apply
RHEL/CentOS/Fedora 系统
在这些基于Red Hat的系统中,网络配置文件存放在/etc/sysconfig/network-scripts/目录下,通常命名为ifcfg-<接口名>。
编辑对应接口的配置文件,例如ifcfg-ens33,添加或修改以下行:
BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8
GATEWAY参数明确指定了默认路由的网关地址,保存文件后,重启网络服务以应用更改:
sudo systemctl restart NetworkManager
或者使用nmcli命令重新加载配置:
sudo nmcli con reload sudo nmcli con up ens33
验证与排查
配置完成后,验证是必不可少的一步。

- 查看路由表:再次运行
ip route show,确认default条目存在且正确。 - 测试连通性:使用
ping命令测试与外部网络(如公共DNS服务器)的连通性。ping -c 4 8.8.8.8
- 追踪路径:使用
traceroute或tracepath命令查看数据包到达目标所经过的路由节点,第一跳应该是你的默认网关。traceroute 8.8.8.8
相关问答FAQs
Q1: 临时配置的默认路由在重启后为什么会失效?
A: 因为使用ip route add等命令时,你只是在内核的内存中动态地修改了路由表,这个修改是实时生效的,但并没有被写入任何持久化的配置文件中,当系统重启时,网络服务会从硬盘上的配置文件(如Netplan的YAML文件或ifcfg脚本)中重新读取网络设置并初始化,这会覆盖掉之前在内存中做的所有临时更改。
Q2: 如果一台服务器有多个网络接口,如何配置优先使用某个接口的默认路由?
A: 在Linux中,可以为路由条目设置一个“度量值”,数值越低,优先级越高,当存在多条默认路由时,系统会选择度量值最小的那条,在添加临时路由时,可以使用metric参数:
sudo ip route add default via 192.168.1.1 dev ens33 metric 100 sudo ip route add default via 10.0.0.1 dev ens37 metric 200
在这个例子中,通过ens33接口的默认路由因其度量值(100)更低而成为首选,在永久配置中,Netplan和NetworkManager的配置文件也支持设置路由度量值,具体语法可参考其官方文档。
图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/32514.html




