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

在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如何查看文件详细信息?

    ls 命令:基础文件列表作用:列出目录内容,显示文件名、权限、大小等基础信息,常用参数:-l:以长格式显示详细信息(最常用)-h:将文件大小转为易读格式(如KB、MB)-a:显示隐藏文件(以开头的文件)示例:ls -lh /path/to/file输出解析:-rw-r–r– 1 user group 2.5……

    2025年7月6日
    1000
  • Linux如何查看磁盘分区?

    使用 lsblk 命令(推荐)特点:简单直观,显示树形结构,包含分区挂载点,命令:lsblk输出示例:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 238.5G 0 disk├─sda1 8:1 0 512M 0 part /boot/efi├─sda2 8……

    2025年7月1日
    900
  • 你知道吗?90%的人不知道的真相?

    前提条件安装GCC编译器Linux默认不包含C编译器,需安装GCC(GNU Compiler Collection):sudo apt update && sudo apt install gcc # Debian/Ubuntusudo yum install gcc # CentOS/RHEL……

    1天前
    300
  • Linux如何删除目录避免误删?

    核心命令:rm 和 rmdirrm 命令(推荐)功能:删除目录及内容(支持非空目录),常用选项:-r 或 -R:递归删除目录内所有子目录和文件,-f:强制删除(不提示确认),-i:交互式删除(每删除前询问确认),操作示例:# 删除空目录rm -r mydir# 强制删除非空目录(无警告)rm -rf mydir……

    2025年7月6日
    1200
  • 如何用光盘安装Linux系统,详细图文教程

    准备工作(关键步骤)获取Linux镜像文件访问权威发行版官网下载ISO镜像(推荐Ubuntu/CentOS等主流系统)示例:Ubuntu官网(ubuntu.com/download)验证镜像完整性(必须操作): # Ubuntu校验命令示例echo "镜像SHA256值" | sha256s……

    2天前
    700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信