Команда ping
Первая команда, с которой нужно познакомиться – это ping, проверяющую доступность заданного адреса. Введите команду ping 127.0.0.1. Должно получиться что-то такое (если команда не ping не работает, то, возможно, решить проблему поможет инструкция по исправлению ошибки cmd no command):
C:\Documents and Settings\Администратор>ping 127.0.0.1
Обмен пакетами с 127.0.0.1 по 32 байт:
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Ответ от 127.0.0.1: число байт=32 время<1мс TTL=128
Статистика Ping для 127.0.0.1:
Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
C:\Documents and Settings\Администратор>
Как мы видим, на адрес 127.0.0.1 было отправлено 4 пакета, и они все достигли цели. Что же это был за адрес и почему я был уверен, что пакеты дойдут? Ответ прост – пакеты никуда не отправлялись, а оставались на вашем компьютере. Этот адрес специфичен и используется для loopback – пакетов, не уходящих никуда вовне. Отлично, можем теперь “пропинговать” адрес этого сайта: 212.193.236.38
C:\Documents and Settings\Администратор>ping 212.193.236.38
Обмен пакетами с 212.193.236.38 по 32 байт:
Ответ от 212.193.236.38: число байт=32 время=3мс TTL=55
Ответ от 212.193.236.38: число байт=32 время=3мс TTL=55
Ответ от 212.193.236.38: число байт=32 время=3мс TTL=55
Ответ от 212.193.236.38: число байт=32 время=3мс TTL=55
Статистика Ping для 212.193.236.38:
Пакетов: отправлено = 4, получено = 4, потеряно = 0 (0% потерь),
Приблизительное время приема-передачи в мс:
Минимальное = 3мсек, Максимальное = 3 мсек, Среднее = 3 мсек
C:\Documents and Settings\Администратор>
Можно заметить только одно отличие – пакеты доходили не мгновенно, а за 3 миллисекунды. Надеюсь, у вас тоже не было никакой задержки при доставке пакетов, а главное – вы не увидели строчки типа
Превышен интервал ожидания для запроса.
Появление таких строчек означает, что часть пакетов теряется. Это свидетельствует о проблемах на линии или не сервере, к которомы вы обращаетесь.
Сетевые настройки на сервере Debian
Вопрос настройки сети я уже кратко поднимал в теме начальной настройки Debian. Я рекомендую с ней ознакомиться и выполнить некоторые подготовительные действия, чтобы было удобнее работать далее. Сейчас мы подробно разберем все наиболее значимые нюансы сетевых настроек, которые могут пригодиться в повседневной работе.
Первоначальная настройка сети начинается во время установки сервера. Если у вас есть сетевой интерфейс и dhcp сервер в сети, то сеть сконфигурируется автоматически на основе полученных настроек и будет готова к работе. В последствии вы можете выполнить настройку сети в Debian через консоль с помощью программ ip или ifconfig. Наиболее популярным и современным средством на текущий момент является ip, поэтому в дальнейшем рассмотрим вопрос конфигурации сетевых интерфейсов с ее помощью. Про ifconfig тоже не забудем. Рассмотрим ее позже отдельно.
Отдельно стоит такой инструмент управления сетевыми подключениями как Network manager. Он используется в сочетании с графическими оболочками, которых на сервере обычно нет, поэтому вопрос его настройки я не буду рассматривать. Мне просто не на чем это делать, да и не вижу смысла.
Есть 2 различные возможности изменить сеть в Debian:
- Настройка сети из консоли с помощью указанных ранее консольных программ.
- С помощью редактирования конфигурационного файла сетевых интерфейсов /etc/network/interfaces.
Мы рассмотрим оба этих варианта. Вводная теоретическая часть окончена, приступаем к практике.
FAQ по сетям
Как зайти на мой компьютер извне (через интернет)?
Белый адрес присваивается роутеру. Соответственно, по этому адресу мы попадаем на роутер, а не на компьютер. Чтобы попасть на компьютер, на роутере нужно пробросить порты (см. ниже).
Мне кажется, у меня слишком медленно работает сеть!
Измерьте скорость сети между двумя компьютера с помощью iperf
. Можно воспользоваться этой инструкцией. В ней предлагают скомпиллировать программу из исходников, но можно просто установить её из репозитория. Если iperf
покажет значение немного меньшее, чем ожидаемое, то с сетью всё в порядке, проблема может быть в железе (жёсткий диск/процессор не могут обеспечить большую скорость), в способе передачи (например, scp
и ftp
весьма неторопливы), в настройках (скорость может быть ограничена, например, настройками FTP-сервера) или в чём-то ещё. Если iperf
показал величину, которая в разы меньше желаемой, то да – с сетью проблемы. Стоит посмотреть, в нужном ли режиме работает карта (например, с помощью ethtool
), проверить наличие «errors» в выводе ifconfig
и протестировать скорость подключения к какому-нибудь третьему компьютеру.
Как узнать, какие программы слушают порты на моём компьютере?
Чтобы посмотреть список открытых портов и названия слушающих их программ, используйте команду:
sudo netstat -nlpA inet,inet6
Для вывода информации о конкретном порте можно использовать grep
. Например, для 80 порта:
sudo netstat -nlpA inet,inet6 | grep :80
Из вывода netstat
не всегда понятно, о какой программе идёт речь (например, 2671/python), подробнее о процессе расскажет ps
:
ps aux | grep 2671
Как присвоить два 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 адрес в CentOS
Для того, чтобы быстро узнать текущий IP адрес в CentOS необходимо воспользоваться следующими командами:
# ifconfig | grep inet inet 192.168.159.129 netmask 255.255.255.0 broadcast 192.168.159.255 inet 127.0.0.1 netmask 255.0.0.0
Либо второй вариант определения локального ip адреса:
# ip addr | grep inet inet 127.0.0.1/8 scope host lo inet 192.168.159.129/24 brd 192.168.159.255 scope global eno16777728
Обе команды позволяют быстро узнать свой ip адрес.
Файлы настроек сети в Linux (конфигурационные файлы)
Для понимания работы сети в Linux, я бы обязательно посоветовал ознакомиться со статьей «Этапы загрузки Linux». В целом, вся работа Linux основана на процессе init, который рождается при загрузке ОС и плодит своих потомков, которые в свою очередь и выполняют всю необходимую работу, будь то запуск bash или демона. Да, и вся загрузка Linux основана на скриптах bash, в которых прописана вся последовательность запуска мелких утилит с различными параметрами, которые последовательно запускаются/останавливаются при запуске/остановке системы. Аналогично запускается и сетевая подсистема Linux.
Каждый дистрибутив Linux имеет слегка отличающийся от других механизм инициализации сети, но общая картина, думаю, после прочтения будет ясна. Если просмотреть стартовые скрипты сетевой подсистемы какого-либо дистрибутива Linux, то, как настроить конфигурацию сети с помощью конфигурационных файлов, станет более-менее понятно, например у Debian/Ubuntu (за основу возьмем эту ветвь дистрибутивов) за инициализацию сети отвечает скрипт /etc/init.d/networking
, просмотрев содержимое которого:
etcinit.dnetworking ### BEGIN INIT INFO # Provides: networking # Required-Start: mountkernfs $local_fs # Required-Stop: $local_fs # Should-Start: ifupdown # Should-Stop: ifupdown # Default-Start: S # Default-Stop: 0 6 # Short-Description: Raise network interfaces. ### END INIT INFO = sbin . liblsbinit-functions process_options etcnetworkoptions log_warning_msg "/etc/network/options still exists and it will be IGNORED! Read README.Debian of netbase." check_network_file_systems procmounts etciscsiiscsi.initramfs ; log_warning_msg "not deconfiguring network interfaces: iSCSI root is mounted." procmounts DEV MTPT FSTYPE REST; devnbddevnda-zdevetherde log_warning_msg "not deconfiguring network interfaces: network devices still mounted." nfsnfs4smbfsncpncpfscifscodaocfs2gfspvfspvfs2fuse.httpfsfuse.curlftpfs log_warning_msg "not deconfiguring network interfaces: network file systems still mounted." - check_network_swap procswaps procswaps DEV MTPT FSTYPE REST; devnbddevnda-zdevetherde log_warning_msg "not deconfiguring network interfaces: network swap still mounted." - start process_options log_action_begin_msg "Configuring network interfaces" ; log_action_end_msg log_action_end_msg stop check_network_file_systems check_network_swap log_action_begin_msg "Deconfiguring network interfaces" =lo; log_action_end_msg log_action_end_msg force-reloadrestart process_options log_warning_msg "Running $0 $1 is deprecated because it may not enable again some interfaces" log_action_begin_msg "Reconfiguring network interfaces" =lo =lo; log_action_end_msg log_action_end_msg
The ifup and ifdown commands may be used to configure (or, respectively, deconfigure) network interfaces based on interface definitions in the file /etc/network/interfaces. -a, --all If given to ifup, affect all interfaces marked auto. Interfaces are brought up in the order in which they are defined in /etc/network/interfaces. If given to ifdown, affect all defined interfaces. Interfaces are brought down in the order in which they are currently listed in the state file. Only interfaces defined in /etc/network/interfaces will be brought down.
Соответственно, прочитав man interfaces (rus) или man interfaces (eng), становиться ясно, как же в Debian/Ubuntu настроить какой-либо сетевой интерфейс с помощью конфига /etc/network/interfaces. Ниже, пример данного конфигурационного файла для 3х интерфейсов: петлевой (lo), со статичным IP (eth2) и IP получаемым по dhcp (eth0):
ip-server:~# cat /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug eth0 iface eth0 inet dhcp allow-hotplug eth2 iface eth2 inet static address 192.168.1.1 netmask 255.255.255.0 gateway 192.168.1.254 broadcast 192.168.1.255
В данном конфиге строки allow-hotplug и auto – это синонимы и интерфейсы будут подняты по команде ifup -a. Вот, собственно, и вся цепь работы сетевой подсистемы. Аналогично, в других дистрибутивах: в RedHat и SUSE сеть запускается скриптом /etc/init.d/network. Рассматрев его, аналогично можно найти, где лежит конфигурация сети.
Данный файл хранит перечень IP адресов и соответствующих им (адресам) имен хостов.Формат файла ничем не отличается от мастдайного:
ip-server:~# cat /etc/hosts # ip host.in.domain host 127.0.0.1 localhost 127.0.1.1 ip-server.domain.local ip-server 192.168.1.1 ip-server.domain.local ip-server
Исторически, данный файл использовался вместо службы DNS. В настоящее время, файл так же может использоваться вместо службы DNS, но только при условии, что в вашей сети количество машин измеряется в единицах, а не в десятках или сотнях, потому что в таком случае, придется контролировать корректность данного файла на каждой машине.
Данный файл хранит имена и адреса локальной и других сетей. Пример:
ip-server:~# cat /etc/networks default 0.0.0.0 loopback 127.0.0.0 link-local 169.254.0.0 home-network 192.168.1.0
При использовании данного файла, сетями можно управлять по имени. Например добавить маршрут не route add 192.168.1.12, а route add home-network.
Файл определяет порядок поиска имени хоста/сети, за данную настройку отвечают строки:
Для хостов: hosts: files dns Для сетей: networks: files
Параметр files указывает использовать указанные файлы (/etc/hosts и /etc/networks соответственно), параметр dns указывает использовать службу dns.
Этот файл определяет параметры механизма преобразования сетевых имен в IP адреса. Пример:
ip-server:~# cat /etc/resolv.conf nameserver 10.0.0.4 nameserver 10.0.0.1 search domain.local
Первые 2 строчки указывают сервера DNS. Третья строка указывает домены поиска. Если при разрешении имени, имя не будет FQDN-именем, то данный домен подставиться в виде «окончания». Например при выполнении команды ping host, прингуемый адрес преобразуется в host.domain.local. Остальные параметры можно почитать в man resolv.conf.
В современных дистрибутивах Linux используется динамическая генерация данного файла, с помощью утилиты resolvconf. Она является посредником между службами, динамически предоставляющими сервера имен (например DHCP client) и службами, использующими данные сервера имен. Статические адреса DNS серверов, в случае использования resolvconf, задаются внутри /etc/network/interfaces (подробнее об этом – в разделе настройки).
Конфигурирование DNS и WINS серверов
Добавить предпочитаемый DNS сервер.
netsh interface ip set dns "Local Area Connection" static 8.8.8.8
Добавить альтернативный DNS сервер.
netsh interface ip add dns "Local Area Connection" 8.8.4.4
Добавить 3-й DNS сервер.
netsh interface ip add dns "Local Area Connection" 192.168.1.30 index=3
Установка автоматического получения предпочитаемого и альтернативного dns-сервера от DHCP-сервера.
netsh interface ip set dns "Local Area Connection" dhcp
netsh interface ip set wins "Local Area Connection" static 192.168.1.240
Конфигурирование сетевых параметров (ip-адреса, сетевой маски и шлюза)
netsh interface ip set address name="Local Area Connection" static 192.168.1.15 255.255.255.0 192.168.1.1
где
Local Area Connection – название вашего сетевого интерфейса.
192.168.1.15 – сетевой адрес (ip address).
255.255.255.0 – сетевая маска (network mask).
192.168.1.1 – шлюз (default gateway).
netsh interface ip add address name="Local Area Connection" 192.168.1.20 255.255.255.0
netsh interface ip set address "Local Area Connection" dhcp
Использование сетевых утилит traceroute, dig в CentOS
Для диагностики сетевых подключений в CentOS полезно использовать специальные утилиты. Но если вы использовали установку minimal, то их скорее всего в системе не будет. К примеру, популярная утилита traceroute при попытке ее запуска выдаст сообщение:
# traceroute ya.ru bash: traceroute: command not found
Ее нужно установить отдельно из репозитория:
# yum install traceroute
То же самое с популярной программой dig для работы с dns серверами и записями:
# dig ya.ru bash: dig: command not found
Чтобы эта сетевая утилита заработала, необходимо установить пакет bind-utils:
# yum install bind-utils
System config network tui
Для управления сетевыми настройками в CentOS можно воспользоваться графической утилитой nmtui. Проверить ее наличие в системе очень просто. Достаточно запустить ее в консоли:
# nmtui

Если она у вас не установлена, то исправить это очень просто. Устанавливаем в CentOS system config network tui:
# yum install NetworkManager-tui
С помощью tui можно указать любые сетевые настройки, которые мы делали раньше через командную строку и редактирование конфигурационных файлов network-scripts. Давайте сделаем это. Вызываем программу:
# nmtui
Выбираем первый пункт Edit a connection, затем выбираем сетевой интерфейс и жмем “Edit”:

Здесь мы можем изменить имя сетевой карты, mac адрес, указать тип сетевых настроек – ручной или dhcp, указать вручную ip адрес, адрес шлюза, днс сервера, добавить маршруты и некоторые другие настройки:

После завершения редактирования сохраняем настройки, нажимая ОК.
Если в первом экране утилиты выбрать пункт Set System Hostname, то можно быстро указать имя хоста. Результат будет такой же, как мы делали раньше в консоли.
Если вы будете готовиться к сдаче сертификации по RHEL, то везде будете видеть рекомендацию использовать nmtui для настройки сети. Суть в том, что на экзамене время ограничено, а с помощью network manager его можно и нужно экономить. Считается, что так настраивать сеть быстрее.
Как отключить ipv6 в Debian
Пока еще новая версия протокола ip не получила широкого распространения, если он вам специально не нужен, ipv6 можно отключить. Прежде чем отключать, необходимо узнать, какие сервисы в настоящее время его используют и перенастроить их, отключив у них ipv6. Если этого не сделать, то в работе этих программ могут возникнуть ошибки. Скорее всего не критичные, но все равно, сделаем все аккуратно и правильно. Сначала проверим, что у нас работает на ipv6:
# netstat -tulnp | grep :::

На свежеустановленном сервере debian программы ssh, exim, dhclient и rpcbind используют ipv6. Отключим это. Начнем с ssh. Открываем файл /etc/ssh/sshd_config и раскомментируем параметр ListenAddress:
# mcedit /etc/ssh/sshd_config
ListenAddress 0.0.0.0
# service sshd restart
Сделаем то же самое с exim4. Открываем файл конфигурации /etc/exim4/exim4.conf.template и в самом начале, после вступительных комментариев пишем:
# mcedit /etc/exim4/exim4.conf.template
disable_ipv6 = true
# service exim4 restart
В dhclient для отключения ipv6 в конфиге убираем все параметры в запросе request, начинающиеся с dhcp6. Должно получиться вот так:
# mcedit /etc/dhcp/dhclient.conf
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, domain-search, host-name, netbios-name-servers, netbios-scope, interface-mtu, rfc3442-classless-static-routes, ntp-servers;
# service networking restart
Отключаем ipv6 в rpcbind. Открываем конфигурацию /etc/netconfig и комментируем 2 строки с udp6 и tcp6:
# mcedit /etc/netconfig
#udp6 tpi_clts v inet6 udp - - #tcp6 tpi_cots_ord v inet6 tcp - -
Перезапускаем службу rpcbind и nfs-common, которая от него зависит:
# service rpcbind restart # service nfs-common restart
Проверяем, что у нас осталось:
# netstat -tulnp | grep ::: udp6 0 0 :::6909 :::* 1166/dhclient
dhclient почему-то остался висеть на ipv6 порту, но ладно, это не страшно, запрашивать по 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
Добавьте эти строки в любое место конфига, например, в самый конец. Перезапустим sysctl для применения настроек:
# sysctl -p
Проверяем свойства сетевых интерфейсов командами ifconfig и ip. Информации об ipv6 быть не должно, мы его полностью отключили.
Более подробно по об отключении ipv6 в различных приложениях читайте в отдельной статье – как отключить ipv6.
Синтаксис команд nmcli
В общем виде синтаксис выглядит так:
$ nmcli <options> <section> <action>
- options — это параметры, которые определяют тонкости работы nmcli,
- section (секция) — определяет, какими возможностями утилиты пользоваться,
- action (действие) — позволяет указать, что, собственно, нужно сделать.
Всего существует 8 секций, каждая из которых связана с каким-то набором команд (действий):
- Help выдаёт справку о командах ncmcli и их использовании.
- General возвращает статус NetworkManager и глобальную конфигурацию.
- Networking включает команды для запроса состояния сетевого подключения и включения / отключения подключений.
- Radio включает команды для запроса состояния подключения к сети WiFi и включения / отключения подключений.
- Monitor включает команды для мониторинга активности NetworkManager и наблюдения за изменениями состояния сетевых подключений.
- Connection включает команды для управления сетевыми интерфейсами, для добавления новых соединений и удаления существующих.
- Device в основном используется для изменения параметров, связанных с устройствами (например, имени интерфейса) или для подключения устройств с использованием существующего соединения.
- Secret регистрирует nmcli в качестве «секретного агента» NetworkManager, который прослушивает тайные сообщения. Эта секция используется редко, потому что nmcli при подключении к сетям по дефолту работает именно так.
Резюме
Думаю, на сегодня это все. Когда начал писать данную статью, думал что впишусь в один пост, но он получился громаден. Посему было решено разбить статью на две. Итого, я постарался изложить, не пошаговое хауту по настройке сети, а изложить принцип и объяснить понимание того, как же запускается и работает сеть в Linux. Очень надеюсь, что мне это удалось. Буду рад вашим комментариями и дополнениям. Со временем, буду статью дополнять.
Сетевые настройки
Ubuntu поставляется с набором графических утилит для настройки ваших сетевых устройств. Этот документ предназначен для серверных администраторов и сфокусирован на управлении вашей сетью через командную строку.
Интерфейсы Ethernet
Интерфейсы Ethernet идентифицируются системой с использованием имен ethX, где X является числовым значением. Первый интерфейс обычно обозначается как eth0, второй как eth1, и все последующие с увеличивающимися номерами по порядку.
Определение Ethernet интерфейсов
Для быстрого определения всех доступных сетевых интерфейсов вы можете использовать команду ifconfig как показано ниже.
ifconfig -a | grep eth eth0 Link encap:Ethernet HWaddr 00:15:c5:4a:16:5a
Другое приложение, которое может помочь идентифицировать все доступные вашей системе сетевые интерфейсы, это команда lshw. В примере ниже lshw показывает один Ethernet интерфейс с логическим именем eth0 вместе с информацией по шине, деталями драйвера и всеми поддерживаемыми возможностями.
sudo lshw -class network *-network description: Ethernet interface product: BCM4401-B0 100Base-TX vendor: Broadcom Corporation physical id: 0 bus info: pci@0000:03:00.0 logical name: eth0 version: 02 serial: 00:15:c5:4a:16:5a size: 10MB/s capacity: 100MB/s width: 32 bits clock: 33MHz capabilities: (snipped for brevity) configuration: (snipped for brevity) resources: irq:17 memory:ef9fe000-ef9fffff
Логические имена интерфейсов Ethernet
Логические имена интерфейсов настраиваются в файле /etc/udev/rules.d/70-persistent-net.rules. Если вы захотите определить какой интерфейс получит определенное логическое имя, найдите строку по совпадению физического MAC адреса интерфейса и измените значение NAME=ethX на желаемое логическое имя. Перегрузите систему для применения изменений.
Настройки интерфейса Ethernet
ethtool – это программа, которая показывает и изменяет настройки сетевых карт, такие как автоопределение, скорость порта, режим дуплекса и функция Wake-on-LAN (пробуждение системы через сеть). Эта программа не устанавливается по умолчанию, но доступна к установке из репозиториев.
sudo apt-get install ethtool
Ниже приведен пример как посмотреть возможности карты и настроить параметры интерфейса Ethernet.
sudo ethtool eth0 Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Supports Wake-on: g Wake-on: d Current message level: 0x000000ff (255) Link detected: yes
Изменения, сделанные с использованием команды 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.
sudo ifup eth0
Для отключения интерфейса вручную вы можете воспользоваться командой ifdown.
sudo ifdown eth0
Интерфейс 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, который теперь является символьной ссылкой:
/etc/resolv.conf -> ../run/resolvconf/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 потерпит неудачу.
Статические имена хостов
Статические имена хостов – это локально определенные соотношения «имя хоста-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.
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
files сперва пытается разрешить статическое имя хоста в /etc/hosts.
mdns4_minimal пытается разрешить имя с использованием параллельного (multicast) DNS.
dns представляет собой наследуемый последовательный (legacy unicast) DNS запрос.
mdns4 представляет параллельный (multicast) DNS запрос.
Для изменения последовательности вышеупомянутых методов разрешения имен вы можете просто заменить строку hosts: на значение по вашему выбору. Например, если вы предпочитаете использовать последовательный DNS до параллельного DNS, вы можете изменить строку в /etc/nsswitch.conf как показано ниже:
hosts: files dns [NOTFOUND=return] mdns4_minimal mdns4
Строительство мостов 🙂
Соединение нескольких интерфейсов – наиболее продвинутая настройка, но очень полезная во множестве сценариев. Один вариант – установка взаимодействия между несколькими сетевыми интерфейсами и затем использование защитного экрана (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 для дополнительной информации.
Ссылки
Static routes (статические маршруты)
Следующим важным элементом настройки сети является управление статическими маршрутами (static routes): добавление (route add) и удаление (route del). Вновь воспользуемся консольной командой ip. Для того, чтобы добавить маршрут в debian, достаточно ввести в консоли:
# ip route add 10.0.0.0/24 via 192.168.1.50
Проверяем таблицу маршрутов:
# route

Чтобы удалить маршрут, выполняем команду:
# ip route delete 10.0.0.0/24
После перезагрузки все маршруты, добавленные таким способом, исчезнут. Чтобы статический маршрут в Debian сохранялся после перезагрузки, опять редактируем interfaces, добавляя в описание того интерфейса, к которому будут относиться маршруты, следующие строки:
post-up route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50 post-up route add -net 10.1.0.0 netmask 255.255.255.0 gw 192.168.1.60 pre-down route del -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50 pre-down route del -net 10.1.0.0 netmask 255.255.255.0 gw 192.168.1.60
Мы добавили 2 статических маршрута. Перезагружаемся и проверяем.

Мой конфиг целиком стал выглядеть вот так:
source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp post-up route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50 post-up route add -net 10.1.0.0 netmask 255.255.255.0 gw 192.168.1.60 pre-down route del -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.50 pre-down route del -net 10.1.0.0 netmask 255.255.255.0 gw 192.168.1.60 auto eth0:1 iface eth0:1 inet static address 192.168.1.35 netmask 255.255.255.0 gateway 192.168.1.35
С постоянными статическими маршрутами в debian разобрались, ничего сложного. Идем дальше.
Как изменить hostname в CentOS
По-умолчанию, во время установки CentOS ставит имя хоста localhost.localdomain. Если вы его не поменяли, то можно это сделать позже. Для начала давайте проверим, какое имя хоста у вас установлено. Делается это с помощью команды в консоли hostname, либо с помощью uname:
# hostname localhost.localdomain
# uname -n localhost.localdomain
Для того, чтобы изменить имя хоста в CentOS, необходимо отредактировать файл /etc/hostname. Проверим его содержимое:
# cat /etc/hostname localhost.localdomain
Отредактируем этот файл, чтобы изменить hostname:
# mcedit /etc/hostname centos.localhost
Сохраняем файл и проверяем:
# hostname centos.localhost
Есть готовая команда, которая сразу устанавливает необходимое имя сервера:
# hostnamectl set-hostname centos.localhost
Все в порядке, мы изменили имя хоста на centos.localhost
Часто задаваемые вопросы по теме статьи (FAQ)
Есть ли принципиальное отличие в том, как задать hostname сервера?
В целом, нет. Вы можете как отредактировать файл hostname, так и воспользоваться утилитой hostnamectl. Единственное, напомню, что нужно не забыть проверить файл hosts и изменить имя сервера в том числе и там.
Зачем отключать ipv6 в на сервере Debian?
Отключать ipv6 или нет, решать вам. Я придерживаюсь следующего принципа в настройке серверов – отключать или удалять все то, что не используется. Это уменьшает вероятность получить баг или уязвимость в компоненте.
Почему команда ifconfig во многих дистрибутивах объявлена deprecated и отсутствует в системе?
В этом статусе она находится последние лет 10 и тем не менее продолжает использоваться. Насколько я понимаю, заменившая ifconfig команда ip является более функциональная и заменяет сразу несколько старых сетевых утилит, таких как ifconfig, netstat, route и т.д. Отказ от ifconfig в пользу ip – попытка внедрить универсальную и самодостаточную утилиту для работы с сетью.
Как настроить proxy в Debian?
На этот вопрос нет однозначного ответа, так как proxy настраивается на уровне отдельных приложений, а не системы. Какому приложению нужен доступ в интернет через прокси, тому и настраивается. А как это делать, зависит от самого приложения и его возможностей. Есть те, кто работу через прокси не поддерживают вообще.
Напоминаю, что данная статья является частью единого цикла статьей про сервер Debian.
Помогла статья? Подписывайся на telegram канал автора
Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.
Изменить hostname (имя хоста)
Во время установки debian вы указывали имя хоста. Посмотреть его текущее значение можно в консоли:
# hostname debian
Это значение записано в файле /etc/hostname. Есть 2 способа изменить hostname в debian:
- Простой и быстрый с помощью консольной команды. Результат работает только до перезагрузки компьютера. Потом вернется старое имя.
- С помощью изменения конфигурационного файла результат сохраняется и после перезагрузки. Чтобы сразу применить изменение, потребуется выполнить системный скрипт.
Для первого способа достаточно в консоли ввести команду:
# hostname debian10
Теперь проверим, что получилось:
# hostname debian10
Имя хоста изменилось, но в файле /etc/hostname по-прежнему указано прошлое значение. После перезагрузки hostname снова примет старое значение debian. Чтобы сделать постоянное изменение, необходимо ввести новое значение в файл вручную:
# mcedit /etc/hostname debian10
Изменение вступит в силу после перезагрузки. Если воспользоваться командой:
# hostnamectl set-hostname debian10
то изменения применятся сразу же. Этот способ более правильный, рекомендую использовать именно его. Теперь проверьте текущее значение имени хоста. Оно изменится на то, что вы указали в команде.
Настройка соединений ppp
За создание соединений типа «точка-точка» в Ubuntu отвечает демон pppd
, более подробная информация о котором доступна в документации. В рамках данного руководства будут рассмотрены примеры создания PPPoE подключения через DSL модем, подключения PPTP (VPN-подключения) и DIAL-UP подключения через обычный модем.
Соединение PPPoE
В стандартную установку Ubuntu входит утилита для настройки PPPoE соединений – pppoeconf
, для ее запуска наберите:
$ sudo pppoeconf
$ sudo pon dsl-provider # Для подключения или $ sudo poff dsl-provider # Для отключения
Если в Вашем случае опций, предоставляемых утилитой pppoeconf
недостаточно – обратитесь к документации по pppd или pppoeconf.
Замечание: при настройке соединения с помощью pppoeconf
часть настроек записывается в /etc/network/interfaces
, в результате чего Network Manager больше не может управлять сетью. Выход: либо использовать только NM, либо только консоль+конфиги.
Вернуть управление Network Manager можно следующим образом. Приведите /etc/network/interfaces
к следующему виду (лишнее не обязательно удалять, достаточно закомментировать):
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback
$ sudo /etc/init.d/networking restart
Перезагрузитесь или перезапустите Network Manager:
$ sudo /etc/init.d/NetworkManager restart
Соединение PPTP
Для осуществления VPN-соединения при помощи pppd Вам потребуется установить пакет pptp-linux
, который может быть найден на установочном диске Ubuntu. Далее создайте (от root’а) в папке /etc/ppp/peers
файл с названием Вашего провайдера и отредактируйте его, например так:
$ sudo nano /etc/ppp/peers/my-provider
И добавьте туда опции подключения, например такие:
persist # При разрыве соединения - переподключаться снова. maxfail 0 # Максимальное количество неудачных попыток подключения. 0 - бесконечно. mtu 1476 # Значение MTU name {логин} # Ваш логин. #nodefaultroute # Не быть шлюзом по умолчанию defaultroute # Быть шлюзом по умолчанию replacedefaultroute # Заменить шлюз по умолчанию если он был remotename {vpn} # Имя удаленного сервера (для нас), может быть любым. pty "pptp {адрес_сервера} --nolaunchpppd" # Команда запуска pptp. # Адрес сервера - может быть как IP адресом, так и доменным именем, например vpn.foo.bar
Далее – отредактируйте файл /etc/chap-secrets
4) и добавьте туда:
{логин} {vpn} {пароль}
После перезагрузки системы Вы сможете управлять соединением при помощи команд:
$ sudo pon my-provider # Для подключения или $ sudo poff my-provider # Для отключения
Процесс настройки VPN-соединения может сильно облегчить скрипт-помощник.
Настройка DIAL-UP подключения
Для настройки модемного соединения можно использовать встроенный конфигуратор pppd
– pppconfig
или специальную утилиту wvdial
.
При помощи pppconfig
$ sudo pppconfig
Управлять соединением можно так:
$ sudo pon my-provider # Для подключения или $ sudo poff my-provider # Для отключения
Где my-provider – имя, присвоенное Вами соединению при настройке.
При помощи wvdial
В некоторых случаях (например при подключении с использованием мобильного телефона), удобнее использовать wvdial
. Для этого нужно его сначала установить. Например так:
$ sudo apt-get install wvdial
В состав пакета wvdial
входит утилита автоматического конфигурирования – wvdialconf
.
$ sudo wvdialconf
Вывод будет примерно следующим:
ubuntu@ubuntu:~$ sudo wvdialconf [sudo] password for ubuntu: Editing `/etc/wvdial.conf'. Scanning your serial ports for a modem. Modem Port Scan<*1>: S0 S1 S2 S3 WvModem<*1>: Cannot get information for serial port. ttyACM0<*1>: ATQ0 V1 E1 -- OK ttyACM0<*1>: ATQ0 V1 E1 Z -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK ttyACM0<*1>: Modem Identifier: ATI -- Manufacturer: QUALCOMM INCORPORATED ttyACM0<*1>: Speed 4800: AT -- OK ttyACM0<*1>: Speed 9600: AT -- OK ttyACM0<*1>: Speed 19200: AT -- OK ttyACM0<*1>: Speed 38400: AT -- OK ttyACM0<*1>: Speed 57600: AT -- OK ttyACM0<*1>: Speed 115200: AT -- OK ttyACM0<*1>: Speed 230400: AT -- OK ttyACM0<*1>: Speed 460800: AT -- OK ttyACM0<*1>: Max speed is 460800; that should be safe. ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK Found an USB modem on /dev/ttyACM0. Modem configuration written to /etc/wvdial.conf. ttyACM0<Info>: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
$ sudo nano /etc/wvdial.conf
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Modem Type = USB Modem ISDN = 0 Idle Seconds = 0 New PPPD = yes Dial Attempts = 0 Phone = #777 Modem = /dev/ttyACM0 Username = mobile Password = internet Baud = 460800 Idle Seconds = 0 # Время простоя соединения, # после которого нужно будет его разорвать. Значение 0 - никогда. Dial Attempts = 0 # Количество попыток дозвона. 0 - бесконечно. [Dialer pulse] Dial Command = ATDP # Команда набора номера (P - импульсный, T - тональный). Имеет смысл для набора номера в импульсном режиме на старых АТС.
Файл /etc/wvdial.conf разбит на секции, в качестве разделителей которых выступают сами названия секций, предварённые словом Dialer, в квадратных скобках. Если исполнять команду без параметров, то в дело пойдут установки, перечисленные в секции Defaults. В противном случае дополнительно будут исполнены указанные в добавочных секциях команды.
Теперь, когда все настроено, соединение можно установить набрав:
$ sudo wvdial
Если потребуется запустить wvdial с набором номера в импульсном режиме, то это можно сделать командой
$ sudo wvdial pulse
Прервать соединение можно прервав выполнение команды wvdial
, т.е. в том же терминале нужно нажать Ctrl+C.
Автоматическое подключение
Отредактируйте файл конфигурации /etc/network/interfaces
, например так:
$ sudo nano /etc/network/interfaces
И допишите в него:
Для pppoe , pptp , и модемного подключения без использования wvdial
:
iface ppp0 inet ppp provider my-provider auto ppp0
Где my-provider – название вашего соединения.
При использовании wvdial
:
iface ppp0 inet wvdial provider wvdial auto ppp0
Теперь при перезапуске сетевых служб соединение будет автоматически установлено.
Ручная настройка роутинга
Если Вы не получаете адрес шлюза по-умолчанию от сервера, к которому подключаетесь, или по какой-либо иной причине Вам необходимо указать маршруты вручную – Вы можете создать свой скрипт в /etc/ppp/ip-up.d/
, либо по рекомендации официальной документации создать /etc/ppp/ip-up.local
например так:
$ sudo nano /etc/ppp/ip-up.local
$ sudo nano /etc/ppp/ip-up.d/routing
со следующим кодом:
#! /bin/sh # route del default route add default ppp0 # Имя ppp-подключения. # тут - необходимые маршруты, например: route add -net 192.168.0.0 netmask 255.255.255.0 gw 192.168.0.1 dev eth0
Далее – сделайте этот скрипт исполняемым, например так:
$ sudo chmod ug+x /etc/ppp/ip-up.local
$ sudo chmod ug+x /etc/ppp/ip-up.d/routing
Теперь маршруты будут автоматически подключаться при установлении ppp-соединения.
Настройка проводной сети
Настройка IP-адреса, шлюза по умолчанию, маски подсети
Отредактируйте файл конфигурации /etc/network/interfaces
, например так:
$ sudo nano /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)
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # Моя проводная сеть. 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
Сохраните файл и закройте редактор. В данном примере (редактор 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
Как сделать перезапуск сети в CentOS
Ранее я уже касался этого вопроса, но на всякий случай повторим отдельно. Допустим, вы внесли некоторые изменения в конфигурацию сети. Как применить эти настройки, не перезагружая сервер? Очень просто. Для перезапуска сети в CentOS достаточно воспользоваться командой systemd:
# systemctl restart network
Если увидите ошибку:
Failed to restart network.service: Unit network.service not found.
Значит у вас не установлен пакет network-scripts, а управление сетью выполняется с помощью NetworkManager, который сам перезапускает сеть после изменения настроек.
Если у вас старая версия Centos без systemd, а это 6-я версия и младше, то сеть перезапускается вот так.
# /etc/init.d/network restart
Сетевая служба перечитает все сетевые настройки и применит изменения.