Найти IP-адрес шлюза по умолчанию в Linux и Unix
5 способов найти IP-адрес шлюза или маршрутизатора в Linux
шлюз — это узел или маршрутизатор, который позволяет двум или более узлам с разными IP-адресами взаимодействовать друг с другом при подключении к одному и тому же маршрутизатору. Без шлюза устройства, подключенные к одному маршрутизатору, не смогут взаимодействовать друг с другом. Другими словами, шлюз действует как точка доступа для передачи сетевых данных из локальной сети в удаленную сеть. В этом руководстве мы увидим все возможные способы найти шлюз по умолчанию в Linux и Unix из командной строки.
Найти шлюз по умолчанию в Linux
Для просмотра IP-адреса шлюза в Linux доступны различные инструменты командной строки. Наиболее часто используемые инструменты: ip, ss и netcat. На примерах мы увидим, как проверить шлюз по умолчанию с помощью каждого инструмента.
1. Найдите шлюз по умолчанию с помощью команды ip.
Команда ip
используется для отображения и управления маршрутизацией, сетевыми устройствами, интерфейсами и туннелями в Linux.
Чтобы найти шлюз по умолчанию или IP-адрес маршрутизатора, просто запустите:
ip route
Или,
ip r
Или,
ip route show
Пример вывода:
default via 192.168.1.101 dev eth0 proto static metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.20 metric 100
Вы видели строку "по умолчанию через 192.168.1.101" в приведенном выше выводе? Это шлюз по умолчанию. Итак, мой шлюз по умолчанию — 192.168.1.101.
Вы можете использовать -4
с командой ip Route
, чтобы отобразить только шлюз IPv4:
ip -4 route
И используйте -6
, чтобы отобразить только шлюз IPv6:
ip -6 route
Как вы заметили в выводе, также отображаются IP-адрес и сведения о подсети. Если вы хотите отобразить ТОЛЬКО шлюз по умолчанию и исключить все остальные сведения из вывода, вы можете использовать команду awk
с ip Route
, как показано ниже.
Чтобы найти IP-адрес шлюза по умолчанию с помощью ip Route
и grep
, запустите:
Чтобы распечатать IP-адрес шлюза с помощью команд ip Route
и awk
, выполните:
ip route | awk '/^default/{print $3}'
Или,
ip route show default | awk '{print $3}'
Здесь будет указан только шлюз.
Пример вывода:
192.168.1.101
Найдите шлюз по умолчанию с помощью команды ip
Вы также можете использовать команду grep с ip маршрутом
для фильтрации шлюза по умолчанию.
ip route | grep default
default via 192.168.1.101 dev eth0 proto static metric 100
ip маршрут
— рекомендуемая команда для поиска IP-адреса шлюза по умолчанию в последних дистрибутивах Linux. Однако некоторые из вас, возможно, все еще используют устаревшие инструменты, такие как route
и netstat
. Старые привычки умирают с трудом, не так ли? В следующих разделах объясняется, как определить шлюз в Linux с помощью команд route
и netstat
.
2. Отображение IP-адреса шлюза по умолчанию с помощью команды маршрута.
Команда route
используется для отображения таблицы маршрутизации и управления ею в старых дистрибутивах Linux, например RHEL 6, CentOS 6.
Если вы используете более старые дистрибутивы Linux, вы можете использовать команду route
, чтобы отобразить шлюз по умолчанию.
Обратите внимание, что инструмент route
устарел и заменен командой ip Route
в последних дистрибутивах Linux. Если по какой-либо причине вы все еще хотите использовать route
, вам необходимо его установить.
Во-первых, нам нужно проверить, какой пакет предоставляет команду route
. Для этого выполните следующую команду в вашей системе на базе RHEL:
dnf provides route
Пример вывода:
net-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking tools
Repo : @System
Matched from:
Filename : /usr/sbin/route
net-tools-2.0-0.52.20160912git.el8.x86_64 : Basic networking tools
Repo : baseos
Matched from:
Filename : /usr/sbin/route
Как видно из приведенного выше вывода, пакет net-tools предоставляет команду route
. Итак, давайте установим его с помощью команды:
sudo dnf install net-tools
Теперь запустите команду route
с флагом -n
, чтобы отобразить IP-адрес шлюза или IP-адрес маршрутизатора в вашей системе Linux:
route -n
Пример вывода:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.101 0.0.0.0 UG 100 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
Отображение IP-адреса шлюза по умолчанию с помощью команды маршрута
Как вы видите в приведенном выше выводе, IP-адрес шлюза — 192.168.1.101. Вы также увидите две буквы "UG" в разделе «Флаги». Буква U обозначает интерфейс UP, а G означает шлюз.
3. Просмотр IP-адреса шлюза с помощью команды netstat.
Netstat выводит информацию о сетевой подсистеме Linux. Используя инструмент netstat, мы можем печатать сетевые подключения, таблицы маршрутизации, статистику интерфейсов, маскарадные соединения и членство в многоадресной рассылке в системах Linux и Unix.
Netstat является частью пакета net-tools, поэтому убедитесь, что вы установили его в своей системе Linux. Следующие команды устанавливают пакет net-tools в системах на базе RHEL:
sudo dnf install net-tools
Чтобы распечатать IP-адрес шлюза по умолчанию с помощью команды netstat
, выполните:
netstat -rn
Пример вывода:
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.101 0.0.0.0 UG 0 0 0 eth0
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Просмотр IP-адреса шлюза с помощью команды netstat
Вывод команды netstat
такой же, как вывод команды route
. Согласно приведенному выше выводу, IP-адрес шлюза — 192.168.1.101, а UG означает, что сетевой адаптер, связанный со шлюзом, — UP, а G указывает шлюз,
Обратите внимание, что netstat
также устарел, и вместо netstat рекомендуется использовать команду "ss
".
4. Распечатайте IP-адрес шлюза по умолчанию или IP-адрес маршрутизатора с помощью команды маршрутизации.
routel — это сценарий для вывода списка маршрутов в красивом формате вывода. Сценарий маршрута будет перечислять маршруты в формате, который некоторым может показаться более простым для интерпретации, чем эквивалент списка ip Route
.
Сценарий маршрута также является частью пакета net-tools.
Чтобы распечатать IP-адрес шлюза или маршрутизатора по умолчанию, запустите сценарий маршрутизации без каких-либо флагов, как показано ниже:
routel
Пример вывода:
target gateway source proto scope dev tbl
default 192.168.1.101 static eth0
172.17.0.0/ 16 172.17.0.1 kernel linkdocker0
192.168.1.0/ 24 192.168.1.20 kernel link eth0
127.0.0.0/ 8 local 127.0.0.1 kernel host lo local
127.0.0.1 local 127.0.0.1 kernel host lo local
127.255.255.255 broadcast 127.0.0.1 kernel link lo local
172.17.0.1 local 172.17.0.1 kernel hostdocker0 local
172.17.255.255 broadcast 172.17.0.1 kernel linkdocker0 local
192.168.1.20 local 192.168.1.20 kernel host eth0 local
192.168.1.255 broadcast 192.168.1.20 kernel link eth0 local
::1 kernel lo
::/ 96 unreachable lo
::ffff:0.0.0.0/ 96 unreachable lo
2002:a00::/ 24 unreachable lo
2002:7f00::/ 24 unreachable lo
2002:a9fe::/ 32 unreachable lo
2002:ac10::/ 28 unreachable lo
2002:c0a8::/ 32 unreachable lo
2002:e000::/ 19 unreachable lo
3ffe:ffff::/ 32 unreachable lo
fe80::/ 64 kernel eth0
::1 local kernel lo local
fe80::d085:cff:fec7:c1c3 local kernel eth0 local
Распечатайте IP-адрес шлюза по умолчанию или IP-адрес маршрутизатора с помощью команды маршрутизации
Чтобы напечатать только шлюз по умолчанию, запустите маршрут с помощью grep
, как показано ниже:
routel | grep default
default 192.168.1.101 static eth0
5. Найдите шлюз из файлов конфигурации Ethernet.
Если у вас настроен статический IP-адрес в вашей системе Linux или Unix, вы можете просмотреть IP-адрес шлюза или маршрутизатора по умолчанию, просмотрев файлы конфигурации сети.
В системах на базе RPM, таких как Fedora, RHEL, CentOS, AlmaLinux и Rocky Linux, конфигурация сетевой карты (сокращенно NIC) хранится в /etc/sysconfig/network-scripts. /
каталог.
Найдите имя сетевой карты:
ip link show
Пример вывода:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0@if5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether d2:85:0c:c7:c1:c3 brd ff:ff:ff:ff:ff:ff link-netnsid 0
Имя сетевой карты — eth0. Итак, давайте откроем конфигурацию сетевой карты этого файла сетевой карты:
cat /etc/sysconfig/network-scripts/ifcfg-eth0
Пример вывода:
DEVICE=eth0
ONBOOT=yes
UUID=eb6b6a7c-37f5-11ed-a59a-a0e70bdf3dfb
BOOTPROTO=none
IPADDR=192.168.1.20
NETMASK=255.255.255.0
GATEWAY=192.168.1.101
DNS1=8.8.8.8
Как вы видите выше, IP-адрес шлюза — 192.168.1.101
.
В Debian, Ubuntu и их производных все файлы конфигурации сети хранятся в каталоге /etc/network/
.
cat /etc/network/interfaces
Пример вывода:
auto ens18
iface ens18 inet static
address 192.168.1.150
netmask 255.255.255.0
gateway 192.168.1.101
dns-nameservers 8.8.8.8
Обратите внимание, что этот метод должен работать только в том случае, если IP-адрес настроен вручную. Для сети с поддержкой DHCP вам необходимо следовать предыдущим 4 методам.
Заключение
В этом руководстве мы перечислили 5 различных способов найти шлюз по умолчанию в операционных системах Linux и Unix. Мы также включили примеры команд для отображения IP-адреса шлюза/маршрутизатора в каждом методе. Надеюсь это поможет.