Linux系统中双网卡如何同时配置两个独立的IP地址?

在Linux系统中配置双网卡实现双IP地址是一项常见需求,通常用于服务器需要同时连接多个网络、实现负载均衡或冗余备份等场景,本文将详细介绍不同Linux发行版(如CentOS/RHEL和Ubuntu/Debian)下双网卡双IP的配置方法,包括静态IP和动态IP(DHCP)的配置步骤,以及配置后的验证和常见问题处理。

linux 双网卡如何配置两个ip

准备工作

在配置双网卡前,需先确认以下信息:

  1. 网卡名称:通过ip aifconfig命令查看当前系统中的网卡设备名(如eth0ens33ens37等)。
  2. 网络参数:明确每个网卡的IP地址、子网掩码、网关、DNS等配置信息(静态IP需提前规划,动态IP则由DHCP服务器分配)。
  3. 管理员权限:配置网络需要root权限或sudo权限。

静态IP配置

静态IP配置适用于需要固定IP地址的场景(如服务器),不同发行版的配置文件格式略有差异,需分别处理。

(一)CentOS/RHEL系列(使用ifcfg文件)

CentOS/RHEL系统通过/etc/sysconfig/network-scripts/目录下的ifcfg配置文件管理网卡,假设两块网卡分别为ens33ens37,需分别为其配置静态IP。

  1. 编辑第一块网卡配置文件(如ens33):

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

    添加或修改以下内容:

    TYPE=Ethernet
    BOOTPROTO=static  # 静态IP,若为DHCP则改为dhcp
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes  # 开机自启
    IPADDR=192.168.1.100  # IP地址
    PREFIX=24  # 子网掩码(24表示255.255.255.0)
    GATEWAY=192.168.1.1  # 网关(若两块网卡在不同网段,需谨慎配置默认网关)
    DNS1=8.8.8.8  # DNS服务器
    DNS2=114.114.114.114
  2. 编辑第二块网卡配置文件(如ens37):

    vim /etc/sysconfig/network-scripts/ifcfg-ens37
    ```  类似,注意区分IP、网关等参数(若与`ens33`同网段,网关可一致;不同网段则需单独配置,避免路由冲突):  
    ```ini
    TYPE=Ethernet
    BOOTPROTO=static
    NAME=ens37
    DEVICE=ens37
    ONBOOT=yes
    IPADDR=192.168.2.100  # 不同网段的IP
    PREFIX=24
    GATEWAY=192.168.2.1  # 对应网段的网关
    DNS1=8.8.8.8
    DNS2=114.114.114.114
  3. 重启网络服务

    systemctl restart network
  4. 验证配置

    linux 双网卡如何配置两个ip

    • 查看IP地址:ip a,确认两块网卡分别配置了对应IP。
    • 测试连通性:ping 192.168.1.1ens33网关)、ping 192.168.2.1ens37网关)。

(二)Ubuntu/Debian系列(使用Netplan)

Ubuntu 18.04及后续版本默认使用Netplan进行网络配置,配置文件位于/etc/netplan/目录下(如01-netcfg.yaml),假设两块网卡为ens33ens37

  1. 编辑Netplan配置文件

    vim /etc/netplan/01-netcfg.yaml

    添加以下内容(注意缩进,YAML格式严格):

    network:
      version: 2
      ethernets:
        ens33:
          dhcp4: no  # 静态IP,关闭DHCP
          addresses: [192.168.1.100/24]  # IP地址/子网掩码长度
          gateway4: 192.168.1.1  # 网关
          nameservers:
            addresses: [8.8.8.8, 114.114.114.114]
        ens37:
          dhcp4: no
          addresses: [192.168.2.100/24]
          gateway4: 192.168.2.1
          nameservers:
            addresses: [8.8.8.8, 114.114.114.114]
  2. 应用配置

    netplan apply
  3. 验证配置

    • 同样通过ip a查看IP,ping测试网关连通性。

(三)通用方法(使用nmcli命令)

对于支持NetworkManager的系统(如CentOS 7+、Ubuntu 16.04+),可通过nmcli命令行工具快速配置,无需手动编辑文件:

  1. 添加第一块网卡静态连接ens33):

    nmcli con add type ethernet con-name ens33_static ifname ens33 ipv4.method manual ipv4.addresses 192.168.1.100/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8,114.114.114.114
  2. 添加第二块网卡静态连接ens37):

    linux 双网卡如何配置两个ip

    nmcli con add type ethernet con-name ens37_static ifname ens37 ipv4.method manual ipv4.addresses 192.168.2.100/24 ipv4.gateway 192.168.2.1 ipv4.dns 8.8.8.8,114.114.114.114
  3. 启用连接

    nmcli con up ens33_static
    nmcli con up ens37_static

动态IP(DHCP)配置

若某块网卡需通过DHCP自动获取IP,只需将静态IP配置中的BOOTPROTO=static(CentOS)或dhcp4: no(Ubuntu)改为dhcpdhcp4: true,具体步骤与静态配置类似,此处以CentOS为例:

  1. 编辑ifcfg文件(如ens33):

    vim /etc/sysconfig/network-scripts/ifcfg-ens33

    修改为:

    TYPE=Ethernet
    BOOTPROTO=dhcp
    NAME=ens33
    DEVICE=ens33
    ONBOOT=yes
  2. 重启网络服务systemctl restart network,通过ip a查看是否获取到IP(如dhcp)。

配置验证与问题排查

  1. 查看IP配置ip aifconfig,确认两块网卡的IP已正确配置。
  2. 检查路由表route -nip route,确保默认网关和路由规则正确(若双网卡需同时上网,需注意网关优先级,避免路由冲突)。
  3. 测试网络连通性
    • ping 192.168.1.1ens33网关)、ping 8.8.8.8(外网连通性)。
    • ping 192.168.2.100(本机ens37IP)、ping 192.168.2.1ens37网关)。
  4. 常见问题
    • IP冲突:使用arping -I ens33 192.168.1.100检查IP是否被占用。
    • 配置文件语法错误:CentOS可通过ifdown ens33 && ifup ens33测试,Ubuntu用netplan --debug apply查看错误信息。
    • 无法同时上网:检查路由表,若两块网卡网关不同,需添加策略路由(如ip rule add from 192.168.1.100 table 1)。

相关问答FAQs

Q1:双网卡配置后,为什么只有一块网卡能上网?
A:通常是由于网关配置冲突或路由表问题导致,若两块网卡在不同网段且均配置了默认网关,系统可能仅使用其中一个网关,解决方法:

  • 检查route -n中的默认路由(0.0.0),若存在多条默认路由,可通过ip route del default via 旧网关删除多余路由。
  • 若需双网卡同时上网,需配置策略路由,让特定流量走特定网卡(如ip rule add from 192.168.1.100 table 100ip route add default via 192.168.1.1 table 100)。

Q2:如何删除已配置的额外IP地址?
A:删除额外IP的方法取决于配置方式:

  • ifcfg文件(CentOS):编辑对应网卡的ifcfg文件,删除IPADDRPREFIX等字段,重启网络服务(systemctl restart network)。
  • Netplan(Ubuntu):编辑/etc/netplan/01-netcfg.yaml,删除addresses中的额外IP,运行netplan apply
  • nmcli命令:删除连接后重新添加,或使用nmcli con mod 连接名 ipv4.addresses ""清除IP,再nmcli con up 连接名
  • 临时删除:使用ip addr del IP地址/子网掩码 dev 网卡名(如ip addr del 192.168.1.100/24 dev ens33),但重启后会恢复。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/20722.html

(0)
酷番叔酷番叔
上一篇 3天前
下一篇 3天前

相关推荐

  • Linux如何手动卸载Eclipse?

    卸载核心步骤删除Eclipse安装目录打开终端,定位到Eclipse的安装路径(默认通常在/opt/eclipse或用户主目录):# 如果安装在系统目录(需管理员权限)sudo rm -rf /opt/eclipse# 如果安装在用户目录(/eclipse)rm -rf ~/eclipse验证路径:若不确定安装……

    2025年7月12日
    2600
  • 如何在Linux系统中新建文件夹?

    基础命令:mkdir创建单个文件夹 mkdir 文件夹名称示例:在当前位置创建名为docs的文件夹:mkdir docs结果:无提示表示成功;若文件夹已存在或路径错误,会提示错误信息(如mkdir: cannot create directory ‘docs’: File exists),创建多个文件夹 mkd……

    2025年6月24日
    2500
  • linux如何更改host翻墙

    无法提供关于非法或不道德行为的指导,包括更改host以翻墙,这种行为违反了中国的法律法规,并可能导致网络安全和隐私问题,请遵守当地的法律法规,并寻找合法的网络活动渠道。

    2025年8月14日
    1000
  • linux如何把一个文件名称

    Linux中,可使用mv命令更改文件名称,如m

    2025年8月18日
    1200
  • 如何安全下载Linux内核源代码?

    使用包管理器下载(推荐)此方法通过系统自带的包管理工具获取内核源码,自动处理依赖和版本匹配,适合大多数用户,步骤:更新软件包列表确保本地仓库信息最新:sudo apt update # Debian/Ubuntusudo dnf update # Fedora/CentOS Streamsudo yum upd……

    2025年7月15日
    2300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信