Cloudflare代理配置端口
一、前提条件
- 已有注册好的Cloudflare账号(免费即可)。
- 已将你的域名成功接入Cloudflare(DNS已指向Cloudflare的Name Server)。
二、Cloudflare可用端口概述
Cloudflare 仅能代理特定的HTTP和HTTPS端口。常用端口总结如下:
协议 | 可用端口 |
---|---|
HTTP | 80, 8080, 8880, 2052, 2082, 2086, 2095 |
HTTPS | 443, 8443, 2053, 2083, 2087, 2096 |
如果你的应用需要使用其他端口(如SSH、FTP),则必须使用Cloudflare的Spectrum服务(通常为付费企业版服务)。
三、具体配置流程
以将服务器的8080
端口通过Cloudflare实现域名访问为例:
① 服务器端准备
确保你的服务器端应用正常监听指定端口:
# 例如:测试8080端口是否开启
sudo netstat -tunlp | grep 8080
② Cloudflare DNS设置
- 登录Cloudflare后台:https://dash.cloudflare.com/
- 选择已接入Cloudflare的域名。
- 点击菜单栏中的
DNS
选项卡。
添加DNS记录:
- 点击
Add record
(添加记录)。 - 类型选择
A
或CNAME
:- 若为IP地址(例如服务器IP),选择
A
。 - 若为其他域名,选择
CNAME
。
- 若为IP地址(例如服务器IP),选择
示例:
字段 | 示例值 |
---|---|
Type | A |
Name | example (即你希望访问的子域名) |
IPv4 address | 你的服务器IP |
Proxy status | 选择橙色云图标(✅代理) |
- 最终访问域名形式如:
example.yourdomain.com
③ 服务端口访问说明
Cloudflare不会直接显示端口号在URL中。因此:
- 如果你的服务器使用Cloudflare默认支持的端口(如8080),你在访问时不需要明确指定端口号。
- 实际请求如:
http://example.yourdomain.com
- 实际请求如:
- 你的服务器上仍然监听的是8080端口,Cloudflare则自动将访问请求代理至此端口。
示例场景:
用户访问URL | 实际服务器监听端口 |
---|---|
http://example.yourdomain.com |
8080 |
https://example.yourdomain.com (HTTPS) |
8443、443等(按需设置) |
四、HTTPS 配置
若你希望使用HTTPS访问:
- 到Cloudflare后台 →
SSL/TLS
选项:- 推荐设置为
Flexible
(最简单)或Full
模式。
- 推荐设置为
- 如果是
Full
模式(推荐):- 服务器上需要配置SSL证书(可以使用免费的证书如Let’s Encrypt)。
示例 Nginx 配置(Full 模式):
server {
listen 8443 ssl;
server_name example.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
- Cloudflare → 8443(HTTPS)→ Nginx → 8080(HTTP内网服务)
五、其他非标准端口(如SSH、FTP)支持方法
- 默认Cloudflare免费版不支持SSH、FTP等非HTTP端口代理。
- 若有这类需求,可以购买Cloudflare Spectrum服务:
- 在Cloudflare后台,进入Spectrum(频谱)服务,选择协议和端口映射到你的服务器IP地址即可。
六、常见问题与解决办法
- 访问失败或返回522错误:
- 检查服务器端防火墙是否允许Cloudflare IP段访问服务器端口。
- 检查服务器程序是否正常运行,端口是否已开启。
- SSL问题:
- Flexible模式下,无需服务器端SSL证书(Cloudflare自动处理)。
- Full模式必须安装SSL证书。