Cloudflared DDNS 内网穿透等相关资料

Cloudflare内网穿透教程

准备工作:

  1. 一个cloudflare.com的账号,账号内,有一个域名
  2. 一个海思机顶盒nas系统

开始部署:

  1. 下载程序到盒子里:

32位系统:

1
2
3
4
wget https://git.xiaohezi.it.eu.org/cloudflare/cloudflared/releases/download/2024.2.0/cloudflared-linux-armhf -O /usr/bin/cloudflared

https://github.com/cloudflare/cloudflared/releases/download/2024.8.3/cloudflared-linux-armhf

64位系统:

1
wget https://github.com/cloudflare/cloudflared/releases/download/2024.8.3/cloudflared-linux-arm64 -O /usr/bin/cloudflared
  1. 输入
    cloudflared login
    登录并获取自动下载的授权文件

  2. 创建一个隧道
    例如
    cloudflared tunnel create nas2
    得到隧道的id

  3. 自制配置文件config.yml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
例如:
tunnel: d21336ec-f72d-415a-9c03-b8db2bba5848
credentials-file: /root/.cloudflared/d21336ec-f72d-415a-9c03-b8db2bba5848.json

ingress:
# HTTP服务,通过80端口
- hostname: lt.mnin.cn
service: http://127.0.0.1

# v2ray,通过2017端口
- hostname: ltv2ray.mnin.cn
service: http://127.0.0.1:2017

# SSH,通过7681端口
- hostname: ltssh.mnin.cn
service: http://127.0.0.1:7681


# 默认的回退规则
- service: http_status:404


把这个配置文档放置到/etc/cloudflared

隧道路由:cloudflared tunnel route dns nas2 nas2ssh.mnin.cn

  1. 运行自启动安装
    cloudflared service install
    systemctl start cloudflared
    systemctl status cloudflared

列出隧道:cloudflared tunnel list
删除隧道:cloudflared tunnel delete

mkdir -p /root/.cloudflared/
mkdir -p /etc/cloudflared/
curl -o /root/.cloudflared/cert.pem https://lt.mnin.cn/cert.pem
curl -o /etc/cloudflared/config.yml https://lt.mnin.cn/config.yml

curl -o /usr/bin/cloudflared https://lt.mnin.cn/cloudflared
chmod +x /usr/bin/cloudflared

openwrt 相关

rm /usr/bin/cloudflared
wget -O /usr/bin/cloudflared https://github.com/cloudflare/cloudflared/releases/download/2025.8.1/cloudflared-linux-arm
chmod +x /usr/bin/cloudflared
/usr/bin/cloudflared –no-autoupdate –config /etc/cloudflared/config.yml tunnel run

/etc/init.d/cloudflared enable
/etc/init.d/cloudflared start
/etc/init.d/cloudflared restart
/etc/init.d/cloudflared stop

搞定!

Openwrt cloudflared 服务配置文件

保存/etc/init.d下文件名为cloudflared chmod +x /etc/init.d/cloudflared

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/sh /etc/rc.common
# cloudflared OpenWrt init script
# Place this file at /etc/init.d/cloudflared

START=99
STOP=10

USE_PROCD=1
NAME=cloudflared
CONFIG=/etc/cloudflared/config.yml
PIDFILE=/var/run/$NAME.pid
LOGFILE=/var/log/$NAME.log

start_service() {
echo "Starting $NAME tunnel..."
procd_open_instance
procd_set_param command /usr/bin/cloudflared --no-autoupdate --config $CONFIG tunnel run
procd_set_param respawn
procd_set_param stdout $LOGFILE
procd_set_param stderr $LOGFILE
procd_close_instance
}

stop_service() {
echo "Stopping $NAME..."
kill $(cat $PIDFILE 2>/dev/null) 2>/dev/null
}