声明: 此操作仅供研究技术之可能性, 请各位佬友测试完成后于24h后删除, 由此带来的任何法律责任以及暴露到公共网络后带来的不安全性的后果, 由行为人自行承担。
哈哈, 第一次写法律声明, 也不知道有效没效。 嗯, 有效。
忽略不忍直视的排版, markdown用的不熟。
已经有数位佬友分享了如何榨干合理利用serv00的免费资源,我也蹭个热度, 当回老鼠,分享一篇关于打洞偷粮的故事。
在此特致谢各位佬的引路文章。
@Saika Serv00搭建各种服务 | Saika's Blog
@Reno 【serv00系列教程】部署go-proxy-bingai演示站
@佬们 'serv00' 的搜索结果 - LINUX DO
根儿的废话真的多
众所周知, serv00提供了免费的如下服务, 其中数据库服务是不能外部访问的。
这怎么难得了大善人cf呢。 我们比较常用的是tunnel http服务, 这次需要用到的是tcp, 跟http的有点区别, 需要在本机启动一个cloudflared的客户端, 指定个本地端口用于转发TCP到隧道(后面详细说)。
假设你已经把上边参考链接的内容都看了, 假设你的serv00上已经有了如下服务或工具。
- pm2 node进程管理工具
- cloudflared 你知道这是啥吧
- ecosystem.config.js 文件
开始打洞。
- 去 图中所示菜单创建一个tunnel, 主要拿到访问的token就可以点返回了。
- 在serv00上ecosystem.config.js文件中追加如下内容, token换为第一步你拿到的token, $username换为你自己的用户名
{
name: "tunnel-mysql",
script: "./cloudflared",
cwd: "/home/$username/domains/cloudflared",
args: "tunnel --edge-ip-version auto --protocol http2 --heartbeat-interval 10s run --token eyJ_*************************************************"
}
- 然后执行如下命令(我使用这个命令导致 bash: fork: retry: Resource temporarily unavailable, 毕竟小鸡资源有效)
cd ~/domains && ~/.npm-global/bin/pm2 restart
-
资源占用已经100%以上了, 不知道啥时候被回收(好害怕~)
-
然后去serv00创建个MySQL的服务, 端口一般就是3306了, 用户名密码自己记住。
-
然后去cf管理端, 将刚才创建的tunnel继续配置
-
最后的最后, 在客户端在启动一个cloudflared, 用于转发TCP到刚才建立的隧道。如果你不用docker, 建议你看下这位博主的文章Sam Sam 使用 Cloudflare Tunnel 转发 Minecraft 服务端口到公网 。 如果你跟我一样是用docker, 直接把下边的配置放到一个目录, 然后docker compose up -d 就可以了, hostname记得修改为你cf上配置的自己的子域名。
version: '3'
services:
cloudflared:
image: cloudflare/cloudflared:2024.1.5
container_name: cloudflared-serv00-mysql
restart: always
ports:
- '53306:53306'
network_mode: host
command: access tcp --hostname mysql.xxxxx.com --listener 127.0.0.1:53306
-
接下来就可以测试下成果了。
-
同理, 其他的数据库也可以的。
-
什么都好,
就是有点慢!要啥自行车!