Linux环境下双网卡配置的具体正确方法和详细步骤是什么?

Linux系统中配置双网卡是一项常见需求,通常用于实现负载均衡、故障转移或连接不同网络段,以下是详细的配置步骤,涵盖不同发行版及场景,包含关键命令和参数说明。

linux如何配置双网卡

配置前的准备工作

  1. 确认网卡状态
    使用ip aifconfig命令查看系统识别的网卡名称(如eth0、ens33、enp0s3等),若未识别,需检查驱动是否加载(lspci | grep -i ethernet)或硬件连接。
  2. 规划网络参数
    明确每块网卡的IP地址、子网掩码、网关及DNS。

    • 网卡1(eth0):内网IP 192.168.1.10/24,网关192.168.1.1
    • 网卡2(eth1):外网IP 203.0.113.20/24,网关203.0.113.1

基于Debian/Ubuntu的配置(Netplan方式)

Ubuntu 18.04+及Debian 10+默认使用Netplan管理网络,配置文件位于/etc/netplan/目录下(如01-netcfg.yaml)。

  1. 编辑配置文件

    network:
      version: 2
      renderer: networkd
      ethernets:
        eth0:
          dhcp4: no
          addresses: [192.168.1.10/24]
          gateway4: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 192.168.1.1]
        eth1:
          dhcp4: no
          addresses: [203.0.113.20/24]
          gateway4: 203.0.113.1
          nameservers:
            addresses: [8.8.4.4]

    参数说明

    • dhcp4: no:禁用DHCP,使用静态IP。
    • addresses:IP地址及子网掩码(CIDR格式)。
    • gateway4:默认网关(注意:双网卡默认网关通常仅一个生效,需配合策略路由)。
  2. 应用配置

    sudo netplan generate
    sudo netplan apply

基于CentOS/RHEL的配置(NetworkManager方式)

CentOS 7+及RHEL 7+推荐使用NetworkManager,配置文件位于/etc/sysconfig/network-scripts/ifcfg-<网卡名>

  1. 配置第一块网卡(eth0)
    编辑/etc/sysconfig/network-scripts/ifcfg-eth0

    linux如何配置双网卡

    TYPE=Ethernet
    BOOTPROTO=static
    NAME=eth0
    DEVICE=eth0
    ONBOOT=yes
    IPADDR=192.168.1.10
    NETMASK=255.255.255.0
    GATEWAY=192.168.1.1
    DNS1=8.8.8.8
  2. 配置第二块网卡(eth1)
    编辑/etc/sysconfig/network-scripts/ifcfg-eth1

    TYPE=Ethernet
    BOOTPROTO=static
    NAME=eth1
    DEVICE=eth1
    ONBOOT=yes
    IPADDR=203.0.113.20
    NETMASK=255.255.255.0
    DNS1=8.8.4.4

    注意:第二块网卡通常不设置GATEWAY,避免冲突。

  3. 重启网络服务

    sudo systemctl restart NetworkManager

双网卡路由策略配置

若需同时使用两个网关(如内外网分离),需配置策略路由,以下以CentOS为例:

  1. 创建自定义路由表
    编辑/etc/iproute2/rt_tables,添加:

    100   net1
    200   net2
  2. 为每个网卡设置路由规则

    linux如何配置双网卡

    # eth0路由表(net1)
    ip route add 192.168.1.0/24 dev eth0 src 192.168.1.10 table net1
    ip route add default via 192.168.1.1 table net1
    # eth1路由表(net2)
    ip route add 203.0.113.0/24 dev eth1 src 203.0.113.20 table net2
    ip route add default via 203.0.113.1 table net2
    # 设置规则:根据源IP选择路由表
    ip rule add from 192.168.1.10 table net1
    ip rule add from 203.0.113.20 table net2
  3. 永久生效
    将上述命令写入/etc/rc.local或NetworkManager的dispatcher脚本。

验证配置

  1. 检查IP地址
    ip a查看网卡是否分配正确IP。
  2. 测试连通性
    ping -I eth0 192.168.1.1    # 测试内网网关
    ping -I eth1 203.0.113.1    # 测试外网网关
    ping 8.8.8.8                # 测试外网连通性
  3. 查看路由表
    ip route showip rule show确认路由策略。

常见问题处理

问题现象 可能原因 解决方法
双网卡仅一个能通外网 默认网关冲突 禁用非主网卡的GATEWAY,配置策略路由
网卡启动失败 ONBOOT=no或配置文件语法错误 检查配置文件格式,重启网络服务
策略路由不生效 规则顺序错误 调整ip rule优先级(数值越小优先级越高)

相关问答FAQs

Q1:配置双网卡后无法访问外网,如何排查?
A:首先检查ip route确认默认网关是否存在且唯一;其次使用ping -I <网卡名> <网关IP>测试各网卡到其网关的连通性;若网关正常,检查DNS配置(cat /etc/resolv.conf)及防火墙规则(sudo iptables -L),策略路由场景下,需确认ip ruleip route表是否匹配源IP。

Q2:双网卡可以配置同一网段的IP吗?
A:可以,但需注意MAC地址冲突和ARP问题,Linux默认会启用ARP过滤,可通过sysctl -w net.ipv4.conf.all.arp_filter=1开启严格模式,避免ARP响应混乱,实际应用中,同一网段双网卡通常用于绑定(bonding)或桥接(bridge),以实现冗余或扩展。

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

(0)
酷番叔酷番叔
上一篇 2025年8月22日 00:09
下一篇 2025年8月22日 00:22

相关推荐

  • Linux用户密码修改的正确操作步骤和方法有哪些?

    在Linux系统中,修改用户密码是日常运维和安全管理中的常见操作,无论是普通用户更新自己的密码,还是管理员重置其他用户的密码,都需要掌握正确的方法,本文将详细介绍不同场景下修改Linux用户密码的步骤、注意事项及常见问题处理,普通用户修改自己的密码普通用户默认拥有修改自身密码的权限,无需root权限,操作流程简……

    2025年9月15日
    5900
  • Linux下如何执行Windows的.bat批处理文件?

    在Linux操作系统中,.bat文件是Windows环境下的批处理脚本,其语法基于Windows命令行(CMD或PowerShell),而Linux默认使用bash等shell环境,两者语法存在差异,因此无法直接通过./filename.bat或bash filename.bat命令执行,要在Linux中执行b……

    2025年9月25日
    6400
  • Linux 如何查询进程的线程数?

    在Linux系统中,线程是进程内的执行单元,多个线程共享进程的资源(如内存空间、文件描述符等),查询线程数对于系统性能监控、问题排查(如线程泄漏)等场景至关重要,Linux下查询线程数的方法多样,可通过命令行工具、系统接口等实现,本文将详细介绍常用方法及其实际应用,使用ps命令查询线程数ps(Process S……

    2025年9月18日
    9300
  • 如何复制文字到Linux系统?

    在Linux系统中复制文字的方法多种多样,根据使用场景(如图形界面、命令行、远程连接等)和需求(如跨系统复制、终端内部操作等),可选择不同的操作方式,以下从常见场景出发,详细介绍具体操作步骤及工具使用,帮助用户高效完成文字复制任务,图形界面下跨系统复制(Windows/macOS到Linux桌面)当需要在Win……

    2025年10月5日
    7500
  • 如何检测32位Linux系统?

    查看 Linux 系统是否为 32 位若需确认当前系统的架构(32 位或 64 位),可通过以下命令快速验证:终端命令检查uname -m输出 i686、i386 或 x86 表示 32 位系统,输出 x86_64、amd64 或 aarch64 表示 64 位系统,检查内核信息lscpu | grep &qu……

    2025年7月21日
    8900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信