У меня два сервера: один расположен в России на 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 }