База знаний по Open Source
Авторизация
Поиск по базе знаний

Для для просмотра подробного состояния сетевой карты и изменения параметров ее функционирования в Linux и, в частности, в Ubuntu/Mint существует программа ethtool.

Ethtool присутствует в стандартных репозиториях Ubuntu/Mint и установка ее достаточно проста:

sudo apt-get install ethtool

Вот наиболее часто применяемые примеры использования ethtool.

Вывод информации о сетевой карте eth0:

$ sudo ethtool eth0
Settings for eth0:
 Supported ports: [ TP ]
 Supported link modes: 10baseT/Half 10baseT/Full 
 100baseT/Half 100baseT/Full 
 1000baseT/Full 
 Supported pause frame use: No
 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: 1000Mb/s
 Duplex: Full
 Port: Twisted Pair
 PHYAD: 1
 Transceiver: internal
 Auto-negotiation: on
 MDI-X: on (auto)
 Supports Wake-on: pumbg
 Wake-on: g
 Current message level: 0x00000007 (7)
 drv probe link
 Link detected: yes

Выключение автоопределения, включение Full Duplex и установление скорости в 1000 Mb/s

$ sudo ethtool -s eth0 duplex full speed 1000 autoneg off

Вывести информацию о драйвере сетевой карты

$ sudo ethtool -i enp0s25
driver: e1000e
version: 3.2.6-k
firmware-version: 1.3-0
expansion-rom-version: 
bus-info: 0000:00:19.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Вывести подробную статистику RX\TX (прием\отдача) и в частности ошибок.

$ sudo ethtool -S enp0s25
NIC statistics:
 rx_packets: 150794
 tx_packets: 136628
 rx_bytes: 121162464
 tx_bytes: 28460802
 rx_broadcast: 1341
 tx_broadcast: 114
 rx_multicast: 690
 tx_multicast: 597
 rx_errors: 0
 tx_errors: 0
 tx_dropped: 0
 multicast: 690
 collisions: 0
 rx_length_errors: 0
 rx_over_errors: 0
 rx_crc_errors: 0
 rx_frame_errors: 0
 rx_no_buffer_count: 0
 rx_missed_errors: 0
 tx_aborted_errors: 0
 tx_carrier_errors: 0
 tx_fifo_errors: 0
 tx_heartbeat_errors: 0
 tx_window_errors: 0
 tx_abort_late_coll: 0
 tx_deferred_ok: 0
 tx_single_coll_ok: 0
 tx_multi_coll_ok: 0
 tx_timeout_count: 0
 tx_restart_queue: 0
 rx_long_length_errors: 0
 rx_short_length_errors: 0
 rx_align_errors: 0
 tx_tcp_seg_good: 4097
 tx_tcp_seg_failed: 0
 rx_flow_control_xon: 0
 rx_flow_control_xoff: 0
 tx_flow_control_xon: 0
 tx_flow_control_xoff: 0
 rx_csum_offload_good: 149209
 rx_csum_offload_errors: 0
 rx_header_split: 0
 alloc_rx_buff_failed: 0
 tx_smbus: 0
 rx_smbus: 0
 dropped_smbus: 0
 rx_dma_failed: 0
 tx_dma_failed: 0
 rx_hwtstamp_cleared: 0
 uncorr_ecc_errors: 0
 corr_ecc_errors: 0
 tx_hwtstamp_timeouts: 0

Здесь необходимо помнить, что настройки сетевой платы, установленные командой ethtool действуют до следующей перезагрузки. Чтобы эти параметры устанавливались при каждой загрузке проще всего подправить файл /etc/network/interfaces добавив строку post-up ethtool -s eth0 speed 100 duplex full autoneg off.

Файл /etc/network/interfaces должен выглядеть примерно так:

auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet static
 address 192.168.10.174
 netmask 255.255.255.0
 network 192.168.10.0
 broadcast 192.168.10.255
 gateway 192.168.10.1
 up sleep 5; /usr/sbin/ethtool -s eth0 speed 100 duplex full autoneg off

У программы ethtool усть довольно подробный man (англ.). На opennet есть перевод ethtool man на русский.