View difference between Paste ID: vdyeVb68 and CpKBhNC3
SHOW: | | - or go back to the newest paste.
1-
Пердолинг shadowsocks с v2ray плагином через cloudflare в tls режиме с nginx перед ss для Ubuntu.
1+
Всевозможный пердолинг Xray. Xray по vless и vmess через клаудфлер, а так же по vless в йоба XTLS режиме чтобы было еще быстрее. (бонусом голые теневые носочки иксрей эдишн)
2
3
-1. Зочем?
4-
Получаем фриномовский домен и привязываем его к клауде, см 1 и 2 части инструкции ss over cf в шапке (https://telegra.ph/shadowsocks-over-cloudflare-05-17)
4+
В отличии от Shadowsocks с v2ray плагином умеет в обфускацию udp, по заявлениям разрабов более производителен за счет устранения лишнего слоя шифрования в случае с VLESS, а так же доработки ошибок v2ray с которого xray и был форкнут; проще установка и настройка т.к. отпадает необходимость как в пердолинге самого SS так и в обмазывании его всевозможными плагинами, никакого зоопарка, один конфиг файл. В случае с VMESS результат будет идентичен этому https://pastebin.com/CpKBhNC3, только без лишней прослойки в виде shadowsocks и с меньшими телодвижениями.
5-
Скачиваем и устанавливаем Shadowsocks клиент и плагин к нему - виндусятники берут по ссылкам https://github.com/shadowsocks/shadowsocks-windows/releases/latest и https://github.com/shadowsocks/v2ray-plugin/releases/latest (разархивируем в папку с клиентом и переименовываем в v2ray.exe), жмупинусники делают у себя на пеках пункты 4 и 4.5 (кроме конфига, его брать из пункта 5)
5+
6-
Скачиваем и распаковываем странички нашего сайта https://anonfiles.com/g0c4Eblaud (если очень хочется, можно использовать свои хтмлки)
6+
7
Получаем фриномовский домен и привязываем его к клаудфлер, см 1 и 2 части инструкции ss over cf в шапке ( https://telegra.ph/shadowsocks-over-cloudflare-05-17 )
8-
1. Устанавливаем nginx на своей впсочке:
8+
Помимо этого в дашборде CF нужно добавить поддомен - A запись webgame указывающая на ip впски и для этой же записи под proxy status переключить тумблер в состояние DNS Only.
9
10
1. Устанавливаем xray и nginx на своей впсочке:
11
Коннектимся к серверу, в консоли на своей пеке вводим:
12-
sudo apt install nginx
12+
13
sudo apt update && sudo apt upgrade
14-
2. Перекидываем хтмлки на сервак(<домен> заменить на свой домен):
14+
sudo apt -y install curl git nginx libnginx-mod-stream - ставим вебсервер и прочие штуки которые нам понадобятся
15-
В консоли своей впски вводим:
15+
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install - ставим xray
16-
sudo mkdir /var/www/<домен>
16+
cd /var/www
17-
exit - закрываем ssh соединение
17+
git clone https://github.com/gd4Ark/2048.git 2048 - наша страничка-пустышка для товарища фринома/товарища майора/товарища Xi.
18-
В консоли на своей пеке вводим:
18+
19-
scp <путь/к/распакованным/хтмлкам> root@<ip впски>:/var/www/<домен>/
19+
2. Настраиваем nginx (<домен> заменить на свой домен):
20
sudo rm /etc/nginx/sites-available/default && sudo rm /etc/nginx/sites-enabled/default - удаляем дефолтный конфиг
21-
3. Настраиваем nginx чтобы показывал нашу страничку (<домен> заменить на свой домен):
21+
22-
ssh root@<ip впски> - снова подключаемся к нашей впс по ssh
22+
23
server {
24
    listen 80;
25
    #listen [::]:80;
26
    server_name <домен>;
27
    root /var/www/2048;
28
    index index.html;
29
}
30-
    root /var/www/<домен>;
30+
31
Сохраняем ctrl + o, закрываем ctrl + x
32
sudo ln -s /etc/nginx/sites-available/<домен> /etc/nginx/sites-enabled/ - включаем сайт
33-
    location /anime {
33+
sudo nano /etc/nginx/sites-available/webgame.<домен> - вставляем следующее
34-
        proxy_redirect off;
34+
35-
        proxy_http_version 1.1;
35+
36-
        proxy_pass http://localhost:8008;
36+
37-
        proxy_set_header Host $http_host;
37+
38-
        proxy_set_header Upgrade $http_upgrade;
38+
    server_name webgame.<домен>;
39-
        proxy_set_header Connection "upgrade";
39+
    root /var/www/2048;
40
    index index.html;
41
}
42
43
Сохраняем ctrl + o, закрываем ctrl + x
44
sudo ln -s /etc/nginx/sites-available/webgame.<домен> /etc/nginx/sites-enabled/ - включаем сайт
45
sudo systemctl restart nginx - рестартим энжиникс
46-
Открываем свой сайт в браузере и убеждаемся в том, что все работает.
46+
47
3. Получаем lets encrypt сертификат (<домен> заменить на свой домен):
48
sudo apt install snapd
49-
4. Ставим носки:
49+
50-
sudo mkdir /etc/ss-go - создаем папку под бинарники сс
50+
51-
sudo wget https://github.com/shadowsocks/go-shadowsocks2/releases/download/v0.1.4/shadowsocks2-linux.gz - качаем бинарник сс с гитхаба
51+
sudo certbot --nginx - делаем два раза, для основного домена и для поддомена.
52-
sudo gzip -d shadowsocks2-linux.gz - распакуем архив сс-го
52+
53-
sudo mv shadowsocks2-linux /etc/ss-go/ss-go - переносим и переименуем бинарник
53+
Копируем сертификаты в удобное для xray место и делаем копирование автоматическим при их обновлении
54-
sudo chmod +x /etc/ss-go/ss-go - делаем бинарник исполняемым
54+
nano /etc/letsencrypt/renewal-hooks/post/001-copy-cert.sh - вставляем:
55-
sudo setcap “cap_net_bind_service=+eip” /etc/ss-go/ss-go - повышаем права сс и позволяем ему занимать привилегированные порты
55+
56
#!/bin/bash
57-
4.5 v2ray плагин к носкам:
57+
cp /etc/letsencrypt/live/webgame.<домен>/fullchain.pem /usr/local/etc/xray/fullchain.pem
58-
sudo wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.1/v2ray-plugin-linux-amd64-v1.3.1.tar.gz - скачиваем плагин (тут вместо "v1.3.1/v2ray-plugin-linux-amd64-v1.3.1.tar.gz" может быть что-то другое, последняя версия лежит тут https://github.com/shadowsocks/v2ray-plugin/releases/latest)
58+
cp /etc/letsencrypt/live/webgame.<домен>/privkey.pem /usr/local/etc/xray/privkey.pem
59-
sudo tar -xf v2ray-plugin-linux-amd64-v1.3.1.tar.gz - разархивируем сам плагин, тут опять же может быть другой файл в зависимости от скачиваемой версии.
59+
chown nobody:nogroup /usr/local/etc/xray/fullchain.pem
60-
sudo mv v2ray-plugin_linux_amd64 /etc/ss-go/v2ray-plugin - переносим и переименуем плагин.
60+
chown nobody:nogroup /usr/local/etc/xray/privkey.pem
61-
sudo setcap 'cap_net_bind_service=+eip' /etc/ss-go/v2ray-plugin - даем возможность v2ray-плагину занимать привилегированные порты.
61+
62-
sudo nano /etc/systemd/system/ss-v2ray.service - вставляем следующее (вместо <пароль> нужно придумать пароль):
62+
63
sudo sh /etc/letsencrypt/renewal-hooks/post/001-copy-cert.sh
64-
[Unit]
64+
65-
Description=Go-shadowsocks2 with V2RAY-websocket obfuscation
65+
4.Еще раз правим конфиги nginx (<домен> заменить на свой домен):
66-
After=network.target
66+
sudo nano /etc/nginx/nginx.conf - вставляем в самый конец
67
68-
[Service]
68+
stream {
69-
Type=simple
69+
        map $ssl_preread_server_name $example_multi {
70-
User=nobody
70+
                webgame.<домен> xtls;
71-
Group=nogroup
71+
                <домен> xrayovercf;
72-
LimitNOFILE=51200
72+
73-
ExecStart=/etc/ss-go/ss-go -s localhost:8008 -password <пароль> -cipher AEAD_CHACHA20_POLY1305 -plugin /etc/ss-go/v2ray-plugin -plugin-opts "server;loglevel=none;path=/anime"
73+
        upstream xtls {
74
                server 127.0.0.1:20001;
75-
[Install]
75+
76-
WantedBy=multi-user.target
76+
        upstream xrayovercf {
77
                server 127.0.0.1:20002;
78
        }
79-
sudo systemctl enable ss-v2ray.service  - включаем сервис
79+
        server {
80
                listen 443      reuseport;
81
                #listen [::]:443 reuseport;
82
                proxy_pass      $example_multi;
83-
Конфиг клиента для пользователей виндовс (<домен> заменить на свой домен, <пароль> на придуманный ранее пароль):
83+
                ssl_preread     on;
84
        }
85-
server addr - <домен>
85+
86-
server port - 443
86+
87-
password - <пароль>
87+
88-
encryption - chacha20-ietf-poly1305
88+
sudo nano /etc/nginx/sites-available/<домен> - удаляем все и вставляем следующее
89-
plugin program - v2ray
89+
90-
plugin options - tls;host=<домен>;path=/anime
90+
91-
proxy port - локальный порт куда будем направлять браузер (по дефолту 1080, можно не трогать)
91+
        listen 80;
92
        server_name <домен>;
93-
Конфиг клиента для пользователей линукс (<домен> и <пароль> заменить на свои домен и пароль):
93+
        if ($host = <домен>) {
94
                return 301 https://$host$request_uri;
95-
sudo nano /etc/systemd/system/ss-v2ray.service - вставляем:
95+
96
        return 404;
97-
[Unit]
97+
98-
Description=Daemon to start Shadowsocks Client with v2ray plugin
98+
99-
Wants=network-online.target
99+
100-
After=network.target
100+
        listen 127.0.0.1:20002 ssl;
101
        server_name <домен>;
102-
[Service]
102+
        index index.html;
103-
Type=simple
103+
        root /var/www/2048;
104-
ExecStart=/etc/ss-go/ss-go -c <домен>:443 -password <пароль> -cipher AEAD_CHACHA20_POLY1305 -socks :1080 -plugin /etc/ss-go/v2ray-plugin -plugin-opts "tls;host=<домен>;path=/anime"
104+
105
        ssl_certificate /etc/letsencrypt/live/<домен>/fullchain.pem;
106-
[Install]
106+
        ssl_certificate_key /etc/letsencrypt/live/<домен>/privkey.pem;
107-
WantedBy=multi-user.target
107+
        include /etc/letsencrypt/options-ssl-nginx.conf;
108
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
109
110-
sudo systemctl enable ss-v2ray.service - включаем сервис клиента
110+
        location /vless {
111
        	proxy_redirect off;
112-
6. Получаем lets encrypt сертификат:
112+
        	proxy_http_version 1.1;
113
        	proxy_pass http://localhost:11111;
114
        	proxy_set_header Host $http_host;
115
        	proxy_set_header Upgrade $http_upgrade;
116-
sudo certbot --nginx
116+
        	proxy_set_header Connection "upgrade";
117-
После этого в консолечке должно быть поздравление о том, что все прошло успешно, и путь до сертификата.
117+
118
119-
sudo systemctl restart nginx - рестартим энжинкс
119+
        location /vmess {
120-
sudo systemctl restart ss-v2ray - рестартим v2ray (пердольки на линуксе тыкают в своей консоли тоже самое чтобы запустить клиент)
120+
        	proxy_redirect off;
121
        	proxy_http_version 1.1;
122-
7. Настраиваем клауду:
122+
        	proxy_pass http://localhost:11112;
123
        	proxy_set_header Host $http_host;
124
        	proxy_set_header Upgrade $http_upgrade;
125
        	proxy_set_header Connection "upgrade";
126-
Ставим прокси расширение для браузера (например Proxy SwitchyOmega, протокол - socks5, сервер - 127.0.0.1, порт - 1080)
126+
127-
Все! Если перейти на свой сайт, он должен открыться через https. Теперь провайдер видит как от вас к серверам клауды идет настоящий https, при этом если фрином решит просканировать наш домен, он найдет нашу страничку и пройдет мимо (фрином может отобрать домен, если ничего не найдет).
127+
128
}
129
130
Сохраняем ctrl + o, закрываем ctrl + x
131
sudo nano /etc/nginx/sites-available/webgame.<домен> - удаляем все и вставляем следующее
132
133
server {
134
        listen 80;
135
        server_name webgame.<домен>;
136
        if ($host = webgame.<домен>) {
137
                return 301 https://$host$request_uri;
138
        }
139
        return 404;
140
}
141
142
server {
143
        listen 127.0.0.1:20009;
144
        server_name webgame.<домен>;
145
        index index.html;
146
        root /var/www/2048;
147
}
148
Сохраняем ctrl + o, закрываем ctrl + x
149
sudo systemctl restart nginx - рестартим энжиникс
150
151
5. Настраиваем xray:
152
cat /proc/sys/kernel/random/uuid - генерим uuid и куда-нибудь сохраняем, это будет наш пароль.
153
sudo nano /usr/local/etc/xray/config.json - вставляем следующее (не забываем менять <пароль> на сгенерированный uuid):
154
155
{
156
    "inbounds": [
157
        {
158
            "port": 8080,
159
            "protocol": "shadowsocks",
160
            "settings": {
161
                "clients": [
162
                    {
163
                        "password": "<пароль>",
164
                        "method": "chacha20-poly1305"
165
                    }
166
                ],
167
                "network": "tcp,udp"
168
            }
169
        },
170
        {
171
            "listen": "127.0.0.1",
172
            "port": 20001,
173
            "protocol": "vless",
174
            "settings": {
175
                "clients": [
176
                    {
177
                        "id": "<пароль>",
178
                        "flow": "xtls-rprx-direct",
179
                        "level": 0
180
                    }
181
                ],
182
                "decryption": "none",
183
                "fallbacks": [
184
                    {
185
                        "dest": "20009" # port of fallback site
186
                    }
187
                 ]
188
            },
189
            "streamSettings": {
190
                "network": "tcp",
191
                "security": "xtls",
192
                "xtlsSettings": {
193
                    "alpn": [
194
                        "http/1.1"
195
                    ],
196
                    "certificates": [
197
                        {
198
                            "certificateFile": "/usr/local/etc/xray/fullchain.pem", # your domain cert, absolute path
199
                            "keyFile": "/usr/local/etc/xray/privkey.pem" # your private key, absolute path
200
                        }
201
                    ]
202
                }
203
            }
204
        },
205
        {
206
            "port": 11111,
207
            "listen": "127.0.0.1",
208
            "protocol": "vless",
209
            "settings": {
210
                "clients": [
211
                    {
212
                        "id": "<пароль>",
213
                        "level": 0
214
                    }
215
                ],
216
                "decryption": "none"
217
            },
218
            "streamSettings": {
219
                "network": "ws",
220
                "security": "none",
221
                "wsSettings": {
222
                    "path": "/vless"
223
                }
224
            }
225
        },
226
        {
227
            "listen": "127.0.0.1",
228
            "port": 11112,
229
            "protocol": "vmess",
230
            "settings": {
231
                "clients": [
232
                    {
233
                        "id": "<пароль>",
234
                        "alterId": 64
235
                    }
236
                ]
237
            },
238
            "streamSettings": {
239
                "network": "ws",
240
                "security": "chacha20-poly1305",
241
                "wsSettings": {
242
                    "path": "/vmess"
243
                }
244
            }
245
        }
246
    ],
247
    "outbounds": [
248
        {
249
            "protocol": "freedom"
250
        }
251
    ]
252
}
253
254
Сохраняем ctrl + o, закрываем ctrl + x
255
sudo systemctl restart xray - рестартим иксрей.
256
257
258
5. Настраиваем клиент:
259
Пользователи виндовс берут клиент тут - https://github.com/2dust/v2rayN и распаковывают в удобное место. Если вместо интерфейса иероглифы, нажать на знак вопроса и выбрать ангельский язык. В настройках - Core: basic setting - смотрим какой у нас локальный порт и  убеждаемся что стоит галочка напротив Enable UDP, в v2rayN settings - ставим галку напротив Automatically start at system startup и убеждаемся что Core Type выбран Xray.
260
261
Добавляем shadowsocks - кнопка Servers - Add [Shadowsocks] server:
262
Server Address - ip впски
263
Server Port - 8080
264
Password - вспоминаем наш сгенерированый выше UUID
265
Encryption - chacha20-poly1305
266
Alias - shadowsocks@<ip впски>:8080
267
268
Добавляем VLESS XTLS - кнопка Servers - Add [VLESS] server:
269
Address - webgame.<домен>
270
Port - 443
271
UUID - вспоминаем наш сгенерированый выше UUID
272
Flow - xtls-rprx-direct
273
Encryption - none
274
Alias - XTLS@webgame.<домен>:443
275
Transport protocol - tcp
276
Camouflage type - none
277
Camouflage domain - webgame.<домен>
278
Path - оставляем пустым
279
TLS - xtls 
280
allowInsecure - false
281
Остальное не трогаем
282
283
Добавляем VLESS через CF - кнопка Servers - Add [VLESS] server:
284
Address - <домен>
285
Port - 443
286
UUID - вспоминаем наш сгенерированый выше UUID
287
Flow - пусто
288
Encryption - none
289
Alias - VLESSoverCF@<домен>:443
290
Transport protocol - ws
291
Camouflage type - none
292
Camouflage domain - <домен>
293
Path - /vless
294
TLS - tls 
295
allowInsecure - false
296
Остальное не трогаем
297
298
Добавляем VMESS через CF - кнопка Servers - Add [VMess] server:
299
Address - <домен>
300
Port - 443
301
UUID - вспоминаем наш сгенерированый выше UUID
302
Flow - пусто
303
Encryption - chacha20-poly1305
304
Alias - VMESSoverCF@<домен>:443
305
Transport protocol - ws
306
Camouflage type - none
307
Camouflage domain - <домен>
308
Path - /vmess
309
TLS - tls
310
allowInsecure - false
311
Остальное не трогаем
312
313
Для андроида существует https://github.com/2dust/v2rayNG - можно взять в гугловском плей сторе под тем же названием.
314
На яблоко есть Shadowrocket
315
Линуксоиды ебyтся в консолечку, как - написано на гитхабе проекта.
316
317
7. Настраиваем клаудфлер:
318
В настройках своего домена на cloudflare, в разделе Crypto ставим Full(strict).
319
Переходим на свой сайт, убеждаемся, что все работает.
320
321
Ставим прокси расширение для браузера (например Proxy SwitchyOmega, протокол - socks5, сервер - 127.0.0.1, порт - 1080)