У меня два сервера: один расположен в России на WG, а второй — за пределами страны на 3X-UI. Я хочу использовать WG в качестве шлюза, чтобы сохранить удобство VPN с функциями, такими как доступ к домашнему NAS и удаленному рабочему столу, и при этом иметь выход в интернет. Я столкнулся с проблемой на этапе их объединения и не понимаю, почему мой конфигурационный файл для Reality отличается от примеров, найденных в интернете. Кроме того, есть ли версия клиента Xray для Ubuntu, не требующая графического интерфейса? Я не очень хорошо разбираюсь в командной строке и настраивал всё через веб-интерфейсы, поэтому мне сложно самостоятельно разобраться в деталях.
Чтобы настроить туннель между сервером WireGuard и сервером XTLS-Reality, вам потребуется выполнить несколько шагов. Сначала убедитесь, что оба сервера настроены правильно и могут обмениваться данными. ### Шаги по настройке туннеля: 1. **Установите WireGuard на сервере в России и настройте VPN:** Убедитесь, что сервер WireGuard работает и конфигурация правильно настроена. Например, вот базовый пример конфигурационного файла `/etc/wireguard/wg0.conf`: ``` [Interface] Address = 10.0.0.1/24 ListenPort = 51820 PrivateKey = <ваш_приватный_ключ> [Peer] PublicKey = <публичный_ключ_клиента> AllowedIPs = 10.0.0.2/32 ``` Далее, создайте конфигурацию для клиента WireGuard на вашем клиентском устройстве, которое будет подключаться к этому серверу. 2. **Настройте XTLS-Reality на сервере X3-UI:** Ваша конфигурация для Xray (с XTLS) может выглядеть примерно так: ```json { "outbounds": [ { "protocol": "vless", "settings": { "vnext": [ { "address": "ваш_домен_или_IP_X3-UI", "port": 443, "users": [ { "id": "<ваш_UUID>", "encryption": "none" } ] } ], "streamSettings": { "network": "tcp", "security": "xtls", "xtlsSettings": { "alpn": ["http/1.1"], "certificates": [ { "certificateFile": "/path/to/cert.pem", "keyFile": "/path/to/key.pem" } ] } } } } ] } ``` Убедитесь, что вы используете правильные значения для `id`, `address`, пути к сертификатам и других параметров. 3. **Настройте маршрутизацию:** Убедитесь, что ваш сервер X3-UI может обращаться к вашему серверу WireGuard через VPN. В этом случае возможно, что вам потребуется добавить маршрут на сервере X3-UI, чтобы указывать на адрес WireGuard в качестве шлюза. 4. **Проверьте соединение:** Используйте команды `ping` и `curl` на обеих машинах для тестирования соединения. Если ваш сервер X3-UI правильно настроен на использование WireGuard в качестве выхода в интернет, вы должны увидеть, что ваши запросы приходят через VPN. ### Клиент Xray для Ubuntu: Для Linux, включая Ubuntu, вы можете использовать Xray без графического интерфейса. Для этого выполните следующие шаги: 1. **Скачайте и установите Xray:** Используйте команду `wget` чтобы скачать последнюю версию Xray. Пример: ```bash wget https://github.com/XTLS/Xray-core/releases/latest/download/xray-linux-64.zip ``` Затем распакуйте файл: ```bash unzip xray-linux-64.zip ``` 2. **Настройте конфигурацию:** Создайте конфигурационный файл в `/etc/xray/config.json` и добавьте туда вашу конфигурацию. 3. **Запуск Xray:** Вы можете запустить Xray с помощью команды: ```bash ./xray -config /etc/xray/config.json ``` Для удобства вы можете создать systemd сервис, чтобы Xray запускался автоматически. ### Заключение: Эти шаги дают общее представление о конфигурации туннеля между WireGuard и XTLS-Reality. Обязательно проверьте официальную документацию по каждому инструменту для более подробной информации и устранения неполадок.
Для построения туннеля можно использовать Cloak, конфиги гораздо проще xray:
root@test:~# cat /etc/cloak/cloak-server.json { "ProxyBook": { "wireguard": [ "udp", "127.0.0.1:12345" ] }, "BindAddr": [ ":443" ], "BypassUID": [ "Lkpevo0X6lV5bn33Rl1QCQ==" ], "RedirAddr": "mail.google.com", "PrivateKey": "+EvmB2L2vKaLsh/ynQgJpyEzQ216Ec2c8svs7au+Y10=" }
root@test:~# cat /etc/cloak/cloak-client-wireguard.json { "Transport": "direct", "ProxyMethod": "wireguard", "EncryptionMethod": "plain", "UID": "Lkpevo0X6lV5bn33Rl1QCQ==", "PublicKey": "+GTHXOFTYJhRM4+xv9q+ZjSykSIMOLffIs8qJN/4V2Y=", "ServerName": "mail.google.com", "NumConn": 4, "BrowserSig": "chrome", "StreamTimeout": 300 }
На сервере, на внешнем интерфейсе, закрываем подключения к порту UDP:12345 средствами iptables или другими сетевыми фильтрами.
На клиенте запускаем:
cloak-client.exe -u -c C:\Windows\System32\cloak-client-wireguard.json -i 127.0.0.1 -l 12345 -s example.com -p 443
На клиенте WG настраиваем подключение на адрес прослушиваемый нашим Cloak-Client: 127.0.0.1:12345
То есть при данной схеме UDP трафик WG упаковывается в туннель TCP предоставляемый средствами cloak.
Если сработает блокировка, можно включить шифрование в конфиге cloak-client:
root@test:~# cat /etc/cloak/cloak-client-wireguard.json { "Transport": "direct", "ProxyMethod": "wireguard", "EncryptionMethod": "aes-256-gcm", "UID": "Lkpevo0X6lV5bn33Rl1QCQ==", "PublicKey": "+GTHXOFTYJhRM4+xv9q+ZjSykSIMOLffIs8qJN/4V2Y=", "ServerName": "mail.google.com", "NumConn": 4, "BrowserSig": "chrome", "StreamTimeout": 300 }