- 默认路由(Default Gateway)
默认路由通过 gateway 参数设置,通常与主接口的 IP 配置一起定义。
示例:静态 IP + 默认网关
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1 # 默认网关
dns-nameservers 8.8.8.8
- 静态路由(Static Routes)
若需添加特定网络的路由(如访问其他子网或 VPN),需使用 up 或 post-up 命令调用 ip route add。
2.1 直接在接口配置中定义
在接口配置块中使用 post-up 添加路由:
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
# 添加静态路由:访问 10.0.0.0/8 子网通过 192.168.1.2
post-up ip route add 10.0.0.0/8 via 192.168.1.2
2.2 使用 routes 参数(部分系统支持)
某些版本的 ifupdown 支持 routes 语法(需确认是否可用):
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
# 添加路由
routes 10.0.0.0/8 via 192.168.1.2
routes 172.16.0.0/16 via 192.168.1.3
- 多接口路由配置
若系统有多个网络接口(如 eth0 和 eth1),需明确指定路由规则。
示例:双网卡路由
# 主接口 eth0(默认网关)
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
# 第二接口 eth1(专用子网)
auto eth1
iface eth1 inet static
address 10.10.0.100/24
# 添加静态路由:访问 10.20.0.0/24 子网通过 10.10.0.1
post-up ip route add 10.20.0.0/24 via 10.10.0.1
- 策略路由(高级场景)
若需基于源地址或策略路由(如多网关),需结合 ip rule 命令。
示例:基于源 IP 的路由
auto eth0
iface eth0 inet static
address 192.168.1.100/24
post-up ip route add default via 192.168.1.1 table 100
post-up ip rule add from 192.168.1.100 lookup 100
- 验证路由配置
配置完成后,通过以下命令检查路由表:
# 查看完整路由表
ip route show
# 查看默认路由
ip route | grep default
# 查看特定子网路由
ip route get 10.0.0.1
- 配置生效
6.1 重启网络服务
sudo systemctl restart networking
6.2 重新加载接口
sudo ifdown eth0 && sudo ifup eth0
常见问题
7.1 路由未生效原因:
语法错误(如 CIDR 格式错误)。 网关不可达(检查网关 IP 是否有效)。
解决:
使用 ifup --force eth0 强制重新加载接口。 检查日志:journalctl -u networking.service。
7.2 路由持久化失败
原因:未在配置文件中正确使用 post-up。
解决:确保路由命令在接口配置块中定义。
- 完整示例
场景
主接口 eth0:IP 192.168.1.100/24,默认网关 192.168.1.1。
第二接口 eth1:IP 10.10.0.100/24,需访问子网 10.20.0.0/24 通过网关 10.10.0.1。
配置文件
# 默认回环接口
auto lo
iface lo inet loopback
# 主接口 eth0(默认路由)
auto eth0
iface eth0 inet static
address 192.168.1.100/24
gateway 192.168.1.1
dns-nameservers 8.8.8.8
# 第二接口 eth1(专用子网路由)
auto eth1
iface eth1 inet static
address 10.10.0.100/24
post-up ip route add 10.20.0.0/24 via 10.10.0.1