Linux网卡半双工设置指南

核心概念与注意事项

  • 半双工(Half-Duplex):数据只能单向传输(同一时间仅能发送或接收),常见于早期网络设备。
  • 适用场景
    • 连接仅支持半双工的设备(如老式Hub)。
    • 解决全双工模式下的冲突问题(如collisions错误激增)。
  • 风险提示
    • 现代网络通常使用全双工,强制半双工可能降低带宽利用率。
    • 操作需root权限,错误配置可能导致网络中断。

操作前准备

  1. 确认网卡名称

    ip link show  # 或 ifconfig -a(较新系统推荐ip命令)

    输出示例:enp0s3eth0等。

  2. 检查当前模式

    ethtool <网卡名称> | grep -i duplex

    若显示Full Duplex,则需修改。


方法一:ethtool临时设置(重启失效)

  1. 安装ethtool(如未预装):

    sudo apt install ethtool  # Debian/Ubuntu
    sudo yum install ethtool  # RHEL/CentOS
  2. 设置半双工

    sudo ethtool -s <网卡名称> duplex half  # 示例:sudo ethtool -s enp0s3 duplex half
  3. 指定速率(必须与双工模式同步设置):

    sudo ethtool -s <网卡名称> speed 100 duplex half  # 速率需匹配设备(如10/100/1000)

方法二:配置文件永久生效

NetworkManager系统(Ubuntu/CentOS 8+)

  • 编辑连接配置:
    sudo nmcli connection modify <连接名> 802-3-ethernet.speed 100
    sudo nmcli connection modify <连接名> 802-3-ethernet.duplex half
    sudo nmcli connection down <连接名> && sudo nmcli connection up <连接名>  # 重启连接

    提示:通过nmcli connection show获取连接名(通常非网卡名)。

传统networking服务(Debian/Ubuntu)

  • 编辑/etc/network/interfaces
    auto eth0
    iface eth0 inet dhcp
        pre-up /sbin/ethtool -s eth0 speed 100 duplex half  # 在网卡启动前执行命令

systemd-networkd服务(CentOS 7/RHEL)

  • 创建配置文件/etc/systemd/network/10-eth0.network

    [Match]
    Name=eth0
    [Link]
    Duplex=half
    Speed=100Mbps  # 根据需求调整速率

验证配置

ethtool <网卡名称> | grep -E "Speed|Duplex"

成功输出示例:

Speed: 100Mb/s
Duplex: Half

故障排除

  1. 设置不生效

    • 检查速率是否匹配(半双工模式需明确指定speed值)。
    • 确认网卡驱动支持半双工(ethtool -k <网卡名>查看supports-half-duplex)。
  2. 网络断开

    • 恢复默认设置:sudo ethtool -s <网卡名> autoneg on(启用自动协商)。
    • 物理层问题:更换网线或检查设备兼容性。
  3. 命令未找到

    安装ethtool(见方法一步骤1)。


何时避免使用半双工?

  • 现代千兆/万兆网络环境(全双工是标准方案)。
  • 无线网卡(WLAN不支持半双工模式)。
  • 高性能需求场景(半双工会显著降低吞吐量)。

引用说明参考Linux内核文档(kernel.org)、ethtool官方手册页(man7.org/linux/man-pages/man8/ethtool.8.html)及NetworkManager配置指南(developer.gnome.org/NetworkManager/stable/),操作建议基于主流Linux发行版验证(Ubuntu 22.04/CentOS 7)。

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

(0)
酷番叔酷番叔
上一篇 2025年7月28日 07:13
下一篇 2025年7月28日 07:28

相关推荐

  • Linux软件装在哪?秒查所有安装位置

    通过包管理器查询(推荐)适用于通过 apt、yum、dpkg、rpm 等安装的软件,Debian/Ubuntu (APT/Dpkg)查询已安装软件的所有文件路径:dpkg -L 软件名# 示例:dpkg -L nginx查找软件包安装的二进制文件位置:dpkg -S 软件名# 示例:dpkg -S nginxR……

    2025年7月5日
    12600
  • Linux安装软件有哪些常用方法?

    准备工作确认系统信息 uname -m # 查看架构(x86_64/ARM)lsb_release -a # 查看发行版(Ubuntu/CentOS等)更新系统安装前务必更新软件源和系统组件:sudo apt update && sudo apt upgrade # Debian/Ubuntus……

    2025年6月27日
    13500
  • 内核如何掌控中断号?

    中断号由内核统一分配和管理,确保不同硬件设备的中断请求互不冲突,维护系统稳定运行。

    2025年7月7日
    11600
  • linux如何收发数据

    Linux中,可使用网络命令如ping测试连接,`s

    2025年8月18日
    10100
  • 如何查看所有普通用户名

    在Linux系统中,查看用户数量是系统管理的基础操作,以下是几种可靠的方法,适用于大多数Linux发行版(如Ubuntu、CentOS、Debian等),并区分了所有用户和可登录的普通用户的统计方式:统计所有用户数量(含系统用户)系统用户(UID<1000)用于运行服务,普通用户(UID≥1000)用于日……

    2025年8月6日
    11000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信