强烈建议使用cloudflared的时候用本站原创工具,由于大陆网络特殊性,本工具能让网页、服务确保无人值守不掉线
[本站原创工具]隆重推出ZsanUptime–监控网页状态并更新异常网页的DNS
强烈建议查看配套教程,使用内网穿透与wsl2的Linux子系统共同成为一个高容量高性能的服务器,再也不用租高价低配的服务器啦:
试试 WSL2?它是一款免费、极速的服务器解决方案,再也不用租高价低配的服务器啦!
cf隧道的常见问题–Cloudflare Argo Tunnel–-Cloudflare Tunnel
免费的内网穿透方案cf隧道–Cloudflare Argo Tunnel–Cloudflare Tunnel
另外也有免费的公网ip穿透方案,不过有速率和流量限制:https://www.natfrp.com/
Cloudflare Argo Tunnel,俗称cf隧道(应该都这么叫),和warp一样,是Cloudflare Zero Trust的产品,初衷是将流量用cloudflare来代理,隐藏真实IP和端口,安全性能相比较于frp、ngrok等内网穿透工具要更好。
使用cloudflare tunnel的前提是你已经注册cloudflare账号并且域名在cloudflare上解析,开通Cloudflare Zero Trust服务,选择免费套餐就可以了,免费的额度足够个人用户使用了。点此注册开通Cloudflare Zero Trust,最好有信用卡,没有信用卡也能开通,但本章就非信用卡注册不做进一步指导, Zero Trust👉https://one.dash.cloudflare.com/
从github上下载cloudflare tunnel的工具,Linux、MacOS、Windows都有适配,选择自己跟自己设备相应的版本即可,
安装和配置好后,就能享受比传统方法更安全、稳定的网络连接。
https://github.com/cloudflare/cloudflared/releases/latest
以Linux-amd64版本为例,配置运行cf隧道,另外windows的cmd,powershell使用的命令基本一致,只有路径和启动命令不一样
1、下载cloudflared
在/home/文件夹下,下载cloudflared并给执行权限,Windows则一般直接下完'cloudflared-windows-amd64.exe',然后复制到自己定义的目录里,名字改为'cloudflared.exe'。即可:
curl -L 'https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64' -o ./cloudflared
chmod +x ./cloudflared
2、登录cloudflare
在当前文件夹下,执行cloudflare账号登录命令:
./cloudflared tunnel login
windows此命令
cloudflared tunnel login
输入命令后,会给出一个URL,打开浏览器访问这个URL,选择用于内网穿透的网站。
3、创建Tunnel隧道
创建一个Tunnel隧道,名称按自己记得住的来,比如'wordpress',windows同样用此命令,不加"./":
./cloudflared tunnel create <tunnel-name>
# 例如
./cloudflared tunnel create web
创建成功后,会返回一个Tunnel ID,类似于'ssd11451-1145-a114-b514-114514114514'。
4、配置DNS记录
使用如下命令配置DNS,其中的 <tunnel-name>是创建Tunnel时指定的名称,<domain>是自定义的域名,比如 www1.zsanjin.com,windows同样用此命令,不加"./":
./cloudflared tunnel route dns <tunnel-name> <domain>
# 例如
./cloudflared tunnel route dns wordpress www1.zsanjin.com
如果还有其他域名需要配置,可以继续执行上面的命令,也可以自己在cloudflare的控制台自行添加dns解析,结果都是一样的。
5、编写配置文件
Linux的配置文件路径默认为/root/.cloudflared/config.yml,如果有多个隧道,可以将config.yml命名为你习惯的格式,比如config-wordpress.yml或者config1.yml 配置文件内容如下,注意根据注释修改配置,这里依然以命名为config.yml,但是把配置文件移动到/home,为例,注意,windows此处的文件在C:\Users\[YourUsername]\.cloudflared\config.yml,配置内容与Linux通用:
# Tunnel UUID,就是同目录下的json文件的文件名
tunnel: ssd11451-1145-a114-b514-114514114514
# 鉴权文件路径,注意根据自己的路径修改,下面的例子是Linux的路径
credentials-file: /home/.cloudflared/ssd11451-1145-a114-b514-114514114514.json
protocol: http2
# 服务配置
ingress:
# hostname是刚才添加DNS记录时指定的域名
- hostname: www1.zsanjin.com
# service是需要暴露的服务,比如这里反代了5244端口
service: http://127.0.0.1:5000
- hostname: www2.zsanjin.com
# 这里的示例是windows 用的远程桌面服务
service: rdp://localhost:3389
# 最后添加一个默认404
- service: http_status:404
配置完成后,验证一下配置文件是否正确 ,windows同样用此命令,不加"./":
./cloudflared tunnel ingress validate
6、测试运行
可选设置启用ICMP:由于运行cloudflared的用户的组ID(GID)不在ping_group_range范围内,导致无法正确设置ICMP代理。这可能需要将用户添加到该范围内的组,或修改/proc/sys/net/ipv4/ping_group_range以包括用户已在的组。
因此,ICMP代理功能被禁用。
创建新用户和组(如果还没有):
adduser cloudflared
将用户添加到ping_group_range范围内的组,通过查看文件/proc/sys/net/ipv4/ping_group_range来实现。使用命令:
cat /proc/sys/net/ipv4/ping_group_range
这将显示两个数字,形如X Y,表示当前允许执行 ping 操作的用户组ID范围是从X到Y。
sysctl命令或直接编辑文件的方式来修改ping_group_range的范围。例如,如果你想将范围设置为从1到1000,可以使用:
sudo sysctl -w net.ipv4.ping_group_range="1 1000"
重启后不保留。为了使更改永久,可以将net.ipv4.ping_group_range的命令直接添加到/etc/sysctl.conf或类似的系统配置文件中
Linux直接测试:输入如下命令启动Tunnel,注意路径和权限,把cloudflared配置文件设置为可读取,用户组归属cloudflared:
./cloudflared tunnel --config /home/.cloudflared/config.yml run <tunnel-uuid>
# 例如
./cloudflared tunnel --config /home/.cloudflared/config.yml run ssd11451-1145-a114-b514-114514114514
Windows则使用:
cloudflared tunnel --config %USERPROFILE%\.cloudflared\config.yml run <tunnel-uuid>
#列如
cloudflared tunnel --config %USERPROFILE%\.cloudflared\config.yml run ssd11451-1145-a114-b514-114514114514
稍等片刻,访问刚才配置的域名,如果能正常访问,说明配置成功。或者前往Cloudflare Zero Trust的控制台查看Tunnel的状态。
7、设置为系统服务,并开机启动
7.1、Linux:服务文件通常位于/etc/systemd/system/目录下。例如,您可以创建一个名为cloudflared-1.service或者名为cf-wp.service的文件方便后期多隧道分开管理,最好做个笔记,知道自己再哪个配置文件里面代理了哪些网页。
nano /etc/systemd/system/cloudflared-1.service
在文件中添加以下内容,注意自己的路径:
[Unit]
Description=Cloudflare-1 Tunnel
After=network.target
[Service]
Type=simple
User=cloudflared
ExecStart=/home/cloudflared tunnel --config /home/.cloudflared/config.yml run ssd11451-1145-a114-b514-114514114514
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
重载systemd的配置以确保系统识别这些变化。这可以通过运行以下命令来完成:
systemctl daemon-reload
保存服务文件后,使用以下命令启动并使服务在开机时自动启动:
systemctl enable cloudflared-1
systemctl start cloudflared-1
为了确保服务已正确启动并运行,可以使用以下命令检查其状态:
systemctl status cloudflared-1
7.2、Windows:创建批处理文件,打开记事本或其他文本编辑器。编写启动 cloudflared 的命令,确保替换 <tunnel-uuid> 为您的隧道UUID。例如:
@echo off
cloudflared tunnel --config %USERPROFILE%\.cloudflared\config.yml run <tunnel-uuid>
保存这个文件时,选择“所有文件(.)”作为文件类型,并给文件一个 .bat 扩展名,例如 start_cloudflared-1.bat。
设置开机启动
- 使用任务计划程序:
- 按下Windows键,搜索并打开“任务计划程序”。
- 在右侧的“操作”栏中,选择“创建基本任务...”。
- 给任务命名,例如 Start Cloudflared,点击“下一步”。
- 选择“当我登录时”触发器,再点击“下一步”。
- 选择“启动程序”,点击“下一步”。
- 在“程序或脚本”中输入批处理文件的完整路径,例如 C:\path\to\your\start_cloudflared-1.bat。
- 完成设置并保存任务。
- 测试任务:
- 为了确保一切设置正确,您可以重新启动计算机并检查 cloudflared 是否自动启动。
远程桌面配置
如果是需要在windows上使用远程桌面,在控制端上同样下载windows可执行文件,然后在文件目录打开cmd,输入如下命令即可,注意hostname填刚才设置了rdp service对应的域名。
cloudflared.exe access rdp --hostname web2.example.com --url localhost:3000
再打开windows远程桌面连接,计算机处填入 localhost:3000,设置好用户名和密码后点击连接即可。
完成这些步骤后,Cloudflare Tunnel将作为一个服务运行,并且在系统启动时自动启动。这样可以确保您的隧道在服务器重启后仍然保持运行状态,从而提供持续的内网穿透服务。
开始享受免费的内网穿透服务👍
另外在使用过程中会碰到一些问题,另开贴说明。
Comments NOTHING