AmneziaWG (Для Arch Linux)

AmneziaWG (Для Arch Linux)

anonymous
  1. Для начала необходимо установить заголовки вашего ядра Linux
sudo pacman -S linux-headers

2. Далее клонируем официальный репозиторий модуля ядра AmneziaWG

git clone <https://github.com/amnezia-vpn/amneziawg-linux-kernel-module.git>
cd amneziawg-linux-kernel-module/src
  • Если версия вашего ядра < 5.6 то пропускаем следующий шаг
  • Если версия вашего ядра ≥ 5.6, то необходимо скачать его исходники, например с данного сайта и распаковать их куда вам удобно
uname -r # узнать версию ядра
tar -xvf linux-ВЕРСИЯЯДРА.tar.gz # распаковать архив

Создаём симлинк исходников ядра в директорию со скопированным репозиторием (обязательно в kernel)

ln -s путь/к/исходникам/ядра ~/amneziawg-linux-kernel-module/src/kernel

3. Билдим и устанавливаем модуль ядра

make
sudo make install

Либо, если хотите использовать DKMS, то выполняем следующее

sudo make dkms-install
sudo dkms add -m amneziawg -v 1.0.0
sudo dkms build -m amneziawg -v 1.0.0
sudo dkms install -m amneziawg -v 1.0.0

(Если на данном этапе возникли трудности см. официальный репозиторий)

4. Далее необходимо установить инструменты для работы с модулем ядра

git clone <https://github.com/amnezia-vpn/amneziawg-tools.git>
cd amneziawg-tools/src
make
make install

(Аналогично, если на данном этапе возникли трудности см. репозиторий)

5. Перезагружаем ПК

reboot

6. Создаём файл генерации конфига, делаем его исполняемым и открываем, чтобы добавить сам скрипт

touch genconf.sh
chmod o+x genconf.sh
nano genconf.sh

7. Добавляем следующий код, сохраняем, закрываем (Ctrl+Shift+V, Ctrl+X, Y, Enter)

#!/bin/bash

priv="${1:-$(awg genkey)}"
pub="${2:-$(echo "${priv}" | awg pubkey)}"
api="<https://api.cloudflareclient.com/v0i1909051800>"
ins() { curl -s -H 'user-agent:' -H 'content-type: application/json' -X "$1" "${api}/$2">
sec() { ins "$1" "$2" -H "authorization: Bearer $3" "${@:4}"; }
response=$(ins POST "reg" -d "{\\"install_id\\":\\"\\",\\"tos\\":\\"$(date -u +%FT%T.000Z)\\",\\">

id=$(echo "$response" | jq -r '.result.id')
token=$(echo "$response" | jq -r '.result.token')
response=$(sec PATCH "reg/${id}" "$token" -d '{"warp_enabled":true}')
peer_pub=$(echo "$response" | jq -r '.result.config.peers[0].public_key')
peer_endpoint=$(echo "$response" | jq -r '.result.config.peers[0].endpoint.host')
client_ipv4=$(echo "$response" | jq -r '.result.config.interface.addresses.v4')
client_ipv6=$(echo "$response" | jq -r '.result.config.interface.addresses.v6')

conf=$(cat <<-EOM
[Interface]
PrivateKey = ${priv}
S1 = 0
S2 = 0
Jc = 120
Jmin = 23
Jmax = 911
H1 = 1
H2 = 2
H3 = 3
H4 = 4
MTU = 1280
Address = ${client_ipv4}, ${client_ipv6}
DNS = 1.1.1.1, 2606:4700:4700::1111, 1.0.0.1, 2606:4700:4700::1001

[Peer]
PublicKey = ${peer_pub}
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = ${peer_endpoint}
EOM
)

echo "$conf" > awg-client.conf

8. Генерируем конфиг

./genconf.sh

В директории скрипта должен появиться файл awg-client.conf - файл конфига

9. Закидываем полученный конфиг в директорию конфигов AmneziaWG

mv awg-client.conf /etc/amnezia/amneziawg/awg-client.conf

10. Пробуем подключиться к WARP

sudo awg-quick up awg-client
  • Если возникает ошибка:
resolvconf: command not found

то устанавливаем resolvconf

sudo pacman -S resolvconf
  • Если возникает ошибка:
Failed to set DNS configuration: Could not activate remote peer ‘org.freedesktop.resolve1’: activation request failed, unknown unit

то активируем сервис resolved

systemctl start systemd-resolved.service
systemctl enable systemd-resolved.service

11. Для проверки можно зайти на сайт 2ip.ru и если в графе “Ваш провайдер” вы увидели Cloudflare, поздравляю, у вас всё получилось!

12. Для отключения от WARP

sudo awg-quick down awg-client

P.S. В будущем вам не придётся постоянно прописывать подключение, созданный AmneziaWG сервис будет подключать вас при входе в систему автоматически

ВАЖНО: Если вы будете обновлять ядро, то вам скорее всего потребуется обновить исходное дерево и симлинк, подробнее см. AmneziaWG

Спасибо https://t.me/immalware

Report Page