Комментарии 108
"inbounds": [
{
"listen": "/dev/shm/Xray-VLESS-gRPC.socket,0666",
"protocol": "vless",
"settings": {
"clients": [
{
"id": "123"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "grpc",
"grpcSettings": {
"serviceName": "1234"
}
}
},
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "123",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none",
"fallbacks": [
{
"dest": "8001",
"xver": 1
},
{
"alpn": "h2",
"dest": "8002",
"xver": 1
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"rejectUnknownSni": true,
"minVersion": "1.2",
"certificates": [
{
"ocspStapling": 3600,
"certificateFile": "/etc/letsencrypt/live/domain/fullchain.pem",
"keyFile": "/etc/letsencrypt/live/domain/privkey.pem"
}
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
],
grpc плюс vision. nginx слушает только 80/8001/8002 порт, с 443 идет проброс с xray на nginx, если клиент не опознан. grpc работает через 443 с таким конфигом.
nginx.conf из ключевого
http
{
map $http_upgrade $connection_upgrade {
default upgrade;
"" close;
}
map $proxy_protocol_addr $proxy_forwarded_elem {
~^[0-9.]+$ "for=$proxy_protocol_addr";
~^[0-9A-Fa-f:.]+$ "for=\"[$proxy_protocol_addr]\"";
default "for=unknown";
}
map $http_forwarded $proxy_add_forwarded {
"~^(,[ \\t]*)*([!#$%&'*+.^_`|~0-9A-Za-z-]+=([!#$%&'*+.^_`|~0-9A-Za-z-]+|\"([\\t \\x21\\x23-\\x5B\\x5D-\\x7E\\x80-\\xFF]|\\\\[\\t \\x21-\\x7E\\x80-\\xFF])*\"))?(;([!#$%&'*+.^_`|~0-9A-Za-z-]+=([!#$%&'*+.^_`|~0-9A-Za-z-]+|\"([\\t \\x21\\x23-\\x5B\\x5D-\\x7E\\x80-\\xFF]|\\\\[\\t \\x21-\\x7E\\x80-\\xFF])*\"))?)*([ \\t]*,([ \\t]*([!#$%&'*+.^_`|~0-9A-Za-z-]+=([!#$%&'*+.^_`|~0-9A-Za-z-]+|\"([\\t \\x21\\x23-\\x5B\\x5D-\\x7E\\x80-\\xFF]|\\\\[\\t \\x21-\\x7E\\x80-\\xFF])*\"))?(;([!#$%&'*+.^_`|~0-9A-Za-z-]+=([!#$%&'*+.^_`|~0-9A-Za-z-]+|\"([\\t \\x21\\x23-\\x5B\\x5D-\\x7E\\x80-\\xFF]|\\\\[\\t \\x21-\\x7E\\x80-\\xFF])*\"))?)*)?)*$" "$http_forwarded, $proxy_forwarded_elem";
default "$proxy_forwarded_elem";
}
server {
listen 80;
return 301 https://$host$request_uri;
server_tokens off;
}
server {
listen 127.0.0.1:8001 proxy_protocol;
listen 127.0.0.1:8002 http2 proxy_protocol;
set_real_ip_from 127.0.0.1;
location / {
sub_filter $proxy_host $host;
sub_filter_once off;
proxy_pass https://thisis.com;
proxy_set_header Host $proxy_host;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_ssl_server_name on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header Forwarded $proxy_add_forwarded;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
location /1234 {
if ($content_type !~ "application/grpc") {
return 404;
}
client_max_body_size 0;
client_body_buffer_size 512k;
grpc_set_header X-Real-IP $remote_addr;
client_body_timeout 52w;
grpc_read_timeout 52w;
grpc_pass unix:/dev/shm/Xray-VLESS-gRPC.socket;
}
}
}
Xray имеет скрипт для установки который скачает последнюю версию и создаст юниты systemd. Почему не использовали его?
Большое спасибо за цикл статей.
особенная благодарность за Nekoray/Nekobox . Я когда изучал вопрос этот как-то проглядел это чудо)
Статья интересная, так почитать что что-то там придумали. Но классический ShadowSocket избыточен на данный с chacha20. Китайцы ходят вроде на ура и без проблем. А на тему заглушек актуально наверное для тех кто предоставляет это как сервис. А когда ты и твои друзья условно пользуются одним сервером – вряд ли будут ползать искать
Сейчас у меня две виртуалки, одна в РФ и там нет роскомнадзора, другая в США для нетфликса и прочих сервисов которые наши айпи забанили. Заплатил сразу за год, обе обошлись мне в 2800 в сумме. 230 рублей/мес это не такие уж большие деньги за комфорт.
Поставил Shadowsocks одной командой, сделал sub для shadowrocket. Туда указал два сервера, и определил с помощь config какие ресурсы куда должны ходить. 4 месяца – идеально. Макбук и iphone ходит в зависимости от адреса через нужную проксю. Но большая часть в Direct.
При этом в инстаграмме китайцы продают классический ss пока что. Все таки повторюсь, классно что технологии есть, развиваются. Но пока они слишком избыточны.
а как эти новые технологии по скорости доступа, насколько все плохо или хорошо. Потому что классический ovpn рвет даже первую итерацию SS как тузик грелку. На сайтах в целом разницы не видишь, зато видно как проседает скорость при скачивании к примеру больших файлов с сайтов. Например тот же самый ютуб если запроксировать, заметно становится сразу на 4к роликах он прям туго начинает кэшировать
Спасибо за ваш труд, вон оказывается сколько всяких интересных технологий существует, не TORом и VPNом единым, даже GUI красивый и функциональный сделали и не один)
хз что там по dyndns, но как написано в етой статье есть ещё какой-то сервис freemyip для тех кто ни хочет регесрировать домемные имена
На Freenom в свое время можно было бесплатно доменное имя сделать. На этой неделе заходил — пишут, технические неполадки, новых не даем. Не знаю, оклемаются ли, но как альтернатива — домен sbs можно на год взять за 3 бакса. Без продления (оно уже 9).
Freenom через год попросил платить за домен. Есть еще no-ip.com. Третий уровень дают. Раз в месяц надо тыкнуть, что пользуешься.
По freenom - ты не успел тыкнуть на «продлить», там что-то около двух недель до окончания срока «аренды» нужно нажать, не успеешь - какое-то время домен вернуть можно только за деньги. Потом он возвращался в общий пул. Заранее продлить или сразу на больше чем на год - он не давал. А сейчас вообще ругается на технические неполадки
Для истории оставлю тут скрипт https://github.com/mkorthof/freenom-script
У меня так пачка доменов уже пару лет обновляется
низкий поклон. Пока все работает через sshuttle думаешь, что сойдет итак. А тут видимо надо готовиться уже заранее. Сам пробовал начинать смотреть и изучать, но информация настолько разрозненна, что бросал на пол пути даже SoftEther.
Интересно мнение опытных людей насколько подозрительно выглядит sshuttle работающий через websocket соединение. В теории это просто https сессия, но возможно по паттернам траффика можно заподозрить что-то неладное?
Вот клиент, которым пользуюсь лично я: https://github.com/vi/websocat. Можно вас попросить рассказать или дать линку на документацию как я могу проверить TLS fingerprint?
"inbounds": [
{
"listen": "/dev/shm/Xray-VLESS-gRPC.socket,0666",
"protocol": "vless",
"settings": {
"clients": [
{
"id": "123"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "grpc",
"grpcSettings": {
"serviceName": "1234"
}
}
},
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "123",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none",
"fallbacks": [
{
"dest": "8001",
"xver": 1
},
{
"alpn": "h2",
"dest": "8002",
"xver": 1
}
]
},
"streamSettings": {
"network": "tcp",
"security": "tls",
"tlsSettings": {
"rejectUnknownSni": true,
"minVersion": "1.2",
"certificates": [
{
"ocspStapling": 3600,
"certificateFile": "/etc/letsencrypt/live/domain/fullchain.pem",
"keyFile": "/etc/letsencrypt/live/domain/privkey.pem"
}
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
],
grpc плюс vision. nginx слушает только 80/8001/8002 порт, с 443 идет проброс с xray на nginx, если клиент не опознан. grpc работает через 443 с таким конфигом.
nginx.conf из ключевого
http
{
map $http_upgrade $connection_upgrade {
default upgrade;
"" close;
}
map $proxy_protocol_addr $proxy_forwarded_elem {
~^[0-9.]+$ "for=$proxy_protocol_addr";
~^[0-9A-Fa-f:.]+$ "for=\"[$proxy_protocol_addr]\"";
default "for=unknown";
}
map $http_forwarded $proxy_add_forwarded {
"~^(,[ \\t]*)*([!#$%&'*+.^_`|~0-9A-Za-z-]+=([!#$%&'*+.^_`|~0-9A-Za-z-]+|\"([\\t \\x21\\x23-\\x5B\\x5D-\\x7E\\x80-\\xFF]|\\\\[\\t \\x21-\\x7E\\x80-\\xFF])*\"))?(;([!#$%&'*+.^_`|~0-9A-Za-z-]+=([!#$%&'*+.^_`|~0-9A-Za-z-]+|\"([\\t \\x21\\x23-\\x5B\\x5D-\\x7E\\x80-\\xFF]|\\\\[\\t \\x21-\\x7E\\x80-\\xFF])*\"))?)*([ \\t]*,([ \\t]*([!#$%&'*+.^_`|~0-9A-Za-z-]+=([!#$%&'*+.^_`|~0-9A-Za-z-]+|\"([\\t \\x21\\x23-\\x5B\\x5D-\\x7E\\x80-\\xFF]|\\\\[\\t \\x21-\\x7E\\x80-\\xFF])*\"))?(;([!#$%&'*+.^_`|~0-9A-Za-z-]+=([!#$%&'*+.^_`|~0-9A-Za-z-]+|\"([\\t \\x21\\x23-\\x5B\\x5D-\\x7E\\x80-\\xFF]|\\\\[\\t \\x21-\\x7E\\x80-\\xFF])*\"))?)*)?)*$" "$http_forwarded, $proxy_forwarded_elem";
default "$proxy_forwarded_elem";
}
server {
listen 80;
return 301 https://$host$request_uri;
server_tokens off;
}
server {
listen 127.0.0.1:8001 proxy_protocol;
listen 127.0.0.1:8002 http2 proxy_protocol;
set_real_ip_from 127.0.0.1;
location / {
sub_filter $proxy_host $host;
sub_filter_once off;
proxy_pass https://thisis.com;
proxy_set_header Host $proxy_host;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_ssl_server_name on;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header Forwarded $proxy_add_forwarded;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_connect_timeout 60s;
proxy_send_timeout 60s;
proxy_read_timeout 60s;
}
location /1234 {
if ($content_type !~ "application/grpc") {
return 404;
}
client_max_body_size 0;
client_body_buffer_size 512k;
grpc_set_header X-Real-IP $remote_addr;
client_body_timeout 52w;
grpc_read_timeout 52w;
grpc_pass unix:/dev/shm/Xray-VLESS-gRPC.socket;
}
}
}
То есть я правильно понял, XRay ждет VLESS+XTLS, если нет - то передает запрос на Nginx, а уже Nginx смотрит, что там URL для gRPC и передает обратно на XRay? Запутанно, но должно сработать наверное.
по логике так. работает
Или это для случая, когда TLS ALPN указан как http/1.1
мне кажется именно для этого, http1, http2 детектить.
Добрый день.
Можете помочь с настройкой xray grpc по вашему конфигу?
Переадресация на сайт работает, сертификат лецинкрипт, но не получается подключиться с клиента на xray.
Если у вас есть рабочая сборка, можете хотябы скинуть список команд и конфиги?
Ну или если не затруднит, посмотреть что было настроено.
Можно через трансляцию в дискорд или как-то ещё.
не получилось только kcp настроить, либо shadowrocket что-то не так умеет
{
"protocol": "vless",
"port": 443,
"settings": {
"decryption":"none",
"clients": [
{"id": "123"}
]
},
"streamSettings": {
"network": "kcp",
"mtu": 1360,
"uplinkCapacity":90,
"downlinkCapacity":90,
"congestion":false,
"header":{
"type":"dtls"
},
"kcpSettings": {
"seed": ""
}
}
},
в логе xray
[Info] transport/internet/kcp: discarding invalid payload
Криво (используется host-network потому что иначе не работает IPv6, а с ней оно слушает 48800 порт не только на localhost, а в открытую, ибо через 127.0.0.1 не работает - знающие люди, подскажите, как пофиксить)
Caddy запускаем во внешней сетке, скажем reverse-proxy. Ее естественно перед этим создаем
docker network create reverse-proxy
services:
caddy:
container_name: caddy
image: caddy:latest
restart: unless-stopped
networks:
- reverse-proxy
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- $PWD/Caddyfile:/etc/caddy/Caddyfile
- ./data:/data
- ./config:/config
networks:
reverse-proxy:
external: true
В этой же сетке запускаем контейнер xray.
version: '3'
services:
xray:
image: teddysun/xray
container_name: xray
volumes:
- .:/etc/xray
networks:
- reverse-proxy
networks:
reverse-proxy:
external: true
В Caddyfile тогда будет
example.com {
handle_path /myverysecretpath {
reverse_proxy xray:48800
}
}
К слову можно у себя запускать прокси тоже в докере
config.json
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 10800,
"listen": "0.0.0.0",
"protocol": "socks",
"settings": {
"udp": true
}
}
],
"outbounds": [
{
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "UUID",
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "ws",
"security": "tls",
"tlsSettings": {
"serverName": "example.com"
},
"wsSettings": {
"path": "/myverysecretpath"
}
}
}
]
}
docker-compose.yml
version: '3'
services:
xray-client:
image: teddysun/xray
container_name: xray-client
ports:
- "10800:10800"
volumes:
- .:/etc/xray
Появился вопрос. А существует какой либо софт который умеет кроме выбора родительского прокси по правилам дополнительно делать смену порта?
Как пример:
при обращении на host.com:11465 использовать proxy1.com:1080 и коннектиться к host.com:465
а при обращении на host.com:12465 использовать proxy2.com:1080 и коннектиться к host.com:465
Понятное дело что все можно разрулить на стенке и использовать что-то типа https://github.com/ginuerzh/gost или socat. Но конфиг уж очень не портативный, перенос на другой комп — боль и печаль
Этот изврат нужен чтобы в одном почтовом клиенте использовать разные акки на одном домене но с разных ип адресов. Или может кто знает почтового клиента кто умеет различные прокси для различных акков использовать
А можно такую же статью, но для максимальных чайников?) Для тех кто только outline ставил)))
А чем плох outline?
Не плох ничем, но всегда хочется чему то новому научится, тем более это же более надёжное решение...
он слишком прост, нет обсфукации. его уже детектят, хотя и vless вроде как тоже.
https://github.com/Jigsaw-Code/outline-ss-server/issues/124
ну и плюс outline-server ставит прометея, без которого можно обойтись.
Подскажите, пожалуйста, как потраблшутить nekoray на windows? Как будто петля, или что-то не так с маршрутизацией, nekoray 80% cpu, в его логе льется куча строк каких-то подключений, интернет пропадает (делал по вашей инструкции и vless direct, и vless-ws). При этом этот же конфиг, расшаренный по куаркоду на андроид - работает, подключается, трафик всего телефона идет через xray-сервер.
У меня вопрос по маршрутизации.
Попытался поставить правила geosite:ru и geoip:ru как здесь указано. Но geosite:ru вообще не принимает xray, ссылаясь на отсутствие директивы ru (cn работает, проверил). Проверка по geoip не вылетает, но похоже не работает.
В документации на сайте проекта и в репозиториях ru директив не нашел, китайцы делают под себя и правила обновляют для cn доменов.
Фильтровать российские домены смог только через regexp:
"rules": [
{
"type": "field",
"domain": [
"regexp:^([\\w\\-\\.]+\\.)ru$"
],
"outboundTag": "direct"
}
]
Так все хорошо и ru домены идут напрямую.
Проверка по geoip не вылетает, но похоже не работает.
А вы geoip:ru писали в блок "ip" или в блок "domain"? Я на всякий случай уточняю.
За регэксп спасибо.
Аналогично, geosite:ru не заработал.
geoip:ru у меня корректно работает и на сервере и на клиенте. Попробуйте "outboundTag": "block", так нагляднее. Ну и, конечно, удостовериться, что целевой ip действительно российский.
Спасибо, поэкспериментировал, победил кажется.
Я сделал два прокси на разные домены, один на CDN, другой напрямую. Через балансер. Такая связка заработала только так, конфиг клиента:
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "direct"
},
{
"type": "field",
"ip": [
"geoip:ru"
],
"outboundTag": "ru_ip"
},
{
"type": "field",
"domain": [
"regexp:^([\\w\\-\\.]+\\.)ru$"
],
"outboundTag": "ru_address"
},
{
"type": "field",
"inboundTag": [
"inbound"
],
"balancerTag": "balancer"
}
],
"balancers": [
{
"tag": "balancer",
"selector": [
"proxy_1",
"proxy_2"
]
}
]
Соответственно нужны freedom-теги ru_ip, ru_address и inbound тег "inbound"
Сначала клиент пропускает локальные ip, затем ru айпишники, потом адрес по регекспу.
Если ничего не совпадает направляет на балансер.
Если сервер один, можно часть с балансерами удалить.
подскажите как надо прописать на сервере чтобы ru сайты на прямую открывались ?
"regexp:.ru$"
"regexp:.рф$"
не работает?
Подскажите, пожалуйста, как проверить работает ли при использовании Reality ,что
"TLS подключение передается на какой-нибудь другой абсолютно реальный хост с TLS (например, google.com или gosuslugi.ru) "
А т не очень понятно, эта обфускация работает вообще или нет
Ребят, мне очень не понятен пункт 6. Очень рекомендуется настраивать на клиентах правила маршрутизации ..... Мжно по подробней где это указать в клиентах и где/куда на сервере прописывать?
Помогите с конфигом nginx для fallback-переадресации на левый адрес или запроса логина - пароля.
На своем серваке задержка в разы выше, хотя на бесплатных серверах 140-250)
Подскажите, пожалуйста, что я не так делаю? Все делал по инструкции ставил через bash. Ошибка появляется после команды journalctl -u xray. Выставлял права, но не помогает.
open /etc/letsencrypt/live/example.com/fullchain.pem: permission denied
Если сам сайт cloudflare заблочен, то через cdn уже не получится выйти на заблоченный сервер и продолжать использовать впн? Есть страна такая как Туркмения где тонны подсеток в блоке и сам клаудфаер, для такой цензуры было бы удобно получить доступ к заблоченной впске
Подскажите как правильно изменить порт для vless. Как только меняю стандартный 443 на любой другой открытый, фейковый сайт перестает открываться, в браузере ошибка - не удается получить доступ к сайту. Порты само собой открыты, никаких запретов на их использование нет. В журнале или через systemctl status ни xray ни nginx никаких ошибок не выдают.
Error 503 Backend unavailable, connection timeout
Backend unavailable, connection timeout
Error 54113
Details: cache-fra-etou8220068-FRA 1682956545 3753448921
Varnish cache server
Подскажите почему такая ошибка выскакивает? все делал как написано в Marzban-examples Но какая то беда с сертификатом я так понимаю(
Подскажите, пожалуйста, что делаю не так. На двух компьютерах все настроил, все работает, на третьем - VLESS настроить получилось, а вот Shadowsoks при попытке сделать URL test выдает ошибку: "wsarecv: An existing connection was forcibly closed by the remote host." Что это может быть и как это пофиксить?
Можно ли показать(в качестве примера), как должен выглядеть конфиг nginx для ssl_preread модуля ? А то я не силен в этом
nginx стоит перед xray
У меня Gcore ns севера открываются в браузере хоть и с ошибкой 404 (но она красочная), у товарища в туркмении даже этого не видно, пишет как будто интернета нет. Думаю не судьба там настроить cdn прокси...
>О том, что эта версия протокола именно 2022 говорит method "2022-blake3-aes-128-gcm". Ключ - любой в шестнадцатеричной форме, его длина зависит от типа шифра, в примере 128-битный шифр, если используете 256-битный, то ключ, соответственно, должен быть в два раза длиннее.
Как минимум в свежих версиях sing-core/xray, ключ должен быть base64, a не hex.
есть веб сайт с nginx и сертификатом ! vision и реалити будут ли работать и какие настройки надо сделать ?
Можно вопрос про SNI?
У меня это поле сейчас не заполнено, и все работает. В каких случаях его можно/нужно использовать? Если его заполнить, то все сломается?
Просто подумалось, что вдруг его можно заполнить чем-то "известным", входящим в пакет "безлимитных мессенджеров". Вдруг получится у Туркишей добираться до своего прокси и интернетом пользоваться таким образом в рамках "Miles&Smiles Classic Members: Unlimited Messaging". Вряд ли по IP они это проверяют.
Или на мобильных тарифах бывают "безлимитные соцсети"....
А может кто-нибудь подсказать, как в json конфигурации кастомных маршрутов для NekoBox указать сайты, которые идут через proxy? Напрямую - это "outbound": "direct". А как через proxy? А то почему-то установка базовых маршрутов через квадратные поля не работает.
правила по суффиксам Nekobox не умеет
В 3.26 уже умеет.
{
"rules": [
{
"domain": [
"regexp:.*\\.ru$"
],
"outboundTag": "direct",
"type": "field"
},
{
"domain": [
"regexp:.*\\.xn--p1ai$"
],
"outboundTag": "direct",
"type": "field"
}
]
}
geoip:ru и geoip:private не взлетели
Подскажите плиз, что не нравится установеленному XRay-core на моем сервере? Вот его /usr/local/etc/xray/config.json:
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "66666666-CCCC-4444-8888-999999999999",
"flow": "xtls-rprx-vision",
"level": 0,
"email": "myname@mydomain.com"
}
],
"decryption": "none",
"fallbacks": [
{
"dest": 80
}
]
},
"streamSettings": {
"network": "tcp",
"security": "xtls",
"xtlsSettings": {
"alpn": [
"http/1.1"
],
"certificates": [
{
"certificateFile": "/etc/letsencrypt/live/gehxxxx.xxxx.xxx/fullchain.pem",
"keyFile": "/etc/letsencrypt/live/gehxxxx.xxxx.xxx/privkey.pem"
}
]
}
}
}
],
"outbounds": [
{
"protocol": "freedom"
}
]
}
А вот что в статусе:
root@ubuntu:~# systemctl status xray
× xray.service - Xray Service
Loaded: loaded (/etc/systemd/system/xray.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/xray.service.d
└─10-donot_touch_single_conf.conf
Active: failed (Result: exit-code) since Tue 2024-03-26 21:51:04 UTC; 4min 23s ago
Docs: https://github.com/xtls
Main PID: 662 (code=exited, status=23)
CPU: 19ms
Mar 26 21:51:03 ubuntu systemd[1]: Started Xray Service.
Mar 26 21:51:04 ubuntu xray[662]: Xray 1.8.9 (Xray, Penetrates Everything.) 37f8654 (go1.22.1 linux/amd64)
Mar 26 21:51:04 ubuntu xray[662]: A unified platform for anti-censorship.
Mar 26 21:51:04 ubuntu xray[662]: 2024/03/26 21:51:04 [Info] infra/conf/serial: Reading config: /usr/local/etc/xray/config.json
Mar 26 21:51:04 ubuntu xray[662]: Failed to start: main: failed to load config files: [/usr/local/etc/xray/config.json] > infra/conf: Please use VLESS flow "xtls-rprx-vision" with TLS or REALITY.
Mar 26 21:51:04 ubuntu systemd[1]: xray.service: Main process exited, code=exited, status=23/n/a
Mar 26 21:51:04 ubuntu systemd[1]: xray.service: Failed with result 'exit-code'.
root@ubuntu:~#
Что ему не нравится?
Обход блокировок: настройка сервера XRay для Shadowsocks-2022 и VLESS с XTLS-Vision, Websockets и фейковым веб-сайтом