Как настроить сетевые параметры в Debian

В текущей статье я расскажу об очень популярной теме, с которой начинается практически любая первоначальная работа с сервером. Настройка основных параметров сети в Debian — ip адрес, dhcp, ipv6, dns, hostname, статические маршруты, сетевые карты и другие network параметры. Двигаться по теме будем шаг за шагом от простого к сложному, разбирая по порядку все нюансы и отвечая на наиболее популярные вопросы.

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Данная статья является частью единого цикла статьей про сервер Debian.

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

Вопрос настройки сети я уже кратко поднимал в теме начальной настройки Debian. Я рекомендую с ней ознакомиться и выполнить некоторые подготовительные действия, чтобы было удобнее работать далее. Сейчас мы подробно разберем все наиболее значимые нюансы сетевых настроек, которые могут пригодиться в повседневной работе. Первоначальная настройка сети начинается во время установки сервера. Если у вас есть сетевой интерфейс и dhcp сервер в сети, то сеть сконфигурируется автоматически на основе полученных настроек и будет готова к работе. Впоследствии вы можете выполнить настройку сети в Debian через консоль с помощью программ ip или ifconfig. Наиболее популярным и современным средством на текущий момент является ip, поэтому в дальнейшем рассмотрим вопрос конфигурации сетевых интерфейсов с её помощью. Про ifconfig тоже не забудем. Рассмотрим её в конце. Отдельно стоит такой инструмент управления сетевыми подключениями как Network Manager. В базовой версии сервера Debian минимальной конфигурации он не установлен. Его удобно использовать в сочетании с графическими оболочками, которых на сервере обычно нет, поэтому вопрос его настройки я не буду рассматривать.

Есть 2 различные возможности изменить сеть в Debian:

  1. Настройка сети из консоли с помощью указанных ранее консольных программ.
  2. С помощью редактирования конфигурационного файла сетевых интерфейсов /etc/network/interfaces.

Мы рассмотрим оба этих варианта. Вводная теоретическая часть окончена, приступаем к практике.

Настройка статического IP

Вы установили сервер и во время установки указали какие-то сетевые параметры, или не указали, не важно. Но сейчас вы решили, что вам нужно назначить статический ip (static ip) адрес. Воспользуемся для этого утилитой ip. Сначала посмотрим список всех сетевых интерфейсов:

# ip a

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

У меня в системе 1 сетевой интерфейс ens18 и он каким-то образом уже сконфигурирован. Назначим ему еще один статический адрес:

# ip addr add 192.168.1.35/24 dev ens18

Этот адрес будет добавлен к уже существующему адресу. Проверим это:

# ip a

Настройка статического ip

Теперь сервер будет доступен по обоим адресам. Текущая настройка сохранится только до перезагрузки сервера. Чтобы она применялась во время загрузки, нужно либо каким-то образом добавить команду на изменение настроек в автозагрузку, например в /etc/rc.local или в /etc/crontab, но это будет костыль. Так сделать можно, но не нужно. Правильнее отредактировать файл, который отвечает за сетевые настройки в Debian - /etc/network/interfaces. Для того, чтобы назначить постоянный статический ip адрес, его нужно привести к следующему виду:

# mcedit /etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet static
address 10.20.1.36
gateway 10.20.1.1
netmask 255.255.255.0
auto указанный интерфейс необходимо запускать автоматически при загрузке системы
iface интерфейс ens18 находится в диапазоне адресов IPv4 со статическим ip
address статический ip адрес
gateway шлюз по умолчанию
netmask маска сети

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

  • auto - интерфейс активируется при загрузке системы. Это подходящая настройка для статичного сетевого адаптера.
  • allow-hotplug - интерфейс поднимается, когда подсистема udev обнаружит его. Это произойдёт и при загрузке системы, как в случае с auto, если сетевая карта будет подключена, и в случае подключения, отключения устройства. Например, если это usb сетевая карта или VPN туннель. Настройка больше подходит для динамических сетевых интерфейсов. 

Для проверки перезагружаем сервер и смотрим, всё ли в порядке с настройкой статического ip адреса. Если вам нужно сменить ip адрес в Debian, то вы можете временно изменить его с помощью команды ip, либо постоянно, отредактировав параметр address в файле сетевых настроек interfaces.

Получение сетевых настроек по DHCP

Теперь рассмотрим вариант, когда вам необходимо получить динамический ip адрес в Debian. Здесь по аналогии с предыдущими настройками можно пойди двумя путями:

  1. Получить ip адрес по dhcp в консоли с помощью программы dhclient, который будет работать до перезагрузки.
  2. Отредактировать файл конфигурации сетевых интерфейсов.

Смотрим снова на текущую конфигурацию сети:

# ip a
Параметры сети в debian

Выполним команду на получение ip адреса по dhcp и проверим сеть:

# dhclient
# ip a

Получение настроек по dhcp

В качестве второго ip мы получили адрес от dhcp сервера. Если у вас несколько сетевых интерфейсов, то необходимо добавлять название после команды, например вот так:

# dhclient eth0

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

# dhclient -r

Обращаю внимание, что эта команда сбросит все ip адреса интерфейса, в том числе и статические. Выполнять её можно только будучи подключенным к консоли сервера напрямую, а не по сети. Чтобы снова запросить адрес, нужно выполнить предыдущую команду на получение ip. А чтобы вернуть статические настройки, надо перезапустить службу сети:

# systemctl restart networking

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

# mcedit /etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet dhcp

Установка шлюза по умолчанию (default gateway)

Теперь разберемся со шлюзом по умолчанию. В предыдущих примерах со статическим ip адресом и настройками по dhcp у нас не было необходимости указывать отдельно default gateway. Мы его устанавливали вместе с остальными настройками. Чтобы посмотреть установленный по умолчанию шлюз в Debian, можно воспользоваться следующей командой в консоли:

# ip route

или ещё короче:

ip r
default via 10.20.1.1 dev ens18 onlink
10.20.1.0/24 dev ens18 proto kernel scope link src 10.20.1.66

Выделен шлюз по умолчанию (default gateway). Можно воспользоваться другими программами, которые на текущий момент признаны устаревшими, но от этого не переставшими выполнять свои функции:

# route
# netstat -nr

Если получите ошибки:

-bash: route: command not found
-bash: netstat: command not found

Значит у вас не установлен пакет net-tools. Установить его можно следующей командой.

# apt install net-tools

Сетевые инструменты из пакета net-tools объявлены устаревшими и не включены в состав базовой системы. Я иногда продолжаю пользоваться, потому что мне нравится их вывод больше, чем у команды ip. Netstat мне видится более информативным, хотя по сути, они все показывают одно и то же. Отказ в пользу утилиты ip идет по той причине, что она объединяет в себе все основные сетевые инструменты. Удобнее пользоваться только ей одной для настройки сети, нежели разными утилитами для разных целей. Если вы только изучаете Linux, то пользуйтесь сразу командой ip.

Если нам нужно сменить default gateway, то сначала надо удалить текущий шлюз, а потом назначить новый.

# ip route del default
# ip route add default via 10.20.1.100

То же самое, только с помощью route:

# route del default gw 10.20.1.1
# route add default gw 10.20.1.100

Проверяем, что получилось:

# ip r
default via 10.20.1.100 dev ens18
10.20.1.0/24 dev ens18 proto kernel scope link src 10.20.1.66

Всё получилось. Эта настройка будет действовать до перезагрузки. Чтобы ее сохранить, либо меняйте конфигурационный файл /etc/network/interfaces, либо, при необходимости, придумывайте что-то ещё. 

Как указать DNS сервер

Остался последний из основных сетевых параметров - dns сервер. С ним в Debian и Ubuntu есть определенная путаница. Традиционно в ОС на базе ядра Linux для установки dns серверов используется файл /etc/resolv.conf. Но в какой-то момент в этих дистрибутивах появилась программа resolvconf, которая стала управлять настройками dns в системе. В итоге, файл resolv.conf постоянно перезаписывается этой программой. Нужна она в первую очередь для систем, где dns сервера постоянно меняются. Она следит за их изменением и корректно передает информацию об изменении программам, для которых это важно. Я лично не знаю таких программ и мне не приходилось сталкиваться с ситуацией, когда это было необходимо. Если я не ошибаюсь, то в минимальной конфигурации Debian программа resolvconf не устанавливается, а вот в Ubuntu она стоит. Проверить наличие программы очень просто:

# dpkg -l | grep resolvconf

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

# mcedit /etc/resolv.conf
nameserver 10.20.1.1
nameserver 77.88.8.1
nameserver 8.8.8.8
nameserver 1.1.1.1
10.20.1.1 локальный dns сервер
77.88.8.1 публичный сервер Яндекса
8.8.8.8 публичный сервер Google
1.1.1.1 публичный сервер Cloudflare

Я на всякий случай указал локальный сервер и 3 внешних. Если у вас стоит resolvconf, то в случае ненадобности, удалите его командой:

# apt-get remove resolvconf

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

dns-nameservers 10.20.1.1 77.88.8.1 8.8.8.8 1.1.1.1

Этот параметр нужно установить сразу после указания шлюза gateway. Несколько адресов разделяются пробелом.

Изменить hostname (имя хоста)

Во время установки Debian вы указывали имя хоста. Посмотреть его текущее значение можно в консоли:

# hostname
debian

Это значение записано в файле /etc/hostname. Есть 2 способа изменить hostname в debian:

  1. Простой и быстрый с помощью консольной команды. Результат работает только до перезагрузки компьютера. Потом вернется старое имя.
  2. С помощью изменения конфигурационного файла результат сохраняется и после перезагрузки. Чтобы сразу применить изменение, потребуется выполнить системный скрипт.

Для первого способа достаточно в консоли ввести команду:

# hostname debian12

Теперь проверим, что получилось:

# hostname
debian12

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

# mcedit /etc/hostname
debian12

Изменение вступит в силу после перезагрузки. Если воспользоваться командой:

# hostnamectl set-hostname debian12

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

2 и более IP на одном интерфейсе

Иногда возникают ситуации, когда необходимо назначить несколько ip на одном интерфейсе. Сделать это очень просто. В самом начале я показал, как быстро через консоль в Debian можно назначить несколько ip c помощью dhclient, когда уже указан статический адрес. Теперь сделаем так, чтобы эти настройки сохранялись после перезагрузки. Для этого редактируем наш любимый и ненаглядный /etc/network/interfaces:

# mcedit /etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet dhcp

auto ens18:1
iface ens18:1 inet static
address 10.20.1.66
netmask 255.255.255.0

С такими настройками я получу 2 ip адреса на сетевом интерфейсе:

  1. Первый от dhcp сервера.
  2. Второй адрес на этой же сетевой карте будет указан статически.

2 IP адреса на одном сетевом интерфейсе

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

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

Как быстро узнать ip адрес сервера в Debian

Часто возникает вопрос, как в Debian быстро узнать или проверить ip адреса, назначенные серверу. Выше я уже приводил пример простой команды, которая показывает все сетевые параметры интерфейса. Сейчас рассмотрим несколько вариантов, которые наглядно покажут только ip адреса, без лишней информации. Для начала воспользуемся уже известной командой ip, немного подрезав ее вывод:

# ip a | grep inet | awk '{print $2}'

Узнать ip адрес

Вы узнаете все ip адреса сервера, в том числе и ipv6. То же самое, только без ipv6 можно увидеть другой командой:

# ifconfig | grep 'inet '

Список ip адресов

Если получите ошибку:

-bash: ifconfig: command not found

Значит у вас не установлен пакет net-tools. Установить его можно следующей командой:

# apt install net-tools

Если совсем заморочиться и обрезать все лишнее в выводе команды ifconfig, то можно вывести только список ip адресов:

# ifconfig | grep 'inet ' | awk '{ print $2}'

Краткий список ip адресов

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

# ifconfig | grep 'inet ' | awk '{ print $2}' | grep -v 127.0.0.1

ip адреса

То же самое для ip:

# ip a | grep 'inet ' | awk '{ print $2}' | grep -v 127.0.0.1

Думаю, этих вариантов достаточно, чтобы проверить все ip адреса, отрезав лишнее.

Static routes (статические маршруты)

Следующим важным элементом настройки сети является управление статическими маршрутами (static routes): добавление (route add) и удаление (route del). Это часто бывает нужно, когда на шлюзе настроены VPN соединения. К примеру, запросы в одну подсеть отправляем через один VPN интерфейс, в другую подсесть - через другой. Какие-то VPN сервисы умеют сами управлять своими статическими маршрутами, какие-то нет. Тогда это нужно сделать вручную. 

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

# ip route add 192.168.13.0/24 via 10.20.1.100
192.168.13.0 адрес подсети, для которой создаём отдельный маршрут в обход шлюза по умолчанию
/24 маска подсети
10.20.1.100 адрес шлюза, который будет роутить трафик в указанную подсеть

Проверяем таблицу маршрутов:

# ip r

static routes

Чтобы удалить маршрут, выполняем команду:

# ip route delete 192.168.13.0/24

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

post-up route add -net 192.168.13.0 netmask 255.255.255.0 gw 10.20.1.100
post-up route add -net 192.168.15.0 netmask 255.255.255.0 gw 10.20.1.100
pre-down route del -net 192.168.13.0 netmask 255.255.255.0 gw 10.20.1.100
pre-down route del -net 192.168.15.0 netmask 255.255.255.0 gw 10.20.1.100

Мы добавили 2 статических маршрута. Перезагружаемся и проверяем.

статические маршруты

Мой конфиг целиком стал выглядеть вот так:

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet dhcp
post-up route add -net 192.168.13.0 netmask 255.255.255.0 gw 10.20.1.100
post-up route add -net 192.168.15.0 netmask 255.255.255.0 gw 10.20.1.100
pre-down route del -net 192.168.13.0 netmask 255.255.255.0 gw 10.20.1.100
pre-down route del -net 192.168.15.0 netmask 255.255.255.0 gw 10.20.1.100

auto ens18:1
iface ens18:1 inet static
address 10.20.1.66
netmask 255.255.255.0

С постоянными статическими маршрутами в Debian разобрались, ничего сложного. Идём дальше.

Как выполнить перезапуск сети

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

# systemctl restart networking

или

# service networking restart

Они выполняются не мгновенно, обычно несколько секунд.

Несмотря на то, что в большинстве современных дистрибутивов на базе Linux внедрена система инициализации systemd, в директории /etc/init.d/ для совместимости остались рудименты от старой системы SysVinit. Выполнить перезагрузку сети можно с их помощью:

# /etc/init.d/networking restart
[ ok ] Restarting networking (via systemctl): networking.service.

Команда делает то же самое, но есть некая обратная связь о том, как всё прошло. Если у вас всё в порядке на сервере и нет сетевых ошибок, то рестарт сети можно спокойно делать удаленно по ssh. Вас даже не отключит от текущей сессии. Но на всякий случай я не рекомендую это делать, если у вас нет доступа к консоли сервера. Всякое может случиться, я бы не рисковал лишний раз. Настройку сети, как и файрвола, лучше не делать, не имея прямого доступа к консоли сервера.

Настройка vlan в Debian

Для настройки vlan в Debian первым делом необходимо установить пакет vlan:

# apt install vlan

Теперь нужно разобраться с необходимым модулем ядра для vlan - 8021q. Проверим, загружен ли он в системе:

# lsmod | grep 8021q

Если в выводе пусто, а по умолчанию там будет пусто, модуль не загружен. Загрузим его и проверим:

# modprobe 8021q
# lsmod | grep 8021q
8021q                  40960  0
garp                   16384  1 8021q
mrp                    20480  1 8021q

Всё в порядке, vlan модуль загрузился. Добавим его в автозагрузку:

# echo 8021q >> /etc/modules

Теперь этот модуль будет загружаться при старте сервера. Создадим виртуальный интерфейс с vlan с id 1500:

# ip link add link ens18 name ens18.1500 type vlan id 1500

Назначим адрес новому интерфейсу и запустим его:

# ip addr add 10.20.1.150/24 dev ens18.1500
# ip link set ens18.1500 up

Можно в одну команду, с помощью ifconfig:

# ifconfig ens18.1500 10.20.1.150 netmask 255.255.255.0 up

Смотрим, что получилось:

Настройка vlan в debian

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

# mcedit /etc/network/interfaces
auto ens18.1500
iface ens18.1500 inet static
address 10.20.1.150
netmask 255.255.255.0
vlan_raw_device ens18

Перезагрузите сервер и проверьте, что получилось. Можно выполнить перезапуск сети, но если вы до этого все вручную через консоль сделали, то не поймете, сработали настройки из файла или нет. Таким образом очень просто и быстро настроить vlan на сервере с Debian.

Как отключить ipv6 в Debian

Пока еще эта версия протокола ip не получила широкого распространения в России. Если он вам специально не нужен, ipv6 можно отключить. Прежде чем отключать, необходимо узнать, какие сервисы в настоящее время его используют и перенастроить их, отключив у них ipv6. Если этого не сделать, то в работе этих программ могут возникнуть ошибки. Скорее всего некритичные, но всё равно, сделаем аккуратно и правильно. Сначала проверим, что у нас работает на ipv6:

# ss -tulnp | grep ::

Отключение IPV6 в Debian

На целевом сервере с Debian программы ssh, postfix и rpcbind используют ipv6. Отключим это. Начнем с ssh. Открываем файл /etc/ssh/sshd_config и раскомментируем параметр ListenAddress:

# mcedit /etc/ssh/sshd_config
ListenAddress 0.0.0.0

Перезапускаем ssh:

# systemctl restart sshd

Сделаем то же самое с postfix. Открываем файл конфигурации /etc/postfix/main.cf и меняем параметр:

# mcedit /etc/postfix/main.cf
inet_protocols = ipv4

Перезапускаем postfix:

# systemctl restart postfix

Отключаем ipv6 в rpcbind. Для этого нужно внести изменения в системный systemd unit:

# systemctl edit rpcbind.socket

Добавляем между сегментами с комментариями:

[Socket]
ListenStream=
ListenDatagram=
ListenStream=0.0.0.0:111
ListenDatagram=0.0.0.0:111

Перечитываем настройки юнита и перезапускаем службу rpcbind:

# systemctl daemon-reload
# systemctl restart rpcbind.socket

Проверяем, что у нас получилось:

# ss -tulnp | grep ::

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

Теперь полностью отключаем ipv6 в Debian на уровне системы:

# mcedit /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

Добавьте эти строки в любое место конфига, например, в самый конец. Отключим ipv6 на уровне GRUB. Открываем конфиг /etc/default/grub и в параметр GRUB_CMDLINE_LINUX нужно добавить значение ipv6.disable=1. Если там уже указаны другие значения, то перечислены они должны быть через пробел. Примерно так:

GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet ipv6.disable=1"

После этого нужно обновить загрузчик:

# dpkg-reconfigure grub-pc

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

Проверяем свойства сетевых интерфейсов командами ip или ifconfig. Адресов ipv6 в их настройках быть не должно, мы полностью отключили этот протокол. Более подробно об отключении ipv6 в различных приложениях читайте в отдельной статье - как отключить ipv6.

Работа с файлом hosts

В папке /etc любого linux дистрибутива, в том числе Debian, есть файл hosts. Разберемся немного, что это за файл и для чего нужен. По умолчанию он выглядит следующим образом:

# cat /etc/hosts

содержимое hosts

Представим, что у нас в локальной сети есть некий сервер с именем server и ip 10.20.1.2. Мы хотим к нему обращаться по имени. Тогда добавляем запись в файл hosts в самый конец новой строкой:

10.20.1.2 server

Теперь мы можем обращаться к серверу просто по имени server.

файл hosts

Локальный сервер будет в первую очередь смотреть информацию в файле hosts, только потом в настроенном dns сервере. Например, если вы добавите в файл строку:

127.0.0.1 ya.ru

То обращаясь к адресу ya.ru будете попадать на localhost:

изменение hosts

Эта функциональность может быть полезна для публикации в локальной сети каких-то внутренних сервисов, к которым доступ будет только в рамках ваших серверов. Если их будет немного, вам нет необходимости использовать dns сервер, с файлом hosts настройка делается гораздо быстрее. Например, с его помощью можно связать именами 3 сервера небольшого локального кластера. Так же правка файла hosts актуальна, если вы используете локальную копию сервиса webpagetest для тестирования скорости работы сайта на разных хостингах. Вы просто меняете ip адреса для домена и делаете тесты. Так можно наглядно и однозначно сравнивать быстродействие разных хостингов. Подробно об этом можно почитать в статье - ускорение сайта и аудит.

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

Иногда возникают ситуации, когда необходимо настроить или изменить настройки сетевой карты. Сразу отмечу, что настраивать сетевую карту можно только на реальном железе. На виртуальном, скорее всего, ни одна из предложенных дальше команд не приведет к какому-нибудь результату. У виртуальных сетевых адаптеров просто нет настроек. Для начала посмотрим, какие сетевые карты есть на сервере:

# lspci | grep Eth
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)

В моем случае это единственная сетевая карта фирмы Realtek. Теперь установим утилиту ethtool для настройки сетевой карты:

# apt install ethtool

Посмотрим информацию о сетевой карте:

# ethtool enp5s0

Параметры сетевой карты

Указана текущая скорость, на которой работает карточка. Ее можно сменить в случае необходимости:

# ethtool -s enp5s0 speed 100 duplex full

Этой командой можно изменить скорость сетевой карточки до 100Mb/s в случае, если там стояла другая скорость. Смотрим, что получилось:

# ethtool enp5s0 | grep Speed
Speed: 100Mb/s

Изменение скорости сетевой карты

Показал просто для примера, вряд ли кому-то понадобится уменьшать скорость. Чаще нужно выполнить обратное преобразование. У меня была ситуация, когда сетевая карта упорно не хотела работать на скорость 1Gb/s, хотя поддерживала такую работу, и свитч был гигабитный. Долго бился и пробовал различные утилиты для изменения скорости. Оказалось, что патч корд был 4-х жильный из комплекта какого-то роутера. Им воспользовались для подключения и даже не обратили внимание на то, что он не поддерживает работу по гигабиту. У утилиты ethtool много параметров, с помощью которых можно настроить сетевую карту. Пример этих параметров можно посмотреть на сайте redhat.

Работа с утилитой ifconfig

В завершении сетевых настроек хотел немного поговорить об ifconfig. Ранее я упомянул, что более современным средством для настройки сети является утилита ip. В современных релизах Debian и CentOS ifconfig вообще исключили из базовой установки, ее приходится устанавливать отдельно. IP объединяет в себе две функциональности - настройка сетевых интерфейсов и маршрутизации. То есть по сути она заменяет ifconfig + route. В ней реализована функциональность обоих программ. Сам я начинал с ifconfig, так как она есть не только в Linux, но и в Freebsd и других системах Unix. Удобно использовать одно и то же средство во всех дистрибутивах. Но в последние несколько лет переучился на ip, так как надо идти в ногу со временем. Тенденция такова, что ip заменила ifconfig во всех современных дистрибутивах на базе Linux. Что касается удобства, лично я ничего не могу сказать, мне совершенно всё равно, какую команду использовать:

ip addr add 192.168.1.35/24 dev eth0

или

ifconfig eth0 192.168.1.35 netmask 255.255.255.0

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

ip route add 192.168.100.0/24 dev eth2

или

route add -net 192.168.100.0/24 dev eth2

В случае с ip мы работаем с одной командой, а не двумя. Чем пользоваться вам, выбирайте сами. Если не привыкли к чему-то конкретному, рекомендую использовать ip. Мне было бы любопытно узнать, кто, что использует. Оставьте свой комментарий на эту тему. На этом я завершаю свой материал по теме настройки сети в Debian. Я рассмотрел все наиболее значимые и необходимые параметры, с которыми приходится сталкиваться во время конфигурирования сервера.

Часто задаваемые вопросы по теме статьи (FAQ)

Есть ли принципиальное отличие в том, как задать hostname сервера?

В целом, нет. Вы можете как отредактировать файл hostname, так и воспользоваться утилитой hostnamectl. Единственное, напомню, что нужно не забыть проверить файл hosts и изменить имя сервера в том числе и там.

Зачем отключать ipv6 в на сервере Debian?

Отключать ipv6 или нет, решать вам. Я придерживаюсь следующего принципа в настройке серверов - отключать или удалять всё то, что не используется. Это уменьшает вероятность получить баг или уязвимость в компоненте.

Почему команда ifconfig во многих дистрибутивах объявлена deprecated и отсутствует в системе?

В этом статусе она находится последние лет 15 и тем не менее продолжает использоваться. Заменившая ifconfig команда ip является более функциональной и заменяет сразу несколько старых сетевых утилит, таких как ifconfig, netstat, route и т.д. Отказ от ifconfig в пользу ip - попытка внедрить универсальную и самодостаточную утилиту для работы с сетью.

Как настроить proxy в Debian?

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

Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

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

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

88 комментариев

  1. дядя Гена

    Есть ещё networkctl - чтобы не устанавливать ethtool

  2. Всем привет. Как заставить сеть работать без графического адаптера? С видеокартой все работает нормально, вынимаю видеокарту и сеть перестает работать. Debian 12

  3. Мне на практике сказали поставить 9 Дебиан, я нашёл на этом сайте гайд, но не понял как работать с установочной флешкой? https://serveradmin.ru/ustanovka-debian-9/

  4. Виктор Александрович

    Товарищи, можете объяснить как работать с SSH, совсем не могу разобраться, прилагаю ссылку https://serveradmin.ru/debian-nastroyka-servera/

  5. Думаю права доступа тоже полезно будет настроить
    https://blog.bissquit.com/unix/debian-shpargalka-sisadmina-prava-dostupa/

  6. Георгий

    netmask не работает на 11 версии дистрибутива (и, наверное, на 10 тоже).
    Ставьте слеш в самом адресе: 192.168.1.10/24
    https://wiki.debian.org/NetworkConfiguration
    На оф. сайте про netmask ни слова. И, конечно, он не работает.
    4 пробела ставить не обязательно, как в yaml на убунту с нетпланами. Там даже проверка есть https://yamlchecker.com/.

    • Работает netmask. Специально зашёл на один работающий сервер и посмотрел его конфиг interfaces:

      source /etc/network/interfaces.d/*
      auto lo
      iface lo inet loopback
      auto ens3
      iface ens3 inet static
      address 62.113.115.231
      netmask 255.255.255.0
      gateway 62.113.115.1
      dns-nameservers 77.88.8.1 8.8.8.8
      pre-up iptables-restore < /etc/iptables_rules

      • Denis Martynenko

        доброго дня! подскажите пожалуйста, какой командой проверить конфиг интрефэйса, конкретно интересует сетевой адаптер в debian 8

  7. Дмитрий

    Добрый день!
    Спасибо за статью!
    В разделе "Как отключить ipv6 в Debian", ListenAddress 0.0.0.0 - по-моему вы опустили какой-то комментарий ибо включение доступа по SSH не имеет значения для работы TCP/IP v6 )))
    жаль не расписали про шлюзы по умолчанию и VPN, придется искать)))

  8. Аноним

    Быстро посмотреть адрекса хоста можно без всяких awk с помощью hostname -I

  9. Подскажите, задал компу статический ip.
    Комп принемает и отправляет пинг в локальной сети, но в интернет выглянуть не может.
    Я так понимаю что проблема в роутере, может необходимо открыть какаие нибудь порты или настроить NAT?

    • Закрытые порты на пинг никак не влияют, а вот если NAT не настроен, то ничего пинговать комп из локалки в интернете не будет.

  10. Александр

    Добрый день

    Для быстрой диагностики использую cockpit, для его его корректной работу необходим NetworkManager.
    В итоге решил им управлять сетью, пока что тестирую, но может кому то пригодиться:

    # cockpit + настройка NetworkManager
    ~ apt -y install cockpit
    ~ systemctl enable cockpit.socket
    ~ systemctl start cockpit.socket
    # Убираем сообщение при запуске
    ~ nano /etc/motd
    # не должен содержать ничего
    ~ nano /etc/network/interfaces
    # содержит:
    ~ nano/etc/NetworkManager/NetworkManager.conf
    *****************************************
    [main]
    plugins=ifupdown,keyfile

    [ifupdown]
    managed=false
    *****************************************
    ~ /etc/init.d/network-manager restart

    # https://manpages.debian.org/buster/network-manager/NetworkManager.conf.5.en.html

  11. Статья давно устарела. Про это уже писали несколькими постами выше.

  12. Вроде уже 2021й, и Busetr (10й) уже давно шагает по планете. Коль занялись писать статьи, то ОБЯЗАТЕЛЬНО указывайте версию ОС.
    Потому что в 10 дебиане ваша настройка в interfaces нифига не заработает. А то будут бить копытом, аля какого нехорошего писаку нашли.
    https://wiki.debian.org/NetworkConfiguration - достаточно доходчиво напиисано.

    • Не понял, что именно не будет работать. Если не ошибаюсь, статья по 10-й версии и писалась.

  13. Искандер

    Нужен совет. Имеется гейт на debian 6.0.5. Требуется, чтобы имелась возможность цепляться по РДП к одной из виндовых машин в сети. Но выходит облом. При том что:

    -IPFW -t -nat A PREROUTING -p tcp -d --dport 3389 -j DNAT --to - работает

    а

    -IPFW -t -nat A PREROUTING -p tcp -d --dport 100 -j DNAT --to - не работает

    что характерно, системы не видно. На одни машины доступ есть, на другие - фиг вам. РДП везде включен, каспер на период эксперимента вырублен. В чём может быть засада? Выручайте, плиз.

    • А у самих машин, куда делается проброс, шлюз по умолчанию точно этот же Debian? Может есть еще какой-то шлюз?

  14. Только начинаю разбираться в linux и в частности в debian. Если что извиняюсь за глупые вопросы.
    У меня встала задача поменять шлюз на сервере, поменял в interfaces, перезапустился, ничего не заработало, пришлось вернуться к старым настройкам.
    Потом поиском поискал и нашел этот же адрес шлюза прописан в файлах:
    etc/*rc
    etc/ppp/ip-up.d/*route_up
    etc/ppp/ip-down.d/*route_down
    init.d/*firewall
    rc0.d/@K20firewall (как я понял это ссылка на тот же файл)
    Как я понял мне нужно поменять так же в этих файлах этот шлюз на новый?
    Могу я прямо через mc это сделать путем редактирования или надо делать это через команды?
    Подскажите пожалуйста?

    • А у вас какой тип подключения к интернету или локальной сети? Файлы в /etc/ppp/ отвечают за настройку pptp соединения. В общем случае менять нужно только в одном месте - interfaces, как рассказано в статье.

  15. Добрый день.

    Есть игровой сервер RUST, когда игроков много все лагает, внутренний FPS сервера падает с 200 до 30-10.
    В пике железо нагружено на 5-10%, людей не много: 25, трафик 1мб/сек.

    Грешу на сетевые проблемы, вопрос куда копать?
    Слышал что debian изначально не готов к большому трафику... а нагуглить это не удается.

    Провайдер Москва МГТС 25мб/сек
    Железо соединено с роутером МГТС напрямую
    PROXMOX внутри VM debian9 с игровым сервером

    Заранее спасибо за ответ :)

    • Нужно полноценный мониторинг настраивать и смотреть, что конкретно проседает. Заочно трудно определить. Debian готов ко всему не меньше, чем любой другой дистрибутив, так что дело точно не в нем. К тому же 25 человек это не много. Я не знаю специфику работы сервера RUST, поэтому не могу что-то конкретное посоветовать. Я даже не понял, что значит fps сервера. Обычно серверная часть игровых серверов вообще без gui. Вся графика на клиентах.

      • Разумеется сервер без GUI, но FPS имеет. Тоже только догадываюсь что это, но все им меряются.

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

  16. При изменение имени через hostnamectl нужно еще потом hosts проверить на упоминания старого имени

  17. Николай

    Установил и настроил (может быть с ошибками) bind, Те же egg's, только вид сбоку. Пока подключен интернет, всё работает. Стоит его отключить, как к серверу, через Samba нет доступа ни из Windows ни из Linux. Привожу отчёт о статусе bind,
    ● named-chroot.service - Berkeley Internet Name Domain (DNS)
    Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; enabled; vendor preset: disabled)
    Active: active (running) since Чт 2019-09-05 13:31:04 +04; 23min ago
    Process: 1779 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS (code=exited, status=0/SUCCESS)
    Process: 1621 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -t /var/named/chroot -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
    Main PID: 1784 (named)
    CGroup: /system.slice/named-chroot.service
    └─1784 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot -4

    сен 05 13:31:04 nikiv64 named[1784]: managed-keys-zone: journal file is out of date: removing journal file
    сен 05 13:31:04 nikiv64 named[1784]: managed-keys-zone: loaded serial 2
    сен 05 13:31:04 nikiv64 named[1784]: zone 0.in-addr.arpa/IN: loaded serial 0
    сен 05 13:31:04 nikiv64 named[1784]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN: loaded serial 0
    сен 05 13:31:04 nikiv64 named[1784]: zone localhost.localdomain/IN: loaded serial 0
    сен 05 13:31:04 nikiv64 named[1784]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
    сен 05 13:31:04 nikiv64 named[1784]: zone localhost/IN: loaded serial 0
    сен 05 13:31:04 nikiv64 named[1784]: all zones loaded
    сен 05 13:31:04 nikiv64 named[1784]: running
    сен 05 13:31:04 nikiv64 systemd[1]: Started Berkeley Internet Name Domain (DNS).

    Скажите что у меня не так? Если нужны дополнительные сведения, скажите, какие?

  18. Николай

    Установил и настроил? dnsmasq. Разницы ни какой, что с ним, что до этого без него. Если интернет работает, то доступ к серверу, через Samba есть, если интернет не работает, то доступа нет. Состав конфигурационного файла dnsmasq.conf:
    port=53
    interface=enp2s0
    no-dhcp-interface=enp2s0
    domain-needed
    bogus-priv
    domain=workgroup
    no-resolv
    no-poll
    server=77.88.8.8
    server=77.88.8.1
    stop-dns-rebind
    clear-on-reload

    Естественно порты 53/tcp и 53/udp открыты. Статус dnsmasq:
    ● dnsmasq.service - DNS caching server.
    Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled)
    Active: active (running) since Ср 2019-09-04 09:20:33 +04; 1min 18s ago
    Main PID: 2398 (dnsmasq)
    CGroup: /system.slice/dnsmasq.service
    └─2398 /usr/sbin/dnsmasq -k

    сен 04 09:20:33 nikiv64 systemd[1]: Started DNS caching server..
    сен 04 09:20:33 nikiv64 dnsmasq[2398]: started, version 2.76 cachesize 150
    сен 04 09:20:33 nikiv64 dnsmasq[2398]: compile time options: IPv6 GNU-getopt DBus no-i18n IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth no-DNSSEC loop-detect inotify
    сен 04 09:20:33 nikiv64 dnsmasq[2398]: using nameserver 77.88.8.1#53
    сен 04 09:20:33 nikiv64 dnsmasq[2398]: using nameserver 77.88.8.8#53
    сен 04 09:20:33 nikiv64 dnsmasq[2398]: read /etc/hosts - 2 addresses

    Единственное, что изменилось после установки dnsmasq, немного выросла скорость отклика ping.
    Что дальше делать, не знаю. Подскажите, что я сделал не так,

  19. Николай

    А я полностью отказался от использования Debian. Во-первых, когда на домашнем сервере вышла из строя системная плата Socket 1156, аналогичную не нашёл, пришлось заменить на 1155, той же марки Asus. Debian 7 наотрез отказался на ней работать, установка 8, а затем 9 версии закончились полным провалом, система даже не запустилась, при старте ищет несуществующий раздел (/dev/sdh5, /dev/sdi7) и наглухо виснет. А версию 10 не удалось запустить ни на одном компьютере даже в Live режиме. Запускал и с DVD, и с флешки на компьютеры с материнками с Socket 1156, 1155, 1151. На всех после установки получил старт системы в режиме командной строки с весьма ограниченным набором команд, не работали даже reboot и shutdown, хотя скачивал Live образ и устанавливал систему с графическим окружением Plasma. Все образы скачивал с официального сайта https://www.debian.org/. Установку производил также с этого сайта с небольшого netinst образа. Именно поэтому пару лет назад я отказался от Debian в пользу CentOS, система работает нормально, хотя и есть небольшой "глюк" в работе Samba, возникает периодически, причину пока не нашёл, но как ни странно, работе это не мешает, только примерно на 40 секунд дольше стартует рабочая станция и на 20 секунд дольше откликается сервер, через Putty. И, что интересно, на сервере Midnight Commander также в это время запускается на 20 секунд дольше. Однако, терпеть можно, глюк с переводом разделов в режим "Только чтение" более полугода не повторяется. На рабочей станции в качестве основной системы использую Fedora 29 Plasma, тоже доволен.

    • Долгое подключение putty и долгий запуск MC это 100% проблема с dns и hostname локальной машины. В putty это решается настройкой:
      UseDNS no
      А в MC уже подзабыл, что сделать надо.

      • Николай

        Спасибо. Я давно подозреваю, что проблема с DNS, у меня используется DNS сервер роутера Huawei B310, а bind в CentOS я даже не активировал, мне казалось это удобным в домашней сети. Может быть имеет смысл отключить DNS и DHCP в роутере и активировать и настроить bind в CentOS?

        • Для дома bind не актуален, слишком сложно. Я бы разобрался с dns на роутере. Если не получится его настроить, то настроил бы не bind, а dnsmasq. Это два в одном - dnc + dhcp. Для дома это удобнее и проще.

          • Николай

            Спасибо. Поищу информацию и обязательно попробую. А можно вообще отключить DNS и DHCP, у меня дома всего три компьютера и статическая адресация, через IP, даже в Windows я не использую имена рабочих станций, только IP адреса.

            • Да, можно. В компьютере можно вручную прописать dns сервера из интернета, например, 77.88.8.1 или 1.1.1.1 И не нужен локальный dns сервер. Но если у вас мобильные телефоны и wifi, то без dhcp неудобно вручную указывать сетевые настройки в смартфонах.

              • Николай

                А если оставить всё, как есть, первичный DNS сервер роутера, 192.168.8.1, только добавить вторичный DNS сервер 77.88.8.1. Попробую, думаю ничего не испорчу, во всяком случае вторую сетевую карту уже приобрёл, как насмелюсь, буду настраивать, на рабочей станции DNS сервер добавил, пока ничего не заметил. Буду наблюдать за работой. Спасибо.

                • Если на 192.168.8.1 dns не работает, а на компе он указан, то все запросы подтормаживать будет. Надо убрать.

                  • Николай

                    Понял. Большое спасибо.

                    • Николай

                      После отключения DNS роутера и использования в качестве первичного DNS сервера с IP 77.88.8.1 сеть стала работать очень хорошо. Но есть опасения, что будут проблемы при перебоях в работе интернет. Что Вы посоветуете, оставить всё, как есть, или установить и настроить dnsmasq? Я нашёл описание настройки dnsmasq, но есть вопросы по настройке IP адресов, ответы на которые я пока не нашёл, можно ли Вам задать вопрос с ответом на мой почтовый адрес, я просто не хочу загромождать сайт своими конкретными данными, если можно, я сообщу адрес почтового ящика. Николай.

                    • Лучше на форуме создать отдельную тему и там все спрашивать. Например, в разделе про centos - https://serveradmin.ru/forum/centos/

              • Николай

                Думаю, что мне удалось решить проблему "малой кровью", я оставил IP адрес роутера, как основного DNS на всех компьютерах сети, включая сервер, а в роутере прописал адреса DNS 77.88.8.1 и 8.8.8.8 и при первой же загрузке, скорость доступа к ресурсам сервера даже немного выросла, по сравнению с той, которая была ранее при нормальной работе. Ранее у роутера по умолчанию стояла опция автоматического поиска адреса сервера DNS. Спасибо а помощь.

  20. Родион

    Пытался тоже отключать ipv6, но он срабатывал если только я пропишу в grub отключение, другими способами он все равно работал... Но есть проблема, после отключения не работает IMAP (iRedMail стоит)... Хотя в конфиге нигде не указано про ipv6.

    • Есть такое, причем не только в debian. В grub лазить не хочется, поэтому я обычно просто в приложениях отключаю ipv6 и на этом успокаиваюсь.

    • Николай

      Я не поню уже, как это делал в Debian, но может быть это поможет, в CentOS и Fedora я это сделал, выполнив команды
      # echo net.ipv6.conf.all.disable_ipv6 = 1 >> /etc/sysctl.conf
      # echo net.ipv6.conf.default.disable_ipv6 = 1 >> /etc/sysctl.conf
      также необходимо, если это рабочая станция отключить и сервис dhcpv6-client, в Fedora я использую Firewalld, выполнил команду
      # firewall-cmd --permanent --remove-service=dhcpv6-client
      в Debian используется Iptables, можно сделать аналогичное в нём, а ещё первое, что я делаю после установки в настройках сетевой карты если через утилиту настройки для IPv6, ставлю "Игнорируется", если через терминал, то в CentOS и Fedora редактирую файл, /etc/sysconfig/network-scripts/моя_сетевая_карта. В Debian сетевая карта настраивается в /etc/network/interfaces.

    • Николай

      Не понимаю, почему в командах двойной дефис заменяется на длинное тире, в третьей команде вместо длинного тире надо поставить двойной дефис.

      • Это особенность движка wordpress. Я не понимаю, зачем он двойные тире проглатывает и некоторые другие символы. Это неудобно, но что с этим делать - не знаю.

  21. Родион

    rc.local ? Его же убрали еще в 9 Debian

    • Его и из убунты убрали, но он легко возвращается :) Если кто-то привык, можно по прежнему пользоваться. Но сейчас, если уж так хочется костыль, проще в cron добавлять с параметром расписания @reboot, нежели продолжать использовать rc.local.

  22. Родион

    а почему у тебя интерфейсы называются по старому формату?

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

  23. Полностью актуализировал и дополнил статью после выхода Debian 10 Buster.

  24. Николай

    Здравствуйте, хочу попросить совета. Имеется самосборный NAS на базе ПК, ОС OpenMediaVault (Debian 9). Сеть настроена через конфигуратор, но, наверное, это не имеет значения, имя сетевого интерфейса - enp5s0. Заметил такую вещь. Если в ПК воткнуть дополнительную плату или вынуть, то имя сетевого интерфейса меняется, он становится не настроенным и доступа по сети нет. Можно ли сконфигурировать сетевую плату так, чтобы она не меняла имя ни при каких условиях?

    • Хм, не задавался особо никогда этим вопросом. Как раз в Debian 9 изменили механизм именования интерфейсов вроде как чтобы решить как раз вашу проблему. Я не изучал никогда этот вопрос и не сталкивался с этой ситуацией, так как практически никогда не менял и не добавлял сетевые интерфейсы. Даже если это случалось, то было разовым действием.

  25. Николай

    Всем спасибо. С Linux завязываю, устал от вечных проблем, хочется немного пожить спокойно. Завершаю конвертацию дисков сервера в NTFS и, скорее всего, буду устанавливать Windows 2003 R2 или, если она не пойдёт, тогда Windows 2008 R2.

  26. Вот небольшой лайфхак по удаленному доступу. На даче стоит старый компьютер с камерой. Хочу получить к нему удаленный доступ. В деревне у провайдера нет "белого IP" и приобрести его невозможно.
    DDNS работает, но и это бесполезно, потому что соединения извне тупо закрыты провайдером.
    Поэтому использую вот такой VPN сервис - vpnki.ru Они не предоставляют выход в интернет, но объединяют мои туннели - один с дачи, другой с смартфона.
    Вдруг кому-то это поможет.

    • Как вариант, можно поднять свой собственный openvpn сервер где-то во вне и подключаться с дачи к этому серверу. После подключения, к нему будет доступ через vpn.

  27. у меня вопрос я установил на виртуальный debian программу ivideon server для записи с камер, в общем есть камера в родной сети, а есть камеры сети за ВПН,
    так вот когда ВПН обрывается и восстанавливается, в ivideon эти камеры как бы зависают и становятся не доступны до по ping, если перезапустить сеть, или перезапустить ivideon то они восстанавливаются,

    вопрос если добавить к интерфейсу ip адреса подсетей дополнительно, то это поможет?

    вобще идея пинговать камеру подсети по расписанию, если пропадает доступ то перезагружать сеть

    • Добавление ip адресов к интерфейсу ничего не изменит. Это похоже на особенность работы ivideon сервера. Можно с помощью заббикса сделать так - настроить проверку камер пингом. Если камера пропадает, а потом появляется снова, заббикс может запускать скрипт по перезапуску ivideon сервера.

      • заббикс это же целый сервер, можно же просто кроном запускать скрипт который будет все делать

        • Да, можно обычным скриптом. Я просто пример привел, как это можно сделать. Zabbix популярная система и много у кого стоит.

          • оказывается простая перезагрузка сети не работает service networking restart
            ошибка
            Job for networking.service failed because the control process exited with error code.
            вроде система чистая ничего с сетью не делал, почему так

  28. Николай

    Скоро три месяца, как Debian 9.5.0 работает нормально. Месяца полтора назад обновил систему, через терминал и сразу получил несколько "нежданчиков", пропала локальная и Wi Fi сеть, ещё какие- то мелочи. Восстановилсистему с образа, который создал перед обновлением и полностью отключил обновление. Сейчас на десктопе стоят три системы Fedora 27 (в качестве основной), Windows 7 (для "подсоса", когда что-то невозможно, или очень сложно сделать в Linux) и Debian 9.5.0 (для ностальгии) Во всех Linux установлено графическое окружение KDE Plasma. От других отошёл, в Xfce постоянно глючит сеть, Gnome 3, как будто специально создан для извращенцев и мазохистов, Lxde, Mate, Cinnamon очень неудобны. А если KDE Plasma настроить, система просто летает. На домашнем сервере прекрасно работает CentOS 7, лучшей системы для сервера просто невозможно найти. На всех системах после настройки полностью отключил обновление. ОБНОВЛЯТЬ БУДУ ИСКЛЮЧИТЕЛЬНО ВРУЧНУЮ И ТОЛЬКО ПОСЛЕ СОЗДАНИЯ ОБРАЗА СИСТЕМЫ.

    • Такова суровая реальность. Проблема в том, что не обновлять системы в наше время нельзя. Так что администраторам теперь приходится постоянно страдать при обновлениях, будь то linux или windows. По моему опыту, ошибок хватает и там и там. Всегда есть шанс получить неработающую систему после обновления. Причем, для windows это актуально на всех системах, и пользовательских, и серверных. Для linux на серверах все хорошо, ни разу не убивал систему обновлением, некоторый софт может сломаться, но потом чинится (особенно часто ломается самба с интеграцией с AD). А вот пользовательские системы с графическим окружением убиваются обновлением запросто.

      • Вот именно поэтому на сервере обновлять не буду, в моей сети смесь различных ОС, есть и разные версии Windows, настроенные под различные задачи и несколько версий Linux. Хотя на Linux сервере у меня после обновлений никогда не было проблем, 5 лет стояла Debian 7 и без проблем обновлялась от версии 7.1 до 7.11. О CentOS ничего пока сказать не могу, установлена последняя версия и совсем недавно, примерно пару месяцев.

  29. Николай

    Наконец-то сумел установить Grub Customizer в Debian 9! Абсолютно случайно наткнулся на одном из англоязычных сайтов. Если кого-то это заинтересует, сообщаю, для начала необходимо скачать актуальную версию Grub Customizsr с сайта: https://launchpad.net/grub-customizer/+download, (grub-customizer_5.0.8.tar.gz) затем распаковать архив в любую папку, например, /home/user/grub-customizer/, в терминале перейти в эту папку, команда, cd /home/user/grub-customizer и последовательно выполнить команды:
    sudo apt install cmake g++ libgtkmm-3.0-dev gettext libssl-dev libarchive-dev
    sudo cmake . && make
    sudo apt install hwinfo
    sudo make install

  30. Николай

    Начинающий, вот, что я хотел бы тебе сказать. Во-первых, пока еще не все нервы потрачены, переходи на другую платформу, Debian окончательно "скурвился". Ни одна ОСь, основанная на Debian после 7 версии нормально не работает. У меня нормально работал Debian 7 на домашнем сервере 5 лет. Были, конечно небольшие проблемы, например, с Wi-Fi, с торрент клиентом Transmission, другие мелкие проблемы с драйверами, но я на них не обращал внимания. Когда пришла пора обновляться, сначала до 8, а потом до 9 версии, начались проблемы по серьёзнее, в конечном итоге, после шестой (или десятой) попытки установки Debian 9 на домашний сервер, без графического окружения, система "с грехом пополам" (отборным матом) проработала менее суток и отказалась загружаться. Пропуская мытарства с другими клонами Debian, продолжаю, установил на домашний сервер Fedora 27 server, а на домашние компьютеры Fedora Remix 27, а затем и 28 версию. В итоге, удалось настроить абсолютно всё, в том числе и то, что не удавалось в Debian 7. На домашнем компьютере осталась небольшая проблема, не удавалось запустить просмотр нескольких видеофайлов по сети с домашнего сервера. Эту проблему преодолел путём установки OpenSuse 42.3. Конечно эти системы коренным образом отличаются от Debian и его клонов, но оно того стоит. на открытие нужного файла по сети уходит не более нескольких секунд, ранее в Debian на это уходило до 5 минут, абсолютный "рекорд" составил 8 минут. Короче, если желаешь перейти на платформу Red Hat, или OpenSuse, обращайся, чем смогу, помогу. По Fedora и другим RedHat-овским операционкам могу прислать подробное описание установки и настройки, над OpenSuse, пока интенсивно работаю, система, чем дальше, тем больше нравится, уже установил её, как основную.

    • Абсолютно не согласен. У вас какие-то локальные проблемы, которые к Debian не имеют никакого отношения. Постоянно работаю с Debian и могу ответственно заявить - он ничем не хуже CentOS или Ubuntu. В целом все настраивается и работает так, как должно. На Debian 9 основан гипервизор proxmox, с которым я постоянно работаю, и который имеет мировую популярность и неплохо развивается.

      • Николай

        У меня системная плата Asus Prime B250M-K, процессор I3-7100, память DDR4 Kingston KyberX FURY, видеокарта ATI Radeon 5770, Wi-Fi адаптер USB DIlik. В Fedora 28 x64, CentOS 7.5, Open Suse 42.3 и, что интересно в Ubuntu 14.04 Orens Edition всё установилось и настроилось, что называется "с разбегу", более того и проводная сеть и беспроводная работают одновременно и друг другу не мешают, удалось запросто настроить мост между двумя подсетями. Теперь о Debian. Недавно вышла новая версия Debian 9.5, в сопровождающей документации сообщалось, что исправлены многие ошибки, решил попробовать, скачал с официального сайта образ для установки, через интернет, установил её на USB_HDD. Действительно, исправлено много ошибок и система, что называется установилась и настроилась буквально влёт, даже доступ к ресурсам сети в обе стороны настроил без проблем, в том числе и с Windows, через Samba, однако сразу же вывалилась проблема №1, невозможность установки Grub Customizer, а у меня на компьютере установлены 3 системы (это минимум, было и более 5) и все они мне нужны для выполнения различных задач. Короче у меня ностальгия по Debian - это моя первая система, с которой я начал заниматься всерьёз, мне очень нравятся версии 6 и 7, на семёрке у меня 5 лет работал домашний сервер, хотя и были проблемы, поэтому буду очень благодарен за любую подсказку, что же надо сделать в Debian, чтобы в нём можно было работать нормально. Мне обязательно необходимы: возможность установки Grub Customizrer (у меня на компьютере три системы, очень возможно более), Theam Viewer, а лучше возможность управления по протоколу VNC через Remmina и VNC viewer, и желательна поддержка Wi-Fi, остальное в нём есть.

        • Я использую Linux только на серверах. Так что ничего посоветовать по использованию в качестве десктопа не могу.

          • Николай

            Вообще-то говоря Grub Customizer на сервере бессмысленен, я даже придумать не могу, для чего устанавливать несколько ОС на сервере

          • Евгений

            Извините, за тупость, но как это вообще работает на нескольких машинах подключенных в одну локальную сеть?
            Мне надо 20 машин подключить, но я не понимаю как.

          • Николай

            А по CentOS подсказать не можете? У меня прекрасно работает CentOS 7.6 на домашнем сервере, такой скорости я не видел ни в одной системе, однако, иногда возникают "нежданчики", типа невозможности подсоединения к серверу, через Samba, особенно часто это бывает в Debian, гораздо реже в Fedora, просто выводится сообщение "Превышено время ожидания...". В это время соединение с сервером, через SSH происходит очень долго, порядка 30 секунд, в том числе, через Dolphin, через терминал и через Putty. В это же время и скорость отклика сервера из Windows тоже снижена, однако скорость работы локальной сети ни причём, тестирование показало максимальную скорость передачи да и значение ping составляет в среднем 0,2 ms. В обычное время соединение происходит за доли секунды. Проблема была последние несколько дней, сегодня утром всё само собой нормализовалось. У меня большие подозрения к системной плате, Asus P8H61M-K (процессор Core I3 3220) хотя она практически новая, ей несколько месяцев. Задавал вопрос в службу поддержки Asus мне ответили, что работа системной платы под Linux не гарантируется. Что можете посоветовать? Если необходимы какие-то данные, я сообщу. Ранее, в течение 5 лет сервер был выполнен под Debian 7 на системной плате Asus P7H55-M, ни каких проблем не было. Во время

          • Николай

            Сегодня, менее, чем через двое суток сно проявился глюк CentOS 7.6 на домашнем сервере, Снова невозможно подключиться из Linux к серверу, через Samba, выводится сообщение "Превышено время ожидания", через Putty подключился за 30 секунд, проверил все конфигурационные файлы, всё в порядке. Чрез SSH из Dolphin соединение происходит, но на это уходит около 30 секунд. На десктопе выполнил команду "systemctl status smb nmb", получил ответ
            "● smb.service - Samba SMB Daemon
            Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
            Active: active (running) since Mon 2019-05-20 08:57:32 +04; 14min ago
            Docs: man:smbd(8)
            man:samba(7)
            man:smb.conf(5)
            Main PID: 1314 (smbd)
            Status: "smbd: ready to serve connections..."
            Tasks: 4 (limit: 4915)
            Memory: 17.7M
            CGroup: /system.slice/smb.service
            ├─1314 /usr/sbin/smbd --foreground --no-process-group
            ├─1424 /usr/sbin/smbd --foreground --no-process-group
            ├─1425 /usr/sbin/smbd --foreground --no-process-group
            └─1461 /usr/sbin/smbd --foreground --no-process-group

            мая 20 08:57:29 nikiv systemd[1]: Starting Samba SMB Daemon...
            мая 20 08:57:32 nikiv systemd[1]: Started Samba SMB Daemon.
            * мая 20 08:57:32 nikiv smbd[1314]: [2019/05/20 08:57:32.853106, 0] ../lib/util/become_daemon.c:136(daemon_ready)
            * мая 20 08:57:32 nikiv smbd[1314]: daemon_ready: daemon 'smbd' finished starting up and ready to serve connections

            ● nmb.service - Samba NMB Daemon
            Loaded: loaded (/usr/lib/systemd/system/nmb.service; enabled; vendor preset: disabled)
            Active: active (running) since Mon 2019-05-20 08:57:28 +04; 14min ago
            Docs: man:nmbd(8)
            man:samba(7)
            man:smb.conf(5)
            Main PID: 1078 (nmbd)
            Status: "nmbd: ready to serve connections..."
            Tasks: 1 (limit: 4915)
            Memory: 11.3M
            CGroup: /system.slice/nmb.service
            └─1078 /usr/sbin/nmbd --foreground --no-process-group"
            Строки, которые я пометил звёздочкой, в ответе выделены красным. Ни каких изменения ни на сервере, ни на десктопе я не далал, просто включил их утром.

          • Николай

            Прошу прощения, но сегодня новый "нежданчик", утром включаю сервер, десктоп и всё работает нормально, отклик сервера и в Windows и в Linux около 0,5 секунды. Вчера в середине дня поменял у сервера системную плату, была Asus P8H61M-K, установил Gigabyte H61M-S2PV и ни каких изменений, загрузил сервер один раз, работает, второй раз нет ресурсов Samba, снова всё перепроверяю, всё в норме, перезагружаюсь, всё появляется, но отклик ресурсов около 30 секунд, после этого, через полчаса всё пропадает. Я работал сисадмином более четверти века, начиная от Windows NT4, заканчивая Windows 2006 R2 и никогда ни одного сбоя сервера не видел, а тут просто чудовищная нестабильность. Опыт работы с ОС есть, начинал работу с MS DOS 2.0, более 10 лет преподавал студентам предмет "Операционные системы". Очевидно придётся переводить сервер на Windows, к сожалению все диски сервера размечены в ext, придётся пару недель конвертировать.
            PS: Конкретного ответа, как ни искал, найти не смог, выкладывал все конфигурационные файлы, логи, однако в лучшем случает формальная отписка, в худшем случае оскорбления. Устал от всего этого.

  31. Николай

    Вопрос автору. Несколько лет не могу найти, как управлять удалённым рабочим столом Debian 8, теперь уже и Debian 9 по протоколу vnc. У меня шестой год работает домашний сервер на Debian 7, управляется по локальной сети из любой ОС, даже из Windows, очень доволен, но срок его поддержки закончился. В 8 и 9 версиях не могу настроить удалённое управление рабочим столом. Мне необходимо получить полный доступ к рабочему столу Debian, полное управление системой, запуск графических программ. Это необходимо и для удалённого управления домашним кинотеатром, который также построен на базе Debian 7. Из Windows подключаюсь через VNC Vewer 5, из Linux, через Remmina. Протокол vnc использую потому, что только он позволяет получить клон рабочего стола на удалённом компьютере и одновременно на сервере, в случае с домашним кинотеатром на экране телевизора. Если будете отвечать, то, пожалуйста, сообщите об ответе по e-mail nialiv@yandex.ru

    • Вообще нет опыта в таких вещах. Я vnc на серверах не использую, как и графическое окружение. А в качестве рабочих станций линукс не использую вообще.

      • Николай

        Спасибо. Пока буду использовать Debian 7, а когда это будет невозможно, перейду на Mint, в Mint 18.2x64 получилось всё, за исключением управления рабочим столом из Windows, управляется только из Linux.
        Только что возник вопрос. После настройки сети, как указано в статье, стала значительно быстрее откликаться сеть, но пропал интернет. Что интересно ping 8.8.8.8 и ping 62.213.2.1 проходят, а web страницы не загружаются, закомментировал настройки сетевой карты (оставил их в приложении "Сетевые соединения") и интернет снова стал работать, однако Debian 9 перестал видеть себя и свои ресурсы в файловом менеджере, видит только сервер и домашний кинотеатр. Привожу содержание файла 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

        # auto enp5s0
        # iface enp5s0 inet static
        # address 192.168.0.11
        # network 192.168.0.0
        # netmask 255.255.255.0
        # gateway 192.168.0.1
        # dns-nameservers 8.8.8.8

    • TightVNC не пробовали?
      У меня Винда в основном, но если что-то из Линуксов ставлю на время - использую VNC то-же...
      Типа того: https://linuxize.com/post/how-to-install-and-configure-vnc-on-debian-9/

  32. Лучше вместо
    echo 8021q > /etc/modules
    использовать
    echo 8021q >> /etc/modules

    • Важное замечание. Я не подумал об этом, потому что когда писал, у меня этот файл был пустой. А если бы там что-то было, то пришлось бы расстроиться :) Исправил.

  33. Аноним

    Супер! Спасибо! Действительно, очень полезный материал.

  34. Огромное спасибо за статью!
    Я только начинаю изучать работу linux вот решил попробовать сделать сервер на Debian. Все расписано подробно. Спасибо автору!
    Только вот еще бы про то, как подключить "флеш-модем" от МТС, Мегафон. Я так находил в инете что нужно отключить сд добавить пакет свитч, а вот как настроить остальное не нашел пока. А у нас инет только с такого модема можно получить.

    • Таких нюансов я не знаю, никогда usb модемы не вставлял напрямую в сервер. Обычно для этого использую промежуточные модемы типа Keenetic или Mikrotik, чтобы в сервер приходил уже чистый ethernet. Стоят они не дорого, а работать так удобнее.

  35. Первый раз вижу такую подробную статью про сеть в дебиане

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar