ip route to narzędzie z pakietu iproute2, które zarządza tablicą routingu jądra Linuksa. Mówiąc po ludzku: decyduje, którędy pakiety mają wyjść z Twojej maszyny — przez którą bramę i przez którą kartę sieciową. Używasz go, gdy chcesz sprawdzić, dlaczego serwer nie widzi internetu, dodać trasę do konkretnej podsieci albo podejrzeć, jak jądro pokieruje ruch do danego adresu. To następca starego route, którego dziś już nie powinieneś używać.
Składnia i najważniejsze opcje
Podstawowa forma: ip route [show|add|del|replace|get|flush] [CEL] [via BRAMA] [dev IFACE]
show— wyświetla trasy (domyślnie z tablicy main); samoip routerobi to samo.add— dodaje nową trasę do tablicy routingu.del— usuwa istniejącą trasę.replace— dodaje trasę albo nadpisuje istniejącą (bezpieczniejsze niż del+add).get CEL— pyta jądro, którędy faktycznie poleci pakiet do danego adresu.via BRAMA— adres routera (next-hop), przez który ma iść ruch.dev IFACE— wymusza wyjście przez konkretny interfejs, np.eth0.metric N— priorytet trasy; niższa wartość = trasa preferowana, gdy jest kilka pasujących.
Przykłady użycia
ip route— pokazuje całą tablicę routingu; pierwsza liniadefault via ...to Twoja brama domyślna.ip route get 8.8.8.8— sprawdza, przez którą bramę i interfejs pakiet poleci do Google DNS. Świetne do szybkiej diagnozy.ip route add 192.168.50.0/24 via 192.168.1.1 dev eth0— dodaje trasę do podsieci192.168.50.0/24przez wskazaną bramę.ip route add default via 192.168.1.1— ustawia bramę domyślną (gdy maszyna jej nie ma, np. po ręcznej konfiguracji).ip route del 192.168.50.0/24— usuwa wcześniej dodaną trasę, gdy przestała być potrzebna.
Częste błędy i pułapki
Najczęstszy zgrzyt: RTNETLINK answers: Operation not permitted — zapomniałeś sudo. Modyfikacja routingu wymaga roota. Drugi klasyk: Network is unreachable przy add oznacza, że adres bramy nie leży w żadnej bezpośrednio podpiętej podsieci — najpierw musi istnieć trasa do samej bramy.
Pamiętaj, że zmiany przez ip route są ulotne — znikają po restarcie. Trwałą konfigurację robisz w narzędziu danej dystrybucji: Netplan (Ubuntu), NetworkManager (nmcli) na Fedorze/RHEL, albo /etc/network/interfaces na starszym Debianie. Dla IPv6 używasz ip -6 route — sama ip route pokazuje tylko IPv4. I uważaj na flush: ip route flush table main potrafi w sekundę odciąć Ci zdalny serwer od sieci, łącznie z Twoim SSH.
Powiązane komendy: ip addr, ip link, ip neigh, ping, traceroute, ss, a z dawnej epoki route i netstat -r.