Ну вот пришло время для первой полезной записи, и она будет посвящена настройке сети в Arch Linux.
Да, я знаю, что есть годное руководство на wiki Arch'a [
https://wiki.archlinux.org/index.php/Network_configuration_(Русский)], но все же я считаю, что там много лишнего, создание файлов, скриптов… зачем все это, если в
systemd все давно реализовано до нас.
Начнем с того, что вам удалось установить Arch и загрузиться в установленную систему, пол дела уже сделано, теперь нам необходимо залогиниться и узнать имя или имена интерфейсов, в этом нам поможет утилита
ip, введем в консоли:
ip a
в ответ на эту команду, на экране должно быть нечто подобное:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
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 e8:de:27:03:0c:ac brd ff:ff:ff:ff:ff:ff
inet 176.114.197.113/19 brd 176.114.223.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::eade:27ff:fe04:1c8b/64 scope link
valid_lft forever preferred_lft forever
Теперь мы знаем как называется наш сетевой интерфейс
enp0s3. Не знаю кто придумал так генерировать имена сетевым устройствам, после
Debian я был в замешательстве, когда не смог найти
eth0, и не долго думая запилил правило, которое будет переименовать сетевой интерфейс из
enp0s3 в
eth0.
/etc/udev/rules.d/70-net.rules
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e8:de:27:03:0c:ac", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Если вам тоже привычней eth0, то просто поменяйте
ATTR{address} на ваш
MAC адрес и после перезагрузки у вас будет православный eth0.
Так с именами разобрались приступим к настройке. В жизни не думал, что буду писать подобную заметку, но вики Arch'a меня поразила, может ее просто никто давно не редактировал или Archeводы просто любят все усложнять, в общем в
systemd есть служба
systemd-networkd которая занимается настройкой сетевых интерфейсов. Нам необходимо создать файл в
/etc/systemd/network/ с любым именем, но расширение у него должно быть
network.
/etc/systemd/network/eth0.network
[Match]
Name=eth0 #Имя нашего интерфейса
[Network]
Description="Internet interface" #Описание
#если у нас DHCP, то нужен лишь один параметр DHCP=yes
Address=192.168.1.1 #Ip адрес
Gateway=192.168.1.254 #Шлюз
DNS=8.8.8.8 #DNS
Основные параметры мы указали, если вам еще что-то не обходимо предлагаю с этим ознакомиться в руководстве
man systemd.network
[
http://www.freedesktop.org/software/systemd/man/systemd.network.html ]
Осталось только включить и запустить службу.
systemctl enable systemd-networkd.service
— включает службу
systemctl start systemd-networkd.service
— запускает службу
Теперь глянем
ip адрес командой
ip addr show eth0
, на экране должно красоваться нечто подобное:
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether e8:de:27:04:1c:8b brd ff:ff:ff:ff:ff:ff
inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::eade:27ff:fe04:1c8b/64 scope link
valid_lft forever preferred_lft forever
Поздравляю, вы настроили вашу сетевую карту используя только
systemd и никаких лишних скриптов.
Если у вас вдруг оказался
wifi то и тут
systemd нам поможет, всю схему подключение объяснять не буду, но у вас уже должен быть установлен
WPA_supplicant и настроен [
https://wiki.archlinux.org/index.php/WPA_supplicant_%28Русский%29]. Ну а дальше дело техники, включаем службу —
systemctl enable wpa_supplicant@wlan0.service
создаем линк на wpa_supplicant.conf
ln -s /etc/wpa_supplicant/wpa_supplicant.conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
Создаем файл с настройками интерфейса
/etc/systemd/network/wlan0.network
[Match]
Name=wlan0
[Network]
DHCP=yes
Включаем службу
systemd-networkd.service, в очередной раз поздравляю, если вы все сделали правильно, то при загрузке компьютера вы будете в "
онлайне".
Ну а теперь самое интересное,
IPv6.
Сейчас
Роскомнадзор блокирует множество сайтов(в особенности торрент трекеры) и эти сайты, пытаются всячески обойти блокировки и предоставить пользователям свои услуги и один из этих «обходов» является ipv6, многие провайдеры в него не умеют и естественно не могут заблокировать. Единственное, что у вас должно быть это
внешний(белый) ip адрес на вашем компьютере, не на роутере(там будет немножко другая настройка), а именно на вашем, да именно, за которым вы сидите. Настройка реализуется тоже припомощи systemd и надо создать всего 2 файла конфигурации.
Для начала откроем файл с конфигурацие интерфейса который смотрит в интернет и добавим строчку
Tunnel=tun6to4
вот что у нас получится:
/etc/systemd/network/eth0.network
[Match]
Name=eth0 #Имя нашего интерфейса
[Network]
Description="Internet interface" #Описание
#если у нас DHCP, то нужен лишь один параметр DHCP=yes
Address=172.253.122.17/19 #Ip адрес
Gateway=172.253.122.1 #Шлюз
DNS=8.8.8.8 #DNS
Tunnel=tun6to4
Теперь нам необходимо создать устройство для туннеля, для этого запилим файл:
/etc/systemd/network/ipv6.netdev
[Match]
[NetDev]
Name=tun6to4
Kind=sit
MTUBytes=1480
[Tunnel]
Local=172.253.122.17
Remote=192.88.99.1
TTL=255
Осталось только сконфигурирован туннель
/etc/systemd/network/ipv6.network
[Match]
Name=tun6to4
[Network]
Address=2002:acfd:7a11::
Gateway=2002:c058:6301::1
Узнать Address адрес поможет сайт [
http://wb0.ru/ipconv.php ]
В принципе все, после перезапуска службы
systemctl restart systemd-networkd.service
у вас должен появиться настроенный интерфейс
tun6to4@eth0
Проверить работает ли у вас
ipv6 поможет команда
ping6 ipv6.google.com
ну или сайт [
http://test-ipv6.com/ ]
Как отключить DHCP для IPV6 описал
тут
Всем удачи. Критика приветствуется.
Комментарии ()