无公网却HTTPS无端口
最近使用Cloudflare Tunnel进行内网穿透,感觉非常方便,只需要一个域名,即可无公网开网站,而且自动配置HTTPS证书。
这样可以确保浏览器安全访问且没有难看的端口号。
速度如图:
实测速度不错,如果想要SaaS加速的话,可以测试下,对我来说这个够用了。
下面教程开始:
准备条件
- 一台 Debian 12 主机
-
已注册并管理的 Cloudflare 账号
-
已在 Cloudflare DNS 中添加并解析好的域名(例如
scendr.dpdns.org
)
安装内网穿透
-
下载并安装 cloudflared DEB 包
# 从 GitHub Release 下载最新的 cloudflared 安装包 curl -L http://hk-proxy.gitwarp.com/https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb -o cloudflared.deb # 安装 cloudflared sudo dpkg -i cloudflared.deb
- 验证安装结果
cloudflared --version # 示例输出:cloudflared version 2025.7.0 (built 2025-07-03-1705 UTC)
- 登录 Cloudflare 账号以获取证书
# 该命令会在控制台输出一个 URL,打开后扫码或登录即可 cloudflared tunnel login # 登录成功后,会在 ~/.cloudflared/ 下生成 cert.pem
- 创建 Tunnel
# 这里以“Debian”做为 Tunnel 名称,生成的隧道 ID 会写入 JSON 凭证文件 cloudflared tunnel create Debian # 记录下输出的隧道 ID(比如:09e3885d-0f96-4182-bf7f-5153417f40f4)
- 编辑 Tunnel 配置
vim ~/.cloudflared/config.yaml
在文件中填入:
tunnel: 09e3885d-0f96-4182-bf7f-5153417f40f4 # 第 4 步创建的隧道 ID credentials-file: /root/.cloudflared/09e3885d-0f96-4182-bf7f-5153417f40f4.json ingress: - hostname: "*.scendr.dpdns.org" # 通配符子域名 service: http://127.0.0.1:80 # 转发到本地 NPM 的 80 端口 - service: http_status:404 # 默认 404 兜底
- 创建 systemd 单元文件
sudo tee /etc/systemd/system/cloudflared.service << 'EOF' [Unit] Description=Cloudflare Tunnel After=network.target [Service] Type=simple # 使用 config.yaml 启动,不指定名字参数 ExecStart=/usr/local/bin/cloudflared tunnel --config /root/.cloudflared/config.yaml run Restart=always RestartSec=5s [Install] WantedBy=multi-user.target EOF
- 启用并启动服务
# 重载 systemd 配置 sudo systemctl daemon-reload # 启动并检查状态 sudo systemctl start cloudflared sudo systemctl status cloudflared # 设置开机自启 sudo systemctl enable cloudflared
- 验证 DNS CNAME
dig +short CNAME test.scendr.dpdns.org # 应返回:09e3885d-0f96-4182-bf7f-5153417f40f4.cfargotunnel.com.
安装NPM
若Docker未安装则使用便捷脚本一键安装
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
方便快捷,Great推荐~
面板配置
- 打开浏览器访问
http://<你的宿主机 IP>:81
-
使用默认账号登录:
- Email:
[email protected]
-
Password:
changeme
- Email:
-
进入 Hosts → Proxy Hosts → Add Proxy Host:
-
Domain Names:
app.scendr.dpdns.org
(或其他子域) -
Scheme:
http://
-
Forward Hostname / IP: 127.0.0.1
-
Forward Port: 你的内网服务端口(如 Tailscale 联通的服务端口)
-
勾选 Block Common Exploits, Websockets Support(如需)
-
-
保存后即可通过
https://app.scendr.dpdns.org
访问内网服务(流量将经 Cloudflare Tunnel → NPM → 内网)。
小结
-
Cloudflare Tunnel 负责把外部流量穿透到本机 80 端口;
-
Nginx Proxy Manager 接收本地 80/81 端口流量,并在面板中灵活分发到不同内网服务;
-
二者采用 Host 模式共享网络,确保流量无缝互通。