- Ручная настройка сети в Linux
- Привязка интерфейса к карте
- ifcfg
- route
- ip
- DNS
- Ручная настройка сети в ArchLinux
- Ручная настройка сети в Ubuntu 20 и старше
- Пример конфигурации
- Команды
- Ручная настройка сети в Ubuntu
- Ручная настройка сети в CentOS 6
- Общие настройки сети
- Конфигурация интерфейса
- Настройка DNS
- Настройка брандмауэра
- Настройка сети в Debian 11
- Просмотр текущей конфигурации сети
- Изменение конфигурации сети
- Использование команды ifconfig и route
- Назначение IP-адреса интерфейсу
- Настройка шлюза по умолчанию
- Настройка DNS-сервера
- Удаление IP-адреса из сетевого интерфейса
- Изменение сетевых настроек с помощью файла интерфейсов
- Определение серверов имен (DNS)
- Настройка имени хоста
- Похожие записи:
Ручная настройка сети в Linux
Для доступа к сетевым картам в Linux используются так называемые интерфейсы. Интерфейсы это не файлы устройств и их нет в каталоге /dev. Интерфейсы создаются динамически и не всегда связаны с сетевыми картами. Например интерфейс ppp0 — это интерфейс VPNа, организованного по протоколу PPTP, а интерфейс lo это виртуальная сетевая карта с адресом localhost (127.0.0.1). В Linux имена интерфейсов традиционно состоят из мнемонического типа интерфейса и его порядкового номера. Карты ethernet доступны через интерфейсы eth0, eth1 и т.д. В системах, использующих systemd способ именования другой — интерфейсы имеют имена вида enp2s0 (en -Ethernet, p — PCI, 2 — номер на шине) Список всех интерфейсов можно посмотреть командой ifconfig -a или ip link .
Привязка интерфейса к карте
При наличии нескольких сетевых карт возникает вопрос о порядке их нумерации. В CentOS 6 эта задача возложена на подсистему обнаружения и конфигурации устройств — udev. В системах с systemd правила именования встроены в udev, но могот быть переопределены, как написано ниже.
Конфигурационный файл переименования интерфейсов обновляется автоматически при первом обнаружении очередной сетевой карты и находится в файле /etc/udev/rules.d/70-persistent-net.rules. Файл состоит из строк такого содержания:
# PCI device 0x1af4:0x1000 (virtio-pci) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR=="52:54:00:29:24:1e", ATTR=="1", KERNEL=="eth*", NAME="eth0"
Видно, что нумерация опирается на аппаратный (MAC) адрес карты. Если в компьютере заменить карту, то интерфейс eth0 станет недоступным, а новая карта получит имя eth1. Если есть желание вручную назначить имена картам, то можно отредактировать этот файл, выставив желаемые соответствия между MAC адресами именами интерфейсов (возможно потребуется перезагрузка).
ifcfg
Классическая утилита конфигурации сетевых интерфейсов ifcfg
#просмотр списка активных интерфейсов ifcfg #просмотр конфигурации конкретного интерфейса ifcfg eth0 #просмотр списка доступных интерфейсов ifcfg -a #настройка ip адреса и активация интерфейса ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up #деактивация интерфейса ifconfig eth0 down
route
Настройка таблицы маршрутизации route
#добавление шлюза по умолчанию route add default gw 192.168.0.1 #добавление маршрута в локальную сеть route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 #добавление маршрута в удаленную сеть route add -net 192.57.66.0 netmask 255.255.255.0 gw 192.168.0.2 #удаление маршрута route del -net 192.57.66.0 netmask 255.255.255.0 gw 192.168.0.2 #просмотр таблицы маршрутизации route #или netstat -r
ip
В современных дистрибутивах линукса на смену ifconfig и route приходит универсальная утилита ip
#просмотр списка доступных интерфейсов ip link #просмотр статистики по интерфейсам ip -s link #просмотр ip адресов ip addr #просмотр таблицы маршрутизации ip route
DNS
Адреса серверов DNS и имя локального домена вписываются в файл /etc/resolv.conf
search example.com nameserver 8.8.8.8
Ручная настройка сети в ArchLinux
Для просмотра доступных сетевых интерфейсов используется команда ip link
ArchLinux использует для настройки сети systemd/netctl . Для конфигурации используются файлы профилей, которые хранятся в /etc/netctl/ . В данном каталоге есть подкаталог examples/ из которого можно копировать файлы с образцами профилей в /etc/netctl/ . Например:
cp /etc/netctl/examples/ethernet-static /etc/netctl/enp1s0-work
Содержимое enp1s0-work после редактирования
Interface=enp1s0 Connection=ethernet IP=static Address=('10.1.10.2/24') Gateway='10.1.10.1' DNS=('10.1.10.1')
#активация профиля netctl start enp1s0-work #включение автоматической активации с текущими настройками профиля при старте системы netctl enable enp1s0-work #обновление конфигурации автостарта после изменения настроек профиля netctl reenable enp1s0-work
Ручная настройка сети в Ubuntu 20 и старше
В Ubuntu 20 система скриптов ifup / ifdown заменена программой netplan , со своими конфигурационными файлами на языке YAML — /etc/netplan/имяфайла.yaml
Пример конфигурации
Здесь только секция ethernets, но могут быть секции для vlan, bonding и т.д. Массивы имеют две альтернативные формы записи — в квадратных скобках и построчно, где каждая строка начинается с «- «. link-local: [] — запрет IPV6
network: version: 2 renderer: networkd ethernets: enp3s0f0: link-local: [] addresses: - 192.168.56.110/24 routes: - to: 172.16.0.0/24 via: 192.168.56.100 gateway4: 192.168.56.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]
Команды
netplan generate — генерация из файлов YAML конфигураций для бэкендов NetworkManager или systemd-networkd в каталогах /run/каталог_бэкенда/. Здесь же проходит валидация синтаксиса.
netplan apply — применение конфигурации
Ручная настройка сети в Ubuntu
Просмотр доступных интерфейсов — ifcfg -a
Файл конфигурации интерфейсов — /etc/network/interfaces . auto — говорит о том, что интерфейс надо конфигурировать при старте системы.
iface eth0 inet static address 192.168.0.1 netmask 255.255.255.0 gateway 192.168.0.254 auto eth0 iface eth1 inet dhcp auto eth1
После смены настроек в /etc/network/interfaces , необходимо отключить и снова включить интерфейс.
Ручная настройка сети в CentOS 6
Общие настройки сети
Файл /etc/sysconfig/network используется стартовыми скриптами и содержит ключевые параметры — нужна ли сеть, нужно ли конфигурировать IP v6, имя компьютера. Сюда можно вписать шлюз по умолчанию, но CentOS 6 ориентируется на динамическое подкючение к сетям через WiFi и вписывает его в конфигурацию подходящего интерфейса.
NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=wwww.example.com GATEWAY=10.10.10.1
Конфигурация интерфейса
Файлы в каталоге /etc/sysconfig/network-scripts с именами вида ifcfg-eth0
Интерфейс, получающий адрес по DHCP
# динамическая конфигурация интерфейса ONBOOT="yes" DEVICE="eth0" BOOTPROTO="dhcp"
# статическая конфигурация интерфейса ONBOOT="yes" DEVICE="eth1" BOOTPROTO="static" IPADDR=145.14.137.221 PREFIX=24 # конфигурация шлюза и DNS GATEWAY=192.168.1.1 DEFROUTE=yes DNS1=192.168.1.14 # NM - NetworkManager - графическая оболочка + автоматизация настроек NM_CONTROLLED="no"
Дополнительный IP адрес на интерфейсе eth1
ONBOOT=no DEVICE=eth1:0 BOOTPROTO=static IPADDR=172.16.12.6 NETMASK=255.255.0.0 # следующие два параметра можно не писать # они вычисляются из IP и маски BROADCAST=172.16.255.255 NETWORK=172.16.0.0
Инициализация VLAN на eth1
DEVICE=eth1.72 VLAN=yes VLAN_TRUNK_IF=eth1 BOOTPROTO=static IPADDR=10.10.0.1 NETMASK=255.255.255.192 ONBOOT=yes
Настройка DNS
Файл /etc/resolv.conf
# мой домен, для подстановки в короткие имена search example.com # сервер DNS nameserver 8.8.8.8
Ручная настройка имен хостов файл /etc/hosts
127.0.0.1 localhost.localdomain localhost ANY ::1 localhost6.localdomain6 localhost6 194.87.0.50 www.ru
Настройка брандмауэра
Файл /etc/sysconfig/system-config-firewall правила для настройки программой system-config-firewall
Файл /etc/sysconfig/iptables текущие правила, сохраненные на случай перезагрузки.
После ручного изменения правил их можно сохранить командой service iptables save
Настройка сети в Debian 11
Если вы являетесь обычным пользователем Linux или системным администратором, вам может потребоваться настройка сети в вашей системе. В отличие от настольных систем, где вы можете использовать динамические конфигурации, на серверах вам придется выполнять специфические настройки в зависимости от вашего сетевого окружения. Динамические конфигурации меняются при перезагрузке сервера, поэтому в некоторых случаях возникает необходимость в статических конфигурациях, например, когда сервер нуждается в удаленном администрировании, или когда на сервере работает приложение или служба, требующая постоянного доступа. Итак, в этой статье мы объясним, как можно настроить базовую сеть в ОС Linux на базе Debian. Базовая настройка включает в себя установку статического IP, шлюза, DNS и имени хоста.
Просмотр текущей конфигурации сети
Чтобы просмотреть текущую конфигурацию сети, выполните следующую команду в Терминале. Она покажет вывод для каждого интерфейса в отдельном разделе.
Вы также можете выполнить команду ifconfig для просмотра IP-адреса.
Выполните следующую команду в терминале, чтобы найти IP-адрес DNS-сервера:
Изменение конфигурации сети
Базовая конфигурация сети включает в себя установку статического или динамического IP-адреса, добавление шлюза, информации о DNS-сервере. Существуют различные способы конфигурирования сети в Debian OS.
Использование команды ifconfig и route
В этом методе мы рассмотрим, как настроить параметры сети. Однако помните, что эти настройки не будут постоянными. Как только вы перезагрузите систему, настройки будут удалены.
Назначение IP-адреса интерфейсу
Мы будем использовать ifconfig для назначения IP-адреса нашему сетевому интерфейсу. Ниже приведен синтаксис команды:
sudo ifconfig netmask up
В следующем примере команда назначает IP-адрес 192.168.72.16 сетевому интерфейсу eth0. Маска сети равна 24 (255.255.255.0) битам.
sudo ifconfig eth0 192.168.72.16 netmask 255.255.255.0 up
Настройка шлюза по умолчанию
Шлюз по умолчанию — это адрес, используемый для связи с внешней сетью. Чтобы настроить шлюз по умолчанию, используйте следующий синтаксис команды:
sudo route add default gw
В следующем примере я использую 192.68.72.1 в качестве адреса шлюза по умолчанию.
sudo route add default gw 192.168.72.1 eth0
Настройка DNS-сервера
DNS-сервер преобразует доменное имя в IP-адрес, чтобы браузер мог загружать интернет-ресурсы. Чтобы настроить адрес сервера имен DNS, используйте следующий синтаксис команды:
echo "nameserver " > /etc/resolv.conf
В следующем примере в качестве адреса сервера имен я задаю публичный IP-адрес DNS- 1.1.1.1.
echo "nameserver 1.1.1.1" > /etc/resolv.conf
Удаление IP-адреса из сетевого интерфейса
Чтобы удалить IP-адрес из сетевого интерфейса, выполните следующую команду в Terminal:
Изменение сетевых настроек с помощью файла интерфейсов
В этом методе мы настроим постоянные сетевые параметры, которые ваша система будет помнить даже после перезагрузки. Для этого нам нужно отредактировать файл /etc/network/interfaces с помощью любого текстового редактора. Для этого выполните следующую команду в терминале:
sudo nano /etc/network/interfaces
Затем добавьте в него следующие строки:
auto eth0 iface eth0 inet static address 192.168.72.16 netmask 255.255.255.0 gateway 192.168.72.1
Теперь нажмите Ctrl+O, а затем Ctrl+X, чтобы сохранить и выйти из файла.
Обратите внимание, что строки адреса, маски сети и шлюза должны начинаться с пробелов! В случае, если вы хотите динамически назначить адрес, используйте следующие строки:
auto eth0 iface eth0 inet dhcp
Определение серверов имен (DNS)
Чтобы добавить информацию о DNS-сервере, нам нужно отредактировать файл /etc/resolv.conf. Для этого выполните следующую команду:
Здесь я добавляю два сервера имен. Один — это адрес публичного DNS-сервера, а другой — IP-адрес моего маршрутизатора.
nameserver 1.1.1.1 nameserver 192.168.72.1
Теперь нажмите Ctrl+O, а затем Ctrl+X, чтобы сохранить и выйти из файла.
Настройка имени хоста
Как и IP-адрес, уникальное имя хоста также используется для распознавания системы в сети. Чтобы узнать текущее имя хоста вашей системы, выполните следующую команду в Терминале:
Чтобы изменить имя хоста системы, вы можете выполнить следующую команду. Но как только вы перезагрузите систему, ваше первоначальное имя хоста будет восстановлено.
Чтобы навсегда изменить имя хоста, вам нужно отредактировать файл hostname, расположенный по адресу /etc/hostname. Для этого введите следующую команду:
Этот файл содержит только имя хоста, измените старое имя на желаемое, а затем нажмите Ctrl+O и Ctrl+X для сохранения и выхода.