Uma taxa de transferência limitada a cerca de 90 Mbps em uma placa de rede Gigabit não se deve necessariamente ao servidor, ao Samba ou ao firewall. O link Ethernet pode simplesmente ter negociado uma conexão de 100 Mbps. Um cabo defeituoso, uma porta de switch com capacidade limitada ou uma configuração duplex inconsistente são suficientes para limitar toda a conexão.
ettool Ele lê os parâmetros expostos pelo driver de rede: velocidade, duplex, autonegociação, presença de link e contadores de hardware. Eu começo com essas informações antes de modificar a configuração de IP ou executar um teste de velocidade. A maioria dos controles abaixo são somente leitura.

Identifique a interface Ethernet que está sendo usada.
Não assuma que a interface seja chamada eth0Uma máquina moderna costuma usar um nome como enp1s0, eno1 Ou ens18Comece exibindo as interfaces e a rota usada para sair:
link breve de IP
ip route get 1.1.1.1
O segundo comando indica em particular desenvolvedor E fonteNeste exemplo, dev enp1s0 Designa a interface a ser controlada com ettoolO tutorial sobre Endereço IP no Linux detalha os estados ACIMA, Abaixar_para_cima e os endereços correspondentes.
Se a falha envolver um cabo físico, descarte interfaces de loopback, bridges do Docker, túneis VPN e interfaces virtuais. Em uma máquina virtual, ettool Às vezes, descreve apenas a placa virtual. A negociação propriamente dita ocorre no host ou no switch.
Instale o ethtool sem mexer na rede.
O pacote geralmente tem o mesmo nome que o comando. Sua instalação não altera as configurações da placa.
sudo apt update
sudo apt install ethtool
sudo dnf install ethtool
sudo pacman -S ethtool
Em seguida, verifique a versão e a ajuda disponíveis na sua distribuição:
ethtool --versão
ethtool --ajuda
ettool Depende do driver e do hardware. Uma opção presente na ajuda pode permanecer indisponível em uma placa virtual, um adaptador USB ou um driver que não exponha a função.
Velocidade de leitura, duplex, autonegociação e status da conexão
Execute o comando na interface identificada. Privilégios elevados permitem obter todas as informações fornecidas pelo driver:
sudo ethtool enp1s0
Para um diagnóstico inicial, concentre-se em quatro linhas:
- Velocidade : velocidade atualmente negociada, por exemplo
1000Mb/s. - Dúplex :
Completoé o valor esperado em uma conexão Ethernet moderna. - Autonegociação : indica se a placa está negociando recursos com a porta remota.
- Link detectado : confirma a presença do suporte físico.
Você pode extrair essas linhas para uma leitura rápida:
sudo ethtool enp1s0 | grep -E 'Velocidade|Duplex|Autonegociação|Link detectado'
Assista também Modos de link suportados, Modos de link anunciados E Modos de link anunciados pelo parceiro de linksA placa de rede, sua configuração e a porta remota devem compartilhar pelo menos um modo. Se a placa anunciar velocidades Gigabit, mas o parceiro oferecer apenas 100 Mbps, a velocidade negociada permanecerá em 100 Mbps.
O que você deve verificar quando o link detectado não aparece?
Link detectado: não Priorize o problema em relação ao endereço IP, DNS e portas TCP. Primeiro, verifique o estado conforme visto pelo kernel e pela operadora:
link ip mostrar dispositivo enp1s0
gato /sys/class/net/enp1s0/operstate
cat /sys/class/net/enp1s0/carrier
Um valor zero Em operadora Isso significa que o kernel não detecta uma conexão física. Teste outro cabo que você sabe que está funcionando e, em seguida, outra porta do switch. Verifique também se a porta não está desativada administrativamente e se o adaptador USB ou a placa de rede está recebendo energia.
Em um computador com várias portas idênticas, a opção de identificação pode fazer com que o LED da porta pisque por dez segundos, caso o driver a suporte:
sudo ethtool -p enp1s0 10
Por fim, verifique as mensagens do kernel relacionadas à interface. Elas podem indicar perda de conexão repetida, firmware ausente ou reinicialização do driver:
sudo dmesg -T | grep -Ei 'enp1s0|link|firmware|timeout'
sudo jornalctl -k -b | grep -Ei 'enp1s0|link|firmware|timeout'
O guia para mensagens do dmesg e do kernel Ajuda a reordenar esses erros na inicialização.
Entendendo uma conexão bloqueada em 100 Mbps ou em half-duplex
Um cartão Gigabit negociado em 100 Mb/s É recomendável uma verificação física antes de qualquer otimização de software. O Gigabit Ethernet utiliza todos os quatro pares do cabo. Um par danificado ou mal crimpado pode permitir que a conexão funcione, mas apenas a 100 Mbps. Uma porta de switch Fast Ethernet produz o mesmo resultado.
Um duplex Metade Isso também é suspeito em uma rede moderna. Compare a configuração das duas extremidades. Uma extremidade forçada e a outra deixada em autonegociação podem causar erros, retransmissões e taxa de transferência inconsistente.
Identifique o driver e, em seguida, compare os contadores da interface com as estatísticas de hardware:
sudo ethtool -i enp1s0
ip -s link mostrar dispositivo enp1s0
sudo ethtool -S enp1s0 | grep -Ei 'err|drop|crc|miss|fault|timeout'
Os nomes retornados por ethtool -S Esses erros variam dependendo do driver. Um aumento contínuo nos erros de CRC durante uma transferência indica um problema no cabo, conector, módulo ou porta. Um único contador que para de funcionar não comprova uma falha real: faça uma leitura, gere algum tráfego e compare novamente.
Não force a velocidade durante uma sessão SSH.
A forma ethtool -s Modifica as configurações da conexão. A renegociação pode desconectar sua sessão SSH imediatamente. Use-a remotamente somente se você tiver um console KVM, IPMI ou outro acesso de backup.
Se você confirmou que a negociação automática foi desativada por engano, este comando a reativa na interface:
sudo ethtool -s enp1s0 autoneg ativado
O comando a seguir requer uma nova negociação e também pode romper a conexão:
sudo ethtool -r enp1s0
Não force a barra às cegas. velocidade 1000, duplex completo E negação automática desativadaA porta remota deve ser configurada de forma compatível, e alguns padrões exigem negociação automática. Observe a saída inicial, modifique um único parâmetro e, em seguida, verifique a conexão a partir do console.
Uma configuração aplicada com ethtool -s A alteração pode desaparecer após uma reinicialização ou redefinição da interface. A persistência depende do NetworkManager, do systemd-networkd ou da configuração da distribuição. Só torne a alteração permanente após identificar a causa e validar o teste. No Ubuntu, consulte o artigo dedicado a… Netplan Explica como preparar um rollback antes de acessar a rede.
Teste a velocidade somente quando a conexão estiver estável.
ettool Exibe a velocidade da conexão, não a largura de banda utilizável de um aplicativo. Uma negociação full-duplex de 1 Gbps não garante que o Samba, o NFS ou um download atingirão essa velocidade. Ela simplesmente permite contornar uma limitação física óbvia.
Após a correção, verifique se os contadores de erros permanecem estáveis e se a rota ainda utiliza a interface correta:
sudo ethtool enp1s0
ip -s link mostrar dispositivo enp1s0
ip route get 1.1.1.1
Em seguida, você pode medir a rede local com iperf3 entre duas máquinas que você controla. Inicie o servidor em uma máquina e, em seguida, o cliente na outra:
iperf3 -s
iperf3 -c 192.0.2.50
Se a conexão estiver estável, negociada na velocidade esperada e sem aumento de erros, prossiga para o roteamento, firewall, armazenamento e serviço de aplicativos. Para verificar o que está realmente em execução na máquina, use o guia em ss e portas abertas no Linux.
Lá Página de manual do ethtool detalha todas as opções. O site oficial do projeto No entanto, é importante ressaltar que o manuseio dessas aeronaves sempre depende do piloto e do equipamento.