Настройка сети в Debian 8,9,10
Статья для тех, кому нужна сеть, настроенная без GUI, сервер или когда графическая оболочка запускается лишь с целью запуска отдельного приложения, требующего доступ к ней.
Root
Когда настраивал свой сервер, то я столкнулся с такой проблемой как ручная настройка сети в Debian. Оказалось, что такой штуки, как ifconfig здесь просто нет, её можно установить из репозитория, но не нужно, здесь есть свои инструменты, не менее надёжные и на самом деле очень крутые.
Кстати, пока я писал статью, то нашёл страницу, описывающую мой опыт. Так что я не один такой. Я не влезаю в тонкости построения того или иного дистрибутива, поскольку это прерогатива их авторов. Дарёному коню, в зубы не смотрят.
Теперь мы знаем, что у нас в распоряжении есть утилита ip. С виду кажется непонятной и неповоротливой, но мы попробуем это исправить, используя всего пару команд.
Для начала вызовем команду на дуэль с ключом --help:
#ip --help
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
tunnel | tuntap | maddr | mroute | mrule | monitor | xfrm |
netns | l2tp }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-f[amily] { inet | inet6 | ipx | dnet | link } |
-l[oops] { maximum-addr-flush-attempts } |
-o[neline] | -t[imestamp] | -b[atch] [filename] |
-rc[vbuf] [size]}
Чтобы понять, какие сетевые интерфейсы в Debian доступны к использованию на данный момент, требуется выполнить некоторую подготовку.
Для этого вводим команду:
ip addr, эта статья приводит упрощённый способ вызова команды, который явно не документирован manpage программы ip, но вы кто-то интересующийся может использовать команду ip a, так тоже можно.
данная команда даст вывод такой:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
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 qlen 1000
link/ether bc:5f:f4:3e:96:2a brd ff:ff:ff:ff:ff:ff
inet 192.168.45.2/24 brd 192.168.45.255 scope global eth0
inet6 fe80::be5f:f4ff:fe3e:962a/64 scope link
valid_lft forever preferred_lft forever
здесь наc интересует то, что мной отмечено красным цветом. eth0 -- конкретный сетевой интерфейс, который в более свежих системах имеет другие названия, inet означает IP адрес, назначенный непосредственно данной машине, inet6 это адрес ipv6, он конечно применяется, но в нашей стране не всегда, да и для мелких сетей использовать ip4 адресацию удобнее.
теперь нас интересует возможность назначить адрес конкретному интерфейсу. Это решение является дополнением к interfaces.
ip -f inet eth0 addr 192.168.1.1/24
Таким образом можно вручную поднять сеть на ПК или сервере, если по каким-то причинам не удалось это сделать при загрузке, к примеру, если не настроен interfaces, или в нём содержатся ошибки, либо необходимо без выключения сервера подключиться к другой сети с другого интерфейса без приостановки сетевых служб.
Конечно, это средства администрирования в стиле "раз настроил и забыл". И это основной костыль Linux систем.
Данная методика не годится, если не включить строку вышеуказанной команды в cron при загрузке. Для настройки сети по DHCP необходимо правильно заполнить файл interfaces.
Об этом написано много однотипных статей, в конце данной статьи я привёл пример заполнения файла /etc/network/interfaces . Вообще, если вам нужно администрировать сервер, то используйте по возможности человеко-понятные интерфейсы, их же можно отключить после настройки системы, это правила хорошего тона. Я например не знаю ни одного CLI менеджера настройки сети, поэтому кроме редактировния конфигурационных файлов ничего не смогу сделать. Или же я буду использовать Linux с графическим интерфейсом и серверными компонентами. Это удобнее, намного удобнее консоли.
Как подключиться к WIFI сети с WPA2-PSK у меня написано здесь.
Теперь опишу опыт настройки, когда вообще никакой сети нет, есть только консоль, клавиатура и к тому же необходимо переключить сеть со встроенного модуля на USB адаптер WIFI
Для начала нам необходимо узнать имя устройства wifi, которое подключено к системе:
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
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 qlen 1000
link/ether bc:5f:f4:3e:96:2a brd ff:ff:ff:ff:ff:ff
inet 192.168.45.2/24 brd 192.168.45.255 scope global eth0
inet6 fe80::be5f:f4ff:fe3e:962a/64 scope link
valid_lft forever preferred_lft forever
3: w6lyq71an: blah, blah, blah....
Грепаем:
# ip a | grep 3 > wlh.txt
# cat wlh.txt >> /etc/network/interfaces
# nano /etc/network/interfaces
Здесь
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet dhcp
Я предпочту просто закомментировать строки с wlan0 и дописать точно такие же, только с тем интерфейсом, который будет реально использоваться в системе.
Вот примерное содержимое измененного файла.auto lo
iface lo inet loopback
#auto wlan0
#iface wlan0 inet dhcp
w6lyq71anauto
iface w6lyq71an inet dhcp
Далее сохраняем:
С+O,
И выходим из nano:
C+X
#systemctl restart networking
Если ошибок не возникнет, то команда ip a выдаст настройки сети, выданные вашим роутером.
Всё.
P.s. Наибольшую проблему в работе с чистой консолью Linux вызывает отсутствие понятных принципов работы с ней. Например нас интересуют только сетевые интерфейсы и IP адреса. Мы вынуждены либо сразу направить вывод в файл, либо сначала найти нужный интерфейс, а потом уже через команду grep направить отсеченные результаты вывода в нужный нам файл. Здесь я сначала посмотрел, какой устройство у меня в ПК отвечает за WIFI, потом я отправил запись 3:* в файл /etc/networking/interfaces, затем я открыл его из nano и там уже поправил его. Слишком много операций, на которые расходуется много времени. Но, к счастью, настройка должны произвестись всего один раз.
Комментарии
Отправить комментарий