使用cloudflared进行内网穿透

#代理 #网络

因为目前使用的网络环境大部分为临时公网IP进行NAT,如果想要对外开放一个服务访问会因为不是固定IP以及运营商的限制,无法让外网直接访问到内网的某些服务。 这里就介绍用Cloudflare的“Cloudflare Zero Trust”来进行内网穿透,实现访问内网的服务。

要求:

  • 注册cloudflare账号

  • 有一个域名,并将DNS修改为cloudflare的DNS,以方便后面自动添加CNAME

目前该服务支持常见的操作系统,客户端下载地址arrow-up-right

这里以Ubuntu 18.04系统为例进行安装说明

# 下载deb安装包
wget https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb 

# 安装
dpkg -i cloudflared-linux-amd64.deb

# 登录cloudflare账号,如果是在命令行界面操作的话可以将用于授权认证的URL复制到浏览器中打开,登录账号,选择指定域名授权即可
# 授权完成后会在~/目录下创建一个.cloudflare/目录,并生成cert.pem密钥文件
cloudflared tunnel login

# 创建一个隧道,将${Tunnel_NAME}替换为自己想要定义的名称,创建完之后会在本地生成一个json文件,记录这个隧道的相关信息
cloudflared tunnel create ${Tunnel_NAME}

在~/.cloudflare/目录创建一个config.yaml配置文件,内容参考下面的配置示例

这时通过www.domain.com就能访问对应的内网服务

以上就是基本配置了,其它的网络穿透方案可以参考[[局域网穿透工具]]


错误处理记录

运行cloudflare tunnel run提示解析不到对应域名

解决方案

检查OpenWRT路由器上DNS是否开启了“过滤无用包”,如有开启,请关闭。

最后更新于