FreeBSD为我的网卡(NIC)设置速度双工

时间:2020-01-09 10:40:05  来源:igfitidea点击:

问题描述:如何在FreeBSD网卡上设置/更改速度(双工设置)?
如何将默认的10Mbps更改为100Mbps,反之亦然。

Linux用户可以使用ethtool设置以太网卡的速度和双工,我可以在FreeBSD上使用相同的命令吗?

解决方法:FreeBSD不需要ethtool。
默认情况下,NIC自动协商连接的速度和双工。
确保在交换机上正确设置端口速度。
您需要使用ifconfig命令在适配器上配置速度和双工设置。
您还需要更新/etc/rc.conf文件以设置速度和双工配置。

查看当前速度和双工设置

只需使用ifconfig命令,执行:

# ifconfig em0
# ifconfig interface-name
# ifconfig | grep media

输出:

em0: flags=8843 mtu 1500
        options=b
        inet 10.10.1.2 netmask 0xffffffc0 broadcast 10.10.1.29
        ether 00:30:48:93:1e:9a
        media: Ethernet 10baseT/UTP 
        status: active

ifconfig命令更改速度和双工设置

设置" 10Mbps全双工"的通用语法如下:

ifconfig <interface-name> <IP_address> media 10baseTX mediaopt full-duplex

设置" 100Mbps全双工",执行:

ifconfig <interface-name> <IP_address> media 100baseTX mediaopt full-duplex

设置" 1000Mbps全双工",执行:

ifconfig <interface-name> <IP_address> media 1000baseTX mediaopt full-duplex

例如,将IP 10.10.1.2的接口em0设置为100Mbps全双工,执行:

# ifconfig em0 10.10.1.2 media 100baseTX mediaopt full-duplex

如果当前将接口强制为100个全双工,则要更改为半双工,必须执行以下命令:

# ifconfig em0 10.10.1.2 media 100baseTX -mediaopt full-duplex

-mediaopt选项禁用接口上指定的媒体选项(全双工),即返回半双工。

永久设置速度和双工设置

要使配置更改具有持久性,请更新/etc/rc.conf文件。
使用文本编辑器打开配置文件,执行:

# vi /etc/rc.conf

查找如下所示的行:

ifconfig_interfacename="...."

要将em0接口设置为10Mbps全速,请执行:

ifconfig_em0="inet x.x.x.x netmask y.y.y.y media 10baseT/UTP mediaopt full-duplex"

要将em0接口设置为100Mbps Full,请执行:

ifconfig_em0="inet x.x.x.x netmask y.y.y.y media 100baseTX mediaopt full-duplex"

要将em0接口设置为满1000Mbps,请执行:

ifconfig_em0="inet x.x.x.x netmask y.y.y.y media 1000baseTX mediaopt full-duplex"

确保将x.x.x.x和y.y.y.y替换为实际的IP和网络掩码地址。
这是我自己的FreeBSD工作站的条目:

ifconfig_em0="inet 10.10.1.2 netmask 255.255.255.0 media 100baseT/UTP mediaopt full-duplex"

保存并关闭文件。
重新启动网络:

# /etc/rc.d/netif restart