Ник Пост Дата
icove

Здравствуйте, на своём линукс десктопе хочу настроить xray-core в качестве клиента к серверу где так же стоит xray-core работающий на vless xtls reality с использованием стороннего маскировочного домена. У меня очень мало опыта, и у меня не получается. Xray-core на стороне клиента запускается, но трафик не работает. Проверял на Fedora Worksations и Ubuntu 22.10

Я покажу свои конфигурации, но перед публикацией я отредактировал их, и убрал чувствительные данные. Заменил на фейковые IP, ID, dest, serverNames, privateKey, publicKey, shortId

Как я понимаю, я должен в приложениях или в системе настроить локальный socks на ip 127.0.0.1 port 10808
Я пробовал эти данные вписывать в GUI настройки GNOME, там есть возможность настройки прокси, и пробовал это делать в firefox, но там я нажимал socks4 или socks5 (а у меня в конфиге вроде только socks, я не знаю в чём разница). Трафик не идёт

Есть ли в конфигах грубые или не очень ошибки и любые советы приветствуются. Сервер прекрасно работает через GUI клиенты.

Причина настройки xray-core желание иметь текстовой клиент, потому, что GUI клиенты визуально страшные.
config server

{
  "log": {
    "loglevel": "info"
  },
  "inbounds": [
    {
      "listen": "213.59.254.7",
      "port": 443,
      "protocol": "vless",
      "tag": "reality-in",
      "settings": {
        "clients": [
          {
            "id": "here_id_key_my",
            "email": "user1",
            "flow": "xtls-rprx-vision"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "show": false,
          "dest": "www.gosuslugi.ru:443",
          "xver": 0,
          "serverNames": [
            "www.gosuslugi.ru"
          ],
          "privateKey": "here-key-private-54645gef3f4rf",
          "minClientVer": "",
          "maxClientVer": "",
          "maxTimeDiff": 0,
          "shortIds": ["here_id"]
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls",
          "quic"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    }
  ],
  "routing": {
    "rules": [
      {
        "type": "field",
        "protocol": "bittorrent",
        "outboundTag": "block"
      }
    ],
    "domainStrategy": "IPIfNonMatch"
  }
}

config client

{
    "log": {
        "loglevel": "debug"
    },
    "inbounds": [
        {
            "listen": "127.0.0.1", 
            "port": 10808, 
            "protocol": "socks",
            "settings": {
                "udp": true
            },
            "sniffing": {
                "enabled": true,
                "destOverride": [
                    "http",
                    "tls",
                    "quic"
                ],
                "routeOnly": true
            }
        }
    ],
    "outbounds": [
        {
            "protocol": "vless",
            "settings": {
                "vnext": [
                    {
                        "address": "213.59.254.7", 
                        "port": 443, 
                        "users": [
                            {
                                "id": "here_id_key_my", // Needs to match server side
                                "encryption": "none",
                                "flow": "xtls-rprx-vision"
                            }
                        ]
                    }
                ]
            },
            "streamSettings": {
                "network": "tcp",
                "security": "reality",
                "realitySettings": {
                    "fingerprint": "chrome", 
                    "serverName": "www.gosuslugi.ru:443", // A website that support TLS1.3 and h2. If your dest is `1.1.1.1:443`, then leave it empty
                    "publicKey": "here_publick_key_iuhf9uhr8fu3he8dh", // run `xray x25519` to generate. Public and private keys need to be corresponding.
                    "spiderX": "", // If your dest is `1.1.1.1:443`, then you can fill it with `/dns-query/` or just leave it empty
                    "shortId": "here_id"
 // Required
                }
            },
            "tag": "proxy"
        }
    ]
}
2024-12-23T11:07:25.880Z
spotted_giraffe

У вас клиент поднимается без ошибок, но траффик не идет? А как роутинг настроен?

2024-12-23T11:55:30.414Z
Dhohbr

Не уверен влияет это или нет, но доках serverNames указан без порта. Transport | Project X

Ну и под госуслуги не самый лучший вариант маскироваться. Посканируйте сеть хостера этой утилитой GitHub - XTLS/RealiTLScanner: A TLS server scanner for Reality и используйте ближайший сайт.

Включите дебаг в клиенте и на сервере Log Configuration | Project X и смотрите в чем проблема.

2024-12-23T12:01:39.564Z
icove

Что вы подразумеваете под роутингом? Всё идёт через прокси или нет? Это не имеет значения, на сервере фильтров нет, он маршрутизирует всё полностью, и это в конфиге видно. Я пытаюсь с помощью какой то там матери понять, впринципе в правильном я направлении иду, так же хотелось бы знать, работает или подобная конфигурация клиента хоть у кого нибудь.

В начале надо понять, правильно ли пишем конфиг. Может посоветуете софт какой, чтобы протестировать socks, а то может у меня с этим протоколом система не правильно работает.

2024-12-23T12:01:58.869Z
icove

конфиг сервера брал с русскоязычного ресурса хабр, там рекомендовалось так, это работает с другими клиентами, спасибо что пытаетесь помочь, но вы не обратили внимание, что я уже писал, что параметры, включая маскировочный домен указаны не те, которые я использую, не афиширую.

2024-12-23T12:05:05.175Z
icove

Вы наверное заметили, что debug включён на клиенте, врятли имеет смысл его включать на сервере. xray мало ошибок передаёт или не передаёт по сети, из за его особенной природы быть незаметным и тихим.

в терминале лог такой, в начале всё работает, как только пытаешься подключиться к socks, в логи бежит куча информации, перед тем как усё останавливается появляется такое:

2024/12/23 14:55:33 [Info] [2555611942] app/proxyman/outbound: app/proxyman/outbound: failed to process outbound traffic > proxy/vless/outbound: failed to find an available destination > common/retry: [x509: certificate is valid for cosmopolitan.com, *.25ans.jp, далее невероятное колличество доменов, я на такие вообще никогда не ходил, а потом
*.hearstautos.net, *.intelliprice.com, intelliprice.com, *.gente.it, gente.it, *.cdn-test.hearstapps.net, not www.здесь_маскировочный_домен:443 dial tcp здесь_ip_vps:443: operation was canceled] > common/retry: all retry attempts failed

2024-12-23T12:10:44.544Z
spotted_giraffe

Ок. Просто у меня тоже xray, но клиент Nekobox и я дополнительно настраиваю сплит трафика, какой пропускать direct для ru зоны например, а какой через прокси. Предлагаю перепроверить какой режим стоит в клиенте, я просто клиент сам не пробовал ставить, хоть хочется поиграть с xhttp…

У меня другие:


"realitySettings": {
                        "show": false,
                        "dest": "www.gosuslugi.ru:443",
                        "xver": 0,
                        "serverNames": [
                                "www.gosuslugi.ru",
                                "gosuslugi.ru"
                        ],
                        "privateKey": "pkey",
                        "minClientVer": "",
                        "maxClientVer": "",
                        "maxTimeDiff": 0,
                        "shortIds": [
                                "short_ids"
                        ]
                }

Попробуйте добавить в serverNames две записи и уберите там порт

2024-12-23T12:15:00.742Z
icove
2024/12/23 15:13:36 [Info] [935943789] app/proxyman/inbound: connection ends > proxy/socks: connection ends > proxy/socks: failed to transport all TCP response > io: read/write on closed pipe
2024/12/23 15:13:36 [Info] [4092338907] app/proxyman/inbound: connection ends > proxy/socks: connection ends > proxy/socks: failed to transport all TCP response > io: read/write on closed pipe

Это если настраивать socks в firefox на соответсвующим 127.0.0.1:10808 выбирая в настройка socks5
получаем такой вот лог, смотрите выше. Показываю конец лога. То есть xray определённо видит, что к нему подключается кто то по socks, реагируя бурными логами, но трафик не идёт в интернет увы.

2024-12-23T12:15:45.512Z
Dhohbr

Так у вас логи не пишутся. Пропишите пути, как в инструкции, и на сервере тоже. Так больше информации будет.

Прокси можно так проверить
curl https://whatismyip.akamai.com -x socks5://127.0.0.1:10808

2024-12-23T12:21:27.066Z
spotted_giraffe

В конфиге клиента serverName так же поменяйте, уберите порт. Я сейчас импортировал настройки свои в клиент десктопный и сравнил с вашими

2024-12-23T12:44:40.899Z
icove

порт в serverName опечатка, когда редактировал конфиг к публикации, исправил в заглавном посте. Там нет у меня порта в рабочем конфиге. Прошу прощения за опечатку.

$ curl https://whatismyip.akamai.com 1 -x socks5://127.0.0.1:10808
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to whatismyip.akamai.com:443 
curl: (52) Empty reply from server

2024-12-23T12:58:04.018Z
spotted_giraffe
curl https://whatismyip.akamai.com 1 -x socks://127.0.0.1:10808
curl https://whatismyip.akamai.com 1 -x socks4://127.0.0.1:10808

А тут какие результаты?

2024-12-23T13:06:41.466Z
Dhohbr

Единичку уберите. Это форум подставил счётчик переходов.
curl https://whatismyip.akamai.com -x socks5://127.0.0.1:10808

2024-12-23T13:07:40.964Z
icove
$ curl https://whatismyip.akamai.com -x socks5://127.0.0.1:10808
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to whatismyip.akamai.com:443 

$ curl https://whatismyip.akamai.com -x socks4://127.0.0.1:10808
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to whatismyip.akamai.com:443 

2024-12-23T13:11:55.175Z
0ka(0ka)

У вас разные домены reality на клиенте и сервере. Нужно было с самого начала выложить полный конфиг и заменить там только uuid и ключ, а не убирать важную для диагностики инфу. Конфиг должен запускаться и работать, сейчас он сильно отличается от вашего.

2024-12-23T13:27:07.255Z
icove

Разные, это какие? Я не вижу разницы, о которой вы говорите.

2024-12-23T13:51:41.868Z
0ka(0ka)

вы точно сюда пришли за помощью или потроллить? вы сами признались выше

что не “афишируете”, теперь пользователям приходится гадать что же у вас там в конфиге.

вы не услышали, поэтому повторюсь: если хотите чтобы вам помогли то нужно выложить полные и рабочие конфиги

может все же ванга придёт сюда и поможет вам, но я сомневаюсь…

2024-12-23T14:23:25.582Z
sakontwist

Для начала проверьте, что порт 443 на сервере доступен, затем надо проверить, что с сервера доступен домен под который вы маскируетесь и сертификат для него вынимается, например так:

openssl s_client -showcerts -connect gosuslugi.ru:443

Вы наверное заметили, что debug включён на клиенте, врятли имеет смысл его включать на сервере. xray мало ошибок передаёт или не передаёт по сети

При чем тут передача по сети ошибок? Включите отладку и на клиенте и на сервере, логи создаются локально и по сети никакие ошибки передаваться не должны )

но там я нажимал socks4 или socks5 (а у меня в конфиге вроде только socks, я не знаю в чём разница)

UPD: новые версии xray имеют гибридный inbound socks, который понимает и socks4 и socks5 и http-proxy, включайте в firefox что угодно, но предпочтительно socks5 c “dns over socks”

2024-12-23T14:40:00.065Z
icove

Подскажите пожалуйста, вот здесь указан пример конфига для сервера Xray-examples/VLESS-TCP-XTLS-Vision-REALITY/config_server.jsonc at main · XTLS/Xray-examples · GitHub где в этом конфиге предлагается вводить адрес сервера? У меня используется параметр listen Почему его нет в примере, пример указан не верно? Или я что то не правильно понимаю?

2024-12-23T18:02:24.753Z
gnom24

Может немного не в тему, но попалась сегодня эта статья:

Вот такой конфиг с fragment оказался вполне рабочим (это для тех, кто не имеет возможности держать свой xray-сервер на vps):

{
“log”: {
“loglevel”: “debug”,
“dnsLog”: false
},
“inbounds”: [
{
“listen”: “127.0.0.1”,
“port”: 1080,
“protocol”: “socks”,
“tag”: “socks”
}
],
“outbounds”: [
{
“tag”: “fragment”,
“protocol”: “freedom”,
“settings”: {
“fragment”: {
“packets”: “2”,
“length”: “1-10”,
“interval”: “10-20”
}
},
“streamSettings”: {
“sockopt”: {
“TcpNoDelay”: true,
“mark”: 255
}
}
}
]
}

2024-12-23T18:12:13.741Z
icove

Раз 10 перечитал эту фразу в скобках (честно), но так и не понял, что ты хотел сказать этим!

2024-12-23T18:42:39.361Z
Anonimno(Anonimno)

Xray можно использовать как локальный proxy-клиент, без подключения к серверу, который будет на выходе модифицировать сетевые пакеты, на подобии GBDPI.

2024-12-23T19:37:20.561Z
gnom24

Спасибо за объяснение, не успел ответить )

2024-12-23T19:38:55.730Z
Anonimno(Anonimno)

Вам спасибо за наводку.

ps1: в вашем сообщении с конфигом, кавычки движок сайта видоизменил, скопировав не заработает. Подправил:

{
  "log": {
   "loglevel": "debug",
  "dnsLog": false
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 1080,
      "protocol": "socks",
      "tag": "socks"
    }
  ],
  "outbounds": [
    {
      "tag": "fragment",
      "protocol": "freedom",
      "settings": {
        "fragment": {
          "packets": "2",
          "length": "1-10",
          "interval": "10-20"
        }
      },
      "streamSettings": {
        "sockopt": {
         "TcpNoDelay": true,
         "mark": 255
        }
      }
    }
  ]
}

ps2: под эти “автономные” варианты конфигураций для Xray можно и новую тему создать.

2024-12-23T20:09:59.916Z
sakontwist

По умолчанию используется listen: 0.0.0.0
Вот же документация, даже уже на русском Xray-docs-next/docs/ru/config/inbound.md at main · XTLS/Xray-docs-next · GitHub

2024-12-23T22:34:20.309Z
sakontwist

Помимо fragment также есть udp noise, он помогает пробивать бан wireguard outbound перед подключением, правда с переменным успехом.

2024-12-23T22:39:12.703Z