Linux 双网卡路由表配置涉及基础的网络概念,包括 IP 地址、子网掩码、网关和路由表。以下是详细的信息:
假设你有两块网卡,eth0 和 eth1,分别连接到不同的网络。
编辑 /etc/network/interfaces
文件(对于 Debian/Ubuntu 系统)或 /etc/sysconfig/network-scripts/ifcfg-eth0
和 /etc/sysconfig/network-scripts/ifcfg-eth1
文件(对于 CentOS/RHEL 系统)。
Debian/Ubuntu 示例:
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
auto eth1
iface eth1 inet static
address 10.0.0.100
netmask 255.255.255.0
CentOS/RHEL 示例:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
DEVICE=eth1
BOOTPROTO=static
IPADDR=10.0.0.100
NETMASK=255.255.255.0
ONBOOT=yes
使用 ip
命令来添加路由规则。
# 添加默认路由通过 eth0
ip route add default via 192.168.1.1 dev eth0
# 添加特定网络的路由通过 eth1
ip route add 10.0.0.0/24 via 10.0.0.1 dev eth1
现象:无法访问特定网络。 原因:路由规则不正确或缺失。 解决方法:
# 查看当前路由表
ip route show
# 删除错误的路由规则
ip route del <错误的路由规则>
# 添加正确的路由规则
ip route add <正确的路由规则>
现象:IP 地址冲突或无法启动网卡。
原因:两个网卡配置了相同的 IP 地址或子网。
解决方法:
检查并修改 /etc/network/interfaces
或 /etc/sysconfig/network-scripts/
下的配置文件,确保每个网卡的 IP 地址唯一。
以下是一个完整的脚本示例,用于配置双网卡路由表:
#!/bin/bash
# 配置 eth0
echo "auto eth0" >> /etc/network/interfaces
echo "iface eth0 inet static" >> /etc/network/interfaces
echo " address 192.168.1.100" >> /etc/network/interfaces
echo " netmask 255.255.255.0" >> /etc/network/interfaces
echo " gateway 192.168.1.1" >> /etc/network/interfaces
# 配置 eth1
echo "auto eth1" >> /etc/network/interfaces
echo "iface eth1 inet static" >> /etc/network/interfaces
echo " address 10.0.0.100" >> /etc/network/interfaces
echo " netmask 255.255.255.0" >> /etc/network/interfaces
# 应用配置
ifdown eth0 && ifup eth0
ifdown eth1 && ifup eth1
# 添加路由规则
ip route add default via 192.168.1.1 dev eth0
ip route add 10.0.0.0/24 via 10.0.0.1 dev eth1
通过以上步骤和示例代码,可以有效地配置 Linux 系统的双网卡路由表。
领取专属 10元无门槛券
手把手带您无忧上云