mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
1843 字
5 分钟
openlist绑定域名
2026-02-23

不乱于心,不困于情,不畏将来,不念过往。#


前言: 写在前面:文章由AI生成,内容可能与实际稍有不符。 参考文章:如何搭建一个免费的远程办公环境

要实现通过域名访问本地 http://localhost:5244 的 OpenList 服务,你需要结合内网穿透(将内网暴露到公网)和 Nginx 反向代理(绑定域名、处理SSL、隐藏端口)。

通常有两种主流架构,根据你的实际情况选择:

  • 架构 A(推荐,有公网服务器): 域名解析 -> 公网服务器 Nginx -> Frp/Cpolar 穿透通道 -> 本地 OpenList。
  • 架构 B(无公网服务器): 域名解析 -> Cloudflare Tunnel/Ngrok 等服务 -> 本地 OpenList。

鉴于你明确提到了 Nginx 反向代理,我将重点讲解架构 A(使用 VPS + Frp 内网穿透工具)的完整配置流程。


架构A:有公网服务器#

点击查看

准备工作#

  1. 一个域名:例如 openlist.yourdomain.com
  2. 一台公网服务器:用于运行 Nginx 和 Frp 服务端。
  3. 本地电脑:运行 OpenList (端口 5544) 和 Frp 客户端。

配置域名解析#

登录你的域名服务商控制台(如阿里云、Cloudflare等),添加一条 A 记录:

  • 主机记录openlist (或者你想用的前缀)
  • 记录类型A
  • 记录值:你的公网服务器 IP 地址

搭建内网穿透#

这里以开源工具 FRP (Fast Reverse Proxy) 为例。你需要两个文件:frps(服务端,放公网服务器)和 frpc(客户端,放本地电脑)。

1. 公网服务器配置#

编辑 frps.toml (或 frps.ini):

bindPort = 7000
# 设置穿透 token (密码),防止被滥用
auth.token = "your_secure_password"
# 如果 Nginx 和 Frp 在同一台服务器,建议使用 127.0.0.1 进行连接
# 但为了通用性,我们让 frps 监听一个端口供 Nginx 代理
vhostHTTPPort = 8080

启动服务端:./frps -c frps.toml

2. 本地电脑配置#

编辑 frpc.toml (或 frpc.ini):

serverAddr = "你的公网服务器IP"
serverPort = 7000
auth.token = "your_secure_password"
[[proxies]]
name = "openlist-web"
type = "http"
# 本地 OpenList 的地址和端口
localIP = "127.0.0.1"
localPort = 5544
# 自定义域名,必须与 Nginx 代理的域名一致
customDomains = ["openlist.yourdomain.com"]

启动客户端:./frpc -c frpc.toml

原理说明:当请求到达公网服务器时,Frp 会根据请求头中的域名 (Host) 判断这是 OpenList 的流量,并将其转发给本地的 5544 端口。

配置 Nginx 反向代理#

在公网服务器上配置 Nginx,将域名请求转发给 Frp 监听的端口(即上面的 vhostHTTPPort = 8080)。

创建 Nginx 配置文件 /etc/nginx/conf.d/openlist.conf

server {
listen 80;
server_name openlist.yourdomain.com; # 你的绑定域名
# 强制跳转 HTTPS (建议配置 SSL 后开启)
# return 301 https://$host$request_uri;
location / {
# 将请求转发给本地的 Frp 服务端端口
proxy_pass http://127.0.0.1:8080;
# 关键的 Header 传递
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 支持 WebSocket (OpenList 可能需要)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
# 超时设置
proxy_connect_timeout 60s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
}

重载 Nginx 配置:

nginx -t # 检查语法
nginx -s reload

配置 HTTPS (SSL 证书)#

为了安全,强烈建议配置 HTTPS。你可以使用 Let’s Encrypt 免费证书。

使用 Certbot 自动配置:

# 安装 certbot (以 Ubuntu 为例)
sudo apt install certbot python3-certbot-nginx
# 自动申请并修改 Nginx 配置
sudo certbot --nginx -d openlist.yourdomain.com

Certbot 会自动修改 Nginx 配置文件,添加 443 监听并自动续期。


架构B:无需公网服务器#

点击查看

如果你没有公网服务器,可以使用 Cloudflare Tunnel,它集成了穿透和反向代理功能,甚至不需要自己配置 Nginx。

前置条件#

  1. 拥有一个域名(例如 yourdomain.com)。
  2. 将域名的 DNS 托管迁移到 Cloudflare(在 Cloudflare 官网注册账号,添加站点,然后在域名注册商处修改 NS 服务器即可,全程免费)。

安装 Cloudflared 客户端#

在你的本地电脑(运行 OpenList 的那台机器)上安装 cloudflared 工具。

  • Windows: 下载 cloudflared.exe 并将其放入系统环境变量路径中,或者直接放在 OpenList 同目录下。
  • Linux/Mac:
    # Mac
    brew install cloudflare/cloudflare/cloudflared
    # Linux (Debian/Ubuntu)
    wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
    sudo dpkg -i cloudflared-linux-amd64.deb

登录认证#

在本地终端(CMD 或 PowerShell 或 SSH)执行以下命令:

cloudflared tunnel login
  1. 执行后会输出一个网址,点击链接打开浏览器。
  2. 在浏览器中选择你在 Cloudflare 上托管的域名(例如 yourdomain.com)并授权。
  3. 授权成功后,终端会显示 “You have successfully logged in”。

创建隧道#

创建一个名为 openlist-tunnel 的隧道(名字可以自定义):

cloudflared tunnel create openlist-tunnel
  • 执行成功后,系统会生成一个 UUID,并生成一个凭证文件。
  • 重要:记下生成的 UUID,后面会用到。

配置隧道(代替 Nginx 反向代理)#

这是最关键的一步,相当于在配置 Nginx 的 proxy_pass

创建一个配置文件 config.yml(建议放在 C:\Users\你的用户名\.cloudflared\ 目录下,或者 Linux 的 ~/.cloudflared/ 下)。

config.yml 内容如下:

tunnel: <你的隧道UUID>
credentials-file: /root/.cloudflared/<你的隧道UUID>.json # Windows路径示例: C:\Users\Admin\.cloudflared\<UUID>.json
ingress:
# 规则1:绑定域名指向本地 OpenList 地址
- hostname: openlist.yourdomain.com
service: http://localhost:5544
# 规则2:兜底规则(必须要有)
- service: http_status:404

解释:

  • hostname: 你想要绑定的域名。
  • service: 本地服务的地址,即 http://localhost:5544。Cloudflare 会自动处理 HTTPS 加密,你本地只需提供 HTTP 服务即可。

添加 DNS 解析#

将域名解析指向该隧道。执行以下命令:

cloudflared tunnel route dns openlist-tunnel openlist.yourdomain.com
  • 这条命令会自动在 Cloudflare 控制台添加一条 CNAME 记录,指向你的隧道。

第六步:启动隧道#

一切准备就绪,启动服务:

cloudflared tunnel run openlist-tunnel

如果输出类似 Connection registered 的日志,说明连接成功。

现在,访问 https://openlist.yourdomain.com,你就能穿透内网访问本地的 OpenList 了。

开机再次使用#

  1. 以后都要手动启动(每次开机都要做) 按 Win + R,输入 cmd 回车。 输入启动命令:
Terminal window
cloudflared tunnel run yuqi-open

⚠️注意:这个黑框框(命令行窗口)不能关闭,最小化即可。一旦关闭,服务就会停止。 2. 一劳永逸(设置开机自启,强烈建议)

  • 以管理员身份打开 CMD:
  • 搜索 cmd -> 右键 -> 以管理员身份运行。
  • 执行安装命令:
  • 输入以下命令(确保路径正确):
Terminal window
cloudflared --config C:\Users\48489\.cloudflared\config.yml service install
  • 启动服务:
Terminal window
net start cloudflared

完成: 以后开机,它会自动在后台运行,您不需要再管它了。#

进阶:如何像 Nginx 一样配置 HTTPS 和缓存?#

在架构 B 中,你不需要手动配置 SSL 证书。Cloudflare 会自动为你的域名颁发通配符 SSL 证书,并强制开启 HTTPS。

如果你需要进行类似 Nginx 的高级配置(如 IP 黑名单、Basic Auth 密码保护、缓存规则),你需要登录 Cloudflare 控制台

  1. 进入你的域名控制台。
  2. 点击左侧 SSL/TLS -> 将加密模式改为 Full (strict)(推荐,最安全)。
  3. 点击 Rules(规则):
    • Page Rules: 可以添加规则,例如 Cache Level: Everything 来缓存流量。
    • Access: 可以添加“邮箱验证码登录”或“IP 限制”,比 Nginx 的 auth_basic 更安全强大。

常见问题#

  1. 能不能本地用 Nginx 再套一层? 如果你习惯使用 Nginx 配置(比如有复杂的重写规则),可以将架构改为: Cloudflare Tunnel -> 本地 Nginx (监听 80) -> OpenList (5544)

    此时 config.yml 中的 service 改为:service: http://localhost:80,然后在本地 Nginx 里配置反向代理到 5544。通常情况下直接连接 OpenList 更简单。

  2. 速度慢怎么办? Cloudflare 在国内访问速度尚可,但有时会不稳定。如果追求极致速度且没有公网 IP,建议考虑国内的穿透服务(如 CpolarSakura Frp),但国内服务通常需要实名认证且需备案域名才能绑定自定义域名。Cloudflare 是目前无需备案域名绑定自定义域名的最佳方案。

  3. 电脑开机后,服务自动启动不了怎么办? 一键启动脚本:

    @echo off
    chcp 65001 >nul
    title Cloudflare Tunnel (管理员)
    echo 正在以管理员身份打开 CMD 并启动 Tunnel...
    echo.
    :: 以管理员身份打开 CMD 并执行 cloudflared tunnel run yuqi-open
    powershell -Command "Start-Process cmd -ArgumentList '/k cd /d D:\cloudflared&& cloudflared tunnel run yuqi-open' -Verb RunAs"
    echo.
    echo 已启动,请查看弹出的管理员 CMD 窗口
    timeout /t 2 /nobreak >nul

    ⚠️注意:以记事本或其他ide新建文件,保存为 .bat 格式,将 脚本中D:\cloudflared改为你的cloudflared安装路径,双击运行即可。


🌈友情文章#

分享

如果这篇文章对你有帮助,欢迎分享给更多人!

openlist绑定域名
https://yqamm.eu.cc/posts/20260222网挂/20260222网挂/
作者
QTY
发布于
2026-02-23
许可协议
CC BY 4.0

部分信息可能已经过时