Настройка статического и динамического IP-адреса в Arch Linux
В этом кратком руководстве описывается, как настроить статический и динамический IP-адрес в Arch Linux и его производных, таких как EndeavourOS и Manjaro Linux.
Настройте статический IP-адрес в Arch Linux
Мы можем настроить статический IP-адрес двумя способами. Мы увидим оба.
Способ 1: назначить статический IP-адрес в Arch Linux с помощью netctl
Netctl — это утилита командной строки, которую можно использовать для анализа и управления состоянием служб systemd для менеджера сетевых профилей.
Как вы, возможно, уже знаете, примеры файлов конфигурации сети будут храниться в папке /etc/netctl/examples/ в Arch Linux.
ls /etc/netctl/examples/
Пример вывода:
bonding macvlan-dhcp tunnel wireless-wep
bridge macvlan-static tuntap wireless-wpa
ethernet-custom mobile_ppp vlan-dhcp wireless-wpa-config
ethernet-dhcp openvswitch vlan-static wireless-wpa-configsection
ethernet-static pppoe wireless-open wireless-wpa-static
Как видно из приведенного выше вывода, файлы ethernet-static и ethernet-dhcp представляют собой примеры профилей Ethernet. В этом месте вы также увидите профили беспроводной сети.
Сначала давайте найдем имя нашей сетевой карты. Для этого запустите:
ip link
Пример вывода:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
link/ether 08:00:27:db:14:7a brd ff:ff:ff:ff:ff:ff
Как вы видите в приведенном выше выводе, имя моей сетевой карты — enp0s3.
Теперь скопируйте образец профиля сетевой карты из каталога /etc/netctl/examples/ в каталог /etc/netctl/, как показано ниже.
sudo cp /etc/netctl/examples/ethernet-static /etc/netctl/enp0s3
Замените enp0s3 именем вашей сетевой карты.
Теперь отредактируйте файл конфигурации сети:
sudo nano /etc/netctl/enp0s3
Введите свой IP-адрес, маску сети, шлюз и данные DNS-сервера, как показано ниже.
Description='A basic static ethernet connection'
Interface=enp0s3
Connection=ethernet
IP=static
Address=('192.168.1.102/24')
Gateway=('192.168.1.1')
DNS=('8.8.8.8' '8.8.4.4')
Вам необходимо заменить eth0 на фактическое имя вашей сетевой карты (т. е. enp0s3 в нашем случае) в приведенном выше файле конфигурации. Сохраните и закройте файл.
Включите автоматический запуск сетевой карты при каждой перезагрузке с помощью команды:
sudo netctl enable enp0s3
Наконец, запустите профиль сети, как показано ниже.
sudo netctl start enp0s3
Остановите и отключите службу DHCP.
sudo systemctl stop dhcpcd
sudo systemctl disable dhcpcd
Перезагрузите систему, чтобы изменения вступили в силу.
Теперь проверьте статический IP-адрес с помощью команды:
ip addr
Пример вывода будет:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:db:14:7a brd ff:ff:ff:ff:ff:ff
inet 192.168.1.102/24 brd 192.168.1.255 scope global enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::367c:d479:4d21:cede/64 scope link
valid_lft forever preferred_lft forever
Как видно из приведенного выше вывода, сетевой карте был назначен статический IP-адрес (192.168.1.102).
Способ 2: установите статический IP-адрес в Arch Linux с помощью systemd
systemd — это менеджер систем и служб для операционных систем Linux. Давайте теперь посмотрим, как настроить статический IP-адрес с помощью systemd.
Создайте профиль сети, как показано ниже.
sudo nano /etc/systemd/network/enp0s3.network
Замените enp0s3 именем вашей сетевой карты. И добавьте следующие строки.
[Match]
Name=enp0s3
[Network]
Address=192.168.1.102/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=8.8.4.4
Сохраните и закройте файл.
Далее вам нужно отключить netctl. Чтобы узнать, что включено и связано с netctl, выполните следующую команду:
sudo systemctl list-unit-files
Как только вы определите все, что связано с netctl, отключите их все. В моей системе была включена следующая служба, поэтому я отключил ее, как показано ниже.
sudo systemctl disable netctl@enp0s3.service
И удалите пакет netctl из вашего Arch Linux с помощью команды:
sudo pacman -Rns netctl
Кроме того, не забудьте остановить и отключить службу DHCP.
sudo systemctl stop dhcpcd
sudo systemctl disable dhcpcd
Затем включите и запустите службу systemd-networkd, как показано ниже:
sudo systemctl enable systemd-networkd
sudo systemctl start systemd-networkd
Перезагрузите систему. И проверьте, правильно ли назначен IP-адрес, с помощью команды:
ip addr
Теперь вы знаете, как настроить статический IP-адрес. Далее мы увидим, как назначить динамический IP-адрес сетевой карте.
Настройте динамический IP-адрес в Arch Linux с помощью Netctl
Сначала установите netctl, если он еще не установлен.
sudo pacman -S netctl
Скопируйте профиль ethernet-dhcp из каталога /etc/netctl/examples/ в каталог /etc/netctl/, как показано ниже.
sudo cp /etc/netctl/examples/ethernet-dhcp /etc/netctl/enp0s3
Отредактируйте файл /etc/netctl/enp0s3:
sudo vi /etc/netctl/enp0s3
Замените eth0 на фактическое имя сетевого интерфейса, например enp0s3.
Description='A basic dhcp ethernet connection'
Interface=enps03
Connection=ethernet
IP=dhcp
#DHCPClient=dhcpcd
#DHCPReleaseOnStop=no
## for DHCPv6
#IP6=dhcp
#DHCP6Client=dhclient
## for IPv6 autoconfiguration
#IP6=stateless
Сохраните и закройте файл.
Включите и запустите службу dhcpcd:
sudo systemctl enable dhcpcd
sudo systemctl start dhcpcd
Перезагрузите систему. Проверьте IP-адрес с помощью следующей команды:
ip addr
Надеюсь это поможет.