本地没有公网ip?用cloudflare部署内网穿透服务器,随时随地用自定义域名访问自己应用端口资源

发布于:2025-09-02 ⋅ 阅读:(20) ⋅ 点赞:(0)

这几年运营商都开始大力回收公网ipv4,而目前ipv6并不普及,相当一部分网络下仍然没有ipv6地址,这导致出门在外想访问家里nas等资源都不方便,这时候就需要用上内网穿透了,这里就通过cloudflare免费的内网穿透服务来实现无公网访问内网资源,这里说的内网穿透没有任何协议上的限制。

内网穿透顾名思义,就是把内网中的服务穿透出来,实现公网访问,简单来说就是利用一个具有公网访问的设备(服务)来中转流量,流量先到中转的设备/服务上再回到客户端/服务端,这意味着速度受限于客户端到中转服务器以及访问端到中转服务器的速度,但鉴于cloudflare(简称cf)速度并不快,不过人家免费。但仍建议有能力的童鞋自行部署独立的内网穿透服务器,也可以选择购买第三方穿透服务,如目前比较主流大众的nat123内网映射外网方式,nat123有界面化操作,同样可以用自定义域名端口访问本地资源,可以使用改变端口转发方式或同端口点到点直连模式访问,但同样体验版本线路受资源有限和功能有所限制。

本地搭建项目网址后,没有公网ip提供互联网访问服务?用cloudflare部署内网穿透服务,随时随地访问内网资源,用自己域名访问,详细教程步骤如下。

一、准备工作

1.一个cloudflare账号。

2.一个域名,可以选择自行购买顶级域名或者其他三方申请免费的二级域名。

二、cloudflare上添加域名

添加域名到cf:

登录cf(https://dash.cloudflare.com/),点击右上角添加站点,输入自己需要添加的域名。

选择免费计划。

如果有dns记录可以此时导入,点击继续。

此时会提示需要修改dns服务器,需要去域名对应的注册商修改域名dns服务器。

如我本人这里域名是腾讯云上注册使用的,就去腾讯域名控制台找到修改dns服务器,填入刚刚cf名称服务器提交即可,其他服务商修改方法大同小异,一般十几分钟就可以生效,此时就可以使用cf来管理域名。

注:cf一定要让域名在它那解析才能用它的cdn,建议用一个备用域名,比如自己平时用a.com,添加b.com到cf,这样平时用a.com直接连接,在没有ipv6环境下再用b.com走cf。

三、cloudflare上开通tunnel

登录到cf后台,选择“zero trust”,首次使用会要求给项目起个名字,这里随意名称都行。

第一次使用还会要求选择套餐,直接选择第一个免费的就行,随后会要求付款,点击“继续付款”,到结账的时候不用选择“添加付款方式”,直接点击右上角的“取消并退出”,就可以回到“zero trust”主页面。

然后点击左侧“Networks/Tunnels”,首次进入还需要点击“add a tunnel”,之后选择“Cloudflared”,再给这个项目取个名称,名称也是随意,之后点击“next”。

四、部署tunnel

这时候项目就已经新建好了,cf会给出部署的方式,可以直接部署在操作系统上,也可以使用docker来部署,这里我以docker为例。

注:内网穿透本质是用一个服务器(服务)来中转流量,而为把本地内网的流量递给服务器,就需要在本地部署一个内网穿透的程序(服务),而且在一个内网下只用部署一个内网穿透程序就行。

建议:鉴于大部分童鞋内网环境,建议在路由器或者nas上以docker的形式来部署,当然也可以直接部署在操作系统上,但是对于大部分nas系统或路由器来说,一来是系统受限可能无法部署,二来docker部署也更加方便。

选择docker部署后会给个命令,登录设备的ssh后直接运行这一串命令就行。这里命令末尾,“token”后面的就是自己的令牌,这个令牌注意不要告诉他人,否则数据可能会被窃取。

docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token xxxxxxxx

当然,很多童鞋不方便使用命令,例如nas系统这些,这里就以威联通nas为例,添加对应的docker,其他的图形化docker界面部署方法是一样的。

都是比较基础的步骤,映像为“cloudflare/cloudflared”,这个docker不需要映射端口,所以网络默认nat就行,但在配置容器的时候选择高级设置,命令改成如下的命令,对比官方给出的部署命令,其实就是删掉“docker run cloudflare/cloudflared:latest”,其他的全部默认设置就行:

tunnel --no-autoupdate run --token XXXXXX

创建容器,设置并下一步,高级设置/命令/覆盖/version输入对应,应用。

五、添加内网穿透信息

docker部署好后回到刚刚cf “tunnel” 界面,点击“save tunnel”,保存整个项目。

此时还需要添加添加内网穿透信息,也就是需要访问的内网地址等信息。

这里假设已经绑定的“aaa.com”域名,需要通过“tunnel.aaa.com”访问内网地址为“192.168.31.11”端口号为9999的http(网页web)服务,则对应以下内容:

Subdomain    tunnel  #子域名

Domain       aaa.com #主域名,直接选择自己的域名就行

Path         留空    #访问路径,建议留空,这样就代表直接访问这个域名就可以访问对应的服务

Type         http   #选择对应的内网服务,比如我这个是http协议的网站,就选择http

URL          192.168.31.11:9999 #需要内网穿透的服务对应的ip地址以及端口号

都填入了后点击“Save hostname”,就可以完成部署,此时访问“tunnel.aaa.com”就可以打开内网对应的服务了。

注意:这时候不要再去添加“tunnel.aaa.com”的解析地址,cf会自动添加的,啥都不用管。

如果此时还有其他的端口也想要内网穿透的话,选择刚刚建立的这个tunnel,转到“Public hostnames”添加其他的端口就行,步骤和上面的一致。

六、其他&注意

1.不要滥用,注意内容合规性。

2.cf速度并不快,建议自己搭建内网穿透服务,当然,更推荐公网直连。延迟问题,cf服务器都在国外,延迟高无解,但是自己用觉得速度行就可以了,想要低延迟得加钱,或用其他三方如nat123界面化主流大众的内网映射自定义域名端口外网访问都行。

3.长期提供互联网访问服务时,定时查看下本地计算机资源使用情况,确保本地网络稳定和安全。


网站公告

今日签到

点亮在社区的每一天
去签到