Coder Social home page Coder Social logo

Comments (17)

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

Добавил проксирование всех *.onion сайтов в Антицензорити.
Далее network.proxy.socks_remote_dns = true и network.dns.blockDotOnion = false.
Стал открываться http://www.flibustahezeous3.onion, но не другие сайты.

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

У вас что-то изменилось после добавления *.onion в проксируемые? Работает ли http://www.flibustahezeous3.onion и другие сайты? В какой-то момент у меня перестала работать и флибуста.

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

Решено с помощью добавления отдельной проверки .onion в PAC-скрипте "Антицензорити": https://github.com/anticensority/pac-script-generator/blob/production/src/generator.js#L368-L370:

    if (host.endsWith('.onion')) {
      return true;
    }

from runet-censorship-bypass.

sergeevabc avatar sergeevabc commented on May 22, 2024

Заработало, спасибо.

P.S. Подскажите, а замена фрагмента SOCKKS5 localhost:9150; SOCKS5 localhost:9050; на SOCKS5 127.0.0.1:9050; позволяет выиграть несколько миллисекунд, верно?

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

Не эксперт по внутренностям ОС, но если в ОС не используется захаркоденные значения для localhost, то да, при каждом разрешении имени происходит обращение к файлу на жёстком диске, который для производительности постоянно загружен в область оперативной памяти, т.е. при каждом разрешении адреса вы тратите одно обращение к RAM. Как-то так, думаю. Спасибо за идею использовать IP вместо имени.

from runet-censorship-bypass.

sergeevabc avatar sergeevabc commented on May 22, 2024

Через несколько дней понял, что ваше предложение по *.onion это не совсем то. Сейчас идёт бинарная проверка: либо завернуть запрос на проксю, либо пропустить (direct). Хочется гибче: заблокированные сайты на быструю проксю (например, на свой socks5), onion на очевидно медленную тор-проксю (тот самый 127.0.0.1:9050), остальное пропустить (direct). Поможете?

P.S. Допиленный описанным образом Антизапрет выглядит так, а с Антицензорити сложнее…

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

Если PROXY_STRING потом заменяется на быстрый прокси, то можно примерно так:

function FindProxyForURL(url, host) {

  let ifByHost = false;
  let ifByMaskedIp = false;
  // Remove last dot.
  if (host[host.length - 1] === '.') {
    host = host.substring(0, host.length - 1);
  }

  return
    host.endsWith('.onion')
    ? 'SOCKS5 localhost:9150; SOCKS5 localhost:9050; DIRECT'
    : (
        (function isCensored(){

          ifByHost = areSubsCensored(host);
          if (ifByHost) {
            return true;
          }

          const ip = dnsResolve(host);
          if (ip) {
            if (ifFoundByBinaryInString(ips[ip.length] || '', ip)) {
              return true;
            }
            ifByMaskedIp = isCensoredByMaskedIp(ip);
            if (ifByMaskedIp) {
              return true;
            };
          }

          return false;

        })() ? PROXY_STRING : 'DIRECT'
    );
}

К сожалению у меня в ближайший месяц почти нет возможности работать над скриптом, нет времени внести изменения и тщательно их протестировать, потому я просто оставлю вам данный кусок кода в качестве возможного решения. Если вы оставите комментарий, то, возможно, я смогу ответить. Сообщите, подходит ли вам приведённое решение.

from runet-censorship-bypass.

sergeevabc avatar sergeevabc commented on May 22, 2024

Надо поднять host.endsWith('.onion') на уровень return, тогда работает. Спасибо!

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

Я поднял host.endsWith('.onion') на уровень return в PAC-скрипте "Антицензорити".

from runet-censorship-bypass.

sergeevabc avatar sergeevabc commented on May 22, 2024

Вместо host.endsWith (".onion") уместнее использовать dnsDomainIs (host, ".onion"), ибо

2

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

Да, исправил.
Только я старый IE не хотел поддерживать, т.к. он плохо кеширует PAC-скрипт.
Я даже добавил особую строчку, но возможно, что она не срабатывает для старых IE:

if (/*@cc_on!@*/!1) {
  throw new TypeError('https://rebrand.ly/ac-anticensority');
}

from runet-censorship-bypass.

sergeevabc avatar sergeevabc commented on May 22, 2024

Решил попробовать ваше расширение для Firefox, чтобы

  • открывать заблокированные ресурсы через Antizapret
  • открывать .onion через локальный Tor на 9050 порту

Однако, как ни настраиваю расширение, второй пункт не работает.

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024
  1. Иконка синей ленты -> свои прокси -> Использовать свой локальный Тор.
  2. Иконка синей ленты -> свои прокси -> Проксировать .onion.

Обе галочки стоят? Тор установлен и запущен (браузер или консольное приложение)?
firefox-onion

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

https://rebrand.ly/ac-tor:

Тор-браузер использует порт 9150, просто Тор использует порт 9050.

from runet-censorship-bypass.

sergeevabc avatar sergeevabc commented on May 22, 2024

либо

Mar 14 17:24:19.954 [notice] Tor 0.4.5.2-alpha (git-135b8eea36edd992) running on Windows 7
Mar 14 17:24:35.577 [notice] Opening Socks listener on 127.0.0.1:9050
Mar 14 17:24:40.000 [notice] Bootstrapped 100% (done): Done

Другие расширения для выборочного проксирования типа MM3-ProxySwitch или SmartProxy работают.
Либо опять же скачиваю antizapret.pac, добавляю строчку, прописываю путь в настройки прокси Fireefox — работает.

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

from runet-censorship-bypass.

ilyaigpetrov avatar ilyaigpetrov commented on May 22, 2024

Включите все 3 типа уведомлений.
Можно посмотреть на код модифицированного PAC-скрипта: иконка синей ленты -> Проблемы? -> Отладка PAC-скрипта -> READ.

from runet-censorship-bypass.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.