Total Pageviews

Tuesday, 31 March 2026

Clash-RS, clash的rust版本

 

https://watfaq.gitbook.io/clashrs-user-manual/

A custom protocol, rule based network proxy software.

CI codecov

✨ Features

 
  • 🌈 Flexible traffic routing rules based off source/destination IP/Domain/GeoIP etc.
  • 📦 Local anti spoofing DNS with support of UDP/TCP/DoH/DoT remote, and expose it as a local UDP/TCP/DoH/DoT server.
  • 🛡 Run as an HTTP/Socks5 proxy, or utun device as a home network gateway.
  • ⚙️ Hysteria2/Shadowquic/Shadowsocks/Socks5(TCP/UDP)/SSH/tor(onion)/Trojan/Tuic/VLess/Vmess/Wireguard(userspace) outbound support with different underlying transports(gRPC/TLS/H2/WebSocket/etc.).
  • 🌍 Dynamic remote rule/proxy loader.
  • 🎵 Tracing with Jaeger

🖥 Environment Support

 
  • Linux
  • macOS
  • Windows
    • You need to copy the wintun.dll file which matches your architecture to the same directory as your executable and run you program as administrator.
  • iOS

💰 Sponsors

 

📦 Install

 

Use With GUI

 

https://github.com/LibNyanpasu/clash-nyanpasu

Download Prebuilt Binary

 

Can be found at https://github.com/Watfaq/clash-rs/releases

Docker Image

 

https://github.com/Watfaq/clash-rs/pkgs/container/clash-rs

Local Build

 

Dependencies

  • cmake (3.29 or newer)
  • libclang(LLVM)
  • nasm (Windows)
  • protoc(for geodata proto generation)
  • pre-commit
$ pipx install pre-commit
$ pre-commit install

$ cargo build
 

🔨 Usage

 

Example Config

 

sample.yaml:

port: 7890
 

Run

 
-> % ./target/debug/clash -c sample.yaml
 

Help

 
-> % ./target/debug/clash-rs -h
Usage: clash-rs [OPTIONS]

Options:
  -d, --directory <DIRECTORY>
  -c, --config <FILE>          Specify configuration file [default: config.yaml] [short aliases: f]
  -t, --test-config            Test configuration and exit
  -v, --version                Print clash-rs version and exit [short aliases: V]
  -l, --log-file <LOG_FILE>    Additionally log to file
      --help-improve           Enable crash report to help improve clash
  -h, --help                   Print help
 

FFI

 

Compile for apple platforms

 

To create a framework for iOS and macOS platforms

git clone https://github.com/Watfaq/clash-rs.git
cd clash-rs
chmod +x scripts/build_apple.sh
./scripts/build_apple.sh
 

This command will generate a clashrs.xcframework file in the build directory.

🔗 Links

 

🤝 Contributing

 

❤️ Inspired By

from 

https://github.com/Watfaq/clash-rs

Docker-Proxy

 无服务器自建 Docker Registry 镜像代理,支持 Cloudflare Workers、Deno、Netlify 和 Docker 部署。

Warning

代理行为可能违反 Cloudflare、Deno 等平台用户协议,存在被封号的风险。 请务必限制访问范围,或通过环境变量设置合理的伪装策略。不建议用于搭建公开或公共镜像站点。

🚀 快速部署

Cloudflare Workers

Fork 本仓库并在 Cloudflare Workers 中导入,或点击下方按钮一键部署:

Deploy to Cloudflare Workers

Deno

Fork 本仓库并在 Deno Deploy 中导入:

  • Entrypoint 选择 ./src/deno.ts
  • Framework presetInstall commandBuild command 等配置项请保持为空

Netlify

Fork 本仓库并在 Netlify 中导入,或点击下方按钮一键部署:

Deploy to Netlify

Docker

Tip

基于 denoland/deno:alpine 构建,需搭配 Web 服务器使用。

docker-compose

services:
  docker-proxy:
    image: fordes123/docker-proxy:latest
    container_name: docker-proxy
    environment:
      HOME_MODEL: static
      HOME_VALUE: search
    ports:
      - 1993:1993
    restart: unless-stopped

docker cli

docker run -d \
  --name docker-proxy \
  --restart unless-stopped \
  --env HOME_MODEL='static' \
  --env HOME_VALUE='search' \
  -p 1993:1993 \
  fordes123/docker-proxy:latest

📡 路由说明

域名匹配规则

根据自定义域名前缀自动匹配对应镜像源:

域名前缀 对应镜像源
docker.* registry-1.docker.io
gcr.* gcr.io
quay.* quay.io
k8s-gcr.* k8s.gcr.io
k8s.* registry.k8s.io
ghcr.* ghcr.io
cloudsmith.* docker.cloudsmith.io
nvcr.* nvcr.io

参数匹配规则

通过 URL 参数 ns 指定镜像源(优先级高于域名匹配):

  • your-domain.com?ns=gcrgcr.io
  • your-domain.com?ns=quayquay.io

⚙️ 环境变量配置

变量名 必填 默认值 说明
HOME_MODEL static 浏览器访问时的策略
- redirect:重定向
- proxy:代理
- static:静态内容
HOME_VALUE search 策略对应值
- redirect:重定向目标 URL (https://hub.docker.com)
- proxy:代理域名 (hub.docker.com)
- static:静态文本内容 (预设 nginxsearch)

🙏 致谢

本项目基于以下项目修改而来,感谢各位作者的贡献

from  https://github.com/fordes123/docker-proxy

-----

这个项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具。它能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制和加速访问的问题。

 
 

第三方 DockerHub 镜像服务列表

CF-Workers-docker.io

🐳 CF-Workers-docker.io:Docker仓库镜像代理工具

这个项目是一个基于 Cloudflare Workers 的 Docker 镜像代理工具。它能够中转对 Docker 官方镜像仓库的请求,解决一些访问限制和加速访问的问题。

Caution

docker.fxxk.dedyn.io 已被GFW污染,需自行部署使用。

Warning

根据 Cloudflare 协议 中,2.2.1 第 (j) use the Services to provide a virtual private network or other similar proxy services.

使用本服务可能存在被 Cloudflare 封号的潜在风险,请自行斟酌使用风险。

如果你选择了“根据主机名选择对应的上游地址”方式部署,你可能会:

被 Netcraft 扫描到,收到警告邮件

被 Netcraft 同步到 Google Safe Browsing 标记为钓鱼网站

被 Netcraft 投诉到 Cloudflare 标记为钓鱼网站, 无法正常 pull 镜像

收到律师函

🚀 部署方式

  • Workers 部署:复制 _worker.js 代码,保存并部署即可
  • Pages 部署:Fork连接GitHub 一键部署即可

⚙️ 如何使用? 视频教程

例如您的Workers项目域名为:docker.fxxk.dedyn.io

1.官方镜像路径前面加域名

docker pull docker.fxxk.dedyn.io/stilleshan/frpc:latest
docker pull docker.fxxk.dedyn.io/library/nginx:stable-alpine3.19-perl

2.一键设置镜像加速

修改文件 /etc/docker/daemon.json(如果不存在则创建)

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.fxxk.dedyn.io"]  # 请替换为您自己的Worker自定义域名
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 配置常见仓库的镜像加速

3.1 配置

Containerd 较简单,它支持任意 registrymirror,只需要修改配置文件 /etc/containerd/config.toml,添加如下的配置:

    [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."k8s.gcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."ghcr.io"]
          endpoint = ["https://xxxx.xx.com"]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]
          endpoint = ["https://xxxx.xx.com"]

Podman 同样支持任意 registrymirror,修改配置文件 /etc/containers/registries.conf,添加配置:

unqualified-search-registries = ['docker.io', 'k8s.gcr.io', 'gcr.io', 'ghcr.io', 'quay.io']

[[registry]]
prefix = "docker.io"
insecure = true
location = "registry-1.docker.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "registry.k8s.io"
insecure = true
location = "registry.k8s.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "k8s.gcr.io"
insecure = true
location = "k8s.gcr.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "gcr.io"
insecure = true
location = "gcr.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "ghcr.io"
insecure = true
location = "ghcr.io"

[[registry.mirror]]
location = "xxxx.xx.com"

[[registry]]
prefix = "quay.io"
insecure = true
location = "quay.io"

[[registry.mirror]]
location = "xxxx.xx.com"

3.3 使用

对于以上配置,k8s 在使用的时候,就可以直接 pull 外部无法 pull 的镜像了。

# 手动可以直接pull配置了mirror的仓库
crictl pull registry.k8s.io/kube-proxy:v1.28.4
docker  pull nginx:1.21

🔧 变量说明

变量名 示例 必填 备注
URL302 https://t.me/CMLiussss 主页302跳转
URL https://www.baidu.com/ 主页伪装(设为nginx则伪装为nginx默认页面)
UA netcraft 支持多元素, 元素之间使用空格或换行作间隔

🛠️ 第三方 DockerHub 镜像服务

注意:

  • 以下内容仅做镜像服务的整理与搜集,未做任何安全性检测和验证。
  • 使用前请自行斟酌,并根据实际需求进行必要的安全审查。
  • 本列表中的任何服务都不做任何形式的安全承诺或保证。
DockerHub 镜像仓库 镜像加地址
bestcfipas 镜像服务 https://docker.registry.cyou

https://docker-cf.registry.cyou

https://registry.lfree.org
zero_free 镜像服务 https://docker.jsdelivr.fyi

https://docker.aeko.cn
mingyu 镜像服务 https://hubp.de
Docker 镜像加速站 https://docker.1panel.live
Hub Proxy https://hub.rat.dev
DaoCloud 镜像站 https://docker.m.daocloud.io

🙏 鸣谢

💖 赞助支持 - 提供云服务器

  • digitalvirt.com

🛠 开源代码引用

from   https://github.com/cmliu/CF-Workers-docker.io

------

 https://github.com/ciiiii/cloudflare-docker-proxy

------

 Docker 镜像代理,通过 GitHub Actions 将 docker.io、gcr.io、registry.k8s.io、k8s.gcr.io、quay.io、ghcr.io 等国外镜像转换为国内镜像加速下载.

hub-mirror

使用国内镜像仓库来提供(但不限于) docker.io、gcr.io、registry.k8s.io、k8s.gcr.io、quay.io、ghcr.io 等国外镜像加速下载服务

示例:#2816

gopher云原生公众号二维码

👆 扫码或搜索关注公众号:gopher云原生

使用流程

1️⃣ Fork 本项目

Fork 该项目,后续所有操作都在你 Fork 的仓库中进行。

2️⃣ 绑定账号

  • 进入 SettingsSecrets and variablesActions

  • 选择 New repository secret,并添加以下 Secrets

    • DOCKER_USERNAME:镜像仓库登录名
    • DOCKER_TOKEN:镜像仓库密码
    • DOCKER_REPOSITORY:镜像仓库地址

其中 DOCKER_REPOSITORY 示例:

  • 腾讯云: ccr.ccs.tencentyun.com/[namespace]
  • 阿里云: registry.cn-hangzhou.aliyuncs.com/[namespace]

例如我的是:registry.cn-hangzhou.aliyuncs.com/hubmirrorbytogettoyou

🔹 示例截图

阿里云镜像仓库

Secrets 配置示例

3️⃣ 开启 Issues 功能

  • 进入 SettingsGeneralFeatures
  • 启用 Issues

🔹 示例截图

开启 Issues

4️⃣ 配置 Actions 权限

  • 进入 SettingsActionsGeneral
  • Workflow permissions 选项中,选择:
    • Read and write permissions

🔹 示例截图

修改 Actions 权限

5️⃣ 添加 Issue Labels

  • 进入 IssuesLabels

  • 点击 New label

  • 依次添加以下 Labels:

    • hub-mirror
    • success
    • failure

🔹 示例截图

添加 Labels

6️⃣ 启用 Actions Workflow

  • 进入 Actions
  • 选择 hub-mirror
  • 在右上角 ··· 菜单中选择 Enable Workflow

🔹 示例截图

启用 Workflow

7️⃣ 提交 Issue 触发同步

  • Fork 的仓库 Issues 页面,点击 New issue
  • 选择 hub-mirror 模板,填写所需信息并提交

🔹from https://github.com/togettoyou/hub-mirror

 

1920-1950 年中國經典歌曲

Monday, 30 March 2026

Chatbot

 

A full-featured, hackable Next.js AI chatbot built by Vercel.

 

Chatbot (formerly AI Chatbot) is a free, open-source template built with Next.js and the AI SDK that helps you quickly build powerful chatbot applications.

Read Docs · Features · Model Providers · Deploy Your Own · Running locally


Features

  • Next.js App Router
    • Advanced routing for seamless navigation and performance
    • React Server Components (RSCs) and Server Actions for server-side rendering and increased performance
  • AI SDK
    • Unified API for generating text, structured objects, and tool calls with LLMs
    • Hooks for building dynamic chat and generative user interfaces
    • Supports OpenAI, Anthropic, Google, xAI, and other model providers via AI Gateway
  • shadcn/ui
  • Data Persistence
  • Auth.js
    • Simple and secure authentication

Model Providers

This template uses the Vercel AI Gateway to access multiple AI models through a unified interface. Models are configured in lib/ai/models.ts with per-model provider routing. Included models: Mistral, Moonshot, DeepSeek, OpenAI, and xAI.

AI Gateway Authentication

For Vercel deployments: Authentication is handled automatically via OIDC tokens.

For non-Vercel deployments: You need to provide an AI Gateway API key by setting the AI_GATEWAY_API_KEY environment variable in your .env.local file.

With the AI SDK, you can also switch to direct LLM providers like OpenAI, Anthropic, Cohere, and many more with just a few lines of code.

Deploy Your Own

You can deploy your own version of Chatbot to Vercel with one click:

Deploy with Vercel

Running locally

You will need to use the environment variables defined in .env.example to run Chatbot. It's recommended you use Vercel Environment Variables for this, but a .env file is all that is necessary.

Note: You should not commit your .env file or it will expose secrets that will allow others to control access to your various AI and authentication provider accounts.

  1. Install Vercel CLI: npm i -g vercel
  2. Link local instance with Vercel and GitHub accounts (creates .vercel directory): vercel link
  3. Download your environment variables: vercel env pull
pnpm install
pnpm db:migrate # Setup database or apply latest database changes
pnpm dev

Your app template should now be running on localhost:3000.

from  https://github.com/vercel/chatbot

Sunday, 29 March 2026

中東戰爭注定變成無底洞?川普深陷泥潭!石油美元體系加速崩塌

 

以色列的報應來了,遭伊朗襲擊,逃命時間僅十五秒。以色列代表拿警報器赴聯合國賣慘

中國連甩兩張「反制王炸」!特朗普極限施壓的算盤徹底砸碎

 

海湾陷落,全球断裂,美以伊战争后的世界会如何

 https://www.bilibili.com/video/BV1wZXKBpEv9/

你有幸生活在一个全球最强大的制造业国家里。 

歌剧电影-红珊瑚,1961年八一电影制片厂出品

 

人类历史上无数灾难,根源正是多数人的无知+少数人的无耻

 

历史上绝大多数灾难,从来不是天灾,而是人祸;不是意外,而是共谋——由多数人的无知点燃,由少数人的无耻助推。

无知,让人失去判断;无耻,让人失去底线。当两者相遇,人间便成炼狱。

一、无知,是灾难最肥沃的土壤

无知不是愚蠢,而是轻信、盲从、放弃思考、被情绪裹挟。它让人轻易相信谎言,轻易追随极端,轻易把他人推入深渊,还自以为正义。

历史反复证明:最可怕的不是邪恶,而是无知的善良;最危险的不是敌人,而是被煽动的大众。

无知者往往站在道德高地上,却在不知不觉中,成为灾难的帮凶。他们不问真相,只听情绪;不辨是非,只随大流;不思考后果,只追求一时的痛快。于是,谎言被当成真理,极端被当成正义,掠夺被当成解放,迫害被当成净化。

无知,让普通人拥有了伤害世界的力量。

二、无耻,是灾难最凶狠的推手

如果说无知是土壤,那么无耻就是种子。

少数人的无耻,是一切灾难的起点。他们为了权力、利益、野心,刻意制造对立、扭曲真相、煽动仇恨、收割恐惧。他们懂得如何利用人性的弱点,如何包装谎言,如何把自私包装成理想,把掠夺包装成使命

他们冷静、精明、毫无底线。他们知道自己在说谎,却理直气壮;他们知道会带来灾难,却毫不在意;他们把他人当作棋子,把生命当作数字,把历史当作筹码。

无耻者最擅长的,就是利用无知者的热情,实现自己的私欲。(这描述的不正是川普吗?

三、当无知遇上无耻,便是人类最深重的悲剧

纵观人类历史,几乎所有大规模的苦难,都遵循同一个逻辑:

少数人撒谎,多数人相信;
少数人作恶,多数人默许;
少数人夺权,多数人陪葬。

战争、屠杀、迫害、饥荒、恐慌、极端运动……没有一场是凭空而来。背后永远是:有人故意误导,有人甘愿盲从;有人精心算计,有人奋不顾身;有人赚得盆满钵满,有人坠入万劫不复。

欧洲中世纪猎巫运动就是最典型的例证。少数教会与权贵为了抢夺财产、巩固权力,刻意编造“女巫害人”的谎言,煽动民众恐惧。无数平民,尤其是女性,被无端指控、酷刑逼供、活活烧死。而千千万万普通人,因无知而狂热,因恐惧而施暴,亲手将同类推向死亡。灾难的根源,正是少数人的贪婪无耻,与多数人的愚昧盲从。

纳粹德国的种族屠杀与世界大战更是教科书式的悲剧。希特勒及其集团为了独裁与扩张,用极端民族主义包装野心,用仇恨洗脑民众,用谎言掩盖罪恶。而大量德国民众放弃独立思考,被口号裹挟、被狂热支配,心甘情愿成为暴政的工具。最终,整个世界付出了数千万生命的代价。这不是某一个人的疯狂,而是少数人的极端无耻,引爆了多数人的集体无知。

近代史上的多次经济大恐慌与金融掠夺同样遵循这一逻辑。少数金融寡头与权力阶层,制造泡沫、散布虚假信息、操纵市场,收割普通民众的财富。而大众因贪婪与无知,盲目跟风、追涨杀跌,最终在崩溃中倾家荡产。每一次金融危机,都是少数人无耻收割,多数人无知买单

甚至在人类历史上无数的迷信悲剧、群体暴力、舆论构陷、极端运动中,我们都能看到一模一样的剧本:少数人精心设计,多数人奋不顾身;少数人稳赚不赔,多数人付出代价。

最令人痛心的是:灾难发生时,无知者以为自己是受害者;灾难结束后,无耻者早已全身而退。人类付出了无数鲜血与代价,却常常在同一个坑里反复跌倒。

四、真正的觉醒,始于拒绝无知,远离无耻

历史不会重复,但会押韵。如果我们不想重蹈覆辙,就必须守住两条底线:

第一,拒绝做无知的大多数。不被情绪裹挟,不被口号迷惑,不盲目站队,不轻易仇恨。保持独立思考,守住常识,尊重事实,敬畏理性。

第二,警惕无耻的少数人。看穿那些用正义包装野心、用理想掩盖掠夺、用煽动代替道理的人。不被他们利用,不被他们收割,不成为他们的工具

一个社会最好的防御,从来不是强大的力量,而是清醒的民众与有底线的掌权者。

---------------------------------

川普就是个典型的无耻者。 

為什麼那一代的青年,願意用生命換一個還看不到的中國

 

1911年,那些參與黃花崗起義的年輕人,為什麼願意去送死?
他們不過二十幾歲,有些甚至還不到三十。
明明可以讀書、成家、過一個安穩的人生。
那麼,他們為什麼選擇了另一條路?
一、因為他們看見了「國家正在消失」
對我們來說,「國家」是一個理所當然的存在。
對他們來說,卻是一個正在崩解的現實
從甲午戰爭到列強瓜分,中國不只是輸掉戰爭,
而是一點一滴失去尊嚴與主權
那一代年輕人,第一次清楚地意識到:
👉 如果什麼都不做,
👉 這個國家,真的會消失
二、因為他們相信「可以有另一種中國」
他們之中,有人去過日本、美國,甚至更遠的地方。
他們看見了:
有憲政的國家
有選舉的制度
有人民可以參與的政府
於是他們開始相信:
👉 中國,可以是沒有皇帝的中國。
👉 也可以是人民的中國。
這個想法,在今天看來很自然,
但在當時,是一種幾乎要用生命去承擔的信念。
三、因為有人站出來,把理想變成行動
同盟會 的出現,讓「不滿」變成「方向」。
孫中山 提出了一個清楚的目標:
👉 推翻專制
👉 建立共和
這不再只是抱怨,而是一條可以走的路。
四、他們知道——可能回不來
參與黃花崗起義的人,其實都很清楚:
👉 這一去,很可能就回不來了。
但他們還是去了。
不是因為不怕死,而是因為他們心裡有一個更重的問題:
👉 如果這一代不站出來,
👉 還會有下一代嗎?
五、而另一群人,甚至還來不及長大
如果說革命青年,是為理想赴死,
那麼抗戰時期的少年,則是在現實中被迫長大。
在七七事變之後,戰火迅速蔓延。
很多十六、七歲的年輕人,已經背起行囊,走向戰場。
他們甚至還來不及真正理解「國家是什麼」,
卻已經先學會了「為什麼要守住它」。
六、因為戰火,已經燒到他們的人生裡
當時的中國,不是書本上的地圖,
而是正在被轟炸的城市、被佔領的家鄉。
很多人親眼看見:
家園被毀
親人流離
城市淪陷
👉 那一刻,「要不要上戰場」,已經不是選擇,而是現實。
七、因為他們沒有退路
我們今天可以討論戰爭與和平,
是因為我們有選擇。
對他們來說——
👉 不打,就失去一切。
👉 打,至少還有一點可能
所以很多人不是因為熱血,而是因為沒有退路。
八、因為那一代人,有一種今天很難理解的責任感
在那個年代,「國家」不是抽象的概念。
它是:
父母能不能活下去
家鄉能不能留下來
下一代還有沒有未來
所以一個十七歲的年輕人,
會做出今天看來難以理解的選擇:
👉 把自己的生命,交給一場不知道能不能贏的戰爭。
九、他們押上的,是一個還不存在的未來
最讓人動容的,不是他們的犧牲,
而是他們當時根本看不到結果。
无法保證成功、无法確定未來
甚至不知道會不會被記住
但他們仍然選擇出發。
最後我想說的是:
今天我們談論歷史,很容易用結果來評價一切。
但如果把時間倒回那一天——
1911年的廣州,或1937年的戰火之中。
那些年輕人站在夜色與煙火之間,他們其實什麼都沒有。
沒有勝算
沒有保障
沒有退路
只有一個信念。
我想:
👉 他們不是不怕死,
👉 而是覺得——
👉 有些事情,比活著更重要。
👉 那麼、今天的我們呢?