
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
linux/amd64, linux/arm64iron-proxy是一款面向不可信工作负载的出口防火墙。它作为MITM代理(带内置DNS服务器)部署在容器与互联网之间,强制实施默认拒绝的出口策略,通过秘密注入避免工作负载直接持有真实凭证,并为每一次请求生成结构化JSON审计日志。
iron-proxy通过动态生成由您提供的CA签名的叶证书来终止TLS,客户端容器必须信任该CA。
bash$ mkdir -p certs $ openssl genrsa -out certs/ca.key 4096 $ openssl req -x509 -new -nodes \ -key certs/ca.key \ -sha256 -days 3650 \ -subj "/CN=iron-proxy CA" \ -addext "basicConstraints=critical,CA:TRUE" \ -addext "keyUsage=critical,keyCertSign" \ -out certs/ca.crt
bash$ docker run -d --name iron-proxy \ -v $(pwd)/proxy.yaml:/etc/iron-proxy/proxy.yaml:ro \ -v $(pwd)/certs/ca.crt:/etc/iron-proxy/ca.crt:ro \ -v $(pwd)/certs/ca.key:/etc/iron-proxy/ca.key:ro \ -e OPENAI_API_KEY=sk-real-key \ ironsh/iron-proxy:latest -config /etc/iron-proxy/proxy.yaml
最简单的方式是基于DNS的路由:将容器的DNS指向iron-proxy,所有主机名解析都会指向代理IP,自动将流量路由到代理:
bash$ docker run --rm \ --dns 172.20.0.2 \ -v $(pwd)/certs/ca.crt:/usr/local/share/ca-certificates/iron-proxy.crt:ro \ alpine sh -c "update-ca-certificates 2>/dev/null && curl https://httpbin.org/get"
为了更强的 enforcement,可叠加nftables规则阻止非代理出口流量,或使用TPROXY进行内核级拦截。具体实现可参考https://github.com/ironsh/iron-proxy/tree/main/examples%E7%9B%AE%E5%BD%95%E3%80%82
yamlservices: proxy: image: docker.xuanyuan.run/ironsh/iron-proxy:latest command: ["-config", "/etc/iron-proxy/proxy.yaml"] environment: - OPENAI_API_KEY=sk-real-openai-key-do-not-share volumes: - ./proxy.yaml:/etc/iron-proxy/proxy.yaml:ro - ./certs/ca.crt:/etc/iron-proxy/ca.crt:ro - ./certs/ca.key:/etc/iron-proxy/ca.key:ro networks: demo: ipv4_address: 172.20.0.2 client: image: docker.xuanyuan.run/alpine:latest dns: - 172.20.0.2 volumes: - ./certs/ca.crt:/usr/local/share/ca-certificates/iron-proxy.crt:ro networks: demo: ipv4_address: 172.20.0.4 networks: demo: ipam: config: - subnet: 172.20.0.0/24
包含允许、阻止和秘密替换场景的完整演示可在https://github.com/ironsh/iron-proxy/tree/main/examples/docker-compose%E7%9B%AE%E5%BD%95%E6%89%BE%E5%88%B0%E3%80%82
iron-proxy使用单一YAML配置文件。可参考https://github.com/ironsh/iron-proxy/blob/main/iron-proxy.example.yaml%E4%BD%9C%E4%B8%BA%E8%B5%B7%E5%A7%8B%E6%A8%A1%E6%9D%BF%E3%80%82
yamldns: listen: ":53" proxy_ip: "10.16.0.1" passthrough: - "*.internal.corp" proxy: http_listen: ":80" https_listen: ":443" tls: ca_cert: "/etc/iron-proxy/ca.crt" ca_key: "/etc/iron-proxy/ca.key" transforms: - name: allowlist config: domains: - "api.openai.com" - "*.anthropic.com" - name: secrets config: source: env secrets: - var: OPENAI_API_KEY proxy_value: "proxy-token-123" match_headers: ["Authorization"] hosts: - name: "api.openai.com" log: level: "info"
默认拒绝所有请求。请求必须匹配至少一个域名通配符或CIDR才能继续,未匹配的请求将返回403 Forbidden。
在iron-proxy容器上设置真实秘密作为环境变量,给工作负载提供代理令牌。secrets转换会扫描出站请求,在转发到上游前将代理令牌替换为真实值——工作负载永远不会看到真实密钥。
https://github.com/ironsh/iron-proxy/blob/main/LICENSE
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务