虚拟机centos7,配置两个网卡IP地址信息。 网卡em1 配置IP地址192.168.1.100,/24,网关:192.168.1.1 (电信) 网卡em2 配置IP地址10.10.10.100/24,网关:10.10.10.1 (联通)
时间: 2025-07-23 20:00:31 AIGC 浏览: 67
<think>我们有两个网卡em1和em2需要配置静态IP地址和网关。
根据引用[1]和引用[3]的示例,我们知道在CentOS中配置静态IP需要编辑网卡配置文件,设置BOOTPROTO为static,并指定IPADDR、NETMASK、GATEWAY等。
另外,引用[2]中提到了绑定(bonding)的配置,但这里我们不需要绑定,只需要分别配置两个网卡。
注意:CentOS 7的网络配置文件位于/etc/sysconfig/network-scripts/目录下,每个网卡对应一个配置文件,如ifcfg-em1, ifcfg-em2。
配置步骤:
1. 编辑em1的配置文件(ifcfg-em1),设置IP地址为192.168.1.100,子网掩码为255.255.255.0(即/24),网关为192.168.1.1。
2. 编辑em2的配置文件(ifcfg-em2),设置IP地址为10.10.10.100,子网掩码为255.255.255.0,网关为10.10.10.1。
3. 重启网络服务使配置生效。
但是,需要注意的是,在同一个系统中,通常只能设置一个默认网关。因此,我们一般只在主网卡(比如em1)上设置默认网关(GATEWAY),而另一个网卡(em2)不设置网关,或者设置路由规则来处理不同网段的流量。然而,用户明确要求为两个网卡配置网关,所以我们需要考虑如何设置。
实际上,如果两个网卡分别属于不同的网络(如一个连接内网,一个连接外网),那么我们需要设置两个网关,但这样会导致系统有两个默认网关,这可能会引起路由冲突。为了避免这个问题,我们可以:
- 只设置一个默认网关(比如在em1上设置默认网关192.168.1.1),然后在em2上不设置网关,但为em2所在的网络添加静态路由。
- 或者,使用策略路由来管理两个网关。
但是,用户要求为两个网卡分别配置网关,所以这里我们按照用户要求分别设置,但需要说明:这样设置后,系统可能会以最后配置的网关作为默认网关(取决于配置文件加载顺序),这可能导致网络问题。因此,更安全的做法是只设置一个默认网关,另一个网卡通过添加静态路由来实现。
不过,根据用户需求,我们先按照直接配置两个网关的方法,然后提醒用户可能的问题。
配置em1(ifcfg-em1)示例:
```
DEVICE=em1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
```
配置em2(ifcfg-em2)示例:
```
DEVICE=em2
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.10.100
NETMASK=255.255.255.0
GATEWAY=10.10.10.1
```
但是,这样配置后,系统会有两个默认网关,可能导致路由混乱。因此,我们建议只设置一个默认网关(比如在em1上),然后为em2所在的网络添加静态路由。
替代方案(推荐):
1. 在em1上设置默认网关(GATEWAY=192.168.1.1)。
2. 在em2上不设置网关,但添加一条静态路由,使得目标网络为10.10.10.0/24的流量通过em2的网关10.10.10.1。但是,由于em2本身就在10.10.10.0/24网络中,所以不需要额外路由。实际上,em2配置了IP地址和掩码后,系统会自动添加直连路由。而如果我们需要通过em2访问其他网络(比如另一个网络192.168.2.0/24),则需要添加静态路由。
但是,用户要求为em2配置网关,可能是希望em2能够访问其他网络(比如互联网)?如果是这样,那么两个默认网关就会冲突。
因此,我们根据用户要求直接配置两个网关,但需要提醒用户:这样配置可能会导致网络问题,建议使用一个默认网关,另一个网卡通过添加静态路由来处理特定网段的流量。
另外,如果用户确实需要两个网关,并且希望不同的流量走不同的网关,则需要配置策略路由(使用iproute2工具,如ip rule和ip route)。但配置策略路由比较复杂,这里先提供基础配置,然后给出一个简单的静态路由配置示例(如果用户只需要访问特定网段走特定网卡的话)。
步骤:
1. 备份原配置文件:
```
cp /etc/sysconfig/network-scripts/ifcfg-em1 /etc/sysconfig/network-scripts/ifcfg-em1.bak
cp /etc/sysconfig/network-scripts/ifcfg-em2 /etc/sysconfig/network-scripts/ifcfg-em2.bak
```
2. 编辑em1的配置文件(/etc/sysconfig/network-scripts/ifcfg-em1):
```
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes # 默认路由,即作为默认网关的网卡建议设置为yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=em1
UUID=1e242b71-a89c-4e80-8255-17613f3082d3 # 如果原有则保留,没有可以删除或生成一个新的,或者不设置
DEVICE=em1
ONBOOT=yes
ZONE=public
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1 # 默认网关
DNS1=8.8.8.8 # DNS服务器,可选
```
3. 编辑em2的配置文件(/etc/sysconfig/network-scripts/ifcfg-em2):
```
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=no # 注意:这里设置为no,表示不作为默认路由
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=no # 同样,IPv6也不作为默认路由
IPV6_FAILURE_FATAL=no
NAME=em2
UUID=... # 如果有则保留,没有可省略
DEVICE=em2
ONBOOT=yes
ZONE=public
IPADDR=10.10.10.100
NETMASK=255.255.255.0
GATEWAY=10.10.10.1 # 这里虽然设置了网关,但由于DEFROUTE=no,所以不会成为默认网关,但可以为该网卡指定网关用于非默认路由
```
这样配置后,默认路由只有em1的网关(192.168.1.1),而em2的网关(10.10.10.1)只用于em2所在网络(10.10.10.0/24)的流量。但是,如果我们需要通过em2访问其他网络(比如另一个网络192.168.2.0/24),则需要手动添加静态路由。
4. 添加静态路由(可选):
例如,我们需要将目标网络为192.168.2.0/24的流量通过em2的网关10.10.10.1路由,可以创建路由配置文件:
在/etc/sysconfig/network-scripts/目录下创建route-em2文件(如果不存在),内容如下:
```
192.168.2.0/24 via 10.10.10.1 dev em2
```
这样,当访问192.168.2.0/24网段时,就会走em2的网关。
5. 重启网络服务:
```
systemctl restart network
```
注意:如果用户希望em2作为默认网关,那么需要将em1的DEFROUTE设为no,em2的DEFROUTE设为yes,并且设置相应的网关。但通常只能有一个默认网关。
由于用户没有说明具体的网络用途,我们按照最安全的方式:只设置一个默认网关(在em1上),而em2只设置IP和子网掩码,不设置默认网关(即去掉em2的GATEWAY行),或者按照上面的方法设置DEFROUTE=no并设置GATEWAY(这样设置后,该网关只用于该接口上的非默认路由)。
但是,用户明确要求为em2设置网关,所以我们还是设置GATEWAY=10.10.10.1,同时设置DEFROUTE=no,以避免它成为默认网关。
总结配置步骤:
步骤一:配置em1(作为默认路由)
- 编辑文件:/etc/sysconfig/network-scripts/ifcfg-em1
- 设置内容如下(根据实际情况调整):
DEVICE=em1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DEFROUTE=yes
步骤二:配置em2(不作为默认路由)
- 编辑文件:/etc/sysconfig/network-scripts/ifcfg-em2
- 设置内容如下:
DEVICE=em2
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.10.10.100
NETMASK=255.255.255.0
GATEWAY=10.10.10.1
DEFROUTE=no
步骤三:如果需要通过em2访问其他特定网络,则添加静态路由(如上述route-em2文件)。
步骤四:重启网络服务
systemctl restart network
验证:
- 使用`ip route show`查看路由表,确保默认路由(default)指向em1的网关192.168.1.1。
- 使用`ping`命令测试两个网络的连通性。
注意:如果用户虚拟机使用的是桥接模式或者NAT模式,需要确保宿主机的网络设置允许这两个IP地址。
最后,由于网络配置的复杂性,建议用户根据实际网络环境调整。
相关问题:
1. 如何验证CentOS 7中的网络配置是否生效?
2. 在配置多个网卡时,如何避免路由冲突?
3. 如何为特定的网络流量配置静态路由?</think>### 在 CentOS 7 中配置双网卡静态 IP 和网关
#### 配置步骤:
1. **编辑 em1 网卡配置文件**:
```bash
vi /etc/sysconfig/network-scripts/ifcfg-em1
```
修改为以下内容:
```ini
DEVICE=em1
BOOTPROTO=static # 静态IP配置
ONBOOT=yes # 开机自启
IPADDR=192.168.1.100 # 指定IP地址
NETMASK=255.255.255.0 # 子网掩码(/24)
GATEWAY=192.168.1.1 # 网关
DNS1=8.8.8.8 # DNS服务器
DEFROUTE=yes # 默认路由(主网关)
ZONE=public # 防火墙区域
```
2. **编辑 em2 网卡配置文件**:
```bash
vi /etc/sysconfig/network-scripts/ifcfg-em2
```
修改为以下内容:
```ini
DEVICE=em2
BOOTPROTO=static # 静态IP配置
ONBOOT=yes # 开机自启
IPADDR=10.10.10.100 # 指定IP地址
NETMASK=255.255.255.0 # 子网掩码(/24)
GATEWAY=10.10.10.1 # 网关
DEFROUTE=no # 非默认路由[^2]
```
3. **重启网络服务**:
```bash
systemctl restart network
```
4. **验证配置**:
```bash
ip addr show em1 # 检查em1 IP
ip addr show em2 # 检查em2 IP
ip route show # 查看路由表
ping 192.168.1.1 # 测试em1网关
ping 10.10.10.1 # 测试em2网关
```
#### 关键注意事项:
1. **路由优先级**:
- `DEFROUTE=yes` 仅在 em1 上设置,确保 192.168.1.1 作为主默认网关[^2]
- em2 的网关用于其所在子网(10.10.10.0/24)的通信
2. **配置备份**:
```bash
cp /etc/sysconfig/network-scripts/ifcfg-em{1,2} ~/backup/
```
3. **防火墙配置**:
```bash
firewall-cmd --zone=public --add-interface=em1 --permanent
firewall-cmd --reload
```
#### 故障排查:
- 若网关不可达,检查虚拟机网络模式(桥接/NAT)
- 使用 `journalctl -xe` 查看网络服务错误日志
- 确认子网掩码与网络拓扑一致(/24 对应 255.255.255.0)
> **注意**:多网关配置时需确保路由策略正确,避免路由冲突[^2]。若需特定流量走 em2,需添加静态路由:
> ```bash
> ip route add 192.168.2.0/24 via 10.10.10.1 dev em2
> ```
阅读全文