An-Eugene / ss_conditions

15 stars 21 forks source link

VPS #5

Closed ErrOzz closed 7 months ago

ErrOzz commented 7 months ago

Добрый день. Не нашел как связаться, по этому пишу сюда. Имею два вопроса.

  1. В rules->rules_direct вижу запись появилась gemini.google.com. Какой vps пользуете, чтобы туда ходить? Я попробовал парочку разных - что-то не пускает меня туда.
  2. На андроиде при включенном shadowsocks перестаёт работать локальная сеть: не заходит в расшареные ресурсы на винде в локалке. С другого компа на винде со включенным прокси с локалкой проблем нет. Потыкался - пока не сообразил что делать. А вообще, спасибо за дельный ресурс! :)
An-Eugene commented 7 months ago

Добрый. Можно писать здесь через issue, или можно писать в тг Aneugene.

  1. rules_direct - это неиспользуемый файл. Изначально был план, что будет black list - то, что идёт через прокси, пока весь остальной трафик идёт напрямую, и white list - то, что идёт напрямую, пока весь трафик идёт через прокси. Но поддержку white list в клиентах у меня реализовать не получилось. Думаю, будет логичным удалить этот файл полностью и оставить только rules_proxy во избежание путаницы. Gemini у меня работает на аезе. Вообще среди ресурсов с оплатой ру картой можно найти парочку дельных, но это надо искать методом проб и ошибок. Некоторые VPN на аезе у меня тоже отлетали по GeoIP, но текущий пока работает.

  2. Да, проблема известная, сам с ней столкнулся. К сожалению, сделать white list для локальной сети у меня не получилось, поэтому в случае необходимости работать с локальной сеткой на телефоне приходится выключать VPN. Если вдруг нашарите решение проблемы - расскажите, но победить это не получилось.

Спасибо за тёплые слова) Буду очень признателен, если поможете в популяризации, и, возможно, подкинете сайты, которые есть смысл внести в список :)

ErrOzz commented 7 months ago

Спасибо за наводку, попробую тоже аезу. C hostkey.ru и с vdsina.com у меня gemini не взлетел к сожалению. В 1-м вопросе я там перепутал конечно - хотел написать rules_proxy, не direct. Но ответ, который хотел, получил. :) Да ещё и бонус про rules_direct - изначально не очень понял для чего он, потому, что не увидел его обработку в деплое. Со 2-м особенно не разбирался - нужно не часто, это скорее спортивный интерес. Но если руки дойдут и будет результат - обязательно сообщу. Про полезности: Проект утянул к себе больше для того, что бы попробовать сделать три разных pac файла с разными портами для того, что бы можно было запускать три экземпляра shadowsocks-а на винде одновременно - полезно если есть несколько учеток и они одновременно запущенны. Ведь второй экземпляр не запустится, если настроен одинаковый порт. Можно глянуть в моём форке. :) Я добавил немного сайтов в rules_proxy, но совсем немного, в основном немецкие сайты на которые не мог попасть ранее или они ломались с течением времени. Не знаю на сколько они будут полезны обществу: aussiedlerbote.de .bergfreunde.eu bfgcdn.com .dw.com Я уже рекомендовал парочке друзей ваше суперу-добное решение, но столкнулся с тем, что к сожалению мало кому интересно заморачиваться этим самостоятельно. Друзьям проще ключик выделить, если их не слишком много:), а в нете я не особо пишу.

An-Eugene commented 7 months ago

Благодарю за сайты, парочку внёс (dw уже был внесён). Малый, но тоже вклад, очень ценно́)

В целом порт 1080 захардкоден, если не ошибаюсь, для Proxy SwitchyOmega (PAC файл универсален как для использования в Shadowsocks, так и для использования в расширении); Shadowsocks же не использует этот кусок кода. Попробуйте после импортирования ключа зайти в редактирование серверов (ЛКМ по иконке в трее), и в поле "порт прокси" в самом низу поменять значение с 1080 на любое другое; 1081 или 1082 в вашем случае. В таком случае можно пользоваться моим репозиторием без изменения самих файлов :)

Моё решение работает на базе Shadowsocks, поэтому друзьям можно рекомендовать ставить сервер Outline или чистый Shadowsocks в виде панели 3x-ui (сам поставил себе 3x-ui, очень удобная штука, и ставится не сильно сложнее Outline). Outline ставится в одно движение, а ключи подходят, идеальная опция для ленивых. После уже можно давать инструкцию в моём репозитории, как настроить клиент на автоматическую маршрутизацию. Ну или они опять же, могут искать рабочие ключи shadowsocks в интернете, или кто-то один может запариться над сервером и раздать ключи. Я старался найти максимально простое решение, чтобы если сервер Shadowsocks уже есть - можно было за буквально пол минуты переставить клиент, включить его один раз в жизни и забыть навсегда.

ErrOzz commented 7 months ago

Доброго вечера. Наконец добрался до компа. dw.com был уже, да, но без звездочки впереди из-за чего толком не работал например learngerman.dw.com. Там не открывались, по моему, медиа-файлы. Я сначала пытался добавлять конкретные адреса я так понимаю медиа-библиотек - адреса, по которым происходил затык (смотрел через инструменты разработчика в хроме). Начинало работать одно, но не работало другое, или отваливалось через некоторое время. Потом просто добавил звездочку вначале:) Я не помню пробовал ли я раньше менять порт прокси в Shadowsocks клиенте на винде без правки PAC-файла и включенном удаленном сценарии, но сегодня попробовал - соединение перехватывается, но сайты, которые должны идти через прокси, не открываются. При том если включить прокси для всё системы - то всё работает как надо и с измененным портом. Так что без правки PAC-файла видимо не обойтись. И вопрос по аезе. Вы пользуетесь aeza.ru или aeza.net/ru? На сколько я понял у них разные юридические лица и это вероятно может влиять на... на что-то, на Geo-IP их IP адресов, наверное. :) И в какой стране настроен сервер, через который работает gemini.google.com? Спасибо за наводку на 3x-ui. Я пока только читал про него немного, но не пробовал. Попробую его на аезе поставить. И, ваше решение супер! Я прям мечтал о подобном. Но чего-то подобного не встречал. Даже из платных ВПН-ов мало кто предлагает фильты по доменным именам. Собственно по этому я пошел по пути своего ВПН-а. Правда первым был WG. И его нормальную маршрутизацию я сам не осилил и в сети не нашёл. Под винду только IP, под андроид только приложения. И то и другое страшно не удобно. Да и блокируют его теперь периодически.

An-Eugene commented 7 months ago

Очень странно, что не работали поддомены. Я настраивал генерацию файлов таким образом, чтобы при добавлении домена, без звёздочек, маршрутизировался как сам домен, так и все его поддомены. И так как у меня добавлен dw.com, то должен маршрутизироваться и learngerman.dw.com. В отличие от добавления поддомена: маршуртизация gemini.google.com означает, что маршрутизироваться будет только он, но не сам домен google.com. И wildcard нужен только для доменов 4 уровня (см .bbci.co.uk, CDN британского BBC), либо для доменных суффиксов глобального уровня, вроде .ua (суффикс, очевидно нуждающийся в маршрутизации). Собственно, сейчас проверил - у меня поддомены прекрасно работают в моём текущем конфиге. Можете предоставить более подробную информацию?

По аезе: я брал на aeza.net, когда они ещё были едиными, там же и остался. У меня промо тариф в Амстердаме, промо тариф в целом поймать сложно, но реально, я другу ловил пару месяцев назад, управился за 2-3 недели. Советую воспользоваться ботом для тг @aezastatus_bot и на низком старте ждать появления промо тарифа в продаже.

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

if (typeof __PROXY__ === "undefined") {
    proxy = "SOCKS5 127.0.0.1:1080; SOCKS 127.0.0.1:1080";
    direct = "DIRECT";
} else {
    proxy = __PROXY__;
    direct = "DIRECT;";
}

на вот этот

proxy = __PROXY__;
direct = "DIRECT;";

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

Благодарю за отзыв) Изначально старался для себя, потому что тоже поставил WG, и выяснил, что нужно постоянно дёргать переключатель для работы VPN (как и везде). Пошёл выяснять, где же можно сделать маршрутизацию, дошёл до Shadowsocks, который попутно оказался ещё и более защищённым от блокировок, начал шарить как делать маршрутизацию, итог работы в этом репозитории) Потом решил оставить решение в открытом доступе и прописать какую-никакую документацию, потому что даже в платных VPN, как вы правильно заметили, маршрутизацию не дают. Да и на self hosted VPN есть маршрутизация либо со стороны сервера (что ситуативно, иногда надо включить VPN по старинке на полную), либо со стороны роутера (что не работает за пределами роутера, очевидно), но не со стороны клиента.

ErrOzz commented 7 months ago

Надо же, learngerman.dw.com работает абсолютно нормально с dw.com без звездочки. Возможно я перепутал историю с неработающими медиа-файлами с временем, когда я возился WG. Но зачем-то же я полез вставлять эту звездочку... Может, конечно, это был порыв что-то потыкать без достаточных на то оснований. :) Я повспоминаю. По остальному попробую завтра и отпишусь.

ErrOzz commented 7 months ago

Добрый вечер. Спасибо за наводку на телеграм-бота! Вчера же поймал промо на сервер в Швеции. Всё настроил, установил 3x-ui - действительно годная штука. Gemini.google.com в браузере заработал. Но два момента я пока не смог побороть. 1. aistudio.google.com - работает, если включить прокси для всей системы. Со включенным PAC сценарием работает, если добавить в PAC "*.google.com" и больше ничего (именно в PAC, а не в rules_proxy). Не работает, если добавить в PAC: google.com apis.google.com aistudio.google.com Пробовал ещё разные, которые видел в режиме разработчика в хроме при загрузке aistudio.google.com - бесполезно. Но не хочется весь гугл пускать через прокси. 2. Примерно такая же история с приложением Gemini на android - работает со включенным прокси для всей системы и не работает с PAC сценарием (gemini.google.com там разумеется присутствует).

An-Eugene commented 7 months ago

Глянул я на aistudio. Я как понял, помимо прямого адреса aistudio.google.com идёт запрос на google.dev, которого в списках нет, поэтому он прописывает в cookies запрет на посещение.

Ещё приложение может обращаться не по адресу, а по внутренней API на совершенно другой сайт, или вообще по IP (что вряд ли). И тут уже нужно угадать, что покрывать маршрутизацией. Либо сниффить трафик в момент открытия приложения и смотреть куда оно стучится. Потому что chatgpt у меня за счёт использования поддоменов завести получилось как на компьютере, так и на android, но там тоже CDN пришлось ловить, который детектил реальную страну.

Вообще если наш разговор и разбор проблем надолго - думаю, есть смысл написать мне в личку в телеграме aneugene, там я могу если что оперативно ответить и просто накидывать идей, чтобы не забивать issue гитхаба

ErrOzz commented 7 months ago

Добрый вечер. Извиняюсь за задержку с ответом - выходные, хорошая погода. :) Тему, пожалуй можно закрывать. В целом, всё что меня интересовало, я получил. Поделюсь тем, что добавил в список за эти дни.

Для более корректной работы Gemini в браузере добавил: gemini.google.com - это было уже, accounts.google.com - без этого работало, но в консоли в режиме разработчика в хроме появлялась ошибка недоступности этого адреса. Не знаю на сколько критично. Чтобы заработало приложение Gemini на андроид добавил: googleapis.com

Для работы aistudio.google.com: aistudio.google.com apis.google.com *.clients6.google.com

Для работы ChatGPT: oaistatic.com openai.com openai.org chatgpt.com Но эти домены и у вас уже есть. Я посмотрел после того, как сам их нашел. Правда приложение на андроид пока не пробовал.

Сравнил наши списки, нашёл ещё у себя agentura.ru - его у вас нет.

Вот это вот не сработало:

По хорошему, вы в своём репозитории можете заменить этот код

if (typeof __PROXY__ === "undefined") {
    proxy = "SOCKS5 127.0.0.1:1080; SOCKS 127.0.0.1:1080";
    direct = "DIRECT";
} else {
    proxy = __PROXY__;
    direct = "DIRECT;";
}

на вот этот

proxy = __PROXY__;
direct = "DIRECT;";

При таком изменении соединения через прокси нет совсем. Учитывая это и то, что изначальный код работает, получается что __PROXY__ = "undefined". В общем оставил как было.

Ещё раз огромное спасибо за всю Вашу помощь! И за наводку на аезу и телеграмм-бота для промо тарифа и на 3x-ui панель, да и в целом за весь этот проект, и за отзывчивость ещё отдельно!

личку в телеграме aneugene

запомнил, вдруг пригодится. Это я там же @ErrOzz

An-Eugene commented 7 months ago

__PROXY__ = "undefined" У Shadowsocks есть локальный автоматически генерируемый конфиг, где значения задаются именно так, как я указал. Можно посмотреть самостоятельно в папке с Shadowsocks, файл pac.txt, либо в самом репозитории, я его брал за основу при создании собственного файла. Предположительно, PROXY должна быть константой, которую задаёт сама программа на основании параметров сервера, тем более локальный PAC как раз работает в исходном виде, значит, в качестве PROXY там есть какое-то значение. Возможно, дело в разной работе локального и удалённого PAC, требуется дальнейшее исследование.

Сейчас пробежался по репозиторию. Судя по всему, на 171 строчке как раз идёт инициализация PROXY. Нужно докапываться до истины дальше) Потому что PROXY явно должен содержать именно то, что задано в настройках сервера, а не захардкожено, как localhost:1080.

Благодарю за ещё парочку ссылок и за тёплые слова)