Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ss — shadowsocks, cf — cloudflare
- Зачем оно надо:
- Для пущей обфускации трафика при наличии только одного сервера — пакеты будут идти до нескольких адресов cf при каждом соединении.
- Дано:
- Предполагается, что сервер связки ss+cf уже настроен и исправно работает.
- Также предполагается, что у тебя есть несколько свободных доменов первого уровня — anuspsa.ru, не anus.psa.ru — такое ограничение Free версии cf.
- Домены можно взять либо бесплатно у freenom, либо купить где-то задешево. В первом случае понадобится напердолить перенаправление не-ss трафика на веб-сервер с каким-нибудь фейколендингом по гайду https://pastebin.com/CpKBhNC3, чтобы домен не отобрали за неиспользование. Во втором случае можно полуркать гугл на предмет акций. В 2019 году таковая действует на reg.ru: https://www.reg.ru/company/promotions/5123
- Решение:
- 1. Нужно повторить действия по привязке из этого гайда для каждого из своих доменов: http://telegra.ph/shadowsocks-over-cloudflare-05-17
- tl;dr:
- 1.1 В cf для каждого домена добавить A запись на внешний IP сервера с ss
- 1.2 В панели управления доменами (где они регистрировались) для каждого домена указать NS записи cf, которые он дает при привязке (вида marty.ns.cloudflare.com)
- 1.3 В cf для каждого домена по пути "Firewall —> Settings" для "Security" указать "Essentially Off".
- 1.3.1 Если будут проблемы при использовании — по тому же пути отключить "Browser Integrity Check", и в "Crypto -> SSL" выбрать "Off". В оригинальном гайде выше этот совет был, пусть будет и тут.
- 1.4 Дополнение касательно портов, с которыми работает cf:
- HTTP: 80 8080 8880 2052 2082 2086 2095
- HTTPS: 443 2053 2083 2087 2096 8443
- В случае, если на VPS закрыты 80 и 443 порты (такое всегда бывает на днищесерверах), нужно искать в панели управления VPS опцию "Domain Forwarding", и добавлять туда домены для tcp трафика на 80 и 443 портах. Аналогичное при желании проводится с другими портами, приведенными выше.
- 2. После привязки нужно запилить на компьютере конфиги с новыми используемыми доменами в качестве адресов сервера. Предполагается, что ты уже знаешь, как это делается. Локальные порты должны быть разными, их нужно запомнить, они понадобятся чуть позже.
- 3. Клиент на виндовс поддерживает балансировку нагрузки из коробки (в гуе вкладка "Servers -> Load Balance"), о нем не пишем.
- Для линукса воспользуемся haproxy. Установка зависит от пакетного менеджера твоего дистрибутива. Предполагается, что ты знаешь, как им пользоваться:
- pacman -S haproxy
- Поправим конфиг:
- vim /etc/haproxy/haproxy.cfg
- Удалим старое содержимое:
- gg
- Shift+v
- Shift+g
- d
- i
- Копипастим туда следующее (в vim через Shift+Insert):
- global
- defaults
- log global
- mode tcp
- option dontlognull
- timeout connect 300000ms
- timeout client 300000ms
- timeout server 30000ms
- frontend localproxy
- bind *:4444
- default_backend ss_proxies
- backend ss_proxies
- balance roundrobin
- server proxy1 127.0.0.1:1001
- server proxy2 127.0.0.1:1002
- server proxy3 127.0.0.1:1003
- Подробное описание функций в конфиге есть здесь: http://cbonte.github.io/haproxy-dconv/
- Внимание стоит обратить на строчки:
- bind *:4444 — здесь задается свободный локальный порт сокс-прокси на пеке, к которому будем подключаться в браузере или где-то еще. Увидеть занятые порты и чем они заняты можно через netstat -ltp
- server proxy(1-3) localhost:100(1-3) — здесь нужно указать локальные порты, использованные в конфигах ss+cf из пункта 2.
- Сохраняем конфиг haproxy и выходим из vim:
- Esc
- :wq
- Enter
- 4. Добавляем haproxy в загрузку в системе и перезапускаем на случай, если уже было запущено:
- systemctl enable haproxy
- systemctl restart haproxy
- 5. Запускаем ss с конфигами, в которых прописаны новые домены — ты уже знаешь, как это делается.
- Если нет — несколько раз nohup ss-local -c /etc/shadowsocks/config.json со своими путями до конфигов. Nohup перед командой нужен для отвязки ss от процесса терминала, в котором ты запускаешь ss.
- 6. В настройках прокси для приложений старый порт с ss+cf нужно сменить на тот, который указывали в конфиге haproxy в разделе frontend (4444). Прокси socks5.
- Поскольку к бесплатной версии cf можно подключить бесконечно большое количество доменов, и в backend для haproxy с алгоритмом roundrobin можно добавить до 4095 подключений, то количество используемых инстанций ss+cf ограничивается ресурсами пекарни, желанием возиться с большим количеством доменов, и желанием заниматься хуйней в целом.
- Стоит заметить, что подключением к порту, на котором висит haproxy могут пользоваться другие устройства в общей локальной сети. Т.е. если компьютер с телефонами и ноутбуками подключены к одному роутеру, то в теории можно пользоваться ss проксей и с них, указывая в настройках прокси порт haproxy (4444) и адрес компьютера с haproxy в локальной сети (ifconfig | grep inet на компьютере).
- Схожего эффекта с распределением запросов через разные серверы cf можно добиться при помощи .pac скрипта в браузере с указанными локальными адресами ss+cf:
- https://help.getfoxyproxy.org/index.php/knowledge-base/rotate-ips/
- На legacy версии 4.6.5 FoxyProxy такое работает, но выводит неотключаемое уведомление с ошибкой, поэтому ваш покорный слуга забил свой обфусцированный болт на этот вариант.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement