Una velocità di trasferimento limitata a circa 90 Mbps su una scheda di rete Gigabit non è necessariamente dovuta al server, a Samba o al firewall. Il collegamento Ethernet potrebbe semplicemente aver negoziato una connessione a 100 Mbps. Un cavo difettoso, una porta switch con un numero limitato di porte o una configurazione duplex non uniforme sono sufficienti a creare un collo di bottiglia per l’intera connessione.
ethtool Legge i parametri esposti dal driver di rete: velocità, duplex, negoziazione automatica, presenza del collegamento e contatori hardware. Parto da queste informazioni prima di modificare la configurazione IP o eseguire un test di velocità. La maggior parte dei controlli sottostanti sono di sola lettura.

Identificare l’interfaccia Ethernet attualmente in uso
Non presumere che l’interfaccia si chiami eth0Una macchina moderna spesso usa un nome come enp1s0, eno1 O ens18Iniziate mostrando le interfacce e il percorso utilizzato per uscire:
collegamento ip-brief
Il secondo comando indica in particolare dev E srcIn questo esempio, dev enp1s0 designa l’interfaccia da controllare con ethtoolIl tutorial su indirizzo IP in Linux dettaglia gli stati SU, BASSO_SU e i relativi indirizzi.
Escludi interfacce loopback, bridge Docker, tunnel VPN e interfacce virtuali se il tuo errore riguarda un cavo fisico. In una macchina virtuale, ethtool A volte descrive solo la scheda virtuale. La negoziazione vera e propria avviene poi sull’host o sullo switch.
Installa ethtool senza toccare la rete
Il pacchetto ha solitamente lo stesso nome del comando. La sua installazione non modifica le impostazioni della scheda.
sudo apt update
sudo apt install ethtool
sudo dnf install ethtool
sudo pacman -S ethtool
Successivamente, verifica la versione e la guida disponibili nella tua distribuzione:
ethtool --version
ethtool --help
ethtool Dipende dal driver e dall’hardware. Un’opzione presente nella guida potrebbe non essere disponibile su una scheda virtuale, un adattatore USB o un driver che non espone la funzione.
Velocità di lettura, duplex, negoziazione automatica e stato del collegamento
Eseguire il comando sull’interfaccia identificata. I privilegi elevati consentono di ottenere tutte le informazioni fornite dal driver:
sudo ethtool enp1s0
Per una diagnosi iniziale, concentratevi su quattro aspetti:
- Velocità : velocità attualmente negoziata, ad esempio
1000 Mb/s. - Duplex :
Pienoè il valore atteso su un moderno collegamento Ethernet. - Autonegoziazione : indica se la scheda sta negoziando le funzionalità con la porta remota.
- Collegamento rilevato : conferma la presenza del supporto fisico.
È possibile estrarre queste righe per una lettura più rapida:
sudo ethtool enp1s0 | grep -E 'Speed|Duplex|Auto-negotiation|Link detected'
Guarda anche Modalità di collegamento supportate, Modalità di collegamento pubblicizzate E Modalità di collegamento pubblicizzate da LinkpartLa scheda di rete, la sua configurazione e la porta remota devono condividere almeno una modalità. Se la scheda pubblicizza velocità Gigabit ma il partner offre solo 100 Mbps, la velocità negoziata rimarrà a 100 Mbps.
Cosa bisogna controllare quando il messaggio “Collegamento rilevato” è “no”?
Collegamento rilevato: no Dai la priorità al problema rispetto all’indirizzo IP, al DNS e alle porte TCP. Innanzitutto, verifica lo stato visto dal kernel e dal gestore telefonico:
ip link show dev enp1s0
cat /sys/class/net/enp1s0/operstate
cat /sys/class/net/enp1s0/carrier
Un valore zero In vettore Ciò significa che il kernel non rileva una connessione fisica. Prova un altro cavo funzionante, quindi un’altra porta dello switch. Verifica inoltre che la porta non sia disabilitata a livello amministrativo e che l’adattatore USB o la scheda di rete riceva alimentazione.
Su una macchina dotata di diverse porte identiche, l’opzione di identificazione può far lampeggiare il LED della porta per dieci secondi, se il driver la supporta:
sudo ethtool -p enp1s0 10
Infine, controlla i messaggi del kernel relativi all’interfaccia. Potrebbero indicare una perdita di collegamento ripetuta, firmware mancante o un ripristino del driver:
sudo dmesg -T | grep -Ei 'enp1s0|link|firmware|timeout'
sudo journalctl -k -b | grep -Ei 'enp1s0|link|firmware|timeout'
La guida a dmesg e messaggi del kernel aiuta a ripristinare l’ordine di avvio di questi errori.
Comprendere una connessione bloccata a 100 Mbps o in half-duplex
Una carta Gigabit negoziata a 100 Mb/s Prima di qualsiasi ottimizzazione software, è opportuno effettuare un controllo fisico. Gigabit Ethernet utilizza tutte e quattro le coppie di fili del cavo. Una coppia danneggiata o crimpata male potrebbe consentire il funzionamento del collegamento, ma solo a 100 Mbps. Una porta di uno switch Fast Ethernet produce lo stesso risultato.
Un bilocale Metà Anche in una rete moderna questo comportamento è sospetto. Confrontate la configurazione delle due estremità. Un’estremità forzata e l’altra lasciata in modalità di autonegoziazione possono causare errori, ritrasmissioni e throughput incoerente.
Identifica il driver, quindi confronta i contatori dell’interfaccia con le statistiche hardware:
sudo ethtool -i enp1s0
ip -s link show dev enp1s0
sudo ethtool -S enp1s0 | grep -Ei 'err|drop|crc|miss|fault|timeout'
I nomi restituiti da ethtool -S Questi errori variano a seconda del driver. Un aumento continuo degli errori CRC durante un trasferimento indica un problema al cavo, al connettore, al modulo o alla porta. Un singolo contatore che si ferma non è prova di un guasto effettivo: effettuate una misurazione, generate del traffico e poi confrontate nuovamente i valori.
Non forzare la velocità durante una sessione SSH
La forma ethtool -s Modifica le impostazioni del collegamento. La rinegoziazione può disconnettere immediatamente la sessione SSH. Utilizzala da remoto solo se disponi di una console KVM, IPMI o altro accesso di backup.
Se hai verificato che la negoziazione automatica è stata disabilitata per errore, questo comando la riabilita sull’interfaccia:
sudo ethtool -s enp1s0 autoneg on
Il seguente comando richiede una nuova negoziazione e potrebbe anche interrompere il collegamento:
sudo ethtool -r enp1s0
Non forzarlo alla cieca velocità 1000, duplex completo E spegnimento automaticoLa porta remota deve essere configurata in modo compatibile e alcuni standard richiedono la negoziazione automatica. Annotare l’output iniziale, modificare un singolo parametro e quindi verificare la connessione dalla console.
Un’impostazione applicata con ethtool -s La modifica potrebbe scomparire dopo un riavvio o un ripristino dell’interfaccia. La persistenza dipende da NetworkManager, systemd-networkd o dalla configurazione della distribuzione. Rendete la modifica permanente solo dopo aver identificato la causa e convalidato il test. Su Ubuntu, consultate l’articolo dedicato a… Netplan Spiega come preparare un rollback prima di intervenire sulla rete.
Esegui il test di velocità solo quando la connessione è stabile.
ethtool Indica la velocità del collegamento, non la larghezza di banda utilizzabile da un’applicazione. Una negoziazione full-duplex a 1 Gbps non garantisce che Samba, NFS o un download raggiungano tale velocità. Consente semplicemente di superare un’ovvia limitazione fisica.
Dopo la correzione, verificare che i contatori degli errori rimangano stabili e che il percorso utilizzi ancora l’interfaccia corretta:
sudo ethtool enp1s0
ip -s link show dev enp1s0
ip route get 1.1.1.1
È quindi possibile misurare la rete locale con iperf3 tra due macchine che controlli. Avvia il server su una macchina, poi il client sull’altra:
iperf3 -s
iperf3 -c 192.0.2.50
Se la connessione è stabile, negoziata alla velocità prevista e senza un aumento degli errori, procedere con il routing, il firewall, l’archiviazione e il servizio applicativo. Per verificare cosa è effettivamente in ascolto sulla macchina, utilizzare la guida su ss e porte aperte in Linux.
Là pagina man di ethtool descrive in dettaglio tutte le opzioni. sito ufficiale del progetto Va tuttavia notato che la loro manovrabilità dipende sempre dal pilota e dall’equipaggiamento.