<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Network on OHTLY Blog</title>
    <link>https://blog.ohtly.com/tags/network/</link>
    <description>Recent content in Network on OHTLY Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 27 Jun 2026 18:11:17 +0800</lastBuildDate>
    <atom:link href="https://blog.ohtly.com/tags/network/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>sing-box 规则集配置：国内域名和 IP 段直连</title>
      <link>https://blog.ohtly.com/posts/2026-06-27-sing-box-rule-set-direct/</link>
      <pubDate>Sat, 27 Jun 2026 18:04:50 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-27-sing-box-rule-set-direct/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;&#xA;  背景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e8%83%8c%e6%99%af&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;手头有一台充当代理的中低功耗服务器，跑了 sing-box + Shadowsocks，内网多节点统一通过它出网。日常用它拉 Docker 镜像、下载模型文件、跑构建任务。&lt;/p&gt;&#xA;&lt;p&gt;以前默认行为是：只要流量出了本地局域网，全部走 Shadowsocks 代理到国外中转节点。用了一段时间后发现国内服务的请求也绕了一大圈，带宽消耗不小，速度也不快。&lt;/p&gt;&#xA;&lt;p&gt;本文记录改造过程：如何把国内域名和 IP 段从代理链路里摘出来，走直连。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;环境&#34;&gt;&#xA;  环境&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%8e%af%e5%a2%83&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;项目&lt;/th&gt;&#xA;          &lt;th&gt;值&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;sing-box 版本&lt;/td&gt;&#xA;          &lt;td&gt;1.13.12&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;出站协议&lt;/td&gt;&#xA;          &lt;td&gt;Shadowsocks（chacha20-ietf-poly1305）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;入站&lt;/td&gt;&#xA;          &lt;td&gt;HTTP 代理 &lt;code&gt;:7890&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;路由规则类型&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;rule_set&lt;/code&gt;（&lt;code&gt;.srs&lt;/code&gt; 二进制格式）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;GeoIP/GeoSite 来源&lt;/td&gt;&#xA;          &lt;td&gt;SagerNet 官方 GitHub 仓库&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;基础配置&#34;&gt;&#xA;  基础配置&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%9f%ba%e7%a1%80%e9%85%8d%e7%bd%ae&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;目录结构&#34;&gt;&#xA;  目录结构&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/opt/sing-box/&#xA;├── .env                      # 节点凭据（敏感）&#xA;├── docker-compose.yaml       # Compose 编排&#xA;└── sing-box/&#xA;    ├── Dockerfile            # 基于 ghcr.io/sagernet/sing-box&#xA;    ├── entrypoint.sh         # 配置渲染入口&#xA;    └── config.json           # 运行时配置（自动生成）&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;docker-composeyaml&#34;&gt;&#xA;  docker-compose.yaml&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#docker-composeyaml&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;services&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;sing-box&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;build&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;context&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;./sing-box&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;dockerfile&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;Dockerfile&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;container_name&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;sing-box-clash&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;env_file&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;./.env&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;ports&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;7890:7890&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;restart&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;unless-stopped&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;volumes&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      - &lt;span style=&#34;color:#ae81ff&#34;&gt;./sing-box:/etc/sing-box&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;.env&lt;/code&gt; 里存 Shadowsocks 节点信息，通过 &lt;code&gt;entrypoint.sh&lt;/code&gt; 读取后渲染进 &lt;code&gt;config.json&lt;/code&gt;，不把明文密码提交到代码库。&lt;/p&gt;</description>
    </item>
    <item>
      <title>国内 DNS 污染下的 OpenClaw web_fetch 代理配置</title>
      <link>https://blog.ohtly.com/posts/2026-06-26-openclaw-web-fetch-proxy-dns-pollution/</link>
      <pubDate>Fri, 26 Jun 2026 16:43:34 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-26-openclaw-web-fetch-proxy-dns-pollution/</guid>
      <description>&lt;h2 id=&#34;背景&#34;&gt;&#xA;  背景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e8%83%8c%e6%99%af&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;之前写过一篇 &lt;a href=&#34;https://blog.ohtly.com/posts/openclaw-web-tools-proxy/&#34; &gt;OpenClaw web 工具原理和代理的配置&lt;/a&gt;，介绍了在 docker-compose 中设置 &lt;code&gt;HTTP_PROXY&lt;/code&gt;/&lt;code&gt;HTTPS_PROXY&lt;/code&gt; 环境变量让 web_fetch、web_search 走代理的方法。按那篇文章配置后，一台部署节点工作正常，另一台同样配置却不行——web_fetch 始终无法访问 Google。&lt;/p&gt;&#xA;&lt;h2 id=&#34;现象&#34;&gt;&#xA;  现象&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%8e%b0%e8%b1%a1&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;两台机器，OpenClaw &lt;code&gt;2026.6.5&lt;/code&gt;，docker-compose 中设置了相同的代理环境变量：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;environment&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;HTTP_PROXY&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;http://proxy-server:7890&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;HTTPS_PROXY&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;http://proxy-server:7890&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;NO_PROXY&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;localhost,127.0.0.1,192.168.0.0/24,10.0.0.0/8,::1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;运行时调用 &lt;code&gt;web_fetch(&amp;quot;https://www.google.com&amp;quot;)&lt;/code&gt;，&lt;strong&gt;节点 A 正常返回，节点 B 失败&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;h2 id=&#34;排查过程&#34;&gt;&#xA;  排查过程&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%8e%92%e6%9f%a5%e8%bf%87%e7%a8%8b&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-容器内-curl-测试&#34;&gt;&#xA;  1. 容器内 curl 测试&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#1-%e5%ae%b9%e5%99%a8%e5%86%85-curl-%e6%b5%8b%e8%af%95&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;两台机器的容器内手动测试代理连通性，结果一致：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 直连 Google&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -s --connect-timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;5&lt;/span&gt; https://www.google.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# → 200 OK&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 走代理访问 Google&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -s --connect-timeout &lt;span style=&#34;color:#ae81ff&#34;&gt;10&lt;/span&gt; -x http://proxy-server:7890 https://www.google.com&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# → 200 OK&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;curl 能走代理，说明代理服务器本身没有问题。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenClaw web 工具原理和代理的配置</title>
      <link>https://blog.ohtly.com/posts/openclaw-web-tools-proxy/</link>
      <pubDate>Wed, 10 Jun 2026 18:59:10 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/openclaw-web-tools-proxy/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;&#xA;  前言&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%89%8d%e8%a8%80&#34;&gt;&#xA;    &lt;i class=&#34;fa-solid fa-link&#34; aria-hidden=&#34;true&#34; title=&#34;链接到标题&#34;&gt;&lt;/i&gt;&#xA;    &lt;span class=&#34;sr-only&#34;&gt;链接到标题&lt;/span&gt;&#xA;  &lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;OpenClaw 提供三个 web 工具：&lt;code&gt;web_fetch&lt;/code&gt;（抓取页面）、&lt;code&gt;web_search&lt;/code&gt;（搜索）、&lt;code&gt;x_search&lt;/code&gt;（搜索 X/Twitter），三者同属 &lt;code&gt;group:web&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;之前写过一篇 &lt;a href=&#34;https://blog.ohtly.com/posts/2026-06-09-opencode-deepseek-v4-proxy-websearch/&#34; &gt;OpenCode web search 配置&lt;/a&gt;，这次讲 OpenClaw 的实现和代理配置。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
