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)
酷番叔酷番叔
上一篇 4小时前
下一篇 4小时前

相关推荐

  • Linux文件另存为怎么操作?

    命令行操作(高效精准)适用于终端用户,通过命令直接控制文件存储位置和内容,文本编辑保存(Vim/Nano)打开文件: vim 原文件.txt # 使用Vim或nano 原文件.txt # 使用Nano另存为新文件:Vim:编辑后按 Esc 输入 :w 新路径/新文件名.txt → 按回车保存,(例::w /ho……

    2025年7月7日
    1400
  • Linux命令执行后如何撤销?

    未执行命令的撤销取消当前输入行Ctrl + C:强制终止正在输入或运行的命令(最常用),Ctrl + U:删除光标前整行内容(Bash/Zsh默认支持),Ctrl + W:删除光标前的一个单词,Esc + D:删除光标后的一个单词,清屏重置Ctrl + L 或输入 clear:清除终端显示,但已输入未执行的命令……

    2025年7月20日
    1200
  • 电脑断网?可能是网卡被禁用了!

    在Linux系统中,禁用网卡是网络管理中的常见操作,常用于系统维护、安全加固或故障排查,以下是几种专业、可靠且经过验证的方法,适用于不同发行版(如Ubuntu、CentOS、Debian等),操作前请确保具备root权限(使用sudo),并谨慎执行,避免意外断开网络连接,安全防护:隔离存在风险的网络接口,资源优……

    4天前
    500
  • Linux不用浏览器怎么查看网页?

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

    2025年7月1日
    1800
  • 如何立即退出Linux目录?

    返回上一级目录(最常用)命令:cd ..原理: 代表当前目录的父目录(上一级目录),操作示例: # 当前路径:/home/user/documents$ cd .. # 执行后路径变为:/home/user效果:直接退回上一层目录,可连续使用(如 cd ../.. 退回两级),返回上一次所在的目录命令:cd……

    2025年7月2日
    1300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信