0%

Cloudflare代理其他端口

Cloudflare代理除了80、443的其他端口。

1. 转移到v2ray

2019年10月,使用很久的自建ss完全断了。ss相当于代理人模式,相当于找一个和墙关系比较不错的代理人,让他转达一下自己的密语。代理人完蛋后,转移到了v2ray。v2ray相当于木马,利用一个墙不能干掉的代理人,把自己的密语混杂在代理人的被墙允许的语言中。

自己只有一个vps,装了一个docker的nginx,开启80、443端口,放了一个网站。有的时候,需要维修一下,停止80、443端口的nginx,这时v2ray因为部署到了443端口,也会停止工作。所以需要一个备用的端口,查询到Cloudflare是能代理其他端口的。

2. Cloudflare代理其他端口

官方文档说明的Cloudflare可以代理其他端口。安装一个非docker的nginx代理8880端口(HTTP)、2053端口(HTTPS)的流量。

nginx.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
server {
# Cloudflare 默认支持的 HTTP 端口:80,8080,8880,2052,2082,2086,2095。
listen 8880;
server_name cdnspare.mydomain.com;

location /v2ray-cdn { # 与 v2ray客户端 配置中的 path 保持一致
proxy_redirect off;
proxy_pass http://127.0.0.1:23001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;

# Show realip in v2ray access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location / { # v2ray伪装正常网站,同时兼具查看能否翻墙的功能
root /nginx/html/v2ray-decoy;
index index.html;
}
}

server {
# Cloudflare 默认支持的 HTTPS 端口:443,2053,2083,2087,2096,8443。
listen 2053 ssl;
server_name cdntlsspare.mydomain.com;

location /v2ray-cdn { # 与 v2ray 配置中的 path 保持一致
proxy_redirect off;
proxy_pass http://127.0.0.1:23001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;

# Show realip in v2ray access.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

ssl_certificate /nginx/httpscert/fullchain.pem;
ssl_certificate_key /nginx/httpscert/privkey.pem;

ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets on;

ssl_dhparam /nginx/httpscert/dhparam.pem;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# 一般推荐使用的ssl_ciphers值: https://wiki.mozilla.org/Security/Server_Side_TLS
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK';
ssl_prefer_server_ciphers on;

location / { #v2ray伪装正常网站,同时兼具查看能否翻墙的功能
root /nginx/html/v2ray-decoy;
index index.html;
}
}

其中proxy_pass使用vps本地的v2ray,nginx把请求转发到本地的v2ray。根路径是一个网站,用来伪装成正常网站。ssl证书可以通过acme工具申请到,而且可以申请到根域名和二级域名的通用证书,非常方便。