La utilidad ethtool en Linux le permite ver y cambiar algunas de las configuraciones de su controlador de red y tarjeta de interfaz, especialmente para dispositivos cableados.
Estos incluyen su velocidad, si la interfaz utiliza negociación automática y si se ejecuta en modo semidúplex o dúplex completo. Ethtool también proporciona una manera fácil de ver o solucionar problemas de su interfaz de red.
Lo más probable es que ethtool ya esté disponible en su sistema Linux. Sin embargo, para verificar, puede usar uno o ambos de estos comandos:
$ which ethtool /usr/sbin/ethtool $ sudo ethtool —version ethtool version 5.13
Para tener una idea de cómo esta utilidad puede controlar la configuración, ejecute un comando como el siguiente. La -h significa “ayuda”. Es probable que se encuentre mirando alrededor de 10 páginas de sintaxis como la que se muestra aquí.
$ ethtool -h | more ethtool version 5.13 Usage: ethtool [ FLAGS ] DEVNAME Display standard information about device ethtool [ FLAGS ] -s|—change DEVNAME Change generic options [ speed %d ] [ lanes %d ] [ duplex half|full ] [ port tp|aui|bnc|mii|fibre|da ] [ mdix auto|on|off ] [ autoneg on|off ] [ advertise %x[/%x] | mode on|off ... [—] ] [ phyad %d ] [ xcvr internal|external ] [ wol %d[/%d] | p|u|m|b|a|g|s|f|d... ] [ sopass %x:%x:%x:%x:%x:%x ] [ msglvl %d[/%d] | type on|off ... [—] ] [ master-slave preferred-master|preferred-slave|forced-master|forced-slave ] ethtool [ FLAGS ] -a|—show-pause DEVNAME Show pause options ethtool [ FLAGS ] -A|—pause DEVNAME Set pause options [ autoneg on|off ] [ rx on|off ] —More—
Ver configuraciones
Claramente, hay muchas cosas que la utilidad ethtool puede hacer por usted. Sin embargo, para ver simplemente la configuración en su interfaz de red, escriba “ethtool” seguido del nombre de su interfaz de red (por ejemplo, eth0). En los ejemplos siguientes, estamos viendo una interfaz de red llamada enp0s25.
$ ethtool enp0s25: Settings for enp0s25: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Supported pause frame use: No Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Advertised pause frame use: No Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 100Mb/s Duplex: Full Auto-negotiation: on Port: Twisted Pair PHYAD: 1 Transceiver: internal MDI-X: on (auto) Current message level: 0x00000007 (7) drv probe link Link detected: yes
Observe el “sí” en la última línea que le indica que esta interfaz está funcionando. La salida también muestra los modos de enlace admitidos y que la negociación automática está activada. Observe la velocidad (100 Mbps) y que la interfaz se ejecuta en dúplex completo.
Puede verificar la configuración del controlador Ethernet con un comando como este:
$ ethtool -i enp0s25 driver: e1000e version: 5.13.9-200.fc34.x86_64 firmware-version: 1.1-2 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: yes
Estadísticas de la interfaz de red
Para ver las estadísticas de su interfaz de red, puede usar un comando como el siguiente. Puse la salida en dos columnas para que sea un poco más fácil revisar la configuración.
$ ethtool -S enp0s25 | column NIC statistics: tx_single_coll_ok: 0 rx_packets: 455502 tx_multi_coll_ok: 0 tx_packets: 44344 tx_timeout_count: 0 rx_bytes: 79840149 tx_restart_queue: 0 tx_bytes: 4734660 rx_long_length_errors: 0 rx_broadcast: 261026 rx_short_length_errors: 0 tx_broadcast: 35 rx_align_errors: 0 rx_multicast: 154850 tx_tcp_seg_good: 165 tx_multicast: 3561 tx_tcp_seg_failed: 0 rx_errors: 0 rx_flow_control_xon: 0 tx_errors: 0 rx_flow_control_xoff: 0 tx_dropped: 0 tx_flow_control_xon: 0 multicast: 154850 tx_flow_control_xoff: 0 collisions: 0 rx_csum_offload_good: 289057 rx_length_errors: 0 rx_csum_offload_errors: 0 rx_over_errors: 0 rx_header_split: 0 rx_crc_errors: 0 alloc_rx_buff_failed: 0 rx_frame_errors: 0 tx_smbus: 0 rx_no_buffer_count: 0 rx_smbus: 0 rx_missed_errors: 0 dropped_smbus: 0 tx_aborted_errors: 0 rx_dma_failed: 0 tx_carrier_errors: 0 tx_dma_failed: 0 tx_fifo_errors: 0 rx_hwtstamp_cleared: 0 tx_heartbeat_errors: 0 uncorr_ecc_errors: 0 tx_window_errors: 0 corr_ecc_errors: 0 tx_abort_late_coll: 0 tx_hwtstamp_timeouts: 0 tx_deferred_ok: 0 tx_hwtstamp_skipped: 0
Sin colisiones ni errores. Buena seńal.
Para probar una interfaz de red, debe usar sudo y un comando como el que se muestra a continuación con la opción -t (prueba). Observe que la interfaz pasó la prueba.
$ sudo ethtool -t enp0s25 The test result is PASS <== PASS! The test extra info: Register test (offline) 0 Eeprom test (offline) 0 Interrupt test (offline) 0 Loopback test (offline) 0 Link test (on/offline) 0
Tenga en cuenta que todas estas pruebas se ejecutaron en modo fuera de línea. Hay dos modos, en línea y fuera de línea, y fuera de línea es el predeterminado. Ejecuta el conjunto completo de pruebas, pero puede interrumpir las operaciones normales. Las pruebas en línea son limitadas y no causarán interrupciones. Tenga esto en cuenta si está trabajando en un sistema de producción.
Cambiar la configuración
Los cambios en la interfaz de red requerirán que use sudo o lo ejecute como root. Además, los cambios no persisten tras un reinicio a menos que también modifique la configuración en el archivo de configuración en su distribución de Linux en particular. Para algunos cambios, también necesita bajar la interfaz con ifdown y hacer una copia de seguridad con ifup, por lo que debería estar trabajando en la consola del sistema.