Debian 10 настройка сети

Обновлено: 04.07.2024

Работа в сети является одной из самых важных не только для пользователя, но и для самой операционной системы. Чтобы все работало правильно нам необходимо настроить следующие параметры:

  • IP адрес и маска интерфейса
  • Маршрут или шлюз по умолчанию
  • DNS
  • Имя компьютера

Ну что же, проверим.

Определение состояния интерфейса

Чтобы работать в сети каждое устройство должно иметь сетевой адрес - IP адрес. Без него работа компьютера будет невозможна. IP адрес состоит из 4-х чисел, разделенных точками. Выглядит так: 192.168.1.1, 10.10.23.4, 172.16.0.100.

Адрес у всех компьютеров одинаковый или разный?

У всех он разный. Вместе с адресом всегда устанавливается и маска. Значение маски одинаково для всех сетевых устройств в твоей локальной сети, включая модемы, принтеры. Выглядит маска так: 255.255.255.0, 255.255.248.0. Значение зависит от того какую маску выберет администратор сети.

А для чего необходима маска?

Маска определяет количество сетевых устройств в твоей локальной сети. Например, маска 255.255.255.0 говорит нам, что в сети может быть 254 устройства (и у каждого свой адрес). Для начала проверим настройки сетевого интерфейса, через который и осуществляется связь с внешним миром (интернетом) - ifconfig :

Вывод команды ifconfig

Существует и другая команда - ip address show :

Вывод команды ip adress show

Вывод обеих команд немного отличается. Вторая команда ( ip address show ) выводит информацию обо всех установленных интерфейсах, в то время как первая команда ( ifconfig ) выводит информацию только о “поднятых” (в состоянии UP), то есть работающих в данный момент интерфейсах. Из вывода команд видно, что у нас 3 интерфейса:

  • lo - локальный петлевой интерфейс. Настраивается автоматически и служит для нормальной работы сетевого стека.
  • enp0s3 - Ethernet интерфейс (в некоторых системах отображается как eth)
  • enp0s8 - второй Ethernet интерфейс

А как получить информацию и о неработающих интерфейсах с помощью команды ifconfig ?

Для этого используйте опцию -a ( --all ) - ifconfig -a

В выводе команды также обращайте внимание на счетчики RX packets, TX packets. Если они равны 0, то интерфейс ничего не передает и не принимает, хотя и может быть в состоянии UP. К сожалению, IP адрес в выводах команд не указан, что говорит нам о том, что адрес не настроен.

Попробуем теперь настроить адрес и маску.

Ручная настройка IP адреса

Настроить все сетевые параметры можно 2-мя способами:

  • командами
  • редактированием конфигурационных файлов

При использовании команд все настройки удаляются после перезагрузки системы. Поэтому, если нет необходимости держать выставленные настройки в течении долгого времени, то лучше воспользоваться командами. Сейчас мы воспользуемся командами, а позже рассмотрим как редактировать сами файлы. Выглядит команда так - ifconfig название_интерфейса IP_адрес netmask маска .

Настроим следующие адреса для обоих интерфейсов:

Отображение настроенных адресов

Настройка и просмотр маршрута

Как узнать настроен или не настроен шлюз по умолчанию (маршрут по умолчанию)?

Для этого взглянем на таблицу маршрутизации - route :

Таблица маршрутиазции

Шлюз по умолчанию назначен

Но какой адрес необходимо указывать?

Обычно указывается адрес модема или маршрутизатора, подключенного к провайдеру. Чтобы удалить маршрут используйте del вместо add - route del default gw IP_адрес_шлюза .

Конечно. Для этого добавим новые маршруты в таблицу маршрутизации с помощью команды - route add -net IP_адрес_сети netmask маска_сети dev название_интерфейса .

Вот как выглядят настройки:

Добавление нового маршрута

Мы установили маршрут по умолчанию, но все равно интернет не работает. В чем причина?

Итак, приступим к настройке DNS.

Настройка и просмотр DNS

Для настройки адреса DNS сервера необходимо отредактировать файл /etc/resolv.conf . Открыв файл, запишем в нем следующее:

nameserver IP_адрес_DNS_сервера

Вот как выглядит запись у меня:

Настройки файла

Теперь попробуем проверить работает ли наш DNS сервер. Сделать это можно 2-мя командами: dig и nslookup :

Вывод команды dig


nslookup сайт :

Вывод команды nslookup

Перезагрузка и поднятие интерфейса

Проводя различные манипуляции с настройками интерфейсов может понадобится перезагрузить или выключить сам интерфейс. Иногда может понадобится перезагрузить всю сетевую службу. Ниже представлены команды для управления интерфейсами.

ifconfig название_интерфейса up

ifup название_интерфейса

ifconfig название_интерфейса down

ifdown название_интерфейса

Перезагрузка, остановка, запуск сетевой службы на Debian/Ubuntu:

/etc/init.d/networking restart

service networking restart

/etc/init.d/networking stop

service networking stop

/etc/init.d/networking start

service networking start

Перезагрузка, остановка, запуск сетевой службы на Red Hat/Fedora/CentOS:

/etc/init.d/network restart

service network restart

/etc/init.d/network stop

service network stop

/etc/init.d/network start

service network start

Настройка с помощью DHCP

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

Если в сети присутствует сервер, то достаточно выполнить команду dhclient . И все, что мы делали до этого вручную будет настроено автоматически.

Если вы обычный пользователь Linux или системный администратор, вам может потребоваться настроить сеть в вашей системе. В отличие от настольных систем, где вы можете использовать динамические конфигурации, вам придется выполнять определенные конфигурации на серверах в зависимости от вашей сетевой среды. Динамические конфигурации постоянно меняются после перезагрузки сервера, поэтому в некоторых случаях возникает необходимость иметь статические конфигурации, например, когда требуется удаленное администрирование сервера или когда на сервере запущено приложение или служба, требующая постоянного доступа. Итак, в этой статье мы объясним, как вы можете настроить базовую сеть в ОС Linux на основе Debian. Базовая настройка включает в себя настройку статического IP, шлюза, DNS и имени хоста.

Мы использовали ОС Debian 10 для описания процедуры, упомянутой в этой статье.

Просмотр текущей конфигурации сети

Чтобы просмотреть текущие настройки сети, выполните следующую команду в Терминале. Он покажет выходные данные для каждого интерфейса в отдельном разделе.


Вы также можете запустить команду ifconfig для просмотра IP-адреса.


Запустите приведенную ниже команду в Терминале, чтобы найти IP-адрес DNS-сервера:

Изменение конфигурации сети

Базовая конфигурация сети включает в себя настройку статического или динамического IP-адреса, добавление шлюза, информацию о DNS-сервере. Существуют разные способы настройки сети в ОС Debian.

Метод 1: Используйте команду ifconfig и route

В этом методе мы увидим, как настроить параметры сети. Однако помните, что эти настройки не будут постоянными. После перезагрузки системы настройки будут удалены.

1. Назначьте IP-адрес интерфейсу

Мы будем использовать ifconfig для назначения IP-адреса нашему сетевому интерфейсу. Ниже приведен синтаксис команды:

В следующем примере команда назначает IP-адрес 192.168.72.165 сетевому интерфейсу eth0. Маска сети составляет 24 (255.255.255.0) бит.


2. Установите шлюз по умолчанию

Шлюз по умолчанию - это адрес, используемый для связи с внешней сетью. Чтобы настроить шлюз по умолчанию, используйте следующий синтаксис команды:

В следующем примере я использую 192.68.72.2 в качестве адреса моего шлюза по умолчанию.


3. Настройте DNS-сервер

DNS-сервер разрешает доменное имя в IP-адрес, чтобы браузер мог загружать интернет-ресурсы. Чтобы настроить адрес сервера имен DNS, используйте следующий синтаксис команды:

В следующем примере я устанавливаю общедоступный IP-адрес DNS от Google в качестве адреса моих серверов имен, который равен 8.8.8.8.



После этого вы можете проверить свою конфигурацию, выполнив команду ifconfig следующим образом:

Удалить IP-адрес из сетевого интерфейса

Чтобы удалить IP-адрес из сетевого интерфейса, выполните следующую команду в терминале:

Метод 2: Измените настройки сети с помощью файла интерфейсов

В этом методе мы настроим постоянные параметры сети, которые ваша система запомнит даже после перезагрузки.Для этого нам нужно отредактировать файл / etc / network / interfaces с помощью любого текстового редактора. Для этого выполните в терминале следующую команду:

Затем добавьте в нее следующие строки:

Теперь нажмите Ctrl + O , а затем Ctrl + X , чтобы сохранить и выйдите из файла.


Обратите внимание, что адрес, маска сети и строка шлюза должны начинаться с пробела! В случае, если вы хотите динамически назначить адрес, используйте следующие строки:

Определение (DNS) серверов имен

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

Я добавляю сюда два сервера имен. Одним из них является адрес общедоступного DNS-сервера Google, а другим - IP-адрес моего маршрутизатора.

Теперь нажмите Ctrl + O , а затем Ctrl + X , чтобы сохранить и выйти из файла.


После этого вы можете проверить IP-адрес с помощью команды ip a или ifconfig .


Метод 3: Изменение конфигурации сети с помощью графического интерфейса Debian

В этом методе мы будем использовать графический способ настройки основных параметров сети.

Для этого нажмите кнопку Windows на клавиатуре, затем в строке поиска введите settings . Из появившихся результатов откройте Settings . Затем на левой боковой панели щелкните вкладку Network . После этого нажмите на значок шестеренки интерфейса, который вы хотите настроить.


Перейдите на вкладку IPv4 . Выберите Manual и введите IP-адрес, маску сети, шлюз и DNS.


Если вы хотите динамически назначить IP-адрес, выберите опцию Автоматически (DHCP) и введите информацию DNS.


Сделав это, нажмите Apply , чтобы сохранить изменения.

Настройка имени хоста

Как и IP-адрес, уникальное имя хоста также используется для распознавания системы в сети. Чтобы найти текущее имя хоста вашей системы, выполните следующую команду в Терминале:


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

Здесь я меняю имя хоста с Debian на Debian10.


Чтобы навсегда изменить имя хоста, вам нужно будет отредактировать файл имени хоста, расположенный по адресу / etc / hostname . Для этого введите приведенную ниже команду:


Этот файл содержит только имя хоста файла, измените старое имя на нужное имя, а затем нажмите Ctrl + O и Ctrl + X чтобы сохранить и выйти.

Некоторые другие полезные команды, которые могут вам понадобиться при настройке сети в ОС Debian:

С ее помощью можно проверить соединение между двумя системами в локальной или глобальной сети. Чтобы проверить подключение к устройству, введите ping, а затем IP-адрес или имя хоста этого устройства:

Arp используется для преобразования IP-адресов в адреса Ethernet. Чтобы напечатать таблицу arp, введите:

Route

Она используется для отображения таблицы маршрутизации системы Linux.

Преобразует имена хостов в IP-адреса и наоборот.

Чтобы найти IP для указанного домена:

Чтобы найти имя домена для указанного IP-адреса.

Включение и отключение интерфейса

Чтобы включить интерфейс, используйте:

Чтобы отключить интерфейс, используйте:

Вот и все! В этой статье мы объяснили, как настроить базовую сеть в ОС Debian. Мы обсудили различные методы, включая графический и командной строки. Вы можете выбрать тот, который вы найдете более простым и удобным.

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

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

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

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

На новых версиях 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.

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

$ sudo dhclient -r

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

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

Например, для eth0

sudo dhclient -r eth0
sudo dhclient eth0

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

и изучить вывод.

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

Актуально для Debian 9 и выше.

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

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

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

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

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 delete default

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

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

Узнать свою маску

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

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

apt-get install net-tools

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

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

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

iface eth0 inet dhcp

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

iface eth0 inet static
address 192.168.1.1
netmask 255.255.255.0

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

ifconfig wlan0 down

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

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

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

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

Команда ip используется для назначения адреса сетевому интерфейсу и/или конфигурирования параметров сетевого интерфейса в дистрибутивах Linux. Эта команда заменяет собой старую добрую и ныне устаревшую команду ifconfig в современных дистрибутивах Linux.

Команда ip может использоваться для следующих целей:

  • Узнать какие интерфейсы сконфигурированы в системе.
  • Запросить статус IP интерфейса.
  • Сконфигурировать локальный, Ethernet и другие интерфейсы.
  • Пометить интефейс как up или down.
  • Сконфигурировать или изменить статическую маршрутизацию или маршрутизацию по умолчанию.
  • Сконфигурировать туннель через IP.
  • Сконфигурировать содержимое ARP или NDISC кэша.
  • Назначить IP адресы, маршруты, подсети и другую IP информацию на интерфейс.

Синтаксис

Понимание синтаксиса OBJECTS в комманде ip

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

Объект Сокращенная форма Задача
link l Сетевое устройство.
address a, addr IP адрес на устройстве.
addrlabel addrl Управление метками для выбора адреса.
neighbour n, neigh Записи для ARP или NDISC кэшей.
route r Управление записямя таблицы маршрутизации.
rule ru Правила в базе политик маршрутизации.
maddress m, maddr Мультикаст адрес.
mroute mr Записи мультикастового кэша маршрутизации.
tunnel t Туннель через IP.
xfrm x Фреймворк для протокола IPsec.

Чтобы получить информацию о каждом из объектов используйте команду help следующим образом:

Предупреждение : команды описанные ниже должны выполняться с осторожностью, так как ошибка может привести к потере соединения с сервером. Вы должны быть особо аккуратны при работе в удаленной сессии по ssh.

Примеры использования команды ip

Не пугайтесь синтаксиса команды ip. Давайте сразу начнем с примеров.

Показать информацию обо всех сетевых интерфейсах

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

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:8b:46:9a brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::a00:27ff:fe8b:469a/64 scope link
valid_lft forever preferred_lft forever

Вы можете выбрать между IPv4 и IPv6 используя следующий синтаксис:

Также существует возможность вывести детали только об определенном сетевом интерфейсе:

Назначить интерфейсу IP адрес

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

Чтобы назначить адрес 192.168.1.200/255.255.255.0 на интерфейс eth0, введите:

Добавить широковещательный адрес на интерфейс

По умолчанию, команда ip не задает какой-либо широковещательный адрес до тех пор, пока это будет недвусмысленно указано. Таким образом следующий синтаксис задает широковещательный адрес ADDRESS:

Существует возможность использовать специальные символы + и - вместо широковещательного адреса указывая хостовую часть адреса. В этом примере добавим адрес 192.168.1.50 с маской 255.255.255.0 (/24) со стандартным широковещательным адресом и зададим название eth0Work на интерфейс eth0:

Вы можете задать лупбек адрес на лупбек интерфейсе lo следующим образом:

Удалить IP адрес с интерфейса

Синтаксис для удаления IPv4/IPv6 адреса следующий:

Чтобы удалить 192.168.1.200/24 с интерфейса eth0, введите:

Сбросить ряд IP адресов с интерфейса

Вы можете удалять IP адреса с интерфейса по одному, как показано выше. Однако команда flush может удалить набор адресов с интерфейса по указанному признаку. Например, вы можете удалить все адреса из частной сети 192.168.2.0/24 с помощью команды:

2: eth0 inet 192.168.2.201/24 scope global secondary eth0
2: eth0 inet 192.168.2.200/24 scope global eth0
*** Round 1, deleting 2 addresses ***
*** Flush is complete after 1 round ***

Вы можете выключить IP адрес на всех ppp (Point-to-Point) интерфейсах:

Еще один пример для всех Ethernet интерфейсов:

Как изменить состояние интерфейса на UP или DOWN

К примеру, чтобы положить интерфейс eth1, используйте:

А чтобы поднять этот же интерфейс:

Как изменить txqueuelen устройства

Вы можете установить длину очереди передачи устройства с помощью ifconfig или команды ip следующим образом:

В этом примере изменим txqueuelen со значения по умолчанию, равного 1000, на 10000 для интерфейса 10000:

Как изменить MTU устройства

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

Например, установим MTU устройства eth0 на 9000:

2: eth0: mtu 9000 qdisc pfifo_fast state UP qlen 1000
link/ether 00:08:9b:c4:30:30 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.10/24 brd 192.168.1.255 scope global eth1
inet6 fe80::208:9bff:fec4:3030/64 scope link
valid_lft forever preferred_lft forever

Показать соседей (arp кэш)

Пример вывода (часть информации скрыта):

74.xx.yy.zz dev eth1 lladdr 00:30:48:yy:zz:ww REACHABLE
10.10.29.66 dev eth0 lladdr 00:30:48:c6:0a:d8 REACHABLE
74.ww.yyy.xxx dev eth1 lladdr 00:1a:30:yy:zz:ww REACHABLE
10.10.29.68 dev eth0 lladdr 00:30:48:33:bc:32 REACHABLE
74.fff.uu.cc dev eth1 lladdr 00:30:48:yy:zz:ww STALE
74.rr.ww.fff dev eth1 lladdr 00:30:48:yy:zz:ww DELAY
10.10.29.65 dev eth0 lladdr 00:1a:30:38:a8:00 REACHABLE
10.10.29.74 dev eth0 lladdr 00:30:48:8e:31:ac REACHABLE

Последнее поле показывает состояние системы "определения недоступности соседа":

  • STALE - сосед существует, но, скорее всего недоступен, поэтому ядро попробует проверить это при первой ближайшей передаче.
  • DELAY - пакет был отправлен соседу в состоянии STALE и ядро ждет подтверждения.
  • REACHABLE - сосед существует и определенно доступен.

Добавить новую ARP запись

Например, добавить постоянную ARP запись для соседа 192.168.1.5 на устройстве eth0:

Состояние соседа Значение
permanent Состояние соседа занято навсегда и может быть удалено только администратором.
noarp Состояние соседа валидно. Попыток проверить состояние не будет, но может быть удалено, когда закончится время жизни.
stale Состояние соседа валидно, но подозрительно. Эта опция для ip neigh не меняет состояние соседа, если оно было валидно и адрес не был изменен этой командой.
reachable Состояние соседа валидно до окончания таймаута доступности.

Удалить ARP запись

Удалить запись для соседа 192.168.1.5 на интерфейсе eth1:

Изменить состояние на reachable для соседа 192.168.1.100 на устройстве eth1:

Очистить ARP запись

Команда flush или f очищает таблицы соседей или arp таблицы. Синтаксис:

ip route: команды управления таблицей маршрутизации

Используйте следующие команды для управления таблицей маршрутизации ядра.

Показать таблицу маршрутизации

Посмотреть таблицу маршрутизации:

Показать роутинг для 192.168.1.0/24:

192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.10

Добавить новый маршрут

Добавить статический маршрут в сеть 192.168.1.0/24 через шлюз 192.168.1.254:

Чтобы маршрутизировать весь трафик через шлюз 192.168.1.254 подключенный через сетевой интерфейс eth0:

Читайте также: