Как настроить сеть в Ubuntu 16.04

Как настроить сеть в Ubuntu 16.04 Хостинг
Содержание
  1. Сетевые настройки
  2. Интерфейсы Ethernet
  3. Определение Ethernet интерфейсов
  4. Логические имена интерфейсов Ethernet
  5. Настройки интерфейса Ethernet
  6. Адресация IP
  7. Временное назначение IP адреса
  8. Динамическое присвоение IP адреса (клиент DHCP)
  9. Статическое присвоение IP адреса
  10. Интерфейс Loopback (обратной петли)
  11. Разрешение имен
  12. Настройка клиента DNS
  13. Статические имена хостов
  14. Настройка переключения сервиса имен
  15. Строительство мостов
  16. Ссылки
  17. Как узнать, какие программы слушают порты на моём компьютере?
  18. Как присвоить два IP-адреса одной сетевой карте?
  19. Как пробросить порт?
  20. Типы IP-адресов
  21. Добавление статических маршрутов
  22. Adding an alias with ifconfig
  23. Настройка WiFi
  24. Замечания
  25. Подготовка
  26. Генерация ключей
  27. Дополнительно
  28. Примеры конфигураций
  29. Другие способы работы Wi-Fi оборудования
  30. Решение проблем
  31. Иногда наглухо пропадает соединение по Wi-Fi с точкой доступа/маршрутизатором
  32. Перезапуск сети
  33. Настройка IP адреса
  34. Получение информации о сетевых интерфейсах
  35. Set up IP Aliasing with ifconfig
  36. Настройка проводной сети
  37. Временная настройка IP-адреса и маски подсети
  38. View IP Aliases Defined by ifconfig or ip
  39. Установка MTU и TTL
  40. Настройка DNS
  41. Настройка DNS сервера
  42. CentOS 8 add second IP through the configuration file
  43. Утилита IP
  44. Запуск интерфейса
  45. Настройка сети в консоли
  46. Как настроить динамический IP-адрес
  47. Как настроить статический IP-адрес

Сетевые настройки

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

Интерфейсы Ethernet

Интерфейсы Ethernet идентифицируются системой с использованием имен ethX, где X является числовым значением. Первый интерфейс обычно обозначается как eth0, второй как eth1, и все последующие с увеличивающимися номерами по порядку.

Определение Ethernet интерфейсов

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

Другое приложение, которое может помочь идентифицировать все доступные вашей системе сетевые интерфейсы, это команда lshw. В примере ниже lshw показывает один Ethernet интерфейс с логическим именем eth0 вместе с информацией по шине, деталями драйвера и всеми поддерживаемыми возможностями.

Логические имена интерфейсов Ethernet

Логические имена интерфейсов настраиваются в файле /etc/udev/rules.d/70-persistent-net.rules. Если вы захотите определить какой интерфейс получит определенное логическое имя, найдите строку по совпадению физического MAC адреса интерфейса и измените значение NAME=ethX на желаемое логическое имя. Перегрузите систему для применения изменений.

Настройки интерфейса Ethernet

ethtool — это программа, которая показывает и изменяет настройки сетевых карт, такие как автоопределение, скорость порта, режим дуплекса и функция Wake-on-LAN (пробуждение системы через сеть). Эта программа не устанавливается по умолчанию, но доступна к установке из репозиториев.

sudo apt-get install ethtool

Ниже приведен пример как посмотреть возможности карты и настроить параметры интерфейса Ethernet.

Изменения, сделанные с использованием команды ethtool, временные и будут утеряны после перезагрузки. Если вы хотите сохранить настройки, просто добавьте требуемую команду ethtool в строку pre-up в файле /etc/network/interfaces.

Ниже приведен пример как интерфейс, определенный как eth0, может быть постоянно настроен на скорость порта 1000Мб/с в режиме полного дуплекса.

auto eth0
iface eth0 inet static
pre-up /sbin/ethtool -s eth0 speed 1000 duplex full

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

Адресация IP

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

Временное назначение IP адреса

Для временной настройки сети вы можете использовать стандартные команды, такие как ip, ifconfig и route, которые присутствуют также и в других системах на базе GNU/Linux. Эти команды позволят изменить настройки, которые будут применены мгновенно, но они не будут постоянными и будут утеряны после перезагрузки.

Для временной настройки IP адреса вы можете использовать команду ifconfig следующим образом. Только замените IP адрес и маску подсети на соответствующие требованиям вашей сети.

sudo ifconfig eth0 10.0.0.100 netmask 255.255.255.0

Для проверки настройки IP адреса eth0 вы можете использовать команду ifconfig таким образом:

ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:15:c5:4a:16:5a
inet addr:10.0.0.100 Bcast:10.0.0.255 Mask:255.255.255.0
inet6 addr: fe80::215:c5ff:fe4a:165a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:466475604 errors:0 dropped:0 overruns:0 frame:0
TX packets:403172654 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2574778386 (2.5 GB) TX bytes:1618367329 (1.6 GB)
Interrupt:16

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

sudo route add default gw 10.0.0.1 eth0

Для проверки настройки шлюза по умолчанию используйте команду route таким образом:

route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.255.0 U 1 0 0 eth0
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0

Если вам требуется DNS для временной настройки сети, вы можете добавить IP адреса DNS серверов в файл /etc/resolv.conf. Пример ниже показывает как указать два DNS сервера в /etc/resolv.conf, которые могут быть заменены на сервера использующиеся в вашей сети. Более пространное описание настройки DNS клиента приведено в следующей секции.

nameserver 8.8.8.8
nameserver 8.8.4.4

Если вам больше не требуется эта конфигурация и вы хотите отменить все IP настройки интерфейса, вы можете использовать команду ip с опцией flush как показано ниже:

ip addr flush eth0

Сброс IP настроек с использованием команды ip не очистит содержимое /etc/resolv.conf. Вам придется удалять или менять эти значения вручную.

Динамическое присвоение IP адреса (клиент DHCP)

Чтобы настроить ваш сервера на использование DHCP для динамического присвоения адреса, добавьте dhcp метод в адресную секцию inet для соответствующего интерфейса в файле /etc/network/interfaces. Пример ниже предполагает, что вы настраиваете ваш первый интерфейс Ethernet, обозначенный как eth0.

auto eth0
iface eth0 inet dhcp

Добавив настройку интерфейса как показано выше, вы можете вручную включить интерфейс командой ifup, которая активизирует процесс DHCP через dhclient.

sudo ifup eth0

Для отключения интерфейса вручную вы можете воспользоваться командой ifdown, которая запустит процесс освобождения DHCP и остановки интерфейса.

sudo ifdown eth0

Статическое присвоение IP адреса

Для настройки вашей системы под использование статического присвоения IP адреса добавьте метод static в секцию inet для соответствующего интерфейса в файле /etc/network/interfaces. Пример ниже предполагает, что вы настраиваете ваш первый интерфейс Ethernet, обозначенный как eth0. Измените значения адреса, маски сети и шлюза для соответствия требованиям вашей сети.

auto eth0
iface eth0 inet static
address 10.0.0.100
netmask 255.255.255.0
gateway 10.0.0.1

Добавив настройку интерфейса как показано выше, вы можете вручную включить интерфейс командой ifup.

Для отключения интерфейса вручную вы можете воспользоваться командой ifdown.

Интерфейс Loopback (обратной петли)

Интерфейс loopback определяется системой как lo и по умолчанию задает адрес 127.0.0.1. Он может быть выведен командой ifconfig.

ifconfig lo
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2718 errors:0 dropped:0 overruns:0 frame:0
TX packets:2718 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:183308 (183.3 KB) TX bytes:183308 (183.3 KB)

По умолчанию может присутствовать две строки в /etc/network/interfaces отвечающих за автоматическую настройку интерфейса loopback. Рекомендуется оставить эти настройки без изменений пока не возникнет специфической причины для их изменения. Пример этих двух строк приведен ниже.

auto lo
iface lo inet loopback

Разрешение имен

Под разрешением имени по отношению к IP сетям подразумевается процесс определения IP адреса по имени хоста, упрощающий идентификацию ресурса в сети. Данная секция раскрывает как правильно настроить вашу систему для разрешения имен с помощью DNS и статических записей имен хостов.

Настройка клиента DNS

Традиционно файл /etc/resolv.conf был статическим файлом настроек, который очень редко требовалось изменять или он менялся автоматически по запросам DHCP клиента. В настоящее время компьютер может переключаться с одной сети на другу слишком часто и структура resolveconf теперь используется для отслеживания этих изменений и автоматического обновления настроек разрешений. Это выглядит как промежуточный слой между программами, которые предоставляют информацию от серверов имен, и приложениями, которым она требуется. Resolvconf делает доступной информацию через подключение сценариев, связанных с настройкой сетевых интерфейсов. Наиболее значимое отличие для пользователя в том, что любые ручные изменения /etc/resolv.conf будут потеряны при перезаписи по каждому срабатыванию триггеров resolveconf. Вместо этого resolveconf использует ловушки клиента DHCP и /etc/network/interfaces для генерации списка серверов имен и доменов, чтобы положить в /etc/resolv.conf, который теперь является символьной ссылкой:

Для настройки разрешений добавьте IP адреса серверов имен, соответствующие вашей сети, в файл /etc/network/interfaces. Вы также можете добавить необязательный список подбора DNS суффиксов для получения доменных имен. Для каждой другой разрешенной опции настройки resolv.conf вы можете добавить внутри абзаца по отдельной строке с этой опцией с префиксом имени dns-. Результирующий файл может выглядеть так:

iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com
dns-nameservers 192.168.3.45 192.168.8.10

Опции поиска также могут использоваться разные доменные имена, таким образом DNS запросы будут дополняться ими в том порядке, как они вводились. Например, ваша сеть может иметь несколько поддоменов для поиска; родительский домен example.com и два поддомена sales.example.com и dev.example.com.

Если у вас несколько доменов, в которых вы собираетесь искать, ваша конфигурация может выглядеть так:

iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-search example.com sales.example.com dev.example.com
dns-nameservers 192.168.3.45 192.168.8.10

Если вы попытаетесь проверить хост с именем server1, ваша система автоматически запросит DNS по их полным доменным именам (FQDN) в следующем порядке:

Если совпадений не будет, DNS сервер предоставит результат notfound и запрос DNS потерпит неудачу.

Читайте также:  Раскройте потенциал ISPManager: освоение настройки DNS

Статические имена хостов

Статические имена хостов — это локально определенные соотношения «имя хоста-IP», находящиеся в файле /etc/hosts. Значения, определенные в файле hosts, по умолчанию превалируют над DNS. Это означает, что если система пытается разрешить имя и находит его в /etc/hosts, она не будет пытаться смотреть записи в DNS. В некоторых конфигурациях, особенно когда доступ в интернет не требуется, сервера, соединенные с ограниченным количеством ресурсов, могут просто использовать статический список имен вместо DNS.

Далее приведен пример файла hosts, где ряд локальных серверов определены обычными именами хостов, алиасами и их эквивалентами полных имен (FQDN).

127.0.0.1 localhost
127.0.1.1 ubuntu-server
10.0.0.11 server1 vpn server1.example.com
10.0.0.12 server2 mail server2.example.com
10.0.0.13 server3 www server3.example.com
10.0.0.14 server4 file server4.example.com

В примере выше обратите внимание, что каждый сервер имеет алиас в добавок к их правильным коротким и полным именам. server1 соотносится с именем vpn, server2 определен как mail, server3 как www и server4 как file.

Настройка переключения сервиса имен

Последовательность, в которой ваша система выбирает метод разрешения имен по IP адресам управляется настроечным файлом переключателя сервиса имен (NSS) /etc/nsswitch.conf. Как отмечено в предыдущей секции, обычно статические имена хостов, определенные в системном файле /etc/hosts, имеют приоритет перед разрешением имен через DNS. Далее пример строки, отвечающей за этот порядок перебора имен хостов в файле /etc/nsswitch.conf.

  • files сперва пытается разрешить статическое имя хоста в /etc/hosts.
  • mdns4_minimal пытается разрешить имя с использованием параллельного (multicast) DNS.
  • dns представляет собой наследуемый последовательный (legacy unicast) DNS запрос.
  • mdns4 представляет параллельный (multicast) DNS запрос.

Для изменения последовательности вышеупомянутых методов разрешения имен вы можете просто заменить строку hosts: на значение по вашему выбору. Например, если вы предпочитаете использовать последовательный DNS до параллельного DNS, вы можете изменить строку в /etc/nsswitch.conf как показано ниже:

Строительство мостов

Соединение нескольких интерфейсов — наиболее продвинутая настройка, но очень полезная во множестве сценариев. Один вариант — установка взаимодействия между несколькими сетевыми интерфейсами и затем использование защитного экрана (firewall) для фильтрования трафика между двумя сегментами сети. Другой сценарий — использование связывания на системе с одним интерфейсом для разрешения виртуальным машинам иметь прямой доступ во внешнюю сеть. Следующий пример раскрывает последний сценарий.

Перед настойкой взаимодействия вам потребуется установить пакет bridge-utils. Для установки пакета введите в терминале:

sudo apt-get install bridge-utils

Далее настройте взаимодействие, отредактировав /etc/network/interfaces:

auto lo
iface lo inet loopback

auto br0
iface br0 inet static
address 192.168.0.10
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1
bridge_ports eth0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off

Введите значения соответствующие вашим физическому интерфейсу и сети.

Теперь перезапустите сеть для разрешения взаимодействия интерфейсов:

sudo /etc/init.d/networking restart

Теперь новый мост между интерфейсами поднят и работает. Утилита brctl предоставит полезную информацию о статусе моста, определяет какие интерфейсы участвуют во взаимодействии и т.д. Смотрите man brctl для дополнительной информации.

Ссылки

Измерьте скорость сети между двумя компьютера с помощью iperf. Можно воспользоваться этой инструкцией. В ней предлагают скомпиллировать программу из исходников, но можно просто установить её из репозитория. Если iperf покажет значение немного меньшее, чем ожидаемое, то с сетью всё в порядке, проблема может быть в железе (жёсткий диск/процессор не могут обеспечить большую скорость), в способе передачи (например, scp и ftp весьма неторопливы), в настройках (скорость может быть ограничена, например, настройками FTP-сервера) или в чём-то ещё. Если iperf показал величину, которая в разы меньше желаемой, то да — с сетью проблемы. Стоит посмотреть, в нужном ли режиме работает карта (например, с помощью ethtool), проверить наличие «errors» в выводе ifconfig и протестировать скорость подключения к какому-нибудь третьему компьютеру.

Как узнать, какие программы слушают порты на моём компьютере?

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

sudo netstat -nlpA inet,inet6

Для вывода информации о конкретном порте можно использовать grep. Например, для 80 порта:

Из вывода netstat не всегда понятно, о какой программе идёт речь (например, 2671/python), подробнее о процессе расскажет ps:

Как присвоить два IP-адреса одной сетевой карте?

Например, интерфейсу eth0 нужно добавить адрес 192.168.1.1.
Кратковременно, до перезапуска сети:

sudo ip addr add 192.168.1.1/24 dev eth0

Навсегда — добавить в /etc/network/interfaces следующее:

#исправить строку auto
auto eth0 eth0:1

# добавить алиас
iface eth0:1 inet static
address 192.168.1.1
netmask 255.255.255.0

Как пробросить порт?

Например, нужно пробросить порт 8081. Адрес, на который обращается клиент, назовём внешний_ip, а адрес, на который он должен попасть — внутренний_ip.

iptables -t nat -A PREROUTING -p tcp -d внешний_ір —dport 8081 -j DNAT —to-destination внутренний_ір:8081
iptables -t nat -A POSTROUTING -p tcp —dst внутренний_ір —dport 8081 -j SNAT —to-source внешний_ір

И обязательно нужно что-то вроде

iptables -t filter -A FORWARD -m conntrack —ctstate DNAT -j ACCEPT

Типы IP-адресов

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

Внешний и внутренний IP могут быть как статическими, так и динамическими.

Динамический IP — это адрес, который компьютер получает при каждой регистрации в сети. Такой адрес закрепляется за устройством только на время. Динамический адрес может измениться сразу после перезагрузки компьютера. Как только компьютер подключается к интернету, за ним закрепляется тот или иной свободный адрес из общей базы адресов. Когда он прекращает работу в интернете, адрес освобождается и закрепляется за новым появившемся в сети устройством. Если компьютер снова захочет подключиться, он получит новый IP, который достанется ему от другого, покинувшего сеть компьютера. С помощью динамических адресов функционирует большая часть устройств в интернете.

Статический IP — это фиксированный адрес отдельной линии в интернете. Он позволяет зафиксировать один адрес за одним компьютером на длительное время. В начале развития интернета такой тип адресов закреплялся за всеми устройствами. Со временем количество устройств в сети увеличилось в десятки тысяч раз и уникальных адресов перестало хватать на всех. Теперь статический адрес можно получить только у интернет-провайдера за плату.

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

Добавлять статические маршруты нужно также в уже знакомом файле “/etc/netplan/02-network.yaml“:

При добавлении маршрута нужно указать:

  • — to: 192.168.5.0/24 – префикс (сеть назначения);
  • via: 172.28.80.5 – через какой шлюз нужно добираться до сети назначения;
  • on-link: true – активировать маршрут при поднятии интерфейса.

Применим настройки и проверим маршрут с помощью команды ip:

$ sudo netplan apply

$ ip route show
default via 172.28.80.10 dev ens18 proto static
172.28.80.0/20 dev ens18 proto kernel scope link src 172.28.90.75
192.168.0.0/24 dev ens19 proto kernel scope link src 192.168.0.10
192.168.5.0/24 via 172.28.80.5 dev ens18 proto static onlink

В примере выше – 192.168.5.0/24 via 172.28.80.5 dev ens18 proto static onlink – и есть наш дополнительный статический маршрут.

Adding an alias with ifconfig

To get started, let’s look at the available interfaces in the system using ifconfig:

In the example, this is eth0. To add a second IP address to CentOS 8 via ifconfig, just run the command:

ifconfig eth0:0 192.168.88.150 netmask 255.255.255.0 up

where eth0 – interface :0 – number of alias 192.168.88.150 – IP 255.255.255.0 – mask

Check with ifconfig:

To remove an alias, just down the interface (not eth0, but eth0: 0!):

ifconfig eth0:0 down

It should be noted that with this you may in CentOS 8 add second IP address, but it is not saved and after the system reboot the alias will disappear. To avoid this, we will use the second method.

Настройка WiFi

В этой главе пойдет речь о настройке подключения к существующей Wi-Fi сети с использованием наиболее безопасного на сегодняшний день стандарта шифрования и аутентификации WPA2. Дополнительно приведены примеры настроек для менее безопасных соединений.

Если Вы можете повлиять на настройку точки доступа, например, в случае, если это Ваш домашний Wi-Fi роутер — постарайтесь настроить авторизацию с использованием WPA2, т.к. это наиболее безопасный протокол аутентификации в беспроводных сетях на настоящий момент.

Замечания

Дополнительно к требованиям, указанным выше Вам следует учесть, что:

  • После установки всех необходимых пакетов, кабель проводной сети лучше отсоединить.
  • Некоторые устройства (или их драйвера, например Madwifi) не поддерживают WPA2 (AES). Если соединение WPA2 установить не удается, можно попробовать WPA1 (TKIP).
  • Если у Вас RTxxx (Ralink) с драйверами Serialmonkey — этот способ Вам не поможет. Вам следует либо установить пакет ndiswrapper, заменяющий Serialmonkey, либо попробовать другой способ.

Подготовка

Установите пакеты wpa-supplicant и wireless-tools

Например так:

$ sudo apt-get install wpasupplicant wireless-tools

Теперь убедитесь в том, что Ваше беспроводное устройство (в данном примере это «wlan0») работает и «видит» беспроводные сети. Команда

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

а доступные сети можно посмотреть командой

которая должна выдать примерно такой результат:

Бывает, что Ваше устройство Wi-Fi не включено по умолчанию, тогда команда вместо рапорта, приведенного выше выдаст
такое сообщение:

wlan0 Failed to read scan data : Network is down

Ничего страшного, просто введите команду

sudo ip link set dev wlan0 up

соответственно выключить устройство можно командой

sudo ip link set dev wlan0 down

Редактируем /etc/network/interfaces, например так:

$ sudo gedit /etc/network/interfaces

Удаляем (или комментируем) все упоминания нашего беспроводного интерфейса и добавляем свои:

Генерация ключей

Теперь нам нужно сконвертировать нашу ключевую фразу (WPA ASCII) в hex-ключ:

Результат будет примерно таким:

hex-ключ это все символы после «psk=».

Нужно его скопировать в буфер обмена и вставить в файл /etc/network/interfaces в поле wpa-psk.

Теперь можно сохранить файл и перезагрузить сеть. Должно установиться соединение. Однако иногда этого сразу не происходит. Если это так — перезагружаем машину.

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

Дополнительно

Отключаем чтение файла /etc/network/interfaces для others во избежания попадания пароля от сети к третьим лицам.

$ sudo chmod o=-r /etc/network/interfaces

Примеры конфигураций

WPA2 + статический IP, скрытый ESSID.

WPA1 + DHCP, ESSID виден всем.

Смешанный режим (WPA1, WPA2) + DHCP, ESSID виден всем.

LEAP, WEP, DHCP, ESSID виден всем.

PEAP, AES, DHCP, ESSID виден всем.

TTLS, WEP, DHCP, ESSID виден всем.

Другие способы работы Wi-Fi оборудования

При помощи Wi-Fi адаптера также возможно установить децентрализованную сеть ad-hoc или сделать из компьютера под управлением Ubuntu точку доступа. Поскольку описание данных способов Wi-Fi подключения выходит за рамки этого руководства — обратитесь к соответствующим разделам. Ссылки на эти разделы см. в разделе .

Решение проблем

Симптомы: сеть обычно изначально работает нормально, долго или недолго, а затем неожиданно пропадает и не появляется после перезагрузки. Эта проблема может быть непостоянной. Сеть «сама собой» начинает работать, а затем пропадает вновь.
При перезапуске адаптера сети таким образом:

sudo ifdown wlan0
sudo ifup wlan0

будет выводиться в консоль похожий текст

Listening on LPF/wlan0/00-02-2A-E1-E0-6C
Sending on LPF/wlan0/00-02-2A-E1-E0-6C
Sending on Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 8
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 15
No DHCPOFFERS received.
No working leases in persistent database — sleeping.

Причиной проблемы может быть то, что материнская плата полностью не обесточивается при выключении компьютера. При этом вероятно не обесточивается и некоторое периферийное оборудование, в т.ч. могут не обесточиваться usb порты. Если вы используете, например, Wi-Fi usb-адаптер, то в таком случае можно заметить горящий на адаптере светодиод (если он им оборудован). Вероятно проблема возникает из-за того, что сетевое оборудование в этом режиме работает не совсем корректно.

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

Сложное решение проблемы состоит в настройке параметров BIOS-а на полное обесточиваение сетевого оборудования при выключении компьютера.

Иногда наглухо пропадает соединение по Wi-Fi с точкой доступа/маршрутизатором

Симптомы: сеть изначально работает, а затем после перезагрузки точки доступа/маршрутизатора неожиданно пропадает, и не появляется ни после перезагрузки, ни после танцев с бубном. При этом беспроводной адаптер в упор не видит точку доступа (хотя она может стоять рядом с компьютером), но прекрасно видит все соседские сети. Затем после ~дцатой~ перезагрузки маршрутизатора сеть сама собой появляется вновь.

Причиной проблемы может быть то, что некоторые маршрутизаторы произвольно выбирают номер рабочего канала, игнорируя номер канала выбранный в настройках маршрутизатора. Если в файле /etc/network/interfaces номер канала для беспроводного интерфейса указан, то вероятно проблема состоит именно в этом. Номер 6 канала указывается в файле примерно так:

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

Сложное решение проблемы состоит в регистрации бага на сайте производителя маршрутизатора (прошивки для него) и обновление прошивки маршрутизатора после (в случае) его исправления.

Перезапуск сети

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

$ sudo /etc/init.d/networking restart

Теперь, при запуске команды ip addr должно отобразиться подключение eth0 с выставленными параметрами.
Если подключение отображается, но параметры не такие, какие были указаны в файле /etc/network/interfaces, либо возникают любые другие ошибки, перепроверьте этот файл на наличие неточностей и опечаток и попробуйте ещё раз перезапустить сеть.

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

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

Посмотрим внимательнее на блок настроек для интерфейса 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 адрес.

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

В прошлой статье мы разобрали настройку сети в системе Debian 11, а в этой разберём всё тоже самое но для Ubuntu 22.04.

Посмотреть на доступные сетевые интерфейсы мы точно также можем с помощью утилиты lshw. И на сервере Ubuntu эта утилита предустановлена.

В этом примере у меня два сетевых интерфейса: ens18 (02:6e:f0:fb:d4:71) и ens19 (82:dd:88:27:00:a5). При этом ip адрес назначен только на ens18 (172.28.90.34).

Мы уже знаем что утилита lshw в основном используется, чтобы узнать имя и возможности сетевой карты, то есть информацию о железе. А для получения настроек сетевых интерфейсов нужно использовать команду – ip. Работает эта команда точно также как в Debian, поэтому заострять на ней внимание не буду.

В примере выше видно, что ens18 имеет назначенный ip адрес, а ens19 нет. Но оба интерфейса активны (state UP).

Set up IP Aliasing with ifconfig

To use the first method:

$ sudo ifconfig eth0:1 192.168.10.10 netmask 255.255.255.0 up
$ sudo ifconfig eth0:2 192.168.10.15 netmask 255.255.255.0 up

Настройка проводной сети

Отредактируйте файл конфигурации /etc/network/interfaces, например так:

И допишите в него:

Для статического IP:

iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 192.168.0.254 8.8.8.8
auto eth0

  • iface eth0 inet static — указывает, что интерфейс (iface eth0) находится в диапазоне адресов IPv4 (inet) со статическим ip (static);
  • address 192.168.0.1 — указывает что IP адрес (address) нашей сетевой карты 192.168.0.1;
  • netmask 255.255.255.0 — указывает что наша маска подсети (netmask) имеет значение 255.255.255.0;
  • gateway 192.168.0.254 — адрес шлюза (gateway) по умолчанию 192.168.0.254;
  • dns-nameservers 192.168.0.254 8.8.8.8 — адреса DNS серверов (о ниж мы расскажем позже)
  • auto eth0 — указывет системе что интерфейс eth0 необходимо включать автоматически при загрузке системы с вышеуказанными параметрами.

eth0 — имя подключаемого своего интерфейса. Список интерфейсов можно посмотреть набрав:

$ ip addr

В итоге файл /etc/network/interfaces должен выглядеть примерно так:

(для одного проводного соединения со статическим IP)

Сохраните файл и закройте редактор. В данном примере (редактор nano) — нажмите Ctrl+X, затем Y, убедитесь, что «Имя файла для записи» — /etc/network/interfaces и нажмите Enter.

Более подробно про синтаксис файла /etc/network/interfaces можно прочитать в документации.

Пример конфигурации для динамического IP:

iface eth0 inet dhcp
auto eth0

Временная настройка IP-адреса и маски подсети

При необходимости задать пробные настройки, выполните:

$ sudo ip addr add 192.168.0.1/24 dev eth0

Данные настройки пропадут после перезагрузки системы и не повлияют на файл /etc/network/interfaces

Вот настройка сетевых интерфейсов при помощи конфигурационных файлов в Ubuntu значительно отличается от Debian. Это потому-что в Ubuntu используется система для управления сетью – Netplan. И нужно будет изучить конфигурационные файлы и команды этой системы.

Конфигурационные файлы Netplan находятся в каталоге “/etc/netplan“, а конфигурационный файл созданный при установки системы – “/etc/netplan/00-installer-config.yaml“.

Посмотрим на этот конфиг с помощью утилиты cat:

$ cat /etc/netplan/00-installer-config.yaml
# This is the network config written by ‘subiquity’
network:
ethernets:
ens18:
dhcp4: true
ens19:
dhcp4: true
version: 2

Такой формат конфигурационных файлов называется – YAML (произносится как “ямл”).

Разберём этот файл построчно:

  • network: – говорит о том, что сейчас будем настраивать сеть;ethernets: – начинается настройка сетевых интерфейсов;ens18: – настраиваем интерфейс ens18;dhcp4: true – ip адрес будет получен по dhcp;ens19: – настраиваем интерфейс ens19;dhcp4: true – ip адрес будет получен по dhcp;version: 2 – версия YAML.
  • ethernets: – начинается настройка сетевых интерфейсов;ens18: – настраиваем интерфейс ens18;dhcp4: true – ip адрес будет получен по dhcp;ens19: – настраиваем интерфейс ens19;dhcp4: true – ip адрес будет получен по dhcp;
  • ens18: – настраиваем интерфейс ens18;dhcp4: true – ip адрес будет получен по dhcp;
  • dhcp4: true – ip адрес будет получен по dhcp;
  • ens19: – настраиваем интерфейс ens19;dhcp4: true – ip адрес будет получен по dhcp;
  • version: 2 – версия YAML.

Разбирать формат YAML не буду, просто покажу как назначить статичные ip адреса и отключить dhcp.

После создания конфигурационного файла проверим его на синтаксис:

$ sudo netplan generate

Если в выводе пусто, значит конфигурация верна.

Теперь можно применить настройки:

После этого, вам придётся заново подключится к серверу по ssh, по другому ip адресу.

Читайте также:  Скачать Mikrotik Winbox: упрощенная настройка для улучшения работы сети

Итак, мы указали ip адреса для обоих интерфейсов, а также назначили на одном из низ шлюз по умолчанию (routes: – to default) и dns сервера (nameservers).

И запомните, на сервере Ubuntu 22.04, не нужно использовать утилиты ifdown и ifup. Здесь работает netplan, и применять настройки нужно с помощью этой утилиты, предварительно проверив конфигурацию.

View IP Aliases Defined by ifconfig or ip

$ sudo ip addr list dev eth0

2: eth0: mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:0c:29:5c:86:f4 brd ff:ff:ff:ff:ff:ff
inet 192.168.91.128/24 brd 192.168.91.255 scope global eth0
inet 192.168.91.10/24 scope global secondary eth0
inet 192.168.91.20/24 scope global secondary eth0
inet6 fe80::20c:29ff:fe5c:86f4/64 scope link
valid_lft forever preferred_lft forever

If you used ifconfig to create IP aliases, you can also use the same command to view them.

$ ifconfig -a

eth0 Link encap:Ethernet HWaddr 00:0C:29:5C:86:F4
inet addr:192.168.91.128 Bcast:192.168.91.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe5c:86f4/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 frame:0
TX packets:102 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3869 (3.7 KiB) TX bytes:18172 (17.7 KiB)
Interrupt:19 Base address:0x2000

eth0:1 Link encap:Ethernet HWaddr 00:0C:29:5C:86:F4
inet addr:192.168.91.10 Bcast:192.168.91.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x2000

eth0:2 Link encap:Ethernet HWaddr 00:0C:29:5C:86:F4
inet addr:192.168.91.20 Bcast:192.168.91.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:19 Base address:0x2000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)

If you would like to permanently assign multiple IP addresses to an interface, create corresponding configuration files in /etc/sysconfig/network-scripts.

$ sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0:1

Once you have created as many configuration files as IP addresses to assign, restart network to activate IP aliasing.

$ sudo /etc/init.d/network restart

Установка MTU и TTL

TTL (Time To Live) — время жизни ip-пакета в секундах. Нужен чтобы избежать перегрузки сети пакетами.
Обычно каждый роутер, через которого прошел пакет, уменьшает TTL на еденицу.
Если TTL=0, пакет из системы удаляется. Изначально TTL=128 (для Windows) и TTL=64 (для Ubuntu).
Для DNS-записей TTL определяет время актуальности данных при кешировании запросов.

Для изменения величины MTU, отредактируем файл конфигурации /etc/network/interfaces, например так:

auto eth0
iface eth0 inet static
address 192.168.1.5
netmask 255.255.255.0
mtu 600

Для изменения величины TTL наберите:

Значение TTL меняется только с правами администратора, для выхода из аккаунта администратора введите exit

Настройка DNS

За конфигурацию DNS отвечает утилита resolvconf, которая работает в паре с небольшим кеширующим DNS сервером dnsmasq. resolvconf позволяет осуществить настройку DNS на основе данных от разных подсистем.

Одним из следствий этого полезного нововведения (переход на эту схему произошел в Ubuntu начиная с версии 12.04) является то, что теперь файл /etc/resolv.conf генерируется автоматически, а не индивидуально каждой программой, которая хочет его изменить (порой перезаписывая правки сделанные ранее). Автоматическая генерация /etc/resolv.conf означает, что внесенные «руками» изменения в него будут потеряны.

Автоматически формируемый /etc/resolv.conf содержит ссылку на DNS сервер на локальном интерфейсе (127.0.1.1), а там (на 53 порту) и сидит сервис dnsmasq, который отвечает за разрешение символьных имен в IP адреса. Нужно отметить, что этот порт (53) открыт в режиме LISTEN, но т.к. это локальный интерфейс, то из внешней сети этот порт не доступен.

Информацию о DNS для статических интерфейсов теперь надо вносить в /etc/network/interfaces1) в параметры dns-nameservers, dns-search и dns-domain (которые соответствуют параметрам nameserver, search и domain в /etc/resolv.conf)

Обратите внимание — в /etc/resolv.conf, при записи нескольких серверов используется несколько ключей nameserver, а в /etc/network/interfaces все адреса DNS серверов записывались в одну строчку после ключа dns-nameservers, разделенные пробелами.

В итоге описание статического интерфейса в /etc/network/interfaces должно выглядеть примерно так:

iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.254
dns-nameservers 8.8.8.8 192.168.0.254
auto eth0

Ubuntu до версии 12

В более старых версиях ubuntu, когда есть необходимость указать статические адреса DNS серверов (если они не выдаются автоматически) выполните:

$ sudo gedit /etc/resolv.conf

и впишите туда адреса DNS серверов (отдельные записи для каждого сервера):

nameserver 192.168.0.100
nameserver 192.168.0.200

Где 192.168.0.100 и 192.168.0.200 — адреса DNS серверов. Если нужно добавить больше адресов — каждый адрес нужно начинать с новой строки и с фразы nameserver

Настройка 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.

CentOS 8 add second IP through the configuration file

By analogy with the main interface, we create a configuration file for the alias:

And configure the settings:

In order to raise the alias, you must run the command:

ifconfig eth0 up

Yes, it is the main interface. When trying to run ifup eth0: 0 we get an error:

Error: unknown connection ‘/etc/sysconfig/network-scripts/ifcfg-eth0:0’.

By executing ifconfig eth0 up and ifconfig eth0 down && ifconfig eth0 up you can control / reload the interfaces. But I couldn’t manage separately eth0:0. If anyone knows how – write in the comments.

Утилита IP

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

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

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

Как настроить сеть в Ubuntu 16.04

Шпаргалка по команде ip

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

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

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

# ip address show ens18

Помимо просмотра информации можем настраивать сеть, например можно добавить или удалить 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 neigh flush

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

Запуск интерфейса

ifup Ваш интерфейс

Перезагружаем сетевые службы нашего сервера:

service network restart

Как настроить сеть в Ubuntu 16.04

После успешной перезагрузки введем:

Как настроить сеть в Ubuntu 16.04

Настроенный нами интерфейс готов к работе

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

Для настройки сети в операционной системе Ubuntu:

  • Посмотрите список установленных сетевых интерфейсов (Ubuntu network interfaces). Для этого перейдите в консоль и введите команду:Ubuntu сетевые интерфейсыВы увидите все сетевые подключения и их параметры.В нашем примере два сетевых интерфейса:

    lo ― локальная петля. Служит для подключения по сети к этому же компьютеру и не требует дополнительной настройки;
    enp0s3 ― сетевой адаптер Ethernet.Также эти команды позволят увидеть состояние сетевого интерфейса.
    Существует два состояния:

    up ― активен,
    down ― неактивен.Для дальнейшей настройки надо, чтобы сеть была в состоянии up:
    Как включить или выключить сетевой интерфейс
    Чтобы включить сетевой интерфейс, введите команду:Где enp0s3 — имя сетевого интерфейса.

  • lo ― локальная петля. Служит для подключения по сети к этому же компьютеру и не требует дополнительной настройки;
  • enp0s3 ― сетевой адаптер Ethernet.
  • up ― активен,
  • down ― неактивен.
  • Чтобы настроить сеть, нужно изменить конфигурационный файл /etc/network/interfaces.
    Откройте файл командой:sudo nano /etc/network/interfaces

Как настроить динамический IP-адрес

  • auto enp0s3
    iface enp0s3 inet dhcpГде enp0s3 — имя сетевого интерфейса.
  • Перезапустите службу сети:service networking restart

Как настроить статический IP-адрес

  • enp0s3 — имя сетевого интерфейса,
  • 255.255.255.0 — маска подсети,
  • 192.168.0.1 — шлюз для доступа к интернету,
  • Перезапустите службу сети:service networking restart

Если вам нужно настроить DNS только для этого сеанса, добавьте строчку
в файле /etc/resolv.conf:

Готово, вы настроили DNS для одного сеанса. Настройки DNS сбросятся после перезагрузки сети.

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

up ip route add 192.168.5.0/24 via 192.168.0.10

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

Оцените статью
Хостинги