主网卡配置问题如何解决?

在Linux系统中配置双网卡可提升网络性能(如负载均衡)或实现特定网络拓扑(如隔离内/外网),以下是详细操作指南,基于专业性可靠性符合主流发行版(Ubuntu/CentOS)的最佳实践:


前期准备

  1. 确认网卡状态

    ip link show  # 查看网卡名称(如ens33、eth0)
    lspci | grep -i ethernet  # 检查硬件识别
    • 若网卡未启用:sudo ip link set dev <网卡名> up
  2. 准备网络信息

    • 主网卡(如ens33):公网IP(例:192.168.1.10/24,网关192.168.1.1)
    • 第二网卡(如ens34):内网IP(例:10.0.0.2/24,无网关)

配置方法(命令行)

临时配置(重启失效)

sudo ip route add default via 192.168.1.1
# 配置第二网卡(仅内网)
sudo ip addr add 10.0.0.2/24 dev ens34

永久配置(推荐)

  1. Ubuntu/Debian(修改/etc/netplan/01-netcfg.yaml

    network:
      version: 2
      ethernets:
        ens33:
          addresses: [192.168.1.10/24]
          routes:
            - to: default
              via: 192.168.1.1
          nameservers:
            addresses: [8.8.8.8, 1.1.1.1]
        ens34:
          addresses: [10.0.0.2/24]

    → 应用配置:sudo netplan apply

  2. CentOS/RHEL(修改网卡配置文件)

    • 主网卡(/etc/sysconfig/network-scripts/ifcfg-ens33):
      BOOTPROTO=static
      IPADDR=192.168.1.10
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      DNS1=8.8.8.8
      ONBOOT=yes
    • 第二网卡(/etc/sysconfig/network-scripts/ifcfg-ens34):
      BOOTPROTO=static
      IPADDR=10.0.0.2
      NETMASK=255.255.255.0
      ONBOOT=yes

      → 重启网络:sudo systemctl restart network


图形界面配置(适合桌面用户)

  1. 打开 Settings > Network
  2. 点击对应网卡旁的齿轮图标
  3. 选择 IPv4IPv6
  4. 设置 Manual(手动)分配IP/子网掩码/网关
  5. 保存后启用连接(注意:避免为双网卡设置相同默认网关)

关键验证步骤

  1. 检查IP分配

    ip addr show  # 确认双网卡IP正确
  2. 测试连通性

    ping -I ens33 8.8.8.8  # 通过主网卡ping外网
    ping -I ens34 10.0.0.1  # 通过第二网卡ping内网设备
  3. 路由表验证

    ip route show  # 确保默认网关仅指向主网卡
    • 预期输出:
      default via 192.168.1.1 dev ens33
      0.0.0/24 dev ens34 proto kernel scope link src 10.0.0.2

故障排除

  • 网卡未识别

    • 检查驱动:lspci -k | grep -A 2 Ethernet
    • 安装驱动(例:Intel网卡)sudo apt install e1000e-dkms
  • IP冲突
    使用 arping -I <网卡名> <IP> 检测IP是否被占用。

  • 网关冲突
    确保仅一个默认网关(通常在主网卡),否则导致路由混乱。


高级场景

  • 双网关需求
    添加策略路由(示例为第二网卡创建独立路由表):

    echo "200 custom" >> /etc/iproute2/rt_tables  # 创建路由表
    ip route add 10.0.0.0/24 dev ens34 table custom  # 表内路由
    ip rule add from 10.0.0.2 lookup custom  # 应用策略
  • 负载均衡
    使用 bonding 模式(需交换机配合):

    modprobe bonding mode=balance-rr  # 启用轮询模式

安全提示

  1. 内网网卡禁用IP转发(除非用作路由器):
    sysctl -w net.ipv4.ip_forward=0  # 临时生效
  2. 防火墙配置:
    sudo ufw allow in on ens33  # 开放公网访问
    sudo ufw deny in on ens34   # 限制内网卡入站

引用说明基于Linux内核文档(kernel.org)、Ubuntu Server指南(ubuntu.com/server/docs)及Red Hat官方网络配置手册(access.redhat.com),实操前请备份网络配置文件。

通过以上步骤,您可稳定管理Linux双网卡,复杂场景建议结合tcpdump抓包分析流量路径,遇到问题可查阅journalctl -u systemd-networkd获取详细日志。

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

(0)
酷番叔酷番叔
上一篇 2025年6月13日 17:29
下一篇 2025年6月13日 18:21

相关推荐

  • Linux如何保持系统时间持续准确?

    Linux系统中的时间管理是确保系统稳定运行和服务可靠性的关键环节,涉及系统时间(software clock)与硬件时钟(RTC,Real-Time Clock)的协同工作,以及通过网络协议进行的时间同步,准确的时间不仅影响日志记录、任务调度,还对安全认证、分布式系统协同等场景至关重要,本文将从Linux时间……

    2025年9月17日
    7200
  • Linux下如何查看PHP版本?

    通过命令行直接查询(推荐)方法1:使用 php -v 命令打开终端(Terminal),输入命令: php -v输出示例: PHP 8.1.2 (cli) (built: Aug 8 2022 07:28:23)Copyright (c) The PHP Group第一行即显示PHP版本号(如 1.2),适用场……

    2025年8月7日
    9100
  • 如何在linux上线项目

    Linux 上线项目,需先配置好服务器环境,部署代码,设置

    2025年8月19日
    7200
  • Linux下如何查看软链接文件系统的详细操作步骤和命令?

    在Linux系统中,软链接(也称为符号链接)是一种特殊的文件类型,它指向另一个文件或目录,类似于Windows系统中的快捷方式,软链接可以跨文件系统创建,且可以指向不存在的文件(此时称为“死链接”),查看软链接及其相关信息是日常系统管理和运维中的常见需求,本文将详细介绍Linux系统中查看软链接文件系统的多种方……

    2025年9月21日
    7000
  • Linux不用浏览器怎么查看网页?

    命令行工具(高效/无图形界面)适用于服务器环境或快速文本提取,无需打开浏览器,curl 获取网页源码基础用法:curl https://example.com保存到文件:curl -o page.html https://example.com跟随重定向:curl -L https://example.com仅……

    2025年7月1日
    8600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信