Comments 310
# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic hybla vegas yeah
странно, нет bbr.
arch, ядро lts 6.1
необходимо добавить и ребутнуться
echo "tcp_bbr" > /etc/modules-load.d/modules.conf
Большое спасибо за статью!
после предыдущих статей я получил довольно много комментариев типа "А
что так сложно, нужен домен, нужны сертификаты, и куча всего" - теперь
все будет гораздо проще.
Мне в этом плане https://github.com/WeeJeWel/wg-easy нравится, — докер контейнер поднял, опционально лейблы для траефика прописал и всё — удобно создаёшь конфигурации в минималистичном WebUI в пару кликов. Благодаря докеру машина чистенькая, кучи команд не делаешь, всё работает сразу без головняка. Из UI cразу доступен QR код, чтобы быстро на мобильных устройствах настроить соединение или передать (родителям/жене/девушке).
И вот мечтаю, чтобы подобное удобство было б доступно и для описываемых Вами в цикле статей bleeding-edge способов обходов блокировок. В идеальном мире ещё в контейнере (этом же или соседнем, в который DNS запросы бы ходили) можно резку рекламы + кеш днс. Надеюсь, комьюнити к этому ещё придёт, что простота установки и поддержки должна быть по возможности в приоритете.
Hiddfy - хоть бы предупредили что он на вязи, а то я воткнул и привет, как на инглишь перейти хз... Еще и черт дернул его к wg на сервак подсадить, буду щас вычленять(
Зы вроде перешел на инглишь, он оказывается ругался на домен по умолчанию.... Мда чувствую это будет весело.
Ого, в превеликой степени благодарен, про каждый репозиторий впервые слышу, кажется добавились кандидаты на поиграться!
Marzban
предлагает трив арианта установки
какой рекомендуете и почему?
Спасибо
Marzban у меня сам не завелся. Юзеры, которые он создает, автоматически не добавляются в секцию clients в конфиге. Вручную добавить тоже не работает, что-то не так с uuid, которые он делает для юзеров. Если вручную сгенерить uuid через Xray и добавить в конфиг в Marzban, то тогда начинает работать.
Тип такого?
https://github.com/IAmStoxe/wirehole или такого https://github.com/mercurykd/vpnbot а может еще и облако свое https://github.com/Kylamber/Wireholecloud А если все объединить.
За Caddy такую конструкцию не спрятать?
Исходя из собственной попытки, haproxy перед reality ломает reality, и пока своими силами не нашел как решить. Причем независимо от конфигурации, даже если голый haproxy все tcp отдает в reality в лоб.
Вот такая вот ситуация
curl -v --resolve www.microsoft.com:443:IP.IP.IP.IP https://www.microfost.com
* Added www.microsoft.com:443:IP.IP.IP.IP to DNS cache
* Trying 20.76.201.171:443...
* Connected to www.microfost.com (20.76.201.171) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS header, Finished (20):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.2 (OUT), TLS header, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_128_GCM_SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: C=US; ST=WA; L=Redmond; O=Microsoft Corporation; CN=*.oneroute.microsoft.com
* start date: Nov 29 18:53:30 2023 GMT
* expire date: Nov 23 18:53:30 2024 GMT
* subjectAltName does not match www.microfost.com
* SSL: no alternative certificate subject name matches target host name 'www.microfost.com'
* Closing connection 0
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
* TLSv1.3 (OUT), TLS alert, close notify (256):
curl: (60) SSL: no alternative certificate subject name matches target host name 'www.microfost.com'
More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
Ввиду необходимости на 443 еще и собственных ресурсов, haproxy решил не убирать, натравил sni на свой же домен. Думаю, этого хватит на ближайшее время. Ну если что, то доп IP возьму и по ним разрулю ( ну или отдельный VPS )
Но если вдруг у кого уже есть опыт дружбы reality с haproxy, я буду рад попробовать)
upd, проблема была в старом docker образе haproxy. С правильным конфигом, допустим, по примеру с marzban (Все на одном порту (marzban.ru) ) все ок.
с точки зрения защиты от обнаружения пробниками - можете пяснить, обращаемся к вася_пупкин.ком и получаем сертифкат от гуггла - разве это не раскрывает систему?
Но ведь в DNS microsoft.com не будет биться с IP нашего сервера. Подозрительно
Мне кажется надо выбирать сервис к которому постоянное подключение и скачивание оправданно. Например нетфликс или YouTube. Желательно вообще выбрать что-то что не только на скачивание а в обе стороны работает.
А то как-то подозрительно что один из юзеров ходит только на сайты в России и… Microsoft.
Не подскажите, в секции
Hidden text
realitySettings": {
"show": false,
"dest": "www.microsoft.com:443",
"xver": 0,
"serverNames": [
"www.microsoft.com"
],
serverNames и dest одинаковые записи должны иметь? В статье упоминается только о serverNames.
А клиент под MacOS подскажите?
Указанный Nekobox не имеет поддержки мака (
На будущее - интересно и полезно. Но зачем этим сейчас заниматься? Wireguard никто не блокирует и, возможно, не будет - может стоит решать проблемы по мере поступления?
Потом, если его заблокируют, заниматься этим будет сложнее.
Я, например, в качестве личного использую IKEv2 поднятый скриптом… Но на всякий случай ведь можно поднять рядом и такой, «резервный» канал, мало ли что будет дальше, или куда придётся временно поехать, один раз я так обломался с wireguard
P.S. Эх, хотелось бы целостную инструкцию по IKEv2+eap-tls+radius, ради статических ip внутри тоннеля… Но целостной так и не нашел
Поработав в своё время с IPSEC (и на цисках и в юниксах - привет, StrongSwan) я бы от него держался нафиг подальше.
Wireguard простой как тапок, быстрый и работает надёжно. А шансов на дыру в реализации гораздо меньше - код WG в десятки раз короче всей богодельни IPSEC.
Плюс я не уверен что при блокировке IKE портов (500/4500) его вообще возможно куда-либо перевесить в стандартных клиентах, WG же пофиг через какой порт работать.
Резервным можно держать какой-нибудь OpenVPN в Transparent TLS режиме, например.
Привет из 7 августа 2023)
Ну да, я как раз два дня назад поднял на своём VPN ещё и v2ray
вдобавок к wireguard
после того как друзья в РФ пожаловались что с некоторых мобильных и не только провайдеров WG перестал подниматься...
Есть какая-то более подробная инфа почему и как блокируют?
Интересно, что у автора статьи отрицательный рейтинг при отсутствии отрицательных комментариев и приличной карме. Как так?
Добавлю ссылочку
https://habr.com/ru/news/753128/
del
Очень рекомендуется настраивать на клиентах правила маршрутизации, чтобы трафик до .ru-доменов и хостов с российскими IP шел напрямую, а не через прокси (в клиентах для такого поставляется GeoIP база данных).
А где такую базу брать? В клиентах там все для Китая. По крайней мере я не нашел. Пробовал в nekobox в поля маршрутизации вставлять по всякому - не работает. По конкретному IP правила срабатывают. А домен .ru так и не смог заблокировать. А очень бы хотелось - я то могу и сам контролировать куда и как ходить - а вот с супругой будут проблемы. Ей бы надо как нить "железно" ограничить .ru )
Спасибо! (вечером попробую .. * извиняюсь - забыл упомянуть что я именно nekobox для win имел ввиду )).
А вот такой вопрос про развитие технологии: я только на днях настроил сервер по Вашей предыдущей статье) .. Я так понимаю что можно просто переделать там конфиг и создать в клиенте новое подключение? А nginx "просто останется" ненужным? ( я не использую SS или WS ) . То есть все предыдущие варианты как бы обесценились? Или оставить vision как запасной вариант.. ? Хотя в чем там "запас"? - наверное смысла в предыдущих вариантах уже нет? Вот если я хочу иметь пару или тройку серверов на всякий случай - тогда на одном вот этот последний вариант с reality , на втором Naive уже есть (стОит на него надеяться?) а на третий? - сделать дубликат новой с reality или оставить как раз предыдущий с vision ? Что бы вы посоветовали?
Попробовал поднять по вашему совету так: Reality на ipv4, а Vless-WS через ipv6 только
Почему-то при добавлении строки "listen": "127.0.0.1" перед портом (чтобы слушал только на ipv4) в inbound Reality, перестаёт проходить трафик , хотя Xray нормально запускается без ошибок
Очевидно, что пытаюсь разделить слушание 443 порта на ipv4 для Reality и ipv6 для nginx
А домен .рф в этом окне можно указать? Поймёт?
Насчёт .ru-доменов. Разве не работает domain:ru в стандартном окне настроек Nekobox?
про VPN есть ещё один интересный момент. Обычно все смотрят, как бы прикрыть трафик от условного РКН.
Но при этом я пару раз сталкивался с тем, что сервис к которому я подключался, отвергал подключение под предлогом "вы используете VPN".
Если бы в завершение цикла раскрыли тему "маскируем сервер" — я был бы вам очень благодарен.
Так они определяют это просто по принадлежности IP клиента к базе IP ДЦ\VPN.
Если к форуму любителей колли ломится какой-нибудь OVH — ну тут же понятно, что это не apt ошибся IP в поисках пакета, а какой-то клиент ломится через прокси\VPN.
Тут вы ничего не сделаете, только искать чистый "резидентный" IP как конечную точку.
Интересно, заработает ли XTLS через прозрачный прокси (squid + mitm через установленный сертификат в системе). Все предыдущие варианты как правило используют websocket и не работают, т.к. отфильтровываются squid'ом и режимом http1.1 only. Не спрашивайте что за злой гений такое придумал, но имею такой интернет на одном из объектов.
that's what i'm talking about; THAT'S how we get things done!
... например о том как делать цепочки из двух прокси серверов ;)
... эхх.. (( дело а том что "невелика наука" только для того кто в этом хорошо разбирается) А им и про серверы статьи не нужны я думаю - сами все установят. А вот тем кто делает по вашим статьям - для тех как раз наука велика... Я пытался гуглить - но доступных инструкций не нашел. То есть на первом сервере надо установить всё как в вашей статье . Только в конфиге надо (где то как то указать адрес второго сервера?) Тут мало того что надо хорошо понимать где и что указать - да еще соблюсти пунктуацию и все скобочки правильно расставить - ума не приложу.. А дальше? На втором сервере что? Надо тоже установить Xray? А что в конфиге? Где брать данные для входного конфига? ( и соответственного для выходного "как в клиенте"? ) ... тут короче еще какая "наука" .. Может все таки опишите поподробнее?
Спасибо огромное! Просто Огромное! Благодаря вашему обьяснению с примерами конфигов - которые можно сравнить и понять что куда относится и где какой синтаксис - я вроде с этим разобрался. Настроил последовательно два сервера VLESS -> SS. Заодно добавил на другой сервер с Naive "до кучи" еще и SS ( в качестве тренировки)))) И отдельное спасибо за совет с он лайн - валидатором.
Но возник вопрос : а почему необходимо избегать посещения через прокси зоны RU ? (кроме лишнего трафика и нагрузки - это несущественно). Какие риски это несет? ( я вот думаю - нужно ли взять дешевый vps в России для этого? )
Даа.. получается что самое палево - это геолокация по соте или gps... тут наверное сложно маскировать.. А вот в цепочке двух прокси (даже если оба за бугром) - у последнего не будет ничего на 443 порту - ибо там уже выходной сервер маскировать не надо. Соответственно пробивка ничего не даст. Ну и в идею сравнивать ВСЕ входящие данные в страну (или на госуслуги) с исходящими частными миллионами адресов и квадратиллионами байт - задача пока не выполнимая. ( это возможно наверное в частных случаях - когда например есть какое то крамольное сообщение или угроза - тогда вот только один этот заход можно сравнить с исходящими - да и то наверное не со всеми -а с определенным кругом лиц подозреваемых). Короче - вся жесть в gps и сотовых...
! А вот как быть тогда с логами на российском промежуточном прокси? Там же будет видно откуда я зашел и куда пошел? То есть внутри хостера будет видна (и наверно заблокирована) попытка идти на забаненный роскомнадзором ресурс.?
А на Windows сервер XRay как поднять? :-[
Ребят у кого-нибудь получилось? Пытался и сайт Майкрософт и нвидиа и ничего не заработало, последняя команда на сервере вроде выполнилась без проблем, ничего не ругались, но в итоге через клиент подключиться не слог, а по предыдущей статье настроить смог и всё работола
Спору нет, гайд отличный но у меня пока не получается, будет время попробую твои советы, но кажется проблема не решиться, думал что-то на стороне vps
(Как же долго модерируются комментарии, майор из на листочек записывает что-ли...)
Сделал на втором VPS, прлучилось, спасибо! Есть ещё пару непонятных моментов: Если в NekoBox не поставить галочку впн или прокси то инет а не будет? Ну или пакеты не пойдут через наш сервер
После последний команды в этом гайде сервак от сервака можно уже отключаться? Просто в предыдущем гайде показалось что нужно использовать screen чтобы процесс не убивался
сделал, работает. но показалось что серфить стало чуть медленее чем ss2022. мб попробовать добавить опции в sysctl.
Для увеличения производительности можно настроить на сервере Bottleneck Bandwidth и Round-trip propagation time (BBR) congestion control algorithm:
echo "net.core.default_qdisc=fq" >> /etc/sysctl.confecho "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.confsysctl -p
как насчет более глубокого тюнинга?
net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 10000
net.core.somaxconn = 4096
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_intvl = 30
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.udp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_slow_start_after_idle=0
это рекомендуемые настройки shadowsocks для tcp стека https://shadowsocks.org/doc/advanced.html
А можете поподробнее рассказать про эти параметры и/или подскажите, что можно почитать про настройку bbr на серверах? Заранее спасибо!
вот тут можно почитать про параметры https://romantelychko.com/blog/1300/
# sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic hybla vegas yeah
странно, нет bbr.
arch, ядро lts 6.1
необходимо добавить и ребутнуться
echo "tcp_bbr" > /etc/modules-load.d/modules.conf
Если вот так пишит curl из командной то все верно? Просто не получилось через hosts чекнуть вроде написал туда мой ип адресс и майков, потом написал только мой ип адрес в браузер и ничего не вышло
Спасибо огромное, я просто новичок еще в этом и рад что все верно вышло. Но почему у меня теперь гугл на китайском и еще проверки дает? Все время капчу кидает, это из-за того что я настроил без шедоусокс 2022? Я удалил его в json из inbouns для полной маскировки по вашему совету
Кстати, вы не знаете как уникальные ключи создавать, чтобы на одном устройстве работали, так сказать админка выданных ключей, не хотелось бы мне чтобы друг передавал другому мой ключ. Заранее спасибо
Через ПК работает, а через клиент V2ray не хочет, а вот прошлый гайд с бесплатным днс работает и на смартфоне, у меня два вопроса?
Как использовать свой ДНС домен
Почему не работает на мобильном?
Повторюсь мы в другом гайде использовали сайт FreeDNS он вроде называется, а если вместо бесплатного арендовать домен .com у какого-нибудь хостера. При использовании FreeDNS чере зприложение v2ray всё работает. А в этом гайде я ссылаюсь на сайт нвидиа и не работает на смартфоне
У меня к сожалению на смартфоне никак не получилось заставить работать, уже и в ручную вводил - всё равно ошибка. Это очень странно, настроил на ПК в NekoBox'e - Share - QR Cоde and link - не работает) Подожду может у кого тоже не заработает)
Андроид, v2rayNG v1.7.38
АХахаха прикол, это очень странно т.к. скачал приложение пару дней назад) Проверю, может обновление есть
ЗАРАБОТАЛО!!! Спасибо большое друг! Но это не очивидно было, я бы без тебя не разобрался бы, итак подытожу вдруг кто тоже сталкнётся!
На андроид вступаем в бета тест v2rayNG и получаем свещую версию которая поддерживает Reality.
Но замечана проблема, с ПК в инсту не заходит, постоянно обновляет страницу после нажатия войти и всё, даже ошибок нет
Спасибо огромное, я просто новичок еще в этом и рад что все верно вышло. Но почему у меня теперь гугл на китайском и еще проверки дает? Все время капчу кидает, это из-за того что я настроил без шедоусокс 2022? Я удалил его в json из inbouns для полной маскировки по вашему совету
Товарищи вы не знаете как уникальные ключи создавать, чтобы на одном устройстве работали, так сказать админка выданных ключей, не хотелось бы мне чтобы друг передавал другому мой ключ. Заранее спасибо
Благодарю! Значит мне создать новый конфиг в некобоксе как показано выше, но уже с другими uuid и shortid, а потом чтобы отобрать доступ у друга просто удалить конфиг? А с этого нового uuid могут сразу 2 чела заходить?
Нет у меня впс русская, когда создавал аутлайн таких проблем не было чтобы показывал китайский язык и проверка на бота выходила, видимо скрипт такой...
Значит там где написано в конфиге "id": "4c3fe585-ac09-41df-b284-70d3fbe18884", нужно еще раз так нажав enter вторым добавить "id":цифры для друга закинуть в некобокс и сделать share?
Да хз, я даже в амнезии использовал этот сервер с клоаком, не было такого чтобы гугл был на китайском (даже не было проверок на бота), так и еще вся реклама с китайцами у меня :)
Думаю не стоило мне удалять протокол носков2022
Что-то не завелось. Пишет
proxy/vless/encoding: invalid request version
хотя версии и xray и nekoray последние
Спасибо за статью. А как поднять клиентскую часть без gui под linux? Есть пример конфига?
Спасибо за цикл ваших статей, однозначно буду наблюдать дальше. Такой вопрос: я могу, следуя инструкции из прошлой вашей статьи, прикрутить в этот конфиг vmess с фларой на всякий случай? Сайт имеется, и даже уже есть в cf, раньше пользовался ss+v2ray+cf, и надо ли nginx трогать для этого?
Большое спасибо за развернутый ответ.
Есть ещё вопрос по geoip и правилам. В интернете вообще по этой теме одни китайские иероглифы, я немного не понял. Допустим у меня есть ПК и Андроид, на ПК стоит v2rayn, на Андроиде nekobox. Если я выставлю правила geoip, но при этом добавлю ру сайт в проксирование, то что будет главенствующим? Такой вопрос возник, потому что не понял, в каком режиме могут работать правила? На ПК у меня просто локалхост и порт слушает, а через proxifier выставляю нужные приложения, а в браузере через расширение соединяюсь, на Андроиде за неимением рута режим впн и там выбираю нужные приложение. Будут ли в таких режимах работать эти правила или нужно что-то вроде tun выставлять и гнать весь траффик через прокси, отсекая только ru geoip. И если на ПК достаточно включать/выключать прокси на каких угодно сайтах, то на Андроиде в хроме весь траффик идёт через мой прокси (знаю, что есть firefox, но я к хрому привык и пользуюсь только им)
И видимо я что то не так выставил, у вас в инструкции в nekobox поля для суффиксов, а где это найти в v2rayn и nekobox на Андроиде? У меня получается только в таком формате задать:
geoip:ru
geoip:private, но 2ip показывает айпишник впски
На rutracker через такой прокси не заходит почему-то
Кто то знает как прикрутить блокировщик рекламы в сервер?
Можно ли в NekoBox нормально настроить автозагрузку, а то он после ребута включается, но запускать подключение (профиль) всё равно нужно каждый раз вручную. При этом галочка System proxy остаётся включённой и получается что после включения компа нет интернета пока не включишь профиль.
Спасибо! Сделал по инструкции, все работает!
Заметил интересный момент:
При проверке на утечку ip-адреса через webRTC на андроиде (V2RayNG) показывает утечку ip-адреса 26.26.26.1:
Вижу что в исходниках этот адрес определен константой. Но для чего? При использовании того же хоста на десктопе (Nekobox Linux) и на iOS (Wings X) никаких утечек нет.
Если на сервере поднят Outline и Wireguad, установка XTLS-Reality ничего не испортит?
Действительно, на работу никак не повлияло. Столкнулся со следующей ошибкой:
[Info] infra/conf/serial: Reading config: /usr/local/etc/xray/config.json
xray[1287]: Failed to start: main: failed to create server > proxy/shadowsocks_2022: create service > decode psk: illegal base64 data at input byte 2
systemd[1]: xray.service: Main process exited, code=exited, status=23/n/a
systemd[1]: xray.service: Failed with result 'exit-code'.
systemd[1]: Started Xray Service.
Гугление не принесло успехов.
При подключении из NekoBox на Винде получаю ошибку - [[VLESS] VLESS] test error: Get "http://cp.cloudflare.com/": context deadline exceeded. Не подскажите, как пофиксить ?
Если сравнивать с Outline, то скорость намного выше, у меня почему-то были фризы 2-4 секунды (периодически) при переходе по ссылкам. С Xray все отлично работает, пинг правда так себе с США.
Вопрос про Shadowsocks2022 в конфиге - Если его оставить и не пользоваться, он влияет как-то на маскировку?
А если есть mitm (подмена сертификатов), то такой вариант безопасен? Сам трафик шифруется еще чем-то помимо tls?
А как у него логирование отключается? У меня за несколько дней syslog и daemon.log забили всё место на VPS. Понимаю, что в теории нужно настроить ротацию, но если оно стабильно работает, мне эти логи соединений в принципе не особо нужны. Да и на ПК лог-файл Nekobox многовато весит. А настройки не нашёл.
Поставил по вашей инструкции все. Подключился через nekobox, nekoray, все работает. Вот только скорость на скачку 30 мбит максимум, на отдачу 100. Потестил на самом серваке - там по 200 туда-обратно. Можете подсказать, из-за чего это может быть или это так и задумано?
Подскажите, а что добавить, чтоб клиент NekoBox или v2rayNG для Windows смог через http прокси ходить?
Помогите разобраться. Где мог налажать и как исправить?
По инструкции настроил. Работает.
Использовал протоколы XTLS-Reality / SS из инструкции.
Вчера получил бан ("Недоступно в вашей стране") от ИИ-чата Bing.
Получается геолокацию спалили.
Переключил на конфиг wireguard (находится на том же сервере, такой же ip адрес) - работает.
Попробовал другой носок (нашёл в открытом доступе) - работает.
На ПК и на смартфоне одинаковая картина - бан.
Настроил серверную(vps) и клиентскую(домашний сервер на beelink) части. Ошибок нет, вро все работает, но я не понимаю как мне подключиться к прокси? Помогите кто силен в этом, я вообще дуб-дубом в этих маршрутизациях. При наборе curl ifconfig.me, выдает адрес провайдера, а не vps
root@beelink:~# ip route
default via 192.168.1.1 dev enp1s0
192.168.1.0/24 dev enp1s0 proto kernel scope link src 192.168.1.4
root@beelink:~# netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:10123 0.0.0.0:* LISTEN 440/sshd: /usr/sbin
tcp 0 0 127.0.0.1:1080 0.0.0.0:* LISTEN 428/xray
tcp 0 0 127.0.0.1:1081 0.0.0.0:* LISTEN 428/xray
tcp6 0 0 :::10123 :::* LISTEN 440/sshd: /usr/sbin
udp 0 0 0.0.0.0:68 0.0.0.0:* 411/dhclient
udp 0 0 127.0.0.1:1081 0.0.0.0:* 428/xray
Может еще какая информация нужна?
Xray же не впн, а прокси. Можно было на домашнем сервере ничего не поднимать, а просто на клиентском ПК поставить оболочку с xray и подключаться сразу к впс.
Или повесьте на beelink порты tcp 1080/1081, udp 1081 на интерфейс, смотрящий в локальную сеть и тогда на ПК можно будет в браузере указать сокс прокси beelinklocalip:1080 или не в браузере, если поставите клиент xray с гуи.
Дошло до меня, спасибо. Только мне именно в beelink нужен прокси для некоторых сервисов. Получается, что мне нужно теперь , например через системный прокси в debian прописать 127.0.0.1:1080 и все через xray-client пойдет пойдет?
Ничего у меня не получается, хоть тресни. С настройками разных типов серверов никаких проблем, но вот то единственное, что мне необходимо, автор в качестве примера не указал-"Как на linux Debian без gui запустить это хозяйство" Я уже кучу всяких разных конфигов клиентов перепробовал, ни в какую. Пошел я wireguard лучше настрою))
Подскажите если перенести работу xray на 444 порт например, оно будет корректно работать ? Просто на сервере крутится nginx и два сайта https порт занят. При переносе xray на 444, он работает и домен microsoft открывается если прописать для него публичный адрес сервера в host.
Простите за глупый вопрос. Я разрулил свои домены с помощью модуля ssl_preread, но только я не понимаю как интегрировать совместную работу с reality. Можете дать подсказку )
Я настроил таким образом, такая конфигурация не демаскирует со стороны стороннего наблюдателя ?
config
map $ssl_preread_server_name $sni_name {
www.microsoft.com reality;
torr.******.pp.ua torr;
adg.*****.pp.ua adg;
default reality;
}
upstream reality {
server 127.0.0.1:8443;
}
upstream naive {
server 127.0.0.1:7443;
}
upstream torr {
server 127.0.0.1:1443;
}
upstream adg {
server 127.0.0.1:4443;
}
server {
listen 443 reuseport;
proxy_pass $sni_name;
ssl_preread on;
proxy_protocol on;
}
server {
listen 443 udp;
proxy_pass 127.0.0.1:443;
}
Мои домены работают корректно, только со стороны сервера http запрос на домен который указан в reality выполняется c ошибкам. Клиент прокси также работает.
resolver
Added www.microsoft.com:443:89.187.129.*** to DNS cache
* Hostname www.microsoft.com was found in DNS cache
* Trying 89.187.129.***:443...
* Connected to www.microsoft.com (89.187.129.182) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.0 (OUT), TLS header, Unknown (21):
* TLSv1.3 (OUT), TLS alert, decode error (562):
* error:0A000126:SSL routines::unexpected eof while reading
* Closing connection 0
curl: (35) error:0A000126:SSL routines::unexpected eof while reading
Проблему с http запросом решил добавив в конфиг xray.
"tcpSettings": {
"acceptProxyProtocol": true
},
"sockopt": {
"acceptProxyProtocol": true
},
Также со стороны клиента подключение к серверу по 443 порту происходит, значит все работает как надо )
спасибо, это то что мне было нужно!
а можно как то shadowsock так же разруливать?
Если настроить всё так, как сказано в этой статье, то сервисы вроде whoer обнаруживают ДНС-сервера российского провайдера, раздающиеся по DHCP. Как нужно настраивать DNS в рамках данной схемы, чтобы скрыть факт хождения на заблокированные ресурсы от провайдера, и при этом не выглядеть подозрительно?
Автор, огромное спасибо за цикл статей!
Хотел бы поделиться ещё тем, как сделать так, чтобы соединение от VPS до сайтов ходило через сторонний VPN.
Hidden text
Таким образом иногда удаётся обходить ограничения самих сайтов, которые понимают, что ваш VPS из компании нежелательной страны, хоть и физически находится в другой стране. Например, у меня при прочих равных через VPS напрямую тикток показывает замороженный русский вариант, а через такую схему — рабочий западный.
Т.е. общая схема будет такая:
От вас в стране с цензурой до заграничного VPS будет продолжать работать XRay с XTLS-Reality (или другой XRay вариант), чтобы скрывать сам факт обхода блокировок.
От вашего заграничного VPS трафик будет идти к оплаченному серверу VPN какой-нибудь компании, предоставляющей такие услуги. Он будет идти через обычный OpenVPN шифруясь, но не маскируясь (считаем, что на той территории факт наличия VPN не пытаются вычислять и срубать), таким образом, мы скрываем статичный IP уже нашего VPS, плюс получаем возможность ходить через разные страны. Наш VPS относительно именно VPN будет выступать просто клиентом.
Я буду считать, что у вас настроен VPS по этой статье, но, в принципе, сойдёт любой работающий XRay-конфиг.
Идём на сайт вашего VPN провайдера, логинимся, получаем от них ovpn-файл. Обычно такие файлики дают скачивать, если мы выберем опцию в стиле, что хотим настроить VPN-клиент на роутере, либо на линуксе. Вот, чисто как пример.
Нам потребуется один файлик с одной локацией, через которую будем выходить. Логично взять ту же страну/город, в которой находится ваш VPS, чтобы меньше терять на пинге. Потом можно будет заморочиться с переключением на другие страны, если захотите. Скачиваем нужный ovpn-файл. Если скачали на свою машину, на VPS можно перекинуть по SSH (с винды см. Передача файлов с Windows на Linux Ubuntu по SSH).
Далее все инструкции на VPS.
Ставим OpenVPN:
apt update
apt install openvpn -y
Переименовываем ovpn-файл в client.conf и переносим его в папку /etc/openvpn/
Открываем полученный файл на редактирование:
nano /etc/openvpn/client.conf
Находим там строчку
auth-user-pass
и меняем её на
auth-user-pass /etc/openvpn/pass
Создаём файл
nano /etc/openvpn/pass
В нём записываем две строчки:
логин
пароль
Это те логин и пароль, с которыми вы подсоединяетесь к VPN. Защитим их уровнем доступа:
chmod 400 /etc/openvpn/pass
Дальше снова открываем на редактирование файл
nano /etc/openvpn/client.conf
и дописываем в нём в конце файла такие строчки:
# Писать максимум 50 повторяющихся сообщений в логи (чтобы их не засорять)
mute 50
# Не рулить маршрутизацией. ВПН захочет развернуться для всех соединений,
# но это совсем не то, что нам нужно, маршрутизацией мы будем рулить сами.
route-nopull
# Сохранять соединение и переподключаться, если оно прерывается
keepalive 10 60
# Скрипт, который будет выполняться для установленного соединения
# Там мы будем рулить маршрутизацией
up /etc/openvpn/custom.sh
Создаём теперь вышеупомянутый скрипт
nano /etc/openvpn/custom.sh
В нём:
#!/bin/sh
# Таблица 200 пойдёт через tun0 (т.е. через впн)
ip route add default dev tun0 table 200
# Удаляем и добавляем правило, что пакеты, маркированные
# числом 2, будут отброшены
ip rule delete fwmark 2 blackhole
ip rule add fwmark 2 blackhole
# Удаляем и добавляем правило, что пакеты, маркированные
# числом 2, будут отправлены в таблицу 200 (и пойдут через впн).
ip rule delete fwmark 2 table 200
ip rule add fwmark 2 table 200
# Применяем правила
ip route flush cache
Мы получим два правила, которые касаются пакетов, маркированных двойкой, при этом их порядок будет такой, что сначала пакет полетит на впн, а если не получится (впн будет выключен), то пакет не пойдёт никуда. Если отбрасывание не написать, то мы при отсутствии впн будем ходить напрямую с VPS.
Даём скрипту права на выполнение:
chmod +x /etc/openvpn/custom.sh
Теперь залезаем в конфиг xray:
nano /opt/xray/config.json
И у outbounds
меняем freedom
с такого:
{
"protocol": "freedom",
"tag": "direct"
},
на такой:
{
"protocol": "freedom",
"tag": "vpn",
"streamSettings": {
"sockopt": {
"mark": 2
}
}
},
Т.е. все исходящие из xray пакеты, которые летят напрямую к сайтам (freedom), будут средствами XRay помечаться как 2, роутингом все пакеты с меткой 2 будут заворачиваться в таблицу 200, а она будет лететь через VPN.
Теперь осталось только запустить клиент OpenVPN как демона:
nano /etc/default/openvpn
Раскаменчиваем # у строчки
AUTOSTART="all"
Дальше регаем демона:
systemctl enable openvpn@client.service
Перегружаем демоны:
systemctl daemon-reload
Стартуем OpenVPN:
service openvpn@client start
И перегружаем xray:
systemctl restart xray
Разумеется, XRay можно настроить и получше, создав себе несколько пользователей, часть из которых будет ходить через VPN (помечая пакеты), а часть напрямую с VPS.
Сам я не настоящий линукс-пользователь, если кто предложит, как это сделать получше, буду только рад.
Ориентировался на эти инструкции:
Как настроить OpenVPN Client на Ubuntu. С этой статьи можно начать, чтобы проверить, что ваше клиентское OpenVPN-соединение вообще ходит нормально (до демонизации, роутинга и связи с XRay).
OpenVPN на роутере для перенаправления только определённых соединений.
UPD: у этого способа обнаружились такие проблемы:
DNS leak — сервисы определения утечки детектят VPS. Пробовал всякое, но забороть так и не смог, если кто подскажет, буду благодарен.
Проблемы на некоторых провайдерах (обнаружил, когда был в другом регионе), тогда как напрямую через VPS всё работает — увы, разбираться тогда было некогда, просто ходил напрямую.
Почему-то пару раз не работал телеграм (ios) — уходил в бесконечное обновление каналов, тогда как напрямую через VPS работал. Возможно, что-то на стороне VPN или tg? Твиттер, например, работал при этом.
Вроде настроил, всё работает, но почему то chatGPT пишет что сервис не доступен в этой стране. Ещё инстаграм сбрасывает подключение (HTTP ERROR 429) или выдаёт заглушку на любую страницу "К сожалению, эта страница недоступна". Это единственные сайты где я столкнулся с таким поведением, не могу понять что с этим делать.
Ещё добавлю что до этого настраивал по прошлому гайду (Shadowsocks, VLESS, XTLS-Vision) и сидел на другом хостинге, была абсолютно та же ситуация.
К сожалению, ничего из этого не помогло. Проблема ещё в том, что я не знаю куда смотреть и что искать для обнаружения причины.
Я на https://browserleaks.com/ip проверял - нигде ничего не торчит. IP адрес везде тот что на VPS, WebRTC отключил чтоб не палил, DNS leak test показывает только нидерландские сервера google и cloudflare. Всё что есть это строчка в информации о браузере "language: ru" сомневаюсь что блочат по ней.
Единственное, оказывается у меня нет ipv6 потому что хостинг даёт только ipv4. Не уверен что его там можно как то включить, но на обнаружение локации это никак влиять не должно.
Ещё зашел в логи xray на сервере, там подключение к instagram ничем не отличается от подключения к другому домену, ничего подозрительного.
Мне тут @Marvy написал в личку и прояснил в чём дело. Проблема в хостинге. Я пока пробовал два - TimeWeb и LLhost, и если у первого очевидно российское происхождение, то второй активно делает вид что он из европы. Оба в бане у вышеупомянутых сайтов. Для проверки, по совету, поднимал на обоих WireGuard и столкнулся с теми же блокировками.
Upd: такая возможность есть если использовать многоуровневую схему с SNI-proxy (типа haproxy), при необходимости расскажу в комментариях.
Очень интересно, расскажите :)
Сейчас стоит версия 1.8.3 и со вчерашнего дня XTLS-Reality не работает. В логах Nekobox такое:
ERROR[0000] dns: exchange failed for EIFCFFFDFECACACACACACACACACACACA. IN NIMLOC: Post "https://8.8.8.8/dns-query": EOF
ERROR[0000] dns: exchange failed for dmd.metaservices.microsoft.com. IN A: Post "https://8.8.8.8/dns-query": EOF
ERROR[0001] dns: exchange failed for ipv4only.arpa. IN A: Post "https://8.8.8.8/dns-query": EOF
ERROR[0001] dns: exchange failed for example.org. IN A: Post "https://8.8.8.8/dns-query": EOF
ERROR[0001] dns: exchange failed for detectportal.firefox.com. IN A: Post "https://8.8.8.8/dns-query": EOF
ERROR[0001] dns: exchange failed for dmd.metaservices.microsoft.com. IN A: Post "https://8.8.8.8/dns-query": EOF
Так же не работает и на телефоне. Причем шадоусокс пашет, мистика какая-то.
Удалось решить данную проблему заменой сервера www.microsoft.com:443, на любой другой из списка.
Автор, не в курсе что там с майкрософтом? :)
Спасибо, помогла ваша аналитика, такая же штука со вчерашнего дня была. Но что хочу заметить на одной виртуалке помогла смена хоста, а на другой нет.
Спасибо, тоже microsoft стоял и отвалился
Microsoft отключала протокол TLS 1.3 на несколько дней на своем сайте в это время (причину не знаю, просто через TLS Checker проверил). Для работы XTLS-Reality требуется TLS 1.3 и HTTP/2, это и привело к неработоспособоности с www.microsoft.com. Пару недель уже как работает и с www.microsoft.com, кстати, TLS 1.3 включили в какой-то момент. Для простой проверки можно использовать RealiTLScanner.
Перестал работать. Поменял microsoft на другой - заработало. Зашел сюда спросить/сообщить - а тут уже написали. Интересно только что бы это значило - и не начнутся ли отваливаться другие сайты маскировки?
Наверное я плохо усвоил материал, но как рулить разных килентов на разные выходы?
Пример:
Есть 2 клиента:
"inbounds": [
{
"settings": {
"clients": [
{
id:A,
},
{
id:B
}
],
Клиент А, хочет web browsing - вот ему второй прокси который выпустит его в общую сеть.
Клиент Б хочет пообщаться с сервисом висящем на локалхост:5050 сервера.
Прошу заметить, что вызывающий софт на клиенте ничего не знает про удаленный адрес. Т.е. мы хотим, к примеру, подключиться SSH через тунель и все что мы знаем это пара IP-PORT на локальной машине, где крутится клиент. Ок, inbounds я могу наплодить несколько и сделать отдельный для нужного мне подключения (т.е. у этой штуки будет свой уникальный ID, как бы второй клиент на той же удаленной от сервера машине).
Как их разрулить в конфигурации?
Сам спросил, сам и добавлю =)"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"user": "user@myserver",
"ip": "8.8.8.8",
"outboundTag": "ssh"
},
{
"type": "field",
"user": "user@myserver",
"outboundTag": "proxy"
}
]
},
При таком кривом подходе, мы можем через наш SOCKS5 пойти на 8.8.8.8:22 и нас "сплюнет" на нужный outbound, который может быть простым freedom с перенаправлением на адрес по выбору (локалхост:порт).
Такой вариант рабочий, но мне не нравится. Возможно я вообще не туда копаю, а смотреть нужно в сторону tproxy?..
И там ошибка
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": [
"10.19.0.8/32"
],
"network": "tcp",
"inboundTag": [],
"outboundTag": "direct",
"enabled": true
}
]
},
Вот в такой конструкции можно ловить запросы по конкретному IP. Добавьте туда "port" и получится нужная связка.
Другое дело, что если применять sockstun или его аналоги (tun2socks) то получаетя некая петля, когда пакеты не понимают куда им деваться (мы же шлем их на адрес интерфейса tunX
и его же указываем в "ip"
). Как эту петлю побороть я не придумал, но это решается виртуальными адресами на любом другом интерфейсе. И все - вот нам VPN готов вообще без каких-либо канальных демонов. Т.е. это почти аналогично cloak, ток приходится применить еще одно средство проксирования.
З.Ы. И да, это дикий геморой с прописыванием адресов тут там и здесь ручками. Но увы, так как изначально решение не подразумевало классического "сетевого" транспорта, то приходится мучаться. Тема для крутого стартапа =)
почему-то по умолчанию он ставит старую версию 1.7.5, которая не поддерживает Reality, поэтому нужно явно указать более свежую
На 07.08.2023 все версии ветки 1.8.x имеют статус pre-release.
Если скрипту при запуске передать параметр '--beta', то будет установлен последний pre-release.
Спасибо за инструкцию!
На DigitalOcean завелось без проблем, на Azure с теми же настройками ни в какую не коннектится, мб кто скажет, в какие настройки азура стоит смотреть? Не особо шарю во всём этом :(
В статье описано как подключить компьютер или телефон. У меня есть другое устройство: шлем виртуальной реальности Oculus. Раньше я его подключал через роутер со встроенным VPN. Сейчас этот VPN не работает.
Можно ли как-то настроить подключение через XTLS-Reality для произвольных устройств, без установки клиента на них?
1) Роутер с OpenVRT и XRay на нем
2) XRay на компе или планшете, включить "принимать запросы из локльной сети", указать его в качестык прокси в Oculus
Сам не пробовал, но как вариант вроде есть клиент для openwrt
https://github.com/yichya/luci-app-xray
Те относительно вашего вопроса, схема должна остаться та же, роутер на openwrt с клиентом вышеуказанным, а все остальные девайсы подключаются к нему как обычно.
Что-то по инструкции XRay даже не стартует:Failed to start: app/proxyman/inbound: failed to listen TCP on 443 > transport/internet: failed to listen on addr
Спасибо за инструкцию. Вопросы:
А условный цензор не вычислит легко подделку просто зная что какой-нибудь microsoft.com должен иметь другой адрес? Это же тривиально проверяется причем для любого сайта.
Будет ли это работать в обратную сторону, т.е. канал в РФ и какие можно взять сайты для маскировки в РФ?
Обязательно ли ставить сервис на 443 порт (подключения на него блокируются провайдером) и какие риски это несет: ведь маскировка тогда не сработает как предполагается?
Популярные высоконагруженные сайты обычно сидят не на одном адресе, а за CDN с десятком разных IP-адресов на домен.
Согласен, но все же есть некая недоговоренность. В адресах облачного провайдера, у которого хостятся подобные сайты, спрятаться можно, но что делать если адрес xray сервера стоит особняком и вообще выдан домашним провайдером? Все-таки очень подозрительно увидеть на таком адресе условный microsoft.
Нужно начать с того, блокируют ли VPN-протоколы в стране вашего пребывания.
В стране пребывания не блокируют, но блокируют в РФ. А нужен канал туда, во всю подсеть, на которой сидит openvpn. Да и некоторые сайты (банки, госуслуги, налоговая и т.д.) лучше открывать из РФ. Про возможность "завернуть" openvpn через shadowsocks как прокси в курсе, буду пробовать, спасибо.
Сервис должен быть именно на 443 порту
Вот с этим засада. И IP адрес у меня "домашний", а не облачный и порт заблокирован. Но все равно попробовать можно, главное чтобы связь была.
Отдельное огромное спасибо за просвещение, статьи и ответы на всякие вопросы.
Подскажите OpenVPN/Wireguard не только для обхода блокировок используется, но и для хождения в другую сеть, рабочую например. Есть ли возможность XRay для этого же использовать?
Автор, оффтоп, конечно. Вы человек в этом разбирающийся. Посоветуйте, плиз, что почитать для человека-айтишника с познаниями в сетевых технологиях уровня "слышал про протоколы и настраивал роутеры"
Автор, возможно можешь подсказать как эту махину завести с Nginx, как реверс? Не сильно хочется, чтобы оно полностью оккупировало порт 443.
Спасибо тебе, потанцую с бубном :)
Вариант первый, SNI-прокси. Например, перед Nginx и XRay поставить HAproxy либо настроить Nginx с ssl_preread-модулем, чтобы TLS-подключения на домен хостящегося сайта отправлялись на Nginx, а все остальное на XRay.Если кто-то настроит, поделитесь примером nginx.conf, а то ssl_preread я поднял, а вот достучаться с ним до xray так и не вышло.
Я потанцевал с бубном и пока сделал вариант 3. Всё работает чётко - спасибо тебе :)
А есть x-ray который умеет роутить? Про всякие tun2socks знаю, но хотелось бы попроще. Думаю чем заменить туннели WG между своими роутерами внутри РФ и вне.
Да, нормальный роутинг аля OpenVPN/Wireguard, tun/tap или что-то своё.
Хм, если обратный траффик не поддерживается - это печально. Я сейчас поверх WG гоняю OSPF и хотелось бы чтобы оно работало дальше...
Ну, механизмы там примерно те же, через SOCKS можно же любой траффик гнать, другое дело что да, реализовано односторонне.
Спасибо, попробую эти.
В итоге пока попробовал пока Nebula
- mesh-сеть от Slack, работает неплохо. Никакого TLS там, конечно, нет - обычный UDP на рандомном порту.
Посмотрим сколько оно проживёт под РКНом, может быть будет как неуловимый Джо - кому оно нафиг надо.
Подскажите, а как добавить второго пользователя в настройки сервера?
можно так и оставить на одном uuid, а можно сделать так:"settings": {
"clients": [
{
"id": "xxx",
"email":"usr1@myserver.com",
"flow": "xtls-rprx-vision"
},
{
"id": "xxy",
"email":"usr2@myserver.com",
"flow": "xtls-rprx-vision"
},
{
"id": "xxz",
"email":"usr3@myserver.com",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none" },
Автор, спасибо за проделанную работу!
Настроил на сервере по инструкции, ошибок не наблюдаю, выдача journalctl -u xray:
Hidden text
Aug 08 22:19:15 vm414479 systemd[1]: Started Xray Service.
Aug 08 22:19:15 vm414479 xray[269382]: Xray 1.8.1 (Xray, Penetrates Everything.) Custom (go1.20.3 linux/amd64)
Aug 08 22:19:15 vm414479 xray[269382]: A unified platform for anti-censorship.
Aug 08 22:19:15 vm414479 xray[269382]: 2023/08/08 22:19:15 [Info] infra/conf/serial: Reading config: /opt/xray/config.json
Aug 08 22:19:15 vm414479 xray[269382]: 2023/08/08 22:19:15 [Info] transport/internet/tcp: listening TCP on 0.0.0.0:443
Aug 08 22:19:15 vm414479 xray[269382]: 2023/08/08 22:19:15 [Warning] core: Xray 1.8.1 started
Почему-то меня царапнула строчка "listening TCP on 0.0.0.0:443", но наверное так и надо :).
Стал настраивать клиенты - не работают. Но вопрос мой сейчас именно про сервер - как точно понять, что с ним все ОК, чтобы знать, что ковыряться надо на стороне клиента?
Netstat -nlp сделал. В выдаче только одна строка, касающаяся xray:
tcp6 0 0 :::443 :::* LISTEN 269382/xray
А так и надо, что там ТОЛЬКО IPv6?
Спасибо
На первом пункте чек-листа сразу остановился :)
просто сходить браузером на IP-адрес сервера - браузер должен ругнуться на несоответствие сертификата, и в деталях сертификата показать домен фейкового сайта
ERR_CONNECTION_ABORTED
и в подробностях - "Your connection to this site isn't secure. This site does not have a certificate."
Если что - сам сервер в порядке, на нем еще кое-что крутится и оно работает.
Тогда можно попробовать сделать то же самое с помощью curl
curl: no URL specified!
пробовал на двух разных фейковых доменах (asus и amd)
Вы совершенно правы, прошу прощения, не дописал в curl кусок команды.
Исправился. Вот выдача (IP своего сервера заменил на строку <MY_SERVER_IP>)
Hidden text
> curl -v --resolve www.amd.com:<MY_SERVER_IP> https://www.amd.com
* Added www.amd.com:443:<MY_SERVER_IP> to DNS cache
* Hostname www.amd.com was found in DNS cache
* Trying <MY_SERVER_IP>:443...
* TCP_NODELAY set
* Connected to www.amd.com (<MY_SERVER_IP>) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: /etc/ssl/certs/ca-certificates.crt
CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN, server accepted to use h2
* Server certificate:
* subject: C=US; ST=CALIFORNIA; L=Santa Clara; O=Advanced Micro Devices, Inc.; CN=amd.com
* start date: Feb 21 00:00:00 2023 GMT
* expire date: Feb 20 23:59:59 2024 GMT
* subjectAltName: host "www.amd.com" matched cert's "www.amd.com"
* issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=GeoTrust RSA CA 2018
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55bb739a12f0)
> GET / HTTP/2
> Host: www.amd.com
> user-agent: curl/7.68.0
> accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
* Connection state changed (MAX_CONCURRENT_STREAMS == 100)!
< HTTP/2 403
< server: AkamaiGHost
< mime-version: 1.0
< content-type: text/html
< content-length: 260
< cache-control: max-age=900
< expires: Thu, 10 Aug 2023 15:30:47 GMT
< date: Thu, 10 Aug 2023 15:15:47 GMT
< set-cookie: pmuser_country=md; expires=Thu, 24-Aug-2023 15:15:47 GMT; path=/
< strict-transport-security: max-age=31536000
< content-security-policy: frame-ancestors 'self' https://amd.pathfactory.com *.reachcm.com reachcm.com
<
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>
You don't have permission to access "http://www.amd.com/" on this server.<P>
Reference #18.6dac1002.1691680547.95b56b9
</BODY>
</HTML>
* Connection #0 to host www.amd.com left intact
Поставил.
В логах последняя запись "Xray started" и нет никаких знаков того, что к серверу пробует подключиться клиент.
Такое ощущение, что клиент вообще не может дотянуться до сервера. При запущенном v2rayN (виндовый клиент) страницы браузер не открывает, а лог клиента пишет много строчек вида
[[38;5;226m2222084306[0m 5.3s] inbound/http[http]: process connection from 127.0.0.1:62760: dial tcp <MY_SERVER_IP>:443: i/o timeout
С nekoray ситуация аналогичная
почему-то по умолчанию он ставит старую версию 1.7.5
Потому что в релизах на гитхабе она помечена как стабильный релиз, а более новые - как пре-релизы.
FoXray на ios обновилась и все настройки (маршрутизации слетели), то есть сейчас не заходит в ru сегмент без впн. Тыкал и не смог настроить, сейчас надо Json делать. Не поделишься, если есть конечно.
Сам спросил, сам ответил :) у кого не получается маршрутизация в Foxray, вот конфиг:
{
"routing" : {
"rules" : [
{
"domain" : [
"geosite:private",
"geosite:CATEGORY-GOV-RU",
"geosite:YANDEX",
"geosite:MAILRU",
"geosite:YOUTUBE",
"regexp:.ru$"
],
"outboundTag" : "direct",
"type" : "field"
},
{
"ip" : [
"geoip:private",
"geoip:RU"
],
"outboundTag" : "direct",
"type" : "field"
}
]
}
}
А подскажите, плз, куда серверная часть XRay логи пишет? В /var/log у меня пусто...
deleted
Добрый день. Напишу сюда вопрос про Vision - поскольку под той статьей коменты уже закрыты.
... через три месяца возникла проблема - перестало работать) Не обновился сертификат. Попытка обновить вручную выдала ошибку что порт 80 занят - обновить невозможно. Нагуглил что это из за nginx и решение проблемы - временная остановка :
certbot certonly --standalone --pre-hook "service nginx stop" --post-hook "service nginx restart" -d exsample.com
Так ( вручную) обновилось. Вопрос: как это прописать для обновления автоматом? - это первое.
А второе - в статье написано что поле обновления надо перезапустить :
" и там в конец добавим строку
renew_hook = systemctl reload xray
" - но при вводе в терминал вручную ругается и не работает. Но работает " systemctl restart xray " - можно исправить reload на restart или тут что то другое?
Так ( вручную) обновилось. Вопрос: как это прописать для обновления автоматом? - это первое.
# systemctl status certbot-renew.timer
● certbot-renew.timer - Run Certbot twice daily
можно исправить reload на restart или тут что то другое
можно. reload перечитывает конфиг. restart делает килл и запуск процесса заново.
Подскажите пожалуйста, есть ли инструкция для настройки роутинга для FoXray? Имеется ввиду роутинг чтобы ходить до ru ресурсов без VPN. В nekobox всё делается легко, но для РФ он к сожалению недоступен на iOS
Теперь они пришли и за мной.
PIA умер полностью, схема по Trickster VPN с этого сайта (потому что WG) умерла на мобильном интернете (МТС).
Сел, заморочился, сделал. Сначала была ошибка, будто что-то висело на 443 порту — а висел только xray. Пришлось прибить. Тогда все запустилось.
Юзаю Foxray на iOS и вопрос возник — там есть роутинг — то есть, указав RU, открываются при включенном VPN сайты на RU. Но, я так понимаю, в таком случае ни о какой маскировке речь и не идет? Я чот за пару лет прям без VPN allthetime чувствую себя будто голым...
Ранее я через Trickster VPN схему на extended-сервере добавлял исключения и направлял на сервак в России. А тут при таком роутинге ты как будто не под VPN? Или все же какая-то "маскировка" присутствует?
так-с, ну вроде разобрался, как добавить кастомный роутинг.
Но странно то, что можно указать домен, но не IP. Вроде в type указываю ip, но не дает ввести IP, требует URL
RE: Очень рекомендуется настраивать на клиентах правила маршрутизации (пример в комментариях), чтобы трафик до .ru-доменов и хостов с российскими IP шел напрямую, а не через прокси (в клиентах для такого поставляется GeoIP база данных).
Извиняюсь за некропостинг, но нужна ли эта настройка, если включать VPN только на время захода на определённые сайты? Просто, по опыту, иногда на ru-домен без VPN тоже не зайти.
Вообще, я правильно понял, что эти правила маршрутизации нужны не для экономии трафика через сервер VPNa, а для того, чтобы цензурирующая организация не увидела, что к подконтрольным ей сайтам идёт трафик с подозрительного IP?
Ещё раз спасибо! VPN, настроенный по этой инструкции, работает, и даже удалось настроить маршрутизацю на десктопе.
Но остались две проблемы:
Я не смог настроить маршрутизацию в NekoBox на Андроиде. Думаю, проблема не только у меня, так что, если бы вы объяснили, как это сделать, то объяснение можно было бы добавить в статью.
Почему-то не работает переадресация IP на www.nvidia.com : при отключённом VPN браузер пишет "Не удаётся получить доступ к сайту xx.xx.xxx.xx не позволяет установить соединение", при включённом "Страница недоступна Сайт xx.xx.xxx.xx не отправил данных.". При этом при выключенном VPN и добавленной строке в hosts www.nvidia.com не открывается и при запросе по названию. Насколько это всё плохо, и что с этим можно сделать?
Подробности:
Hidden text
c:\Windows\System32\drivers\etc\hosts
xx.xx.xxx.xx www.nvidia.com
/usr/local/etc/xray/config.json
{
"log": {
"loglevel": "info"
},
"routing": {
"rules": [],
"domainStrategy": "AsIs"
},
"inbounds": [
{
"port": 23,
"tag": "ss",
"protocol": "shadowsocks",
"settings": {
"method": "2022-blake3-aes-128-gcm",
"password": "aaaaaaaaaaaaaaaabbbbbbbbbbbbbbbb",
"network": "tcp,udp"
}
},
{
"port": 443,
"protocol": "vless",
"tag": "vless_tls",
"settings": {
"clients": [
{
"id": "id",
"email": "user1@myserver",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"dest": "www.nvidia.com:443",
"xver": 0,
"serverNames": [
"www.nvidia.com"
],
"privateKey": "privateKey",
"minClientVer": "",
"maxClientVer": "",
"maxTimeDiff": 0,
"shortIds": [
"shortIds"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls"
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}
При работе NekoBox постоянно жалуется на ошибки типа таких, но это, наверное, не связано:
ERROR[0501] dns: exchange failed for crl3.digicert.com. IN A: Post "https://8.8.8.8/dns-query": tls: failed to verify certificate: x509: certificate is valid for 8.8.8.8, 8.8.4.4, 2001:4860:4860::8888,
Да вроде с этим там никаких особых нюансов не было. Расскажите, что именно пытаетесь настроить и что именно не работает.
Я просто не нашёл идентичных настроек в андроидной версии NekoBox, а разобраться по аналогии не смог, потому что не понимаю, что именно делаю. GeoIP:ru вбил, но этого явно мало.
Hidden text
По поводу файрволла - попробовал отключить, ничего не изменилось.
По поводу DNS - да, старая "семёрка" (да, я знаю, что пора переходить на десятку. Руки не доходят). Попробовал убрать HTTPS, NekoBox ругается на неподдерживаемый протокл, и не включается.
Но, наверное, раз с https как-то работает, то и ладно.
В Nekobox достаточно всего пару правил (раздельных, не два условия в одном правиле!), одного для доменов, другого для group.
Работает, спасибо!
Вот выдача cURL. К сожалению, не знаю, что она должна выдавать в норме, но, кажется, что-то другое.
Hidden text
d:\Programs\curl-8.3.0_2-win64-mingw\bin>curl -v --resolve www.nvidia.com:443:my_ip https://www.nvida.com
* Added www.nvidia.com:443:my_IP to DNS cache
* Trying 50.87.144.124:443...
* Connected to www.nvida.com (50.87.144.124) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: d:\Programs\curl-8.3.0_2-win64-mingw\bin\curl-ca-bundle.crt
* CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN: server accepted h2
* Server certificate:
* subject: CN=*.hostgator.com
* start date: Aug 30 00:00:00 2023 GMT
* expire date: Sep 29 23:59:59 2024 GMT
* subjectAltName does not match www.nvida.com
* SSL: no alternative certificate subject name matches target host name 'www.nvi
da.com'
* Closing connection
* TLSv1.3 (OUT), TLS alert, close notify (256):
curl: (60) SSL: no alternative certificate subject name matches target host name
'www.nvida.com'
More details here: https://curl.se/docs/sslcerts.html
curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
не в этом проблема?
Хм, может, они и правда из России не открываются? Что-то мне это в голову не пришло.
я скорее про www.nvida.com вместо www.nvidia.com
Виноват, вчера вечером уже засыпал, написал с ошибкой.
Если написать правильно, то cURL не ругается, насколько я понял:
Hidden text
* Added www.nvidia.com:MyIP to DNS cache
* Hostname www.nvidia.com was found in DNS cache
* Trying MyIP:443...
* Connected to www.nvidia.com (MyIP) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: d:\Programs\curl-8.3.0_2-win64-mingw\bin\curl-ca-bundle.crt
* CApath: none
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8):
* TLSv1.3 (IN), TLS handshake, Certificate (11):
* TLSv1.3 (IN), TLS handshake, CERT verify (15):
* TLSv1.3 (IN), TLS handshake, Finished (20):
* TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.3 (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
* ALPN: server accepted h2
* Server certificate:
* subject: C=US; ST=California; L=Santa Clara; O=NVIDIA Corporation; CN=it.nvid
ia.com
* start date: Jan 25 00:00:00 2023 GMT
* expire date: Jan 25 23:59:59 2024 GMT
* subjectAltName: host "www.nvidia.com" matched cert's "*.nvidia.com"
* issuer: C=US; O=DigiCert Inc; CN=DigiCert TLS RSA SHA256 2020 CA1
* SSL certificate verify ok.
* using HTTP/2
* [HTTP/2] [1] OPENED stream for https://www.nvidia.com/
* [HTTP/2] [1] [:method: GET]
* [HTTP/2] [1] [:scheme: https]
* [HTTP/2] [1] [:authority: www.nvidia.com]
* [HTTP/2] [1] [:path: /]
* [HTTP/2] [1] [user-agent: curl/8.3.0]
* [HTTP/2] [1] [accept: */*]
> GET / HTTP/2
> Host: www.nvidia.com
> User-Agent: curl/8.3.0
> Accept: */*
>
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* TLSv1.3 (IN), TLS handshake, Newsession Ticket (4):
* old SSL session ID is stale, removing
< HTTP/2 307
< server: AkamaiGHost
< content-length: 0
< location: https://www.nvidia.com/fi-fi/
< date: Sat, 30 Sep 2023 05:02:37 GMT
< last-modified: Sat, 30 Sep 2023 05:02:37 GMT
< akamai-cache-status: Redirect from child
<
* Connection #0 to host www.nvidia.com left intact
То есть, какая-то проблема с браузером/Windows.
Автор, вопрос снят. Благодарю за советы. Совет про роутинг с телефона я бы даже в шапку поднял.
@andToxaтоже благодарю, за внимательность, :- ).
Осталось завернуть всю эту инструкцию в GUI-визард (или на худой конец, консольный визард) для чайников вроде меня (ну, в моем случае - я больше не чайник, а лентяй...) Я предпочел бы пошаговый установщик с последовательными вопросами, а не кучу разных окон + голые консольные команды. В идеале визард бы должен помочь:
Выбрать VPS хостинг
Установить и настроить OpenVPN на сервере
Установить и настроить XRay с XTLS-Reality
Протестировать подключение и проверить скорость трафика
Настроить оптимизацию трафика при необходимости
Настроить клиенты
Вот ещё клиент, который поддерживает Reality
https://github.com/InvisibleManVPN/InvisibleMan-XRayClient
И по внешнему виду не выглядит, как поделка для гиков.
Система ругается на конфигурацию сервиса:
systemd[1]: [?] /etc/systemd/system/xray.service:7: Special user nobody configured, this is not safe!
Нужно с этим что-то делать?
И ещё. Я оставил на ночь систему ненастроенной, приведенная запись - первая в журнале xray. В то же время, в которое была сделана эта запись, на сервере было зафиксировано повышение активности. Что это было?
Просто оставлю это здесь
https://gist.github.com/Snawoot/ed111208679a27dad350235c9f6c331f
Там расписаны некоторые настройки XRay
Настроил, всё работает, но вылезла одна проблема: почему-то не отправляются файлы и картинки в Discord. Начинает грузить, и потом пишет upload fail. Что можно проверить?
Браузер говорит:
Request Method:
PUT
Status Code:
403 Forbidden
Remote Address:
127.0.0.1:2080
Referrer Policy:
strict-origin-when-cross-origin
Когда пишешь текст то запрос идет на: https://discord.com/api/v9/channels/11502670452501/messages
А когда картинка: https://discord-attachments-uploads-prd.storage.googleapis.com/ca6463de-0f62-40b9-aa38-0ff92/image.png?upload_id=ABPtcPpGIiUTK
Видимо проблема где-то здесь...
Взлетело на Windows и Android, большое спасибо. Хотел бы отметить пару моментов, с которыми столкнулся:
Не забываем открыть 443 порт в файрволе сервера. Вроде очевидная штука, но сначала потупил.
Находил упоминания о том, что в Nekobox может быть ошибка "reality verification failed" по причине неправильного времени на серваке: https://github.com/aleskxyz/reality-ezpz/issues/33. Нужно установить ntp, чтобы расхождений не было.
У меня аналогичная ошибка была по другой причине, выбранный левый сайт что-то не поддерживал. Сменил на MS и заработало.
Кстати, отметил сегодня (17 января) ошибку соединения с настройкой SNI www.microsoft.com, смена настройки на другой домен проблему решила. Вообще, решил свой домен поднять пока для такого случая, благо их есть у меня...
Спасибо! После прикрытия WG и OVPN очень полезная статья :)
Подскажите пожалуйста, а куда вообще идет UDP траффик у клиента при использовании vless+reality? nekoray вроде поддерживает tun, но вот поддерживает ли сервер я так и не понял. По конфигу там вроде только tcp и все.
по поводу проброса портов tcp 80 и udp 443 для маскировки. это не будет работать, потому что хоть пакет и улетит на указанный dnat to хост, но ответ от хоста не вернется отправителю.
На VDSINA взял сервер за $4.8/мес сразу с установленной панелью 3X-UI. И там же XRay и всё остальное, чего я не понимаю. Но поставил Nekobox и как-то работает.
Вот и пригодилось :( Сегодня вдруг перестал работать Shadowsocks. Не понял по какой причине: смена порта и протокола шифрования (пока?) помогла, но на будущее настроил VLESS по этой инструкции. Спасибо!
Вопрос: а консольного клиента под Linux нет?
Bleeding-edge обход блокировок с полной маскировкой: настраиваем сервер и клиент XRay с XTLS-Reality быстро и просто