Ubuntu 22.04安装cloudflared,一直连接不上,解决方案

默认按官方 命令安装时,各种折腾始终处于连接超时,无法连接服务器的状态,最终解决方法:
切换到HTTP/2 over TCP

请严格按照以下步骤操作:

1. 停止服务并编辑配置文件

bash# 停止服务
sudo systemctl stop cloudflared
# 编辑服务文件
sudo systemctl edit cloudflared.service --full

2. 修改启动命令

在打开的编辑器中,找到以 ExecStart= 开头的那一行。这一行应该类似于:

textExecStart=/usr/bin/cloudflared --no-autoupdate tunnel run --token eyJhIjoiZGY3NDgxZTJiODlmNjhhMDZlMjM1YjUxZDYzNTQwZjgiLCJ0IjoiMmQ5YmE3NjgtYTM0Zi00NTNhLTk2YTItYTMxZGRhMDRiMzU4IiwicyI6IllqQm1aVGsyTXpRdFptWTBOeTAwWTJZMExXRX>

在这行命令的末尾,添加 --protocol http2。修改后,整行看起来应该像这样(请注意,你的token很长,确保只在最后添加参数):

textExecStart=/usr/bin/cloudflared --no-autoupdate tunnel run --token eyJhIjoiZGY3NDgxZTJiODlmNjhhMDZlMjM1YjUxZDYzNTQwZjgiLCJ0IjoiMmQ5YmE3NjgtYTM0Zi00NTNhLTk2YTItYTMxZGRhMDRiMzU4IiwicyI6IllqQm1aVGsyTXpRdFptWTBOeTAwWTJZMExXRX> --protocol http2

关键点

  • 确保添加的参数前面有一个空格。
  • 参数是 --protocol http2(两个单词)。
  • 保存文件并退出编辑器(在nano中按 Ctrl+O,回车,然后 Ctrl+X)。

3. 重载配置并重启服务

bash# 重载systemd配置
sudo systemctl daemon-reload
# 重启服务
sudo systemctl restart cloudflared

4. 检查结果

执行以下命令,查看服务状态和关键日志:

bash# 查看服务状态
sudo systemctl status cloudflared --no-pager