mirror of
https://github.com/Linux4Yourself/book.git
synced 2025-02-10 21:54:40 +08:00
182 lines
11 KiB
Markdown
182 lines
11 KiB
Markdown
|
# Настройка сети
|
|||
|
|
|||
|
Начиная с версии 209, в systemd имеется служба ``systemd-networkd``, которую можно использовать для настройки сети. Кроме того, начиная с версии 213, разрешение имен DNS можно обрабатывать с помощью ``systemd-resolved`` вместо статического файла ``/etc/resolv.conf``. Обе службы включены по умолчанию.
|
|||
|
|
|||
|
Файлы конфигурации для ``systemd-networkd`` (и ``systemd-resolved``) можно разместить в ``/usr/lib/systemd/network`` или ``/etc/systemd/network``. Файлы в ``/etc/systemd/network`` имеют более высокий приоритет, чем файлы в ``/usr/lib/systemd/network``.
|
|||
|
|
|||
|
Существует три типа файлов конфигурации: файлы ``.link``, ``.netdev`` и ``.network``.
|
|||
|
|
|||
|
## Именование сетевых устройств
|
|||
|
|
|||
|
Udev обычно назначает имена интерфейсов сетевых карт на основе физических характеристик системы, таких как ``enp2s1``. Если вы не уверены, как называется ваш интерфейс, вы всегда можете запустить ``ip link`` после загрузки вашей системы.
|
|||
|
|
|||
|
Для большинства систем существует только один сетевой интерфейс для каждого типа подключения. Например, классическое имя интерфейса для проводного подключения - ``eth0``. Беспроводное соединение обычно имеет имя ``wifi0`` или ``wlan0``.
|
|||
|
|
|||
|
Если вы предпочитаете использовать классические или настраиваемые имена сетевых интерфейсов, есть три способа это сделать:
|
|||
|
|
|||
|
- Замаскируйте файл .link udev для политики по умолчанию:
|
|||
|
|
|||
|
```bash
|
|||
|
ln -s /dev/null /etc/systemd/network/99-default.link
|
|||
|
```
|
|||
|
|
|||
|
- Создайте схему именования вручную, например, присвоив интерфейсам что-то вроде ``internet0``, ``dmz0`` или ``lan0``. Для этого создайте файлы ``.link`` в ``/etc/systemd/network/``, которые выберут явное имя или лучшую схему именования для ваших сетевых интерфейсов. Например:
|
|||
|
|
|||
|
```bash
|
|||
|
cat > /etc/systemd/network/10-ether0.link << "EOF"
|
|||
|
[Match]
|
|||
|
# Change the MAC address as appropriate for your network device
|
|||
|
MACAddress=12:34:45:78:90:AB
|
|||
|
|
|||
|
[Link]
|
|||
|
Name=ether0
|
|||
|
EOF
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
- В файле ``/boot/grub/grub.cfg`` передайте опцию ``net.ifnames=0`` в командной строке ядра.
|
|||
|
|
|||
|
## Настройка DHCP
|
|||
|
|
|||
|
Приведенная ниже команда создает файл базовой конфигурации для настройки IPv4 DHCP:
|
|||
|
|
|||
|
```bash
|
|||
|
cat > /etc/systemd/network/10-eth-dhcp.network << "EOF"
|
|||
|
[Match]
|
|||
|
Name=<network-device-name>
|
|||
|
|
|||
|
[Network]
|
|||
|
DHCP=ipv4
|
|||
|
|
|||
|
[DHCP]
|
|||
|
UseDomains=true
|
|||
|
EOF
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
|
|||
|
## Настройка статического IP-адреса
|
|||
|
|
|||
|
Приведенная ниже команда создает базовый файл конфигурации для настройки статического IP-адреса (с использованием как ``systemd-networkd``, так и ``systemd-resolved``):
|
|||
|
|
|||
|
```bash
|
|||
|
cat > /etc/systemd/network/10-eth-static.network << "EOF"
|
|||
|
[Match]
|
|||
|
Name=<network-device-name>
|
|||
|
|
|||
|
[Network]
|
|||
|
Address=192.168.0.2/24
|
|||
|
Gateway=192.168.0.1
|
|||
|
DNS=192.168.0.1
|
|||
|
Domains=<Your Domain Name>
|
|||
|
EOF
|
|||
|
```
|
|||
|
Если у вас несколько DNS-серверов, можно добавить несколько записей DNS. (Замените ключ DNS в команде, расположенной выше)
|
|||
|
```bash
|
|||
|
DNS=192.168.0.1 8.8.8.8 8.8.4.4
|
|||
|
```
|
|||
|
|
|||
|
Не включайте записи DNS или доменов, если вы собираетесь использовать статический файл ```/etc/resolv.conf```.
|
|||
|
|
|||
|
|
|||
|
## Создание файла /etc/resolv.conf
|
|||
|
Если система будет подключена к сети Интернет, ей потребуются некоторые средства разрешения доменных имен (DNS) для преобразования доменных имен в IP-адреса и наоборот. Лучше всего это достигается помещением IP-адреса DNS-сервера, доступного у интернет-провайдера или сетевого администратора, в ``/etc/resolv.conf``.
|
|||
|
|
|||
|
### Настройка systemd-resolved
|
|||
|
?> При использовании методов, несовместимых с systemd-resolved для настройки сетевых интерфейсов (например, ppp и т. д.), Или при использовании любого типа локального преобразователя (например, bind, dnsmasq, unbound и т. Д.) Или любого другого программного обеспечения, которое генерирует /etc/resolv.conf (например, программа resolvconf, отличная от той, которая предоставляется systemd), службу systemd-resolved использовать не следует.
|
|||
|
|
|||
|
При использовании службы ``systemd-resolved`` для настройки DNS, будет создан файл ``/run/systemd/resolve/resolv.conf``.
|
|||
|
|
|||
|
Создайте символическую ссылку, чтобы использовать этот файл в каталоге ``/etc``
|
|||
|
|
|||
|
```bash
|
|||
|
ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf
|
|||
|
```
|
|||
|
|
|||
|
### Статическая настройка файла resolv.conf
|
|||
|
|
|||
|
Если требуется статический файл ``/etc/resolv.conf``, создайте его, выполнив следующую команду:
|
|||
|
|
|||
|
```bash
|
|||
|
cat > /etc/resolv.conf << "EOF"
|
|||
|
# Begin /etc/resolv.conf
|
|||
|
|
|||
|
domain <Your Domain Name>
|
|||
|
nameserver <IP address of your primary nameserver>
|
|||
|
nameserver <IP address of your secondary nameserver>
|
|||
|
|
|||
|
# End /etc/resolv.conf
|
|||
|
EOF
|
|||
|
|
|||
|
```
|
|||
|
``domain`` - можно можно опустить или заменить на ``search``
|
|||
|
|
|||
|
Замените ``<Your Domain Name>`` IP-адресом DNS-сервера. Может присутствовать несколько записей (требования предусматривают наличия вторичных серверов для возможности восстановления). Если вам нужен только один DNS-сервер, удалите вторую строку ``nameserver`` из файла. IP-адрес также может быть маршрутизатором в локальной сети.
|
|||
|
|
|||
|
В качестве DNS можно указать адреса, предложенные ниже:
|
|||
|
|
|||
|
Yandex DNS IPv4 ```77.88.8.8``` и ```77.88.8.1```
|
|||
|
|
|||
|
The Google Public IPv4 DNS адреса ```8.8.8.8``` и ```8.8.4.4```
|
|||
|
|
|||
|
The Google Public IPv6 DNS адреса ```2001:4860:4860::8888``` и ```2001:4860:4860::8844```
|
|||
|
|
|||
|
## Настройка /etc/hostname
|
|||
|
|
|||
|
Во время процесса загрузки файл ``/etc/hostname`` используется для определения имени хоста системы.
|
|||
|
|
|||
|
Создайте файл ``/etc/hostname`` и введите имя хоста, запустив:
|
|||
|
|
|||
|
```bash
|
|||
|
echo "MyHostName" > /etc/hostname
|
|||
|
```
|
|||
|
``"MyHostName"`` необходимо заменить именем, присвоенным компьютеру. Не вводите здесь полное доменное имя (FQDN). Эта информация помещается в файл ``/etc/hosts``.
|
|||
|
|
|||
|
|
|||
|
## Настройка /etc/hosts
|
|||
|
Выберите полное доменное имя (FQDN) и возможные псевдонимы для использования в файле ``/etc/hosts``. Если вы используете статические IP-адреса, вам также необходимо выбрать IP-адрес. Синтаксис записи файла hosts:
|
|||
|
|
|||
|
```
|
|||
|
IP_address myhost.example.org aliases
|
|||
|
```
|
|||
|
Если компьютер не должен быть видимым для Интернета (существует зарегистрированный домен и действительный блок назначенных IP-адресов - у большинства пользователей этого нет), убедитесь, что IP-адрес находится в диапазоне IP-адресов частной сети. Допустимые диапазоны:
|
|||
|
|
|||
|
```
|
|||
|
Диапазон сети Префикс
|
|||
|
10.0.0.1 - 10.255.255.254 8
|
|||
|
172.x.0.1 - 172.x.255.254 16
|
|||
|
192.168.y.1 - 192.168.y.254 24
|
|||
|
```
|
|||
|
`x` - может быть любым числом в диапазоне от 16 до 31
|
|||
|
|
|||
|
`y` - может быть любым числом в диапазоне от 0 до 255
|
|||
|
|
|||
|
Корректный локальный IP адрес может быть вида ``192.168.1.1``. FQDN, напрмер ``mylin.example.org``.
|
|||
|
|
|||
|
Даже если не используется сетевая карта, все равно требуется действительное полное доменное имя. Это необходимо для правильной работы определенных программ, таких как MTA (почтоый сервер).
|
|||
|
|
|||
|
Создайте файл ``/etc/hosts``
|
|||
|
|
|||
|
```bash
|
|||
|
cat > /etc/hosts << "EOF"
|
|||
|
# Begin /etc/hosts
|
|||
|
|
|||
|
127.0.0.1 localhost.localdomain localhost
|
|||
|
127.0.1.1 <FQDN> <HOSTNAME>
|
|||
|
<192.168.0.2> <FQDN> <HOSTNAME> [alias1] [alias2] ...
|
|||
|
::1 localhost ip6-localhost ip6-loopback
|
|||
|
ff02::1 ip6-allnodes
|
|||
|
ff02::2 ip6-allrouters
|
|||
|
|
|||
|
# End /etc/hosts
|
|||
|
EOF
|
|||
|
|
|||
|
```
|
|||
|
Значения ``<192.168.0.2>``, ``<FQDN>`` и ``<HOSTNAME>`` необходимо изменить в соответствии с потребностями (если IP-адрес назначен сетевым / системным администратором, и оборудование будет подключено к существующей сети).
|
|||
|
|
|||
|
Необязательные псевдонимы можно опустить, а строку ``192.168.0.2`` можно не указывать, если вы используете соединение, настроенное с помощью DHCP или автоконфигурации IPv6.
|
|||
|
|
|||
|
Запись ```::1``` является эквивалентом ```IPv6 127.0.0.1``` и представляет loopback ```интерфейс IPv6```.
|
|||
|
|
|||
|
```127.0.1.1``` - так называемый, «местный» от англ. local, или «локальный хост», по смыслу — этот компьютер, зарезервированная специально для FQDN.
|