AmneziaWG + Xray + WARP

  • WARP - бесплатный VPN от Cloudflare, позволит скрыть свой белый IP (для обхода блокировок Gemini или безопасности). Может работать в режиме SOCKS5, позволяя проксировать только выборочный трафик.
  • Xray - умное ядро маршрутизации, позволит направить трафик в SOCKS5 WARP прокси согласно заданным правилам (в нашем случае DNS).

Для Debian-based ОС обновить пакеты и установить базовые утилиты:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gnupg lsb-release

Установить WARP:

curl -fsSL https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --yes --dearmor -o /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list
sudo apt update && sudo apt install cloudflare-warp -y

Зарегистрироваться в WARP и запустить SOCKS5 прокси:

warp-cli registration new
warp-cli mode proxy
warp-cli proxy port 40000
warp-cli connect

# Проверка работоспособности, должно выдать IP адрес от Cloudflare
curl --socks5 127.0.0.1:40000 ifconfig.me

Установить Xray:

bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

Заменить файл /usr/local/etc/xray/config.json содержимым:

{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "tag": "transparent",
      "port": 12345,                // Порт куда AmneziaWG будет перенаправлять трафик
      "protocol": "dokodemo-door",
      "settings": {
        "network": "tcp",           // UDP будет перехвачен iptables
        "followRedirect": true
      },
      "sniffing": {
        "enabled": true,
        "destOverride": ["http", "tls"]
      }
    }
  ],
  "outbounds": [
    {
      "tag": "direct",
      "protocol": "freedom",
      "settings": {}
    },
    {
      "tag": "warp-socks",
      "protocol": "socks",
      "settings": {
        "domainStrategy": "UseIPv4",
        "servers": [
          {
            "address": "127.0.0.1", // Адрес и порт WARP SOCKS5 прокси
            "port": 40000
          }
        ]
      }
    }
  ],
  "routing": {
    "domainStrategy": "AsIs",
    "rules": [
      {
        "type": "field",
        "domain": [
          "geosite:google",
          "geosite:google-gemini",
          "domain:2ip.io",          // Для проверки работоспособности
        ],
        "outboundTag": "warp-socks"
      },
      {
        "type": "field",
        "network": "tcp,udp",
        "outboundTag": "direct"     // Всё остальное напрямую
      }
    ]
  }
}

Перезапустить службу и добавить в автозагрузку:

sudo systemctl restart xray
sudo systemctl enable xray

Добавить дополнительные правила iptables:

# Перенаправлять весь трафик AmneziaWG на порт 12345
sudo iptables -t nat -I PREROUTING 1 -i amn0 -p tcp -j REDIRECT --to-ports 12345

# Выключить UDP для HTTPS (QUIC) для amn0 (SOCKS5 поддерживает только TCP)
sudo iptables -I FORWARD -i amn0 -p udp --dport 443 -j DROP

# Заблокировать порт 12345 на интерфейсе с белым IP адресом (найти можно командой ip -c -br a)
sudo iptables -I INPUT -i ens1 -p tcp --dport 12345 -j DROP

Чтобы правила iptables сохранялись при перезагрузке:

sudo apt install iptables-persistent

# При установке предложит сохранить текущие правила, но можно отдельной командой
sudo netfilter-persistent save

Работоспобность можно проверить перейдя на 2ip.io, сайт должен отобразить IP адрес Cloudflare.

Для установки актуальных Geosite DNS:

sudo curl -L -o /usr/local/share/xray/geosite.dat https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat

AmneziaWG + WARP

Для более простой конфигурации можно воспользоваться скриптом https://github.com/isultanov99/amnezia-warp-host-routing. Тогда весь трафик AmneziaWG будет проходить через WARP.

sudo apt install git
git clone https://github.com/isultanov99/amnezia-wg-warp-host-routing/blob/master/deploy_amnezia_warp_host.sh
cd amnezia-wg-warp-host-routing/
chmod +x deploy_amnezia_warp_host.sh

# Запустить скрипт
./deploy_amnezia_warp_host.sh

# Проверка работоспособнсти
sudo systemctl status amnezia-warp-routing@v2.service