AmneziaWG (Для Arch Linux)
anonymous- Для начала необходимо установить заголовки вашего ядра 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