Ubuntu Server настройка сети

lanВ этой статье будет рассмотрен принцип настройки сети в Ubuntu Server 16.04. Поскольку серверная система не имеет графического интерфейса, все настройки производятся из консоли. На первый взгляд это может показаться неудобным, но в реальности, этот способ гораздо быстрее и практичнее, чем настройка из графического интерфейса, и так приступим!

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

# lshw -C network | grep name
logical name: ens32
logical name: ens33

В Ubuntu Server можно временно назначить ip адрес. Это значит, что настройка будет работать до перезагрузки системы. Назначить временный ip адрес можно командой ifconfig

# ifconfig ens32 192.168.1.100 netmask 255.255.255.0

либо так

# ifconfig ens32 192.168.1.100/24

Сначала нужно указать имя интерфейса, затем ip адрес и маску сети.

Команда

# ifconfig ens32

покажет информацию об интерфейсе ens32

Если выполнить команду

# ifconfig

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

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

# dhclient ens32

Шлюз по умолчанию указывается командой

# route add default gw 192.168.1.1 ens32

Команда

# route -n

покажет таблицу маршрутизации, где шлюз по умолчанию будет иметь флаг UG.

Для того, чтобы настройки сети сохранялись после перезагрузки системы, нужно править файл /etc/network/interfaces

# nano /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
auto ens32
iface ens32 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8 8.8.4.4
        dns-search 4skill.loc 4skill.ru

# The secondary network interface
auto ens33
iface ens33 inet static
        address 192.168.10.254
        netmask 255.255.255.0

рассмотрим описание опций на примере интерфейса ens32:

auto ens32 — автоматически запускать интерфейс при загрузке системы.
iface ens32 inet/inet6 static/dhcp — указывает семейство протоколов tcp ip и метод получения ip адреса.
address 192.168.1.100 — определяет ip адрес.
netmask 255.255.255.0 — маска сети.
gateway 192.168.1.1 — шлюз по умолчанию.
dns-nameservers 8.8.8.8 8.8.4.4 — ip адреса dns серверов. Указываются через пробел.
dns-search 4skill.loc 4skill.ru — dns суффиксы, указываются через пробел. К примеру, если проверить хост с именем dc1, то система постарается разрешить имя dc1.4skill.loc, затем dc1.4skill.ru.

На ряду с dns-search, существует опция dns-domain. Отличие опций заключается в том, что в dns-search можно указать список dns суффиксов, а в dns-domain указывается только один dns суффикс.

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

# reboot

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

# ip addr flush ens32

затем перезапустить сетевую службу

# service networking restart

В случае изменения шлюза по умолчанию, адресов dns серверов, или dns суффиксов, после редактирования файла /etc/network/interfaces, достаточно просто перезапустить сетевую службу

# service networking restart

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

# ifdown ens32
# ifup ens32

При разрешении имён, первым проверяется файл /etc/hosts, и только после него, посылается запрос к dns серверу. Файл /etc/hosts имеет следующий формат

# less /etc/hostname

127.0.0.1     localhost
192.168.1.100 u16.4skill.ru u16

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

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

Чтобы узнать имя компьютера, нужно выполнить команду hostname

# hostname

Команда

# hostname new_name

изменит имя компьютера на new_name. Изменения будут действовать до перезагрузки системы. Статично имя компьютера указано в файле /etc/hostname. Этот файл можно править текстовым редактором, либо воспользоваться командой смены имени

# hostnamectl set-hostname new_name

Команда

# hostnamectl

без аргументов покажет текущее имя компьютера, и прочую информацию об операционной системе.

Для подключения через proxy сервер нужно добавить следующие строки в файл /etc/environment

# nano /etc/environment
. . .
http_proxy="http://username:password@proxyserver:port"
https_proxy="https://username:password@proxyserver:port"
ftp_proxy="ftp://username:password@proxyserver:port"
socks_proxy="socks://username:password@proxyserver:port"

Здесь есть одна тонкость, если пароль содержит знак @, то в качестве адреса прокси сервера будет использоваться все, что указано после этого символа в пароле. К примеру в записи

http_proxy="http://administrator:P@ssw0rd@proxy.4skill.ru:3128"

подключение будет осуществляться к серверу ssw0rd@proxy.4skill.ru. Чтобы исправить эту ситуацию, можно заменить все спец. символы в пароле на символьные коды HTML. Для этого можно воспользоваться специальной таблицей HTML character codes, или сайтом URL Decoder/Encoder. Строка с преобразованным паролем будет иметь вид

http_proxy="http://administrator:P%40ssw0rd@proxy.4skill.ru:3128"

Если подключение к proxy серверу осуществляется без аутентификации пользователей, то строка будет иметь вид

http_proxy="http://proxyserver:port"

Настройки подключения для https, ftp и socks настраиваются по аналогии.
Для вступления настроек proxy в силу, достаточно выполнить повторный вход в ОС.

 

Ubuntu Server настройка сети: 4 комментария

  1. NetFox

    Привет.
    При настройках сети через графический интерфейс в /etc/network/interfaces только это:
    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback

    Но всё работает. Следовательно, остальное пишется куда-то в другое место. Не помню уж, с какой версии Ubuntu такое началось. И очень интересно найти то место, где эти настройки хранятся. Ведь хорошей идеей является менять настройки вручную именно там, а не в /etc/network/interfaces. Хотя и это работает. Но где это «там», куда писать? Что-то мне подсказывает, что надо рыть в /usr.

    1. Андрей Автор записи

      Приветствую. Вы говорите о NetworkManager. Это ГРАФИЧЕСКИЙ инструмент управления сетевыми соединениями, который отсутствует по понятным причинам в серверной версии Ubuntu. Впервые он появился в Ubuntu 7.10. Использование NetworkManager не хорошая идея, об этом написано в Отключение Network Manager’а.
      NetworkManager

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *