前言
内网穿透是一种技术,允许用户通过互联网访问位于私有网络(如家庭或公司局域网)中的服务。
以下是进行内网穿透的一些主要原因:
远程访问:
内网穿透使得用户可以从外部网络安全地访问内部网络中的设备或服务,比如家庭监控摄像头、NAS存储、游戏服务器等。
方便共享服务:
如果在内网中运行了一个Web服务器、FTP服务器或其他服务,内网穿透可以使得外部用户能够方便地访问这些服务。
避免公网IP限制:
许多用户没有公网IP,或者因ISP限制无法直接暴露内网服务。内网穿透技术可以解决这一问题,使得即使在没有公网IP的情况下也能访问内网服务。
灵活性和可扩展性:
内网穿透允许用户在多个设备和服务之间快速建立连接,适用于多种场景,如开发、测试和部署。
提高安全性:
通过内网穿透,可以避免将设备直接暴露在互联网上,从而降低网络攻击的风险。许多内网穿透服务提供加密和认证机制,增强安全性。
总之,内网穿透是一种灵活的技术,可以帮助用户在不同环境中实现远程访问和服务共享。
一、常见的内网穿透方式
1.1通过公网ip+ddns的方式
使用条件:
1.1.1)需要申请公网ip
这个很多运营商都不给,我这边是联通,打电话跟客服要的,直接给开通了。
1.1.2)需要一个域名
这个可以使用免费域名(有的不好申请)
或者购买一个域名(便宜的一年也就1美元)
可以进这个网站购买
购买域名
1.2.自建内网穿透服务的方式
比如frp内网穿透
frp的GitHub
使用条件:
1.2.1 需要购买服务器
需要便宜服务器的参考
这个网址
1.2.2)需要一个域名(可选)
可以使用免费域名(有的不好申请)
或者购买一个域名(便宜的一年也就1美元)
可以进这个网站购买
购买域名
1.3.通过Cloudflare-Tunnels的方式
使用条件:
1.3.1需要一个域名(必要)
使用免费域名(有的不好申请)
或者购买一个域名(便宜的一年也就1美元)
可以进这个网站购买
购买域名
1.4飞牛云NAS自带的内网穿透
飞牛自带的貌似只能访问飞牛云nas服务
等等其他的包括ipv6的方式
以上各种方式各有优缺点
体验最好的肯定是第一种
使用公网ip+ddns的方式,访问速度根据你当前网络的带宽决定,基本能跑满你的带宽,而且很稳定。
如果你自己有公网服务器可以尝试第二种方式自建内网穿透服务
这种方式也有点不稳定
如果你既没有公网ip也没有服务器
那想低成本实现内网穿透,可以使用第三种方法,只需要一个域名配合
Cloudflare-Tunnels来实现即可。稳定性和速度不是很能保证,但是
临时用来远程访问自己的内网服务也算是一种不错的选择。
本期主要介绍下(一个域名配合
Cloudflare-Tunnels)这种方式,具体是怎么实现的?
二、准备条件
2.1.注册好cloudflare
点我注册
过程省略…
2.2.购买域名
购买域名
过程省略…
2.3.将域名与cloudflare绑定
在cloudflare输入需要绑定的域名
然后选择免费(free)
根据要求在域名后台更改你的名称服务器
等待状态由(待处理的名称服务器更新)
变成(活动)即可
三、开始使用
以上条件都准备好以后我们就开始使用
我们就以之前在飞牛云NAS搭建的navidrome为例进项演示
这个服务在飞牛云占用的端口是
192.168.31.56:4533
3.1首先在Cloudflare登录好账号并打开Zero Trust
3.2依次打开Networks-Tunnels
3.3创建Create a tunnel
3.4选择Select Cloudflared
3.5命名navidrome-Save tunnel
可以看到Tunnel created successfully
3.6选择docker-并复制命令
先把这段命令存起来
docker run cloudflare/cloudflared:latest tunnel --no-autoupdate run --token eyJh2IjoiMTExMjQ4NmFkNTU3MWY5Y2I4MWUxOTg3OGI0MjViZjYiLCJ0IjaoiZTgzNGFmNzktMWEyMC00MWMyLWI3OTMtOTA1ZDE5YjdkODBiIiwicyI6Ik5qSXlOMk5qTnpjdFpqTXpNQzAwTldNMExXSTVNRFF0WldGalpHVXhZekF6WkRJeiJ9
然后点击next
接下来重点来了-根据图示填入相应的内容-Save tunnel即可
此时服务端设置完成了-状态是INACTIVE
3.7打开飞牛云nas的docker-compose
点击新建项目
我们先准备下配置文件内容-根据提示修改
version: '3'
services:
cloudflared:
image: cloudflare/cloudflared
container_name: cloudflared-navidrome #这里自定义容器名
restart: always
network_mode: host
command: tunnel --no-autoupdate run --token eyJhIjoiMTExMjQ4NmFkNTU3MWY5Y2I4MWUxOTg3OGI0MjViZjYiLCJ0IjoiMDc1NTE5NTAtZWM2Zi00ODcyLThjNjctZDg5MDgzNTI2ZGRlIiwicyI6Ik5XUmlaamM0WVdVdE1HTXlZUzAwTkRJMExXSTJaalV0WlRoaVltTmhPRFk0TVRJNCJ9 #这里填入自己的token即可
根据图示填入自己容器的信息,建议每次都规范命名下,避免后续新增容器出现端口冲突或者名称冲突的报错
确保容器启动正常-即可
3.8我们再次返回cloudflare即可看到状态变成HEALTHY(健康)
3.9测试是否能正常访问
我们打开右边三个点-Configure
按照图示进行测试即可
可以看到正常访问了
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
有任何问题可以直接留言或者问我
欢迎关注我们的微信公众号!
评论区