最开始只是想让自己的电脑能够被远程访问,后来逐渐开始把一些服务放在本地运行,比如下载工具、文件管理工具等。其中一个很好用的工具就是 AList,它可以把本地磁盘或者各种网盘统一挂载,通过网页来管理文件。

解决的问题
问题是 AList 默认只运行在本地
1 | http://localhost:5244 |
如果不在电脑旁边,就无法访问。发现可以用 Cloudflare Tunnel 来实现远程访问 AList,怕自己忘了怎么配置的了,就记录下整个配置过程。
整体架构
整体结构如下:
1 | 本地电脑 |
访问 alist.haozi.space 时,Cloudflare 会通过 Tunnel 转发请求到本地电脑的 5244 端口。这样就实现了远程访问。
准备工作
在开始之前需要准备以下内容:
- 一个 Cloudflare 账号
- 一个已经接入 Cloudflare 的域名
- 一台电脑
- 已经运行的 AList 服务
AList 默认端口是
1 | 5244 |
本地访问地址为
1 | http://localhost:5244 |
在配置 Tunnel 之前,需要确保本地访问是正常的。
可以通过登陆127.0.0.1:5244来检验本地访问是否正常。
开始搭建
Cloudflare Tunnel 需要通过 cloudflared 程序来运行。
可以从 Cloudflare 官方下载 Windows 版本
https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/downloads/

下载完成后,将程序放在一个固定目录,例如
1 | F:\cloudflared |
然后在终端中运行
1 | cloudflared --version |
如果可以看到版本号,说明安装成功。
登录 Cloudflare
为了让本地程序能够创建 Tunnel,需要先登录 Cloudflare。
执行
1 | cloudflared tunnel login |
记得在哪个盘里面,就要在哪里开始cmd操作(如果你之前跟我一样下载在F盘,就要在F盘进行cmd操作,以此类推)

浏览器会自动打开 Cloudflare 登录页面。登录后选择需要绑定的域名。完成后本地会生成一个认证文件:

网页会显示以下界面:

创建 Tunnel
接下来创建一个新的 Tunnel。
1 | cloudflared tunnel create alist-tunnel |
其中 alist-tunnel 是 Tunnel 名称,可以自己修改。
执行成功后会生成Tunnel ID,credentials 文件。
创建配置文件
接下来需要创建配置文件 config.yml。
示例配置
1 | tunnel: Tunnel_ID |

Tunnel_ID是 C:\Users\用户名.cloudflared 文件夹里面json文件的名称
访问 alist.yourdomain 时转发到本地 localhost:5244,如果访问其他地址,返回 404
DNS
进入 Cloudflare 的 DNS 管理页面。添加一条记录
1 | 类型 CNAME |
这样配置的话,访问 alist.yourdomain,就会进入 Cloudflare Tunnel。
启动 Tunnel
配置完成后启动 Tunnel
1 | cloudflared tunnel run alist-tunnel |
如果一切正常,就可以在浏览器中访问
1 | https://alist.yourdomain |
页面会直接打开 AList
问题记录
在配置过程中可能遇到一些问题。
排查顺序一般是:
-
先确认 AList 本地是否可以访问
-
再确认 cloudflared 是否在运行,如何检验是否生效?
如下,终端输入:
1
2cd /d F:\cloudflare
cloudflared tunnel list显示有connections就是有效的

-
确认 Cloudflare DNS 是否正确,这一步需要去cloudflare管理界面排查
alist如果挂载的是天翼云盘,发现上传可能出现显示 invalid session key
解决方法:去alist界面设置一下上传方式为 旧版,解决问题
后续扩展
Alist 开机启动
在桌面建一个VBS文件

在里面添加
1 | Set ws = CreateObject("Wscript.Shell") |
把这个vbs文件拖到alist.exe所在的文件夹里面
并且右键创建快捷方式
win+R输入 shell:startup

把快捷指令拖进去就可以了
Cloudflare开机启动
手动启动

1 | cloudflared tunnel run alist |
自动启动设置
在桌面建一个VBS文件,命名为 start-alist-tunnel.vbs
在里面添加
1 | Set ws = CreateObject("Wscript.Shell") |
win+R输入 shell:startup

把vbs拖进去就可以了
更多域名
例如:
1 | alist.haozi.space |
每个子域名对应不同的本地服务。这样一台普通电脑就可以逐渐变成一个小型家庭服务器。
操作很简单,在配置文件里面加上:
1 | - hostname: qb.haozi.space |
config.yml变成:
1 | tunnel: 你的tunnel-id |
之后进行DNS配置即可:
1 | Type: CNAME |
回顾
回顾整个过程,其实一开始只是想解决一个很小的问题,如何远程访问自己的电脑。但在解决问题的过程中,又接触到了Cloudflare Tunnel、AList、域名管理、内网服务暴露
技术学习往往就是这样,从一个实际需求出发,一步一步扩展。
也许过一段时间再回来看,会发现自己已经学会了很多当时觉得复杂的东西。