freedom_threand

ss+v2ray behind nginx over cf

Mar 25th, 2019 (edited)
1,722
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Пердолинг shadowsocks с v2ray плагином через cloudflare с nginx перед ss для Ubuntu.
  2.  
  3. 0. Подготовка:
  4. Получаем фриномовский домен и привязываем его к клауде, см 1 и 2 части инструкции ss over cf в шапке (https://telegra.ph/shadowsocks-over-cloudflare-05-17)
  5. Скачиваем и устанавливаем Shadowsocks клиент и плагин к нему - виндусятники берут по ссылкам https://github.com/shadowsocks/shadowsocks-windows/releases/latest и https://github.com/shadowsocks/v2ray-plugin/releases/latest (разархивируем в папку с клиентом и переименовываем в v2ray.exe), жмупинусники роются в своих репах/компилят/ищут бинарники в сети
  6. Скачиваем и устанавливаем PuTTY - https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
  7. Скачиваем и устанавливаем WinSCP - https://winscp.net/eng/download.php (линуксобоги могут использовать любой другой FTP клиент)
  8. Hostname - адрес сервера, port - 22, пароль настраивается у провайдера vps
  9. Скачиваем и распаковываем странички нашего сайта https://anonfile.com/T8W6u1T4m8 (если очень хочется, можно использовать свои хтмлки)
  10.  
  11. 1. Устанавливаем nginx на своей впсочке:
  12. Коннектимся через PuTTY к серверу, в консоли вводим:
  13. sudo apt update
  14. sudo apt install nginx
  15. sudo systemctl status nginx - если инактив, значит 80 порт чем то занят.
  16.  
  17. 2. Перекидываем стрейзенд странички из шапки на сервак:
  18. Коннектимся через WinSCP к своей впсочке
  19. Идем по пути /usr/share/nginx/html, правой кнопкой - New - Directory, даем папке имя своего фриномовского домена
  20. Перетаскиваем 3 файла из ss-web архива, который мы скачали выше, в созданную папку.
  21.  
  22. 3. Ставим носки последней версии:
  23. sudo wget --no-check-certificate -O shadowsocks-libev-debian.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev-debian.sh
  24. sudo chmod +x shadowsocks-libev-debian.sh
  25. sudo ./shadowsocks-libev-debian.sh 2>&1 | tee shadowsocks-libev-debian.log
  26. Установщик попросит назначить параметры для носков, т.к. у нас соединение будет через v2ray, что вводить сюда неважно ( если нужен еще и чистый сс сервер, можно настроить его сейчас, но нужно учитывать, что 80 и 443 порты заняты энжинксом)
  27. Выключаем сервис чистых носков (или нет, если он нужен)
  28. sudo systemctl disable shadowsocks
  29.  
  30. 3.5 v2ray плагин к носкам:
  31. sudo wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.0/v2ray-plugin-linux-amd64-v1.3.0.tar.gz - скачиваем плагин (тут вместо "v1.3.0/v2ray-plugin-linux-amd64-v1.3.0.tar.gz" может быть что-то другое, последняя версия лежит тут https://github.com/shadowsocks/v2ray-plugin/releases/latest)
  32. sudo tar -xf v2ray-plugin-linux-amd64-v1.3.0.tar.gz - разархивируем сам плагин, тут опять же может быть другой файл в зависимости от скачиваемой версии.
  33. sudo mv v2ray-plugin_linux_amd64 /etc/shadowsocks-libev/v2ray-plugin - переносим и переименовывем плагин.
  34. sudo setcap 'cap_net_bind_service=+eip' /etc/shadowsocks-libev/v2ray-plugin - даем возможность v2ray-плагину биндиться к привилегированным портам.
  35. sudo nano /etc/shadowsocks-libev/v2ray.json - вставляем следующее (вместо <пароль> нужно придумать пароль):
  36.  
  37. {
  38. "server":"localhost",
  39. "server_port":8008,
  40. "password":"<пароль>",
  41. "timeout":600,
  42. "method":"xchacha20-ietf-poly1305",
  43. "fast_open":true,
  44. "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
  45. "plugin_opts":"server;loglevel=none;path=/anime",
  46. "nameserver":"1.1.1.1",
  47. "reuse_port": true,
  48. "mode": "tcp_only"
  49. }
  50. Сохраняем ctrl + o, закрываем ctrl + x
  51. sudo nano /etc/systemd/system/ss-v2ray.service - вставляем следующее:
  52.  
  53. [Unit]
  54. Description=Shadowsocks-libev with V2RAY-websocket obfuscation
  55. Documentation=man:shadowsocks-libev(8)
  56. After=network.target
  57.  
  58. [Service]
  59. Type=simple
  60. User=nobody
  61. Group=nogroup
  62. LimitNOFILE=51200
  63. ExecStart=/usr/local/bin/ss-server -c /etc/shadowsocks-libev/v2ray.json
  64.  
  65. [Install]
  66. WantedBy=multi-user.target
  67.  
  68. Сохраняем ctrl + o, закрываем ctrl + x
  69. sudo systemctl enable ss-v2ray.service  - включаем сервис
  70.  
  71. 4. Настраиваем клиент:
  72. Конфиг клиента для пользователей виндовс (<домен> заменить на свой домен, <пароль> на придуманный ранее пароль):
  73. server addr - <домен>
  74. server port - 80
  75. password - <пароль>
  76. encryption - xchacha20-ietf-poly1305
  77. plugin program - v2ray
  78. plugin options - host=<домен>;path=/anime
  79. proxy port - локальный порт куда будем направлять браузер (по дефолту 1080, можно не трогать)
  80.  
  81. Конфиг клиента для пользователей линукс (<домен> и <пароль> заменить на свои домен и пароль):
  82.  
  83. sudo nano /etc/shadowsocks-libev/v2ray.json - вставляем (путь к плагину может быть другим)
  84.  
  85. {
  86. "server":"<домен>",
  87. "server_port":80,
  88. "local_port":1080,
  89. "password":"<пароль>",
  90. "timeout":600,
  91. "method":"xchacha20-ietf-poly1305",
  92. "plugin":"/etc/shadowsocks-libev/v2ray-plugin",
  93. "plugin_opts":"host=<домен>;path=/anime",
  94. "reuse_port": true,
  95. "mode": "tcp_only"
  96. }
  97.  
  98. sudo nano /etc/systemd/system/ss-v2ray.service - вставляем (путь к ss-local может быть другим):
  99.  
  100. [Unit]
  101. Description=Daemon to start Shadowsocks Client with v2ray plugin
  102. Wants=network-online.target
  103. After=network.target
  104.  
  105. [Service]
  106. Type=simple
  107. ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/v2ray.json
  108.  
  109. [Install]
  110. WantedBy=multi-user.target
  111.  
  112.  
  113. sudo systemctl enable ss-v2ray.service - включаем сервис клиента
  114.  
  115. 5. Настраиваем nginx (<домен> заменить на свой домен):
  116. sudo rm /etc/nginx/sites-available/default && sudo rm /etc/nginx/sites-enabled/default - удаляем дефолтный конфиг
  117. sudo nano /etc/nginx/sites-available/<домен> - вставляем следующее:
  118. server {
  119.         listen 80;
  120.         #listen [::]:80;
  121.         server_name <домен>;
  122.         root /usr/share/nginx/html/<домен>;
  123.         index index.html;
  124.         location /anime {
  125.             proxy_redirect off;
  126.             proxy_http_version 1.1;
  127.             proxy_pass http://localhost:8008;
  128.             proxy_set_header Host $http_host;
  129.             proxy_set_header Upgrade $http_upgrade;
  130.             proxy_set_header Connection "upgrade";
  131.         }
  132.  
  133. }
  134. Сохраняем ctrl + o, закрываем ctrl + x
  135. sudo ln -s /etc/nginx/sites-available/<домен> /etc/nginx/sites-enabled/ - линкуем конфиг
  136.  
  137. sudo systemctl restart nginx - рестартим энжинкс
  138. sudo systemctl restart ss-v2ray - рестартим v2ray (пердольки на линуксе тыкают в своей консоли тоже самое чтобы запустить клиент)
  139. Переходим на свой сайт, убеждаемся, что все работает.
  140.  
  141. Ставим прокси расширение для браузера (например Proxy SwitchyOmega, протокол - socks5, сервер - 127.0.0.1, порт - 1080)
  142. Все! Теперь провайдер видит как от вас к серверам клауды идет обычный http, при этом если фрином решит просканировать наш домен, он найдет нашу страничку и пройдет мимо (фрином может отобрать домен, если ничего не найдет).
RAW Paste Data