<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vpn on OHTLY Blog</title>
    <link>https://blog.ohtly.com/tags/vpn/</link>
    <description>Recent content in Vpn on OHTLY Blog</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 26 Jun 2026 19:26:04 +0800</lastBuildDate>
    <atom:link href="https://blog.ohtly.com/tags/vpn/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>iPhone 远程访问内网：NetBird 受阻，回归 WireGuard</title>
      <link>https://blog.ohtly.com/posts/2026-06-26-iphone-vpn-netbird-wireguard/</link>
      <pubDate>Fri, 26 Jun 2026 19:07:25 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-26-iphone-vpn-netbird-wireguard/</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;已有 NetBird 自建网络覆盖办公室、家里、云服务器等多个节点，日常用 macOS/Linux 客户端体验很好。现在想让 iPhone 也能访问办公室内网资源（如内部服务、开发环境）。&lt;/p&gt;&#xA;&lt;h2 id=&#34;第一选择netbird&#34;&gt;&#xA;  第一选择：NetBird&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e7%ac%ac%e4%b8%80%e9%80%89%e6%8b%a9netbird&#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;NetBird 有官方 iOS App，支持自建服务器（Private Setup），配置很简单：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;在管理面板生成 Setup Key&lt;/li&gt;&#xA;&lt;li&gt;iPhone App 输入服务器 URL 和 Key&lt;/li&gt;&#xA;&lt;li&gt;授权 VPN 权限即可&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;遇到的问题&#34;&gt;&#xA;  遇到的问题&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e9%81%87%e5%88%b0%e7%9a%84%e9%97%ae%e9%a2%98&#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;strong&gt;问题一：iOS DNS 限制&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;办公室内网域名走 &lt;code&gt;*.lan&lt;/code&gt; 后缀，由内网 dnsmasq 解析。NetBird 的 Nameserver Group 虽然配置了 &lt;code&gt;lan&lt;/code&gt; 域指向内网 DNS，但 iOS 客户端对自定义 DNS 解析器支持有限——蜂窝网络下根本无法配置 DNS，WiFi 下手动改 DNS 为内网地址后，流量走隧道出去 DNS 查询却不一定走隧道。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;问题二：网络封锁&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;在办公室集团 WiFi 下，NetBird 一开始能连通，也能通过 IP 访问内网服务。但几分钟后连接中断，反复重连都失败。切换到 5G 则一切正常。判断是企业 WiFi 的 DPI 检测到 VPN 特征后进行了限流或阻断。&lt;/p&gt;</description>
    </item>
    <item>
      <title>NetBird 子网路由主备配置</title>
      <link>https://blog.ohtly.com/posts/2026-06-24-netbird-backup-route/</link>
      <pubDate>Wed, 24 Jun 2026 10:28:11 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-24-netbird-backup-route/</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;自建 NetBird 网络最初只有一个路由 peer（称节点 A），负责将办公子网 &lt;code&gt;192.168.*.*&lt;/code&gt; 暴露给其他 NetBird 节点。单一故障点意味着节点 A 下线后，家庭等远程节点无法访问办公内网。&lt;/p&gt;&#xA;&lt;p&gt;增加第二个路由 peer，实现主备冗余。&lt;/p&gt;&#xA;&lt;h2 id=&#34;新增节点到-netbird&#34;&gt;&#xA;  新增节点到 NetBird&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%96%b0%e5%a2%9e%e8%8a%82%e7%82%b9%e5%88%b0-netbird&#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;办公室有另一台 Mac Mini（称为节点 B），加入 NetBird 网络：&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;netbird up --management-url https://netbird-api.域名 --setup-key &amp;lt;setup-key&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;加入后获取 NetBird IP（&lt;code&gt;100.x.x.x/16&lt;/code&gt;），所有 peer 自动连通。&lt;/p&gt;&#xA;&lt;h2 id=&#34;开启-ip-转发&#34;&gt;&#xA;  开启 IP 转发&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%bc%80%e5%90%af-ip-%e8%bd%ac%e5%8f%91&#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;NetBird 路由 peer 需要转发子网流量。macOS 默认关闭 IP 转发：&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;sudo sysctl -w net.inet.ip.forwarding&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;net.inet.ip.forwarding=1&amp;#34;&lt;/span&gt; | sudo tee -a /etc/sysctl.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;即时生效并持久化。&lt;/p&gt;&#xA;&lt;h2 id=&#34;创建备份路由&#34;&gt;&#xA;  创建备份路由&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%88%9b%e5%bb%ba%e5%a4%87%e4%bb%bd%e8%b7%af%e7%94%b1&#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;通过 NetBird Route API 添加第二条路由，关键参数是 &lt;code&gt;metric&lt;/code&gt;：&lt;/p&gt;</description>
    </item>
    <item>
      <title>自建 NetBird 控制平面记录</title>
      <link>https://blog.ohtly.com/posts/2026-06-18-netbird-selfhosted/</link>
      <pubDate>Thu, 18 Jun 2026 21:41:45 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-18-netbird-selfhosted/</guid>
      <description>&lt;h2 id=&#34;概述&#34;&gt;&#xA;  概述&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%a6%82%e8%bf%b0&#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;用 NetBird 自建控制平面，替换现有的 WireGuard VPN 手动组网。控制平面部署在云服务器上，所有节点通过 P2P WireGuard 隧道互联。&lt;/p&gt;&#xA;&lt;h2 id=&#34;步骤&#34;&gt;&#xA;  步骤&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%ad%a5%e9%aa%a4&#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-traefik-v2--v3-升级&#34;&gt;&#xA;  1. Traefik v2 → v3 升级&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#1-traefik-v2--v3-%e5%8d%87%e7%ba%a7&#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;现有 Traefik 版本是 v2.10.7，先升级到 v3.7.5 为后续路由做准备。&lt;/p&gt;&#xA;&lt;p&gt;兼容性分析：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;文件配置文件（File provider）的 YAML 语法完全兼容，无需改动&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--serversTransport.insecureSkipVerify&lt;/code&gt; CLI 参数名不变&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ipwhitelist&lt;/code&gt; 中间件重命名为 &lt;code&gt;ipAllowList&lt;/code&gt;，在 v3 中需要手动迁移&lt;/li&gt;&#xA;&lt;li&gt;升级时需要加 &lt;code&gt;--core.defaultrulesyntax=v2&lt;/code&gt; 保持路由语法兼容，确认稳定后移除&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;升级步骤：只需改 Docker Compose 的 image tag，重启即可。&lt;/p&gt;&#xA;&lt;h3 id=&#34;2-netbird-控制平面部署&#34;&gt;&#xA;  2. NetBird 控制平面部署&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#2-netbird-%e6%8e%a7%e5%88%b6%e5%b9%b3%e9%9d%a2%e9%83%a8%e7%bd%b2&#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;控制平面用 Docker Compose 部署，使用 NetBird v0.65+ 的&lt;strong&gt;合并容器架构&lt;/strong&gt;，不再需要分开的 management/signal/relay/coturn 四个容器。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tailscale 快速组网：macOS &#43; Ubuntu 异地直连实战</title>
      <link>https://blog.ohtly.com/posts/2026-06-14-tailscale-ssh/</link>
      <pubDate>Sun, 14 Jun 2026 23:45:51 +0800</pubDate>
      <guid>https://blog.ohtly.com/posts/2026-06-14-tailscale-ssh/</guid>
      <description>&lt;h2 id=&#34;场景&#34;&gt;&#xA;  场景&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e5%9c%ba%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;家里一台 macOS，办公室局域网内一台 Ubuntu VM。以前要 SSH 访问办公室 VM，需要经过跳板机：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;macOS → 跳板机 → 办公室内网 → VM&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;步骤繁琐，依赖跳板机在线，而且 scp 传文件要走两跳，速度慢。&lt;/p&gt;&#xA;&lt;p&gt;目标：像在内网一样直接访问。&lt;/p&gt;&#xA;&lt;h2 id=&#34;注册&#34;&gt;&#xA;  注册&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#%e6%b3%a8%e5%86%8c&#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://tailscale.com&#34;  class=&#34;external-link&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Tailscale 官网&lt;/a&gt;，用 GitHub 账号授权登录即可。登录后自动创建一个 Tailnet（你的私人网络）。&lt;/p&gt;&#xA;&lt;p&gt;免费版支持 3 个用户、100 台设备，个人使用完全够。&lt;/p&gt;&#xA;&lt;h2 id=&#34;macos-安装&#34;&gt;&#xA;  macOS 安装&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#macos-%e5%ae%89%e8%a3%85&#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;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;brew install --cask tailscale&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;安装后启动，菜单栏出现 Tailscale 图标。点击登录，浏览器打开认证页面，选择 GitHub 账号授权，几秒钟就加入 Tailnet 了。&lt;/p&gt;&#xA;&lt;h2 id=&#34;ubuntu-server-安装&#34;&gt;&#xA;  Ubuntu Server 安装&#xA;  &lt;a class=&#34;heading-link&#34; href=&#34;#ubuntu-server-%e5%ae%89%e8%a3%85&#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;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;curl -fsSL https://tailscale.com/install.sh | sudo sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo tailscale up&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;第二条命令会输出一个认证链接，浏览器打开，登录同个 GitHub 账号即可。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
