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系统中,随着系统更新或长期使用,硬盘可能会积累多个旧内核版本,占用不必要的存储空间(尤其是/boot分区),完全卸载其他内核需要谨慎操作,避免误删当前运行内核导致系统无法引导,以下是详细的卸载步骤及注意事项,涵盖主流Linux发行版(如Debian/Ubuntu、CentOS/RHEL、Arch L……

    2025年9月27日
    12600
  • Linux如何快速打开命令行?

    图形界面下的常用方法快捷键启动(最快捷)通用快捷键:Ctrl + Alt + T(适用于Ubuntu、Debian、Fedora等主流发行版),特殊环境:KDE Plasma:Alt + F2 输入 konsoleXFCE:Super(Windows键)搜索 “Terminal”应用程序菜单查找步骤:点击桌面左……

    2025年6月13日
    16500
  • 这将成为新趋势吗?

    在Linux系统中修改分区名称(也称为卷标)是一个常见的操作,主要用于提高分区可识别性(如将/dev/sda1改为DATA或BACKUP),以下是详细且安全的操作指南,涵盖命令行与图形界面两种方法:修改前的关键准备备份数据:任何磁盘操作都有风险,务必提前备份重要数据,卸载分区:修改分区名称前需卸载目标分区(不能……

    2025年7月28日
    12200
  • linux服务器如何查询cpu的使用信息

    在Linux服务器运维中,实时监控CPU使用情况是保障系统稳定运行的关键,通过命令行工具可以高效获取CPU的实时负载、核心利用率、进程分布等详细信息,以下是常用查询方法及具体操作解析,top命令:实时监控CPU与进程状态top是最常用的动态监控工具,默认每3秒刷新一次数据,可直观查看CPU整体及各核心使用率、进……

    2025年9月9日
    12000
  • Linux系统安装Java的具体步骤是什么?

    在Linux系统中安装Java是开发者和系统管理员常见的任务,Java广泛应用于企业级应用、大数据处理、Android开发等领域,Linux发行版众多,安装Java的方法也多样,包括使用包管理器、手动下载安装、版本管理工具等,本文将详细介绍不同安装方法的步骤、优缺点及注意事项,帮助用户根据需求选择合适的安装方式……

    2025年8月29日
    11300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信