Большинство админов знают про ip ровно две команды —
ip a и ip r, а дальше ifconfig по старой памяти. Держи 10 команд, которые покажут то, чего не видно в ip a: скрытые маршруты VPN, дропы на интерфейсе и мёртвый шлюз. Проверил на iproute2 6.1.1️⃣ Вся сеть одним экраном, в цвете:
ip -br -c a
Интерфейс, состояние и адреса — по строке на каждый.
-br работает и с link.2️⃣ Куда реально уйдёт пакет:
ip route get 8.8.8.8
# какая запись в таблице сработала
ip route get fibmatch 8.8.8.8
Покажет интерфейс, шлюз и source-адрес. Незаменимо, когда маршрутов много и непонятно, какой победил.
3️⃣ Маршруты, которых нет в
ip route:
ip rule
ip route show table all
ВАЖНО:
ip route показывает только таблицу main. wg-quick с AllowedIPs = 0.0.0.0/0 уводит дефолт в таблицу 51820, а ip route делает вид, что всё как раньше.4️⃣ Сменить шлюз без риска потерять сервер:
sudo ip route replace default via <gw>
Атомарно: нет окна без маршрута, как между
del и add. Упадёт с ошибкой — старый маршрут останется на месте.5️⃣ Дропы и ошибки на интерфейсе:
ip -s link show <iface>
# двойной -s — ошибки с разбивкой: crc, frame, fifo
ip -s -s link show <iface>
Растут errors или dropped — копай в кабель, драйвер или буферы, а не в приложение.
6️⃣ Жив ли шлюз на L2:
ip neigh show dev <iface>
REACHABLE и STALE — норма. Шлюз висит в FAILED или INCOMPLETE — он не отвечает на ARP, и пинговать дальше бесполезно.7️⃣ Сеть в прямом эфире:
ip -ts monitor link route
Каждое изменение с меткой времени: упал линк, DHCP или VPN переписали маршрут. Оставь в tmux и лови, кто ломает сеть по ночам.
8️⃣ Отрезать IP без фаервола:
sudo ip route add blackhole 203.0.113.5/32
# проверить и убрать
ip route show type blackhole
sudo ip route del blackhole 203.0.113.5/32
Ответы на этот адрес уходят в никуда, TCP-сессия с ним не установится.
ip route get по нему вернёт Invalid argument — так ядро отвечает на blackhole, это не ошибка.9️⃣ IP интерфейса в скрипте без awk-акробатики:
ip -j -4 addr show dev <iface> \
| jq -r '.[0].addr_info[0].local'
-j отдаёт JSON: парсинг не сломается, когда поменяется формат вывода. Нужен пакет jq.🔟 Процесс без сети за две команды:
sudo ip netns add lab
sudo ip netns exec lab <command>
# убрать за собой
sudo ip netns del lab
В новом namespace только выключенный
lo. Удобно проверить, как приложение переживёт падение сети, не трогая хост.Всё, что меняешь через ip, живёт до перезагрузки. Постоянные настройки — в netplan, NetworkManager или systemd-networkd.
А какую из десяти ты уже держишь в алиасах?
❗️ Нравится формат? Ставь 👍
👉 Рубрика: #шпаргалка@LinuxSkill
#Linux #Networking #iproute2 #CheatSheet #SysAdmin #DevOps