ethtool - утилита настройки сетевых интерфейсов в Linux. ethtool умеет отключать авто-определение сетевых настроек (auto-negotiation) сетевого интерфейса и менять режимы (полу/полно-дуплексный) из командной строки. ethtool работает только с физическими адаптерами, то есть виртуальные устройства, такие как tun0, ни просматривать, ни редактировать нельзя.
# apt install ethtool
Показать текущие настройки eth0
# ethtool eth0 Settings for eth0: Supported ports: [ MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Speed: 100Mb/s Duplex: Full Port: MII PHYAD: 1 Transceiver: external Auto-negotiation: on Supports Wake-on: g Wake-on: d Link detected: yes
Примеры:
# ethtool -a eth0 Pause parameters for eth0: Autonegotiate: on RX: off # режим ожидания RX TX: off # режим ожидания TX
Autonegotiate - режим авто-согласования. Режим авто-согласования предполагает, что сетевое устройство само определяет присутствует ли двусторонний обмен и сколько мегабит он составляет.
Настройка автозагрузки параметров сетевых интерфейсов измененных утилитой ethtool.
# nano /etc/sysconfig/network-scripts/ifcfg-eth0 # Intel Corporation 82575EB Gigabit Network Connection DEVICE=eth0 BOOTPROTO=static BROADCAST=85.xxx.xxx.255 #HWADDR=00:30:48:D6:0F:D6 IPADDR=85.xxx.xxx.xxx NETMASK=255.255.255.0 NETWORK=85.xxx.xxx.0 ONBOOT=yes # включать при загрузке ETHTOOL_OPTS="speed 100 duplex full autoneg off"
#!/bin/sh -e /usr/sbin/ethtool -s eth0 speed 100 duplex full autoneg off sleep 3 /sbin/ifconfig eth0 txqueuelen 1000
auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet static address 10.10.10.174 netmask 255.255.255.0 network 10.10.10.0 broadcast 10.10.10.255 gateway 10.10.10.1 up sleep 5; /usr/sbin/ethtool -s eth0 speed 100 duplex full autoneg off pre-up iptables-restore < /etc/iptables_rules