{"id":235,"date":"2026-01-27T12:24:55","date_gmt":"2026-01-27T04:24:55","guid":{"rendered":"https:\/\/xs.xiaosuo.top\/?p=235"},"modified":"2026-01-27T12:24:57","modified_gmt":"2026-01-27T04:24:57","slug":"hubproxy%e5%8a%a0%e9%80%9f%e4%bb%a3%e7%90%86","status":"publish","type":"post","link":"https:\/\/xs.xiaosuo.top\/index.php\/2026\/01\/27\/hubproxy%e5%8a%a0%e9%80%9f%e4%bb%a3%e7%90%86\/","title":{"rendered":"HubProxy\u52a0\u901f\u4ee3\u7406"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u6e90\u7ad9\u5730\u5740\uff1a<a href=\"https:\/\/github.com\/sky22333\/hubproxy\">GitHub &#8211; sky22333\/hubproxy<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u535a\u4e3b\u7f51\u9875\uff1a<a href=\"https:\/\/dl.494888.xyz\/\"><a href=\"https:\/\/dl.494888.xyz\/\">Github\u3001Docker\u52a0\u901f (494888.xyz)<\/a><\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7b80\u4ecb<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Docker \u548c GitHub \u52a0\u901f\u4ee3\u7406\u670d\u52a1\u5668<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e00\u4e2a\u8f7b\u91cf\u7ea7\u3001\u9ad8\u6027\u80fd\u7684\u591a\u529f\u80fd\u4ee3\u7406\u670d\u52a1\uff0c\u63d0\u4f9b Docker \u955c\u50cf\u52a0\u901f\u3001GitHub \u6587\u4ef6\u52a0\u901f\u3001\u4e0b\u8f7d\u79bb\u7ebf\u955c\u50cf\u3001\u5728\u7ebf\u641c\u7d22 Docker \u955c\u50cf\u7b49\u529f\u80fd\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7279\u6027<a href=\"https:\/\/github.com\/sky22333\/hubproxy#%E7%89%B9%E6%80%A7\"><\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udc33\u00a0<strong>Docker \u955c\u50cf\u52a0\u901f<\/strong>\u00a0&#8211; \u652f\u6301 Docker Hub\u3001GHCR\u3001Quay \u7b49\u591a\u4e2a\u955c\u50cf\u4ed3\u5e93\u52a0\u901f\uff0c\u6d41\u5f0f\u4f20\u8f93\u4f18\u5316\u62c9\u53d6\u901f\u5ea6\u3002<\/li>\n\n\n\n<li>\ud83d\udc33\u00a0<strong>\u79bb\u7ebf\u955c\u50cf\u5305<\/strong>\u00a0&#8211; \u652f\u6301\u4e0b\u8f7d\u79bb\u7ebf\u955c\u50cf\u5305\uff0c\u6d41\u5f0f\u4f20\u8f93\u52a0\u9632\u6296\u8bbe\u8ba1\u3002<\/li>\n\n\n\n<li>\ud83d\udcc1\u00a0<strong>GitHub \u6587\u4ef6\u52a0\u901f<\/strong>\u00a0&#8211; \u52a0\u901f GitHub Release\u3001Raw \u6587\u4ef6\u4e0b\u8f7d\uff0c\u652f\u6301<code>api.github.com<\/code>\uff0c\u811a\u672c\u5d4c\u5957\u52a0\u901f\u7b49\u7b49<\/li>\n\n\n\n<li>\ud83e\udd16\u00a0<strong>AI \u6a21\u578b\u5e93\u652f\u6301<\/strong>\u00a0&#8211; \u652f\u6301 Hugging Face \u6a21\u578b\u4e0b\u8f7d\u52a0\u901f<\/li>\n\n\n\n<li>\ud83d\udee1\ufe0f\u00a0<strong>\u667a\u80fd\u9650\u6d41<\/strong>\u00a0&#8211; IP \u9650\u6d41\u4fdd\u62a4\uff0c\u9632\u6b62\u6ee5\u7528<\/li>\n\n\n\n<li>\ud83d\udeab\u00a0<strong>\u4ed3\u5e93\u5ba1\u8ba1<\/strong>\u00a0&#8211; \u5f3a\u5927\u7684\u81ea\u5b9a\u4e49\u9ed1\u540d\u5355\uff0c\u767d\u540d\u5355\uff0c\u540c\u65f6\u5ba1\u8ba1\u955c\u50cf\u4ed3\u5e93\uff0c\u548cGitHub\u4ed3\u5e93<\/li>\n\n\n\n<li>\ud83d\udd0d\u00a0<strong>\u955c\u50cf\u641c\u7d22<\/strong>\u00a0&#8211; \u5728\u7ebf\u641c\u7d22 Docker \u955c\u50cf<\/li>\n\n\n\n<li>\u26a1\u00a0<strong>\u8f7b\u91cf\u9ad8\u6548<\/strong>\u00a0&#8211; \u57fa\u4e8e Go \u8bed\u8a00\uff0c\u5355\u4e8c\u8fdb\u5236\u6587\u4ef6\u8fd0\u884c\uff0c\u8d44\u6e90\u5360\u7528\u4f4e\u3002<\/li>\n\n\n\n<li>\ud83d\udd27\u00a0<strong>\u7edf\u4e00\u914d\u7f6e<\/strong>\u00a0&#8211; \u7edf\u4e00\u914d\u7f6e\u7ba1\u7406\uff0c\u4fbf\u4e8e\u7ef4\u62a4\u3002<\/li>\n\n\n\n<li>\ud83d\udee1\ufe0f\u00a0<strong>\u5b8c\u5168\u81ea\u6258\u7ba1<\/strong>\u00a0&#8211; \u907f\u514d\u4f9d\u8d56\u514d\u8d39\u7b2c\u4e09\u65b9\u670d\u52a1\u7684\u4e0d\u7a33\u5b9a\u6027\uff0c\u4f8b\u5982<code>cloudflare<\/code>\u7b49\u7b49\u3002<\/li>\n\n\n\n<li>\ud83d\ude80\u00a0<strong>\u591a\u670d\u52a1\u7edf\u4e00\u52a0\u901f<\/strong>\u00a0&#8211; \u5355\u4e2a\u7a0b\u5e8f\u5373\u53ef\u7edf\u4e00\u52a0\u901f Docker\u3001GitHub\u3001Hugging Face \u7b49\u591a\u79cd\u670d\u52a1\uff0c\u7b80\u5316\u90e8\u7f72\u4e0e\u7ba1\u7406\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u5feb\u901f\u5f00\u59cb<a href=\"https:\/\/github.com\/sky22333\/hubproxy#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B\"><\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Docker\u90e8\u7f72\uff08\u63a8\u8350\uff09<a href=\"https:\/\/github.com\/sky22333\/hubproxy#docker%E9%83%A8%E7%BD%B2%E6%8E%A8%E8%8D%90\"><\/a><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d \\\n  --name hubproxy \\\n  -p 5000:5000 \\\n  --restart always \\\n  ghcr.io\/sky22333\/hubproxy\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e00\u952e\u811a\u672c\u5b89\u88c5<a href=\"https:\/\/github.com\/sky22333\/hubproxy#%E4%B8%80%E9%94%AE%E8%84%9A%E6%9C%AC%E5%AE%89%E8%A3%85\"><\/a><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">curl -fsSL https:\/\/raw.githubusercontent.com\/sky22333\/hubproxy\/main\/install.sh | sudo bash<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u652f\u6301\u5355\u4e2a\u4e8c\u8fdb\u5236\u6587\u4ef6\u76f4\u63a5\u542f\u52a8\uff0c\u65e0\u9700\u5176\u4ed6\u914d\u7f6e\uff0c\u5185\u7f6e\u9ed8\u8ba4\u914d\u7f6e\uff0c\u652f\u6301\u6240\u6709\u529f\u80fd\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd9\u4e2a\u811a\u672c\u4f1a\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u81ea\u52a8\u68c0\u6d4b\u7cfb\u7edf\u67b6\u6784\uff08AMD64\/ARM64\uff09<\/li>\n\n\n\n<li>\u4ece GitHub Releases \u4e0b\u8f7d\u6700\u65b0\u7248\u672c<\/li>\n\n\n\n<li>\u81ea\u52a8\u914d\u7f6e\u7cfb\u7edf\u670d\u52a1<\/li>\n\n\n\n<li>\u4fdd\u7559\u73b0\u6709\u914d\u7f6e\uff08\u5347\u7ea7\u65f6\uff09<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u4f7f\u7528\u65b9\u6cd5<a href=\"https:\/\/github.com\/sky22333\/hubproxy#%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95\"><\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Docker \u955c\u50cf\u52a0\u901f<a href=\"https:\/\/github.com\/sky22333\/hubproxy#docker-%E9%95%9C%E5%83%8F%E5%8A%A0%E9%80%9F\"><\/a><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"># \u539f\u547d\u4ee4\ndocker pull nginx\n\n# \u4f7f\u7528\u52a0\u901f\ndocker pull yourdomain.com\/nginx\n\n# ghcr\u52a0\u901f\ndocker pull yourdomain.com\/ghcr.io\/sky22333\/hubproxy\n\n# \u7b26\u5408Docker Registry API v2\u6807\u51c6\u7684\u4ed3\u5e93\u90fd\u652f\u6301<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5f53\u7136\u4e5f\u652f\u6301\u914d\u7f6e\u4e3a\u5168\u5c40\u955c\u50cf\u52a0\u901f\uff0c\u5728\u4e3b\u673a\u4e0a\u65b0\u5efa\uff08\u6216\u7f16\u8f91\uff09<code>\/etc\/docker\/daemon.json<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5728&nbsp;<code>\"registry-mirrors\"<\/code>&nbsp;\u4e2d\u52a0\u5165\u57df\u540d\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{\n  \"registry-mirrors\": [\n    \"https:\/\/yourdomain.com\"\n  ]\n}<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u82e5\u5df2\u8bbe\u7f6e\u5176\u4ed6\u52a0\u901f\u5730\u5740\uff0c\u76f4\u63a5\u5e76\u5217\u6dfb\u52a0\u540e\u4fdd\u5b58\uff0c\u518d\u6267\u884c&nbsp;<code>sudo systemctl restart docker<\/code>&nbsp;\u91cd\u542fdocker\u670d\u52a1\u8ba9\u914d\u7f6e\u751f\u6548\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GitHub \u6587\u4ef6\u52a0\u901f<a href=\"https:\/\/github.com\/sky22333\/hubproxy#github-%E6%96%87%E4%BB%B6%E5%8A%A0%E9%80%9F\"><\/a><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\"># \u539f\u94fe\u63a5<br>https:\/\/github.com\/user\/repo\/releases\/download\/v1.0.0\/file.tar.gz<br># \u52a0\u901f\u94fe\u63a5<br>https:\/\/yourdomain.com\/https:\/\/github.com\/user\/repo\/releases\/download\/v1.0.0\/file.tar.gz<br># \u52a0\u901f\u4e0b\u8f7d\u4ed3\u5e93<br>git clone https:\/\/yourdomain.com\/https:\/\/github.com\/sky22333\/hubproxy.git<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u914d\u7f6e<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/github.com\/sky22333\/hubproxy#%E9%85%8D%E7%BD%AE\"><\/a>config.toml \u914d\u7f6e\u8bf4\u660e<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;server]\nhost = \"0.0.0.0\"\n# \u76d1\u542c\u7aef\u53e3\nport = 5000\n# Github\u6587\u4ef6\u5927\u5c0f\u9650\u5236\uff08\u5b57\u8282\uff09\uff0c\u9ed8\u8ba42GB\nfileSize = 2147483648\n# HTTP\/2 \u591a\u8def\u590d\u7528\uff0c\u63d0\u5347\u4e0b\u8f7d\u901f\u5ea6\nenableH2C = false\n# \u662f\u5426\u542f\u7528\u524d\u7aef\u9759\u6001\u9875\u9762\nenableFrontend = true\n\n&#91;rateLimit]\n# \u6bcf\u4e2aIP\u6bcf\u5468\u671f\u5141\u8bb8\u7684\u8bf7\u6c42\u6570(\u6ce8\u610fDocker\u955c\u50cf\u4f1a\u6709\u591a\u4e2a\u5c42\uff0c\u4f1a\u6d88\u8017\u591a\u4e2a\u6b21\u6570)\nrequestLimit = 500\n# \u9650\u6d41\u5468\u671f\uff08\u5c0f\u65f6\uff09\nperiodHours = 3.0\n\n&#91;security]\n# IP\u767d\u540d\u5355\uff0c\u652f\u6301\u5355\u4e2aIP\u6216IP\u6bb5\n# \u767d\u540d\u5355\u4e2d\u7684IP\u4e0d\u53d7\u9650\u6d41\u9650\u5236\nwhiteList = &#91;\n    \"127.0.0.1\",\n    \"172.17.0.0\/16\",\n    \"192.168.1.0\/24\"\n]\n\n# IP\u9ed1\u540d\u5355\uff0c\u652f\u6301\u5355\u4e2aIP\u6216IP\u6bb5\n# \u9ed1\u540d\u5355\u4e2d\u7684IP\u5c06\u88ab\u76f4\u63a5\u62d2\u7edd\u8bbf\u95ee\nblackList = &#91;\n    \"192.168.100.1\",\n    \"192.168.100.0\/24\"\n]\n\n&#91;access]\n# \u4ee3\u7406\u670d\u52a1\u767d\u540d\u5355\uff08\u652f\u6301GitHub\u4ed3\u5e93\u548cDocker\u955c\u50cf\uff0c\u652f\u6301\u901a\u914d\u7b26\uff09\n# \u53ea\u5141\u8bb8\u8bbf\u95ee\u767d\u540d\u5355\u4e2d\u7684\u4ed3\u5e93\/\u955c\u50cf\uff0c\u4e3a\u7a7a\u65f6\u4e0d\u9650\u5236\nwhiteList = &#91;]\n\n# \u4ee3\u7406\u670d\u52a1\u9ed1\u540d\u5355\uff08\u652f\u6301GitHub\u4ed3\u5e93\u548cDocker\u955c\u50cf\uff0c\u652f\u6301\u901a\u914d\u7b26\uff09\n# \u7981\u6b62\u8bbf\u95ee\u9ed1\u540d\u5355\u4e2d\u7684\u4ed3\u5e93\/\u955c\u50cf\nblackList = &#91;\n    \"baduser\/malicious-repo\",\n    \"*\/malicious-repo\",\n    \"baduser\/*\"\n]\n\n# \u4ee3\u7406\u914d\u7f6e\uff0c\u652f\u6301\u6709\u7528\u6237\u540d\/\u5bc6\u7801\u8ba4\u8bc1\u548c\u65e0\u8ba4\u8bc1\u6a21\u5f0f\n# \u65e0\u8ba4\u8bc1: socks5:\/\/127.0.0.1:1080\n# \u6709\u8ba4\u8bc1: socks5:\/\/username:password@127.0.0.1:1080\n# \u7559\u7a7a\u4e0d\u4f7f\u7528\u4ee3\u7406\nproxy = \"\" \n\n&#91;download]\n# \u6279\u91cf\u4e0b\u8f7d\u79bb\u7ebf\u955c\u50cf\u6570\u91cf\u9650\u5236\nmaxImages = 10\n\n# Registry\u6620\u5c04\u914d\u7f6e\uff0c\u652f\u6301\u591a\u79cd\u955c\u50cf\u4ed3\u5e93\u4e0a\u6e38\n&#91;registries]\n\n# GitHub Container Registry\n&#91;registries.\"ghcr.io\"]\nupstream = \"ghcr.io\"\nauthHost = \"ghcr.io\/token\" \nauthType = \"github\"\nenabled = true\n\n# Google Container Registry\n&#91;registries.\"gcr.io\"]\nupstream = \"gcr.io\"\nauthHost = \"gcr.io\/v2\/token\"\nauthType = \"google\"\nenabled = true\n\n# Quay.io Container Registry\n&#91;registries.\"quay.io\"]\nupstream = \"quay.io\"\nauthHost = \"quay.io\/v2\/auth\"\nauthType = \"quay\"\nenabled = true\n\n# Kubernetes Container Registry\n&#91;registries.\"registry.k8s.io\"]\nupstream = \"registry.k8s.io\"\nauthHost = \"registry.k8s.io\"\nauthType = \"anonymous\"\nenabled = true\n\n&#91;tokenCache]\n# \u662f\u5426\u542f\u7528\u7f13\u5b58(\u540c\u65f6\u63a7\u5236Token\u548cManifest\u7f13\u5b58)\u663e\u8457\u63d0\u5347\u6027\u80fd\nenabled = true\n# \u9ed8\u8ba4\u7f13\u5b58\u65f6\u95f4(\u5206\u949f)\ndefaultTTL = \"20m\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bb9\u5668\u5185\u7684\u914d\u7f6e\u6587\u4ef6\u4f4d\u4e8e&nbsp;<code>\/root\/config.toml<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u811a\u672c\u90e8\u7f72\u914d\u7f6e\u6587\u4ef6\u4f4d\u4e8e&nbsp;<code>\/opt\/hubproxy\/config.toml<\/code><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u73af\u5883\u53d8\u91cf\uff08\u53ef\u9009\uff09<a href=\"https:\/\/github.com\/sky22333\/hubproxy#%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%8F%AF%E9%80%89\"><\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u652f\u6301\u901a\u8fc7\u73af\u5883\u53d8\u91cf\u8986\u76d6\u90e8\u5206\u914d\u7f6e\uff0c\u4f18\u5148\u7ea7\u9ad8\u4e8e<code>config.toml<\/code>\uff0c\u4ee5\u4e0b\u662f\u9ed8\u8ba4\u503c\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SERVER_HOST=0.0.0.0             # \u76d1\u542c\u5730\u5740\nSERVER_PORT=5000                # \u76d1\u542c\u7aef\u53e3\nENABLE_H2C=false                # \u662f\u5426\u542f\u7528 H2C\nENABLE_FRONTEND=true            # \u662f\u5426\u542f\u7528\u524d\u7aef\u9759\u6001\u9875\u9762\nMAX_FILE_SIZE=2147483648        # GitHub \u6587\u4ef6\u5927\u5c0f\u9650\u5236\uff08\u5b57\u8282\uff09\nRATE_LIMIT=500                  # \u6bcf\u5468\u671f\u8bf7\u6c42\u6570\nRATE_PERIOD_HOURS=3             # \u9650\u6d41\u5468\u671f\uff08\u5c0f\u65f6\uff09\nIP_WHITELIST=127.0.0.1,192.168.1.0\/24   # IP \u767d\u540d\u5355\uff08\u9017\u53f7\u5206\u9694\uff09\nIP_BLACKLIST=192.168.100.1,192.168.100.0\/24 # IP \u9ed1\u540d\u5355\uff08\u9017\u53f7\u5206\u9694\uff09\nMAX_IMAGES=10                   # \u6279\u91cf\u4e0b\u8f7d\u955c\u50cf\u6570\u91cf\u9650\u5236\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e3a\u4e86IP\u9650\u6d41\u80fd\u591f\u6b63\u5e38\u8fd0\u884c\uff0c\u53cd\u5411\u4ee3\u7406\u9700\u8981\u4f20\u9012IP\u5934\u7528\u6765\u83b7\u53d6\u8bbf\u5ba2\u771f\u5b9eIP\uff0c\u4ee5caddy\u4e3a\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>example.com {\n    reverse_proxy {\n        to 127.0.0.1:5000\n        header_up X-Real-IP {remote}\n        header_up X-Forwarded-For {remote}\n        header_up X-Forwarded-Proto {scheme}\n    }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">cloudflare CDN\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>example.com {\n    reverse_proxy 127.0.0.1:5000 {\n        header_up X-Forwarded-For {http.request.header.CF-Connecting-IP}\n        header_up X-Real-IP {http.request.header.CF-Connecting-IP}\n        header_up X-Forwarded-Proto https\n        header_up X-Forwarded-Host {host}\n    }\n}\n<\/code><\/pre>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u5bf9\u4e8e\u4f7f\u7528nginx\u53cd\u4ee3\u7684\u7528\u6237\uff0cGithub\u52a0\u901f\u63d0\u793a<code>\u65e0\u6548\u8f93\u5165<\/code>\u7684\u95ee\u9898\u53ef\u4ee5\u53c2\u89c1<a href=\"https:\/\/github.com\/sky22333\/hubproxy\/issues\/62#issuecomment-3219572440\">issues\/62<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">\u26a0\ufe0f\u00a0\u514d\u8d23\u58f0\u660e<a href=\"https:\/\/github.com\/sky22333\/hubproxy#%EF%B8%8F-%E5%85%8D%E8%B4%A3%E5%A3%B0%E6%98%8E\"><\/a><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u672c\u7a0b\u5e8f\u4ec5\u4f9b\u5b66\u4e60\u4ea4\u6d41\u4f7f\u7528\uff0c\u8bf7\u52ff\u7528\u4e8e\u975e\u6cd5\u7528\u9014<\/li>\n\n\n\n<li>\u4f7f\u7528\u672c\u7a0b\u5e8f\u9700\u9075\u5b88\u5f53\u5730\u6cd5\u5f8b\u6cd5\u89c4<\/li>\n\n\n\n<li>\u4f5c\u8005\u4e0d\u5bf9\u4f7f\u7528\u8005\u7684\u4efb\u4f55\u884c\u4e3a\u627f\u62c5\u8d23\u4efb<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">\u754c\u9762\u9884\u89c8<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/xs.xiaosuo.top\/wp-content\/uploads\/2026\/01\/QQ20260127-102226-1024x802.png'><img class=\"lazyload lazyload-style-none\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"802\" data-original=\"https:\/\/xs.xiaosuo.top\/wp-content\/uploads\/2026\/01\/QQ20260127-102226-1024x802.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-236\"  sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6e90\u7ad9\u5730\u5740\uff1aGitHub &#8211; sky22333\/hubproxy \u535a\u4e3b\u7f51\u9875\uff1aGithub\u3001Docke [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":237,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"class_list":["post-235","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hubproxy"],"_links":{"self":[{"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/posts\/235","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/comments?post=235"}],"version-history":[{"count":1,"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/posts\/235\/revisions"}],"predecessor-version":[{"id":238,"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/posts\/235\/revisions\/238"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/media\/237"}],"wp:attachment":[{"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/media?parent=235"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/categories?post=235"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xs.xiaosuo.top\/index.php\/wp-json\/wp\/v2\/tags?post=235"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}