站点图标 谷姐靓号网

OpenWRT安装内网穿透 Cloudflare Tunnel 教程-ajeef

Rate this post

该内网穿透项目优点:和国内花生壳这种一年只有几M就要4位数的比起来CF不亏是业界钱多多

它不需要你购买VPS;有免费项且个人足够使用;带宽很高;可以跨电信,联通,移动各家ISP运营商;不必在客户端上安装软件(智能家电,机顶盒等都不需要安装客户端,有局域网IP就直接可以穿透);无需北岸(CF是海外的么);支持HTTP3/QUIC(UDP协议);不限服务数量。

该内网穿透项目缺点:夜间高峰期时期延迟不稳,抖动也高(和我们日常开CF盾一样的速度,延迟大概150左右);国内暂不支持HTTP3/QUIC;暂不支持UDP(支持也没用,国内三大运营商都是QOS UDP的);当然还有就是需要将一个域名托管在Cloudflare。

我在hostloc发布过了用API申请注册Scaleway教程中这两台欧洲的IPV6 VPS,廉价好用且流量无限,这可以很好的与Cloudflare Tunnel隧道结合,两者都是流量无限,而且可以跑满带宽。这就可以给我们在公网环境下,大流量传输服务到家中的NAS或者其它服务带来了可能,是相对折中低价的解决方案。

000:前提:你要有一个域名,并且已经将DNS解析地址改到了CloudFlare

001:这是官方CloudFlared二进制可执行文件放在Github上的网址:https://github.com/cloudflare/cloudflared(但没有openwrt,直接安装的ipk包,不过这里安装的好处是,安全,毕竟是官方的么,更新也是直接同步官方,不用等第三方编译出来,毕竟这么隐私的应用还是用官方的安全,对吧。)

002:首先用你自己的账号登入CloudFlare.com官网,登入后,在首页左侧菜单找到Zero Trust点击进入后

如果是第一次打开,可能会让你选择付费项目,选免费就够了,然后会让你绑定信用卡或者Paypal

放心是0元,我用的是Paypal

003:上一步操作好后,会跳转到下一个菜单Zero Trust overview,在这里找到Access菜单边上的

下拉箭头,找到Tunnels,进入后选择Create a tunnel创建一个隧道,Tunnel name(Required)这里

任意填写一个好记的隧道名,例如:小明的办公室,xiaomingoffice,我的家,myhome,然后

点击Save tunnel

004:接着就跳转到下一个菜单,官方给出了Windows,Linux两大家族系,Mac,和Docker的32位和64位部署安装包,这里我是安装在openwrt上的,所以都不用,但是下面自动生成的握手令牌码,我们要复制一下,让在记事本上,一会要用到,就是类似下面的这串:

cloudflared.exe service install eyJhIjoiMjg1ZDYxZWU2Mjg3MDDFIUYDSFHDSKJFHSDJKHFKSDFJJSDFLKJDSKLFJDSL;KJFLKDSJFA;SLDJFIjoiYjViNmVkNGEtMzdmOC00ODI1LTk0YzgtF;IDSLUFL;J;lfiL;TJGLFKJD;KLFU;ADSILJ;JZaTAwTkdRM0xXRTJOalF0TUdVMVl6VmhNVFF6WYDDjkyJ9

(忽略cloudflared.exe service install 这个安装命令,只需要复制下面的令牌从ey到J9结束。)

005:任意SSH工具,连接你的openwrt,输入下面下载命令,回车。

    VERSION="2023.3.1"

    curl -O -L \
    https://github.com/cloudflare/cloudflared/releases/download/${VERSION}/cloudflared-linux-arm \
    && chmod +x cloudflared-linux-arm \
    && mv cloudflared-linux-arm /usr/bin/cloudflared

#注意VERSION=””里面的数字,即是教程001:官方打开后,右侧Latest最新版本的版本号,复制过来就行了,以后有新版本就只要改这里就行,架构的话我是X86的openwrt,所以直接用这条命令,如果你是ARM或者其它架构的,把${VERSION}/后面的改掉即可,例如ARM64就是cloudflared-linux-arm64#

006:依次输入下面2条命令,回车。

    touch /etc/init.d/cloudflared
    chmod +x /etc/init.d/cloudflared

在openwrt重启引导目录里创建一个名为cloudflared的文件
给刚才创建的这个文件赋予一个可执行权限,类似Windows鼠标右键以管理员身份运行

007:输入nano /etc/init.d/cloudflared 将下列代码修改一处就是令牌这里,然后粘贴,CTRL+O CTRL+X 保存。

    #!/bin/sh /etc/rc.common

    USE_PROCD=1
    START=95
    STOP=01

    cfd_init="/etc/init.d/cloudflared"
    cfd_token="这里改成教程004:你复制好的token"

    boot()
    {
    ubus -t 30 wait_for network.interface network.loopback 2>/dev/null
    rc_procd start_service
    }

    start_service() {
    if [ $("${cfd_init}" enabled; printf "%u" ${?}) -eq 0 ] then
    procd_open_instance
    procd_set_param command /usr/bin/cloudflared --no-autoupdate tunnel run --token ${cfd_token}
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
    procd_close_instance
    fi
    }

    stop_service() {
    pidof cloudflared && kill -SIGINT `pidof cloudflared`
    }

008:输入下面2个命令,回车。

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

#设置这个文件,开机启动#
#现在运行这个文件#

009:输入下面2个命令,回车,一个是查看进程,一个是查看进程日志。

    ps | grep cloudflared
    logread | grep cloudflared

#查询是否有这个名字的进程#
#查看这个名字的进程日志#

010:这个时候回到CloudFlare我们Access-Tunnels的菜单下,刷新一下,应该就能看到

一个隧道链接的提示,隧道名是我们自己取的,在Status状态栏下显示绿色HEALTHY就代表隧道已经穿透,可以用了,如果是INACTIVE就说明隧道连接失败,可以等等,或者看看上面的步骤是否有错,如果已经HEALTHY健康状态了,就点边上的3个点,选择Congfigure,进入后选上面Public Hostname菜单,点击+Add a public hostname,进入后在Subdomain里取你的二级域名名字,

如果直接用根域名就输入@,Domain(Required)菜单里选择你托管在CF的域名,Path一般不填写

除非像宝塔这种默认安全设置这里有扩展路径例如:https://bt.cn:8888/format/,那么你就需要在Path里填写/format,下面的Service-Type这里就随便了,看你自己要穿透的协议,如果是穿透局域网里的openwrt自身,例如:http://192.168.1.1,那么这里选http就行了,后面的URL就填写192.168.1.1

以此类推,再举个例子黑群晖https://192.168.1.5:5000 ,那么Type就改成https,后面URL就填写192.168.1.5:5000即可。局Windows11电脑,局域网IP是192.168.1.10装了VNC远程桌面,VNC默认端口5900,那么应用类软件只要不是UDP,那这种TCP的就在Type里选TCP,URL里填写192.168.1.10:5900即可。

教程完毕!

热议
推荐楼 Evvj 4天前

plex居然可以原始质量播放,就是加载速度有点慢

2楼 [MJJ] 6天前

技术贴 顶下 让更多的人看到

3楼 airbus 6天前

感谢分享,看起来可能有点乱

4楼 SensiRibbed 6天前

技术贴 顶下 让更多的人看到

5楼 kagurazakashira 6天前

02可以省略
https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/tunnel-guide/local/

6楼 宋喆 6天前

mk,如果安装后有可视化操作就更好了,包括监测运行状态日志等

7楼 yueke 6天前

技术贴顶一下

8楼 sqliuchang 6天前

github上搜openwrt cloudflare tunnel,有现成的源码,release比较老了,下载下来之后解压替换二进制文件重新打包,安装以后修改一下init脚本里面的参数就行了

9楼 包子打的 6天前

技术贴 顶下 让更多的人看到

10楼 wgedu 6天前

谢谢了!!!

12楼 ajeef 5天前

有一点没搞明白

穿透成功之后,之组建了一个本地和cf Tunnel 的“ 局域网 ”吗,然后在cf的后台配置一下就 ...

直接用,你刚取的二级域名+端口号(如果有端口号的话)访问,全世界任何一台可以上网的电脑都行。

13楼 MikuP 5天前

试过,群晖操作没问题,但是远程下载文件失败,不知道能不能穿透电脑rdp远程

14楼 ajeef 5天前

试过,群晖操作没问题,但是远程下载文件失败,不知道能不能穿透电脑rdp远程 ...

支持,类型这里选:rdp即可,地址填你局域网内的IP。

15楼 shuang76 5天前

战略马克确实是技术贴了

16楼 6789 5天前

单个文件上限100M.

17楼 xhcj666 5天前

马克

18楼 bbsbbs 5天前

我还是安静的使用zerotier吧

19楼 HDFSKYCAT 5天前

虽然有公网IP了,但是这种技术贴还是要收藏一下,感谢分享!!

20楼 ieason 5天前

技术贴 顶下

22楼 天生要强 5天前

支持一下技术贴

23楼 lisa2016 5天前

直接用,你刚取的二级域名+端口号(如果有端口号的话)访问,全世界任何一台可以上网的电脑都行。 ...

插入 几张图片很难么大神是图床挂了还是存储不够~

24楼 renny 5天前

技术贴 顶下 让更多的人看到

25楼 poctopus 5天前

技术贴收藏一下。

26楼 黑皮 4天前

好像韩风做了这期

27楼 Evvj 4天前

plex居然可以原始质量播放,就是加载速度有点慢

28楼 你是人 4天前

支持技术贴

29楼 Kevil 4天前

支持技术贴

30楼 qwer121 4天前

02可以省略
https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-set ...

002可以省略吗?不需要支付方式吗?

32楼 hcyme 4天前

感谢大捞分享

33楼 Jack4488 4天前

一直用WireGuard+CF.试试看你的方案,看看区别,感谢。

34楼 kagurazakashira 4天前

002可以省略吗?不需要支付方式吗?

不需要啊

照着那个官方文档来就行
账户只要求验证邮箱

35楼 aiastia 3天前

cloudflare tunnel openwrt tcp 类型怎么配置啊

36楼 Dick 3天前

mark

37楼 肉蛋葱鸡 3天前

技术贴 必须顶下

38楼 luckin 昨天09:39

很棒,厉害了老铁

39楼 奔跑的路由器 昨天09:59

做一个合格的MJJ,原创技术贴必须顶一下。

40楼 lost1984 昨天13:23

马克

42楼 ajeef 昨天14:45

cloudflare tunnel openwrt tcp 类型怎么配置啊

web cloudflare里隧道里,有type:http,https,rdp,这里有一个tcp,选 tcp 即可。

43楼 aiastia 昨天17:00

ajeef 发表于 2023-4-7 14:45
web cloudflare里隧道里,有type:http,https,rdp,这里有一个tcp,选 tcp 即可。

我知道 选了tcp 然后手机开 warp? 然后用什么链接?域名还是什么。我用ip 连不上

44楼 sync 昨天18:00

大佬,有armbian教程吗?
/etc/init.d/cloudflared 运行之后 没反应,不启动。
armbian 没有/etc/rc.common文件。

45楼 NoctuG 昨天18:03

技术贴帮顶

46楼 avv 昨天18:07

收藏一下技术贴

内容如下

    [Unit]Description=cloudflared tunnels service
    After=network.target
    StartLimitBurst=5
    StartLimitIntervalSec=10 [Service]Type=simple
    Restart=always
    RestartSec=2
    User=root
    ExecStart=/usr/bin/cloudflared --no-autoupdate tunnel run --token yourtoken [Install]WantedBy=multi-user.target

删除上面创建的/etc/init.d/cloudflared文件,如果有的话
Enable

    # systemctl enable cloudflared

    Created symlink /etc/systemd/system/multi-user.target.wants/cloudflared.service → /lib/systemd/system/cloudflared.service.

启动

    systemctl start cloudflared

48楼 honey 昨天18:28

技术贴 顶起来

49楼 ajeef 昨天22:33

我知道 选了tcp 然后手机开 warp? 然后用什么链接?域名还是什么。我用ip 连不上 ...

CF里CM指向自己的域名,开启云朵,默认不就在CF的网络里了么,用域名访问,就好了。

50楼 一身惆怅 昨天23:37

了解有一段时间了,优缺点都很明显,其实不是很好用

52楼 乌溜溜的黑眼猪 6小时前

请问下大佬,N1盒子可以安装吗?

53楼 Amanda 5小时前

早就用Cloudflare Tunnel打洞了,可以直接抛弃workers反代了

54楼 aiastia 2小时前

CF里CM指向自己的域名,开启云朵,默认不就在CF的网络里了么,用域名访问,就好了。 ...

应该是不行的。。。你试一下

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

退出移动版