Přepínače, směrovače, dráty a rychlost
Jako obvykle byl internet na ubuntu rychlý, jak býval, dokud jsem potřeboval zapojit více počítačů do adsl trasy ležící poblíž. Po připojení všech počítačů a adsl routeru k přepínači jsem si všiml, že na jednom z PC (Ubuntu 8.04) se internet opravdu zpomalil. Zbytek 2 počítačů, jeden na Ubuntu 8.10 a druhý na Ubuntu 8.04, měl internet v pořádku. Tento počítač s pomalým internetem byl také nejstarší ze 3 . Po kontrole všeho bylo jasné, že problém souvisí s ethernetem.
Problém nastává, když switch/router nebo jakýkoli hardware není schopen zvládnout vysoké rychlosti a přenosy v duplexním režimu. K nápravě tohoto problému lze použít příkaz ethtool ke změně nastavení síťového rozhraní tak, aby se snížily optimální hodnoty, které síťová infrastruktura dokáže zpracovat.
V tomto případě se ukázalo, že řešením je nastavení rychlosti ethernetu na 10 mp/s a vypnutí automatického vyjednávání.
sudo ethtool -s eth0 duplex full speed 10 autoneg off
Můžete také zkusit nastavit duplex na polovinu.
Kromě toho může být připojení k internetu pomalé z mnoha důvodů, jako je problém s hardwarem, stejná IP adresa 2 strojům, problémy s IPv6 atd.
Nejprve můžete zkontrolovat, zda problém skutečně souvisí s kabely přepínače/ethernetu pomocí příkazu ping na váš router. Ve většině případů by doba pingu routeru měla být kratší než 1 ms
$ ping 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_req=1 ttl=254 time=0.679 ms 64 bytes from 192.168.1.1: icmp_req=2 ttl=254 time=0.775 ms
Pokud je doba pingu v porovnání s touto hodnotou velmi vysoká, pak je to určitě problém se síťovým hardwarem nebo konfigurací.
Pokud výše uvedený příkaz ethtool nevyřeší problém s rychlostí, může být problém s ethernetovými kabely nebo samotným přepínačem. Takže je musíte zkusit vyměnit a zkontrolovat.
Pokud výše uvedený příkaz vyřeší problém a chcete jej spustit při každém spuštění systému, přidejte jej do souboru " /etc/rc.local", aby se spustil při každém spuštění.
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. ethtool -s eth0 duplex full speed 10 autoneg off exit 0
Tento problém není specifický pouze pro ubuntu. Může k tomu dojít na jakémkoli systému, jako je Windows, pokud síťové komponenty nejsou schopny zvládnout velké rychlosti.
Všimněte si také, že použití výše uvedeného příkazu má nevýhodu, že omezí rychlost přenosu souborů mezi místními sítěmi na 10 mps. Takže i když váš router a přepínač může podporovat až 100 mp/s, rychlost přenosu souborů je omezená.