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)
酷番叔酷番叔
上一篇 2025年8月31日 07:16
下一篇 2025年8月31日 07:30

相关推荐

  • 如何顺利安装Linux系统?详细步骤、准备工作及常见问题解答有哪些?

    安装Linux系统是许多用户探索开源世界、提升运维能力或搭建服务环境的第一步,整个过程需经历准备工作、系统安装、后续配置等环节,以下以常见的Ubuntu Desktop 22.04 LTS为例,详细说明具体操作流程,安装前准备选择Linux发行版Linux发行版众多,不同系统适合不同场景:Ubuntu:基于De……

    2025年10月1日
    1000
  • Linux安装Geneious Prime的正确方法?

    安装前准备系统要求操作系统:Ubuntu 20.04+/Debian 10+ 或兼容的发行版(CentOS/RHEL需额外依赖)内存:≥8 GB(推荐16 GB以上)存储空间:≥1 GB可用空间Java环境:OpenJDK 11 或 Oracle JDK 11(必须) sudo apt update &amp……

    2025年7月13日
    4500
  • 如何查看Linux系统中80端口被什么程序占用?

    在Linux系统中,端口是应用程序与网络通信的入口,当80端口(Web服务的默认端口)被占用时,可能导致Web服务无法启动或访问异常,快速定位占用80端口的程序是解决此类问题的关键,本文将详细介绍几种常用的方法,帮助用户高效排查端口占用问题,使用netstat命令查看端口占用netstat是Linux系统中传统……

    2025年8月22日
    2900
  • deepin Linux系统如何正确安装?

    deepin Linux是一款基于Debian开发的国产操作系统,以其美观的界面、易用的操作和丰富的生态受到用户青睐,安装deepin Linux的过程并不复杂,只需按照以下步骤操作,即可顺利完成系统部署,安装前准备工作在开始安装前,需确保硬件环境满足要求,并准备好必要的工具和文件,具体如下:硬件要求deepi……

    2025年9月25日
    1800
  • Linux如何删除目录?命令及操作步骤详解?

    在Linux系统中,删除目录是日常运维和文件管理中的常见操作,但不同场景下需要采用不同的方法,以确保操作安全且高效,Linux提供了多种命令用于删除目录,包括基础命令rmdir和功能更强大的rm,以及结合find命令实现批量删除的高级技巧,本文将详细介绍这些命令的使用方法、选项参数及注意事项,帮助用户在不同场景……

    2025年10月4日
    1400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信