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

在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大文件?

    核心命令详解du 命令(磁盘使用分析)适用场景:精准计算目录/文件大小,适合深度扫描,基础命令:du -ah /path/to/directory | sort -rh | head -n 20参数解析:-a:显示所有文件(包括子目录中的文件)-h:人类可读格式(KB/MB/GB)–max-depth=1:限……

    2025年7月21日
    2800
  • Linux系统如何正确进入Node.js命令行环境?详细操作方法是什么?

    在Linux系统中进入并使用Node.js环境,通常涉及安装Node.js、配置环境变量、验证安装及基本使用等步骤,以下是详细操作指南,涵盖不同安装方式、环境配置及常见问题处理,准备工作在开始安装Node.js前,需确保Linux系统满足基本要求:系统版本:主流Linux发行版(如Ubuntu、CentOS、D……

    2025年8月22日
    1100
  • u启动如何安装linux

    U启动安装Linux,需先制作U盘启动盘,再将Linux

    2025年8月9日
    1600
  • Linux程序卡死?如何快速停止?

    通过终端停止程序终止前台程序(Ctrl+C)适用场景:程序在终端前台运行(如 python script.py),操作:按下 Ctrl + C 组合键,立即发送中断信号(SIGINT),程序会正常退出并释放资源,示例:$ tail -f /var/log/syslog # 运行中按 Ctrl+C 终止通过进程I……

    2025年7月27日
    2300
  • Linux系统下如何查看不同类型压缩文件的编码格式及方法?

    在Linux系统中,处理压缩文件时,“编码”通常涉及两个层面:一是压缩文件内文本内容的字符编码(如UTF-8、GBK等),二是压缩文件本身的文件名编码(尤其是从Windows系统传来的zip文件,可能因编码差异导致乱码),本文将详细介绍如何查看这两类编码,涵盖主流压缩格式(zip、tar.gz、tar.bz2……

    2025年8月24日
    1200

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信