<QNAP 453D QTS-5.x> 日志记录:Cloudflare tunnels,NAS 重启后 Argo Tunnel error, 添加 Cloudflared tunnel 自启动

故障:

在 QNAP NAS 重启后,NAS 不能与 Cloudflare 建立连接。

查看隧道

[/opt/bin] # cloudflared tunnel list
2025-01-17T19:40:06Z ERR Cannot determine default origin certificate path. No file cert.pem in [~/.cloudflared ~/.cloudflare-warp ~/cloudflare-warp /etc/cloudflared /usr/local/etc/cloudflared]. You need to specify the origin certificate path by specifying the origincert option in the configuration file, or set TUNNEL_ORIGIN_CERT environment variable originCertPath=
Error locating origin cert: client didn't specify origincert path
[/opt/bin] #

cloudflared 无法找到证书文件. hmm

排查:

1. 查看进程, 确实没有运行

[/etc] # pkill cloudflared
-sh: pkill: command not found
[/etc] # ps aux | grep cloudflared
21612 admin       368 D   grep cloudflared
[/etc] # kill $(ps aux | grep cloudflared | grep -v grep | awk '{print $1}')
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[/etc] # ps -ef | grep flared
22876 admin      2408 S   grep flared
[/etc] # ps | grep cloudflared
23408 admin      2436 S   grep cloudflared

2. 找到 Cloudflare 目录

从查看 /etc/config/qpkg.conf 看到: 实际目录: /share/CACHEDEV1_DATA/.qpkg/CloudFlared/

link 的目录是: /opt/CloudFlared

[CloudFlared]
Name = CloudFlared
Class = null
Status = complete
store = 27405------------------788b
Build = 20241025
Display_Name = CloudFlared CLI
Version = 2024.10.1
Author = QoolBox
QPKG_File = CloudFlared.qpkg
Date = 2025-01-13
Shell = /share/CACHEDEV1_DATA/.qpkg/CloudFlared/CloudFlared.sh
Volume_Select = 3
Install_Path = /share/CACHEDEV1_DATA/.qpkg/CloudFlared
RC_Number = 111
FW_Ver_Min = 4.2.6
Enable = TRUE
Opt_Xml = 0

3. 查看目录内容:

[/share/CACHEDEV1_DATA/.qpkg/CloudFlared] # ls -al
total 44
drwxrwxr-x  3 admin administrators 4096 2025-01-17 14:51 ./
drwxrwxrwx 45 admin administrators 4096 2025-01-17 13:18 ../
drwxr-xr-x  2 admin administrators 4096 2025-01-17 13:46 .cloudflared/
lrwxrwxrwx  1 admin administrators   39 2025-01-13 20:05 CloudFlared -> /share/CACHEDEV1_DATA/.qpkg/CloudFlared/
-rwxr-xr-x  1 admin administrators  738 2021-03-15 10:22 CloudFlared.sh*
-rw-rw-rw-  1 admin administrators   93 2025-01-13 18:22 .list
-rw-r--r--  1 admin administrators 4327 2021-03-15 10:25 .qpkg_icon_80.gif
-rw-r--r--  1 admin administrators 3730 2021-03-15 10:26 .qpkg_icon.gif
-rw-r--r--  1 admin administrators 2750 2021-03-15 10:26 .qpkg_icon_gray.gif
-rwxr-xr-x  1 admin administrators  306 2025-01-17 13:50 start.sh*
-rwxr-xr-x  1 admin administrators 1063 2025-01-13 18:22 .uninstall.sh*

4.  查看两个文件: CloudFlared.sh 和 start.sh

a. CloudFlared.sh

[/opt/CloudFlared] # cat CloudFlared.sh
#!/bin/sh
CONF=/etc/config/qpkg.conf
QPKG_NAME="CloudFlared"
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`
APACHE_ROOT=`/sbin/getcfg SHARE_DEF defWeb -d Qweb -f /etc/config/def_share.info`
export QNAP_QPKG=$QPKG_NAME

export QPKG_NAME QPKG_ROOT

case "$1" in
  start)
    ENABLED=$(/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f $CONF)
    if [ "$ENABLED" != "TRUE" ]; then
        echo "$QPKG_NAME is disabled."
        exit 1
    fi

/bin/ln -sf $QPKG_ROOT /opt/$QPKG_NAME
/bin/ln -sf $QPKG_ROOT/cloudflared /usr/bin/cloudflared

    ;;

  stop)

rm -rf /usr/bin/cloudflared
rm -rf /opt/$QPKG_NAME


    ;;

  restart)
    $0 stop
    $0 start
    ;;

  *)
清楚:
  • 程序会创建符号链接到 /usr/bin/cloudflared/opt/CloudFlared
  • 启动是这命令:getcfg CloudFlared Enable -u -d FALSE -f CloudFlared 查了一下,QNAP自有的。

b. start.sh

"[/etc] # cat /share/CACHEDEV1_DATA/.qpkg/CloudFlared/start.sh
#!/bin/sh
cd /share/CACHEDEV1_DATA/.qpkg/CloudFlared
./cloudflared tunnel --no-autoupdate run --token eyJhIj--------------KbE5UUmtZVFF3TVRSaiJ9 > /dev/null 2>&1 &
[/etc] # "

解决:

之前,没有加到系统的启动中。既然 /opt/config/qpkg.conf 中已经调用了:CloudFlared.sh

添加调用 start.sh , 修改CloudFlared.sh :

[/opt/CloudFlared] # cat CloudFlared.sh
#!/bin/sh
CONF=/etc/config/qpkg.conf
QPKG_NAME="CloudFlared"
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`
APACHE_ROOT=`/sbin/getcfg SHARE_DEF defWeb -d Qweb -f /etc/config/def_share.info`
export QNAP_QPKG=$QPKG_NAME

case "$1" in
  start)
    ENABLED=$(/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f $CONF)
    if [ "$ENABLED" != "TRUE" ]; then
        echo "$QPKG_NAME is disabled."
        exit 1
    fi
    
    # 启动 CloudFlared 隧道
    cd $QPKG_ROOT
    ./start.sh > /var/log/cloudflared.log 2>&1 &
    ;;

  stop)
    # 停止所有 cloudflared 进程
    killall cloudflared
    ;;

  restart)
    $0 stop
    sleep 5
    $0 start
    ;;

  *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac

exit 0
[/opt/CloudFlared] # 
注:先读代码,推荐使用我这个文件去替换,仅限 QPKG 安装 Cloudflare argo tunnel

补充:

如果是这类错误,是通道正常, 所指向的服务没有回应,在网上比较常见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值