应佬友的要求再出一篇文章,前面薅了 wispbyte.com 的羊毛,但是吧容器性能比较弱,强一点的就是 huggingface.co 免费的容器:
Free 版本就是 2vCPU 和 16GB RAM,就已经非常强了
那先介绍一下 huggingface,其实这是一家非常强悍的公司,可以称作是 “AI 界的 GitHub”,可以分享模型,数据集,然后演示应用。
我们用到的就是这个演示应用(Spaces)
首先注册好账号,然后右上角点击头像按钮,新建一个 Space
然后填入必须项
Space name:就写 myhome,随便来一个好记得
Short description:Save Our Home
License:MIT
SDK:选择 Docker
Docker template: 选择 Blank
Space hardware:选择 Free
其它都不选,最后 Create Space 即可
然后就建好了,其实是给你开了一个 git 的 repo
我们到右上角,选择 Files 选项

然后打开的文件页面,只有两个文件
老套路,建立一个 Dockerfile 文件,就是容器的打包文件,注意文件名大小写,第一个字母是大写
Dockerfile.txt (202 Bytes)
然后我们把 index.js 文件准备好,需要修改几个地方
index.js.txt
其中几个地方有修改,先看看 huggingface 给咱们的域名,右边,Settings 右边的三个点按钮,
点开,然后点 Embed this Space
看 src 那里,大善人给了咱们一个免费的域名,这个域名是自带证书的!!!我们把域名拷贝下来
记好了,cf 那里还要用
然后根据实际情况修改 index.js
const DOMAIN = process.env.DOMAIN || 'xxx.qzz.io'; const SUB_PATH = process.env.SUB_PATH || 'sub';
改完后是这样的:
然后改好了,别急着贴进去:
去到 https://obfuscator.io/legacy-playground
贴进去代码,混淆一下,弄成谁也认不得的模样,然后 Copy,再贴进去
然后再建立 package.json 文件
package.json.txt (291 Bytes)
{ "name": "js02", "version": "0.0.2", "description": "Nodejs-server", "main": "index.js", "private": false, "scripts": { "start": "node index.js" }, "dependencies": { "ws": "^8.14.2", "axios": "^1.12.2" }, "engines": { "node": ">=14" } }
再建立 index.html 文件,这是个用来装饰的环保单页面,如果不加,就会显示 hello world,太假了,可以让 gemini 给你生成一个:
index.txt
那就一切完工,看下都有什么文件:
一切就绪,点击 App 运行:
那会看到运行完毕,开了 7860 这个端口
那直接点击左上的 myhome 链接,就能看到环保页面了。
那大善人 huggingface 就弄好了。
解释一下具体原理:
huggingface 跑了个前置的 Nginx 或 Caddy 或 traefik 代理,自动申请了证书,代理后端容器的 7860 端口,为什么是 7860 端口呢?
因为最常见的用途是托管基于 Gradio 构建的机器学习模型演示。Gradio 是一个非常流行的 Python 库,用于快速创建交互式 Web 界面来展示 ML 模型。它的默认启动端口就是 7860。
那接着我们去薅大善人 cloudflare,首先弄好一个域名并托管到 CF 上面,比如免费的 qzz.io
点开左边的菜单:Build –> Compute & AI –> Workers & Pages
新建一个应用,Create application
然后选 Start with Hello World!
然后就会建出一个应用来,点击编辑代码,Edit Code
把代码中 username-spacename.hf.space 换成自己的域名
export default {
async fetch(request, env) {
let url = new URL(request.url);
if (url.pathname.startsWith('/')) {
var arrStr = [
'username-spacename.hf.space',
];
url.protocol = 'https:'
url.hostname = getRandomArray(arrStr)
let new_request = new Request(url, request);
return fetch(new_request);
}
return env.ASSETS.fetch(request);
},
};
function getRandomArray(array) {
const randomIndex = Math.floor(Math.random() * array.length);
return array[randomIndex];
}
这段程序就是简简单单一个代理,不加任何缓存,因为我们的数据包不会有重样的。
然后点 Deploy ,部署
返回这个 worker 的空间,点击 Settings,下面的 Domains & Routes ,右边点击 +Add
弹出的对话框,选择 Custom domain
然后起个自己心满意足的域名,CF 大善人会自动生成 dns 记录
点击 Add domain 就完事了。
然后我们打开我们心满意足的域名:
环保页面,然后打开我们的订阅页面,缺省是 /sub,当然改成只有自己知道的路径为好
出现订阅的 Base64 字符就 ok 了。

我们用 v2rayN 导入即可。
完工,还是说一下原理:
利用 cf 大善人的网络代理加速,利用 hug 大善人的免费域名和证书,达到我们的目的
最后,这个的 index.js 和上一篇的不同啊,唯一区别就是端口,hug 端口肯定是 443,而 wispbyte 的端口是非标的。
注意注意!!!
同样也扔到自己博客了一份: huggingface.co 薅羊毛记 | 八戒的技术博客
📌 转载信息
原作者:
defunct9
转载时间:
2026/1/6 17:33:35