Настройка сети в линукс debian

Sysadminium

Настройка сети — это один из важнейших навыков системного администрирования, и в этой статье мы научимся настраивать сеть на Debian 11.

Получение информации о сетевых интерфейсах

Так как в предыдущем уроке мы научились пользоваться и устанавливать sudo на debian, то для административных действий теперь будем использовать эту утилиту. А настройка сети — это административное действие на любой системе, в том числе и на Debian.

Определить какие интерфейсы есть у вашего сервера поможет утилита lshw. Но её предварительно нужно установить с помощью следующей команды:

Эта утилита предназначена для определения железа вашего сервера. Например, с её помощью можно посмотреть какой на сервере процессор или оперативная память. Используя параметр -С network получим информацию только по сетевым устройствам:

$ sudo lshw -C network *-network description: Ethernet controller product: Virtio network device vendor: Red Hat, Inc. physical id: 12 bus info: pci@0000:00:12.0 version: 00 width: 64 bits clock: 33MHz capabilities: msix bus_master cap_list rom configuration: driver=virtio-pci latency=0 resources: irq:11 ioport:e0a0(size=32) memory:fea52000-fea52fff memory:fe408000-fe40bfff memory:fea00000-fea3ffff *-virtio2 description: Ethernet interface physical id: 0 bus info: virtio@2 logical name: ens18 serial: 2a:75:9e:4d:1d:fa capabilities: ethernet physical configuration: autonegotiation=off broadcast=yes driver=virtio_net driverversion=1.0.0 ip=172.28.90.31 link=yes multicast=yes

Из этого вывода вы можете получить следующую информацию:

  • logical name: ens18 — имя сетевого интерфейса;
  • serial: 2a:75:9e:4d:1d:fa — mac-адрес;
  • ip=172.28.90.31 — ip-адрес;
  • и другое.

Утилита lshw в основном используется, чтобы узнать имя и возможности сетевой карты. А для получения информации о mac и ip адресах нужно использовать другую утилиту — ip. Эта утилита командной строки не так проста, команда ip имеет множество подкоманд, которые мы изучим в этой статье. И первая подкоманда это address — она означает, что работать мы будем с ip-адресами. У подкоманды address, тоже есть свои подкоманды, например подкоманда show покажет информацию о назначенных ip-адресах. В самом конце команды можно указать имя сетевого интерфейса, чтобы получить информацию только по нему, а не по всем сетевым интерфейсам в системе.

Все эти подкоманды можно сокращать, например address = addr, show = sh. Но пока не будем этого делать, так как вначале нужно их запомнить.

Для того чтобы посмотреть, какие настройки использует сетевой интерфейс ens18 выполним команду ip address show ens18 :

$ ip address show ens18 2: ens18: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 2a:75:9e:4d:1d:fa brd ff:ff:ff:ff:ff:ff altname enp0s18 inet 172.28.90.31/20 brd 172.28.95.255 scope global dynamic ens18 valid_lft 258476sec preferred_lft 258476sec inet6 fe80::2875:9eff:fe4d:1dfa/64 scope link valid_lft forever preferred_lft forever

Здесь мы также видим mac и ip адрес с маской подсети.

Этот ip адрес был получен по dhcp.

Читайте также:  Замерить скорость дисков linux

Настройка IP адреса

Чтобы изменить ip адрес на какой-нибудь другой, нужно отредактировать конфигурационный файл «/etc/network/interfaces». Но вначале глянем на него с помощью команды cat:

$ cat /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug ens18 iface ens18 inet dhcp

Посмотрим внимательнее на блок настроек для интерфейса ens18:

  • # The primary network interface — это комментарий, так как в начале строки стоит символ #. Он ни на что не влияет, просто подсказывает нам, что следующие за ним настройки редактируют основной сетевой интерфейс (ens18).
  • allow-hotplug ens18 — разрешает горячее подключение для интерфейса ens18. То есть этот сетевой интерфейс будет включен при старте системы.
  • iface ens18 inet dhcp — интерфейс ens18 будет получать настройки с помощью dhcp.

Чтобы назначить другой статический ip адрес нужно отредактировать этот блок в файле, например с помощью текстового редактора nano.

$ sudo nano /etc/network/interfaces ***** пропущу другие блоки настроек ***** # The primary network interface allow-hotplug ens18 iface ens18 inet static address 172.28.90.77/20 gateway 172.28.80.1

То есть меняем dhcp на static и ниже указываем адрес интерфейса (address) и адрес шлюза по умолчанию (gateway).

Дальше нужно перезагрузить сетевую подсистему чтобы применились изменения. Для этого можно воспользоваться следующими командами:

  • $ sudo systemctl restart networking.service — перезагружает службу отвечающую за сеть на сервере, но если сетевых интерфейсов несколько, то все они на время окажутся недоступными. Также эта команда у меня не всегда срабатывала, то есть после перезапуска службы, интерфейс оказывался без назначенного ip адреса. Поэтому я не рекомендую этот способ.
  • $ sudo ifdown ens18; sudo ifup ens18 — это две команды, которые выполнятся по очереди. Первая команда (ifdown ens18) отключит сетевой интерфейс, а вторая (ifup ens18) включит. Эта команда меня ещё не подводила.
  • $ sudo reboot — эта команда перезагрузит сервер полностью. После чего сервер загрузится уже с новыми сетевыми настройками.

В любом случае вы отвалитесь от сервера, так как были подключены к нему по ssh по другому ip адресу. Вам придется заново подключиться к серверу, но использовать уже новый ip адрес.

Настройка DNS сервера

Чтобы указать серверу, какой ему использовать dns сервер, нужно редактировать конфигурационный файл /etc/resolv.conf. Давайте взглянем на него:

$ cat /etc/resolv.conf nameserver 172.28.80.1

Этот адрес был получены от dhcp сервера. Но его можно изменить прям в этом файле:

$ sudo nano /etc/resolv.conf nameserver 77.88.8.8

После редактирования этого файла ничего перезагружать не нужно, настройки подхватятся на лету. Проверить это можно с помощью команды nslookup, которая определит ip адрес по имени используя указанный dns сервер.

$ nslookup ya.ru Server: 77.88.8.8 Address: 77.88.8.8#53 Non-authoritative answer: Name: ya.ru Address: 87.250.250.242 Name: ya.ru Address: 2a02:6b8::2:242

Как видим, был использован dns от Яндекса — 77.88.8.8. Именно его мы внесли в конфиг /etc/resolv.conf.

Утилита IP

Теперь более подробно разберем утилиту ip.

Читайте также:  Linux запуск jar файла

Работая с ней вы используете различные подкоманды. Все их рассматривать не будем. Разберём лишь некоторые из них:

  • address — позволяет назначать и удалять ip адреса, просматривать их и тому подобное.
  • link — можно включить или выключить сетевой интерфейс, посмотреть список интерфейсов и их mac адреса.
  • neigh — можно добавить или удалить mac адрес из arp таблицы, или полностью её очистить.
  • route — позволяет создавать новые маршруты и удалять их, а также просматривать уже созданные маршруты.

У этих подкоманд есть свои подкоманды. Например, чтобы посмотреть информацию используется общая подкоманда show:

# ip address show - посмотреть ip адреса # ip link show - посмотреть физические устройства # ip neigh show - посмотреть arp таблицу # ip route show - посмотреть таблицу маршрутизации

Во всех случаях можно указывать конкретный интерфейс:

Помимо просмотра информации можем настраивать сеть, например можно добавить или удалить ip адрес на интерфейсе. Но в отличии от правки конфигурационного файла, изменённый ip адрес этим способом будет действовать только до перезагрузки сервера:

# ip address add 192.168.0.44/24 dev ens18 - добавить ip для ens18 # ip address del 192.168.0.44/24 dev ens18 - удалить ip для ens18

Также можем добавлять или удалять маршруты. Такие маршруты тоже будут действовать только до перезагрузки сервера:

# ip route add 192.168.5.0/24 via 192.168.0.10 - добавить маршрут # ip route delete 192.168.5.0/24 - удалить маршрут

Можем включать и выключать сетевые интерфейсы:

# ip link set ens18 up - включить # ip link set ens18 down - выключить

Кстати, выключение и включение сетевых интерфейсов с помощью ip link set не перечитывают настройки из /etc/network/interfaces, поэтому если вы что-то там изменили, то выполняйте ifdown и ifup.

Можем очистить arp таблицу:

Если хотите, можете почитать мануал по команде ip. На русском языке он доступен тут.

Добавление статических маршрутов

Чтобы добавленный маршрут остался после перезагрузки его нужно вписать в уже знакомый файл /etc/network/interfaces в таком виде:

up ip route add 192.168.5.0/24 via 192.168.0.10

То есть в конце файла, с новой строки пишите up, а дальше команду с помощью которой вы создаете маршрут.

Итог

Вот мы и прошли тему «Настройка сети Debian«.

Мы познакомились с командами lshw, и ip. Научились настраивать сеть с помощью конфигурационных файлов /etc/network/interfaces и /etc/resolv.conf, а также с помощью команды ip. Научились включать и выключать сетевые интерфейсы с помощью команд ifup и ifdown.

Настраивая сеть мы теперь можем указать ip адрес, адрес шлюза, адрес dns сервера, а также можем создать отдельные маршруты. Это не все сетевые настройки, которые можно сделать, их намного больше, можно даже создать свой роутер на Debian, но это выходит за рамки этого курса.

Источник

Настройка сети в Debian

Изображение баннера

Настройка сетевого подключения это важнейший шаг при работе с Debian, который может вызвать у новичка много вопросов.

В этой статье вы можете найти ответы на некоторые из них.

Изучить файл с перечнем задействованных интерфейсов можно с помощью команды

Далее настройка зависит от версии Debian, которую Вы используете.

Читайте также:  Trash can on linux

На новых версиях Debian. Например на Debian 9 используется Iproute2

Если Вам нужно настроить сеть на старой версии Debian с помощью утилит ifconfig пролистайте страницу вниз или перейдите по ссылке

Динамический IP c помощью dhclient

Включить автоматическое получение ip

Флаг -r flag explicitly releases the current lease, and once the lease has been released, the client exits.

Например, можно сперва выполнить:

И затем получить свежий IP адрес используя DHCP

Аналогичную операцию можно проделать для какого-то определённоего интерфейса

sudo dhclient -r eth0
sudo dhclient eth0

Выключить автоматическое получение ip можно вытащив сетевой шнур и вставив обратно. Говорят, что должно сброситься.

Настройка сети с помощью Iproute2

Актуально для Debian 9 и выше и других современных .deb дистрибутивов

Установить iproute2 можно командой

sudo apt install -y iproute2

Чтобы получить список интерфейсов нужно воспользоваться командой

Названия интерфейсов может отличаться от привычных eth0, eth1 и тому подобных.

Для примера будем считать, что интерфейс отобразился как enp0s25

Iproute2: Задать статический IP

Пример присвоения интерфейсу enp0s25 IP адреса 10.0.2.16/24

sudo ip addr add 10.0.2.16/24 dev enp0s25

Включить / Выключить сетевой интерфейс

ВКЛЮЧИТЬ интерфейс enp0s25:

ip link set dev enp0s25 up

ВЫКЛЮЧИТЬ интерфейс enp0s25:

ip link set dev enp0s25 down

Gateway

По-русски Gateway называется Сетевой шлюз или просто шлюз

Удалить старый сетевой шлюз

Добавление нового сетевого шлюза

route add default gw IP_Address

Если старых шлюзов много, то нужно указать какой конкретно IP с какого интерфейса удалить

route delete default gw 10.0.0.1 eth0

Для создания тоже можно указать конкретные данные

route add default gw 192.168.0.1 eth0

netmask

default via 10.6.0.1 dev eth0
10.6.0.0/8 dev eth0 src 10.6.1.68

ip address del 10.6.1.100/8 dev eth0

ip address add 10.6.1.68/22 dev eth0

Настройка сети с помощью ifconfig

ifconfig входит в состав net-tools, поэтому если он недоступен по умолчанию всегда можно установить командой

Получить информацию об имеющихся интерфейсах на старых версиях Debian можно с помощью команды

Изучите вывод этой команды и посмотрите какой интерфейс Вам доступен. Обычно это eth0.

DHCP

Если нужно получать ip автоматически

Если нужно задать статический ip

iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

Чтобы изменения пришли в силу нужно выполнить

Перезапустить/остановить/запустить сетевые службы

DNS

Настроить DNS можно через файл /etc/resolv.conf

При установке нужно было запомнить какие сетевые интерфейсы вам предлагает сконфигурировать Debian. Это сделать очень просто, они называются eth0, eth1 и так далее.

Поэтому для включения сетевого интерфейса, в приведённой выше команде нужно менять 0 на 1 и т.д.

Однако, если вы будете устанавливать другие Unix-подобные дистрибутивы, например OpenBSD то сетевые интерфейсы будут называться более разнообразно (msk0, sk0 и др.)

Для того, чтобы с этим не возникало сложностей — полезно записывать то, что предлагается сконфигурировать при установке дистрибутива.

netstat

Посмотреть список активных соединений по сети

Открытые порты

Посмотреть список открытых портов

traceroute

Чтобы установить traceroute выполните

sudo apt-get install traceroute

Источник

Оцените статью
Adblock
detector