<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>远程调试 on huluhuluu</title>
        <link>https://my-blog-p39q.vercel.app/tags/%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/</link>
        <description>Recent content in 远程调试 on huluhuluu</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Thu, 26 Feb 2026 23:00:00 +0800</lastBuildDate><atom:link href="https://my-blog-p39q.vercel.app/tags/%E8%BF%9C%E7%A8%8B%E8%B0%83%E8%AF%95/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>远程ADB环境配置</title>
            <link>https://my-blog-p39q.vercel.app/p/remote-adb/</link>
            <pubDate>Thu, 26 Feb 2026 23:00:00 +0800</pubDate>
            <guid>https://my-blog-p39q.vercel.app/p/remote-adb/</guid>
            <description>&lt;h1 id=&#34;1-远程adb环境配置&#34;&gt;1. 远程ADB环境配置&#xA;&lt;/h1&gt;&lt;p&gt;当开发服务器位于内网、手机在开发者本地时，“编译-传输-测试”、调试比较麻烦。&lt;/p&gt;&#xA;&lt;p&gt;实际上adb提供了远程连接方式，可以&lt;strong&gt;通过端口转发链路，让内网开发服务器直接&lt;strong&gt;&lt;strong&gt;adb connect&lt;/strong&gt;&lt;/strong&gt;本地手机&lt;/strong&gt;。&lt;/p&gt;&#xA;&lt;p&gt;本文以将介绍远程ADB环境的配置&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#1-%e8%bf%9c%e7%a8%8badb%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae&#34; &gt;1. 远程ADB环境配置&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#11-%e7%bd%91%e7%bb%9c%e6%8b%93%e6%89%91&#34; &gt;1.1 网络拓扑&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#12-%e5%8e%9f%e7%90%86&#34; &gt;1.2 原理&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#13-%e6%9c%ac%e5%9c%b0adb%e7%8e%af%e5%a2%83%e9%85%8d%e7%bd%ae&#34; &gt;1.3 本地ADB环境配置&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#14-%e6%9e%84%e5%bb%ba%e6%9c%8d%e5%8a%a1%e5%99%a8-%e6%9c%ac%e5%9c%b0%e8%bd%ac%e5%8f%91%e9%93%be%e8%b7%afs-l&#34; &gt;1.4 构建服务器-&amp;gt;本地转发链路(S-&amp;gt;L)&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e6%96%b9%e6%a1%881-ssh%e7%ab%af%e5%8f%a3%e8%bd%ac%e5%8f%91&#34; &gt;方案1: SSH端口转发&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#%e6%96%b9%e6%a1%882-tailscaleeasytier%e9%9a%a7%e9%81%93-%e6%8e%a8%e8%8d%90&#34; &gt;方案2: TailScale/EasyTier隧道 (推荐)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#15-%e6%9e%84%e5%bb%ba%e6%9c%ac%e5%9c%b0-%e6%89%8b%e6%9c%ba%e7%9a%84%e8%bd%ac%e5%8f%91%e9%93%be%e8%b7%afl-p&#34; &gt;1.5 构建本地-&amp;gt;手机的转发链路(L-&amp;gt;P)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;#16-%e6%b5%8b%e8%af%95&#34; &gt;1.6 测试&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;11-网络拓扑&#34;&gt;1.1 网络拓扑&#xA;&lt;/h2&gt;&lt;p&gt;现有网络拓扑：本地机器可以通过跳板机连接开发服务器，同时可以连接测试手机&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[开发服务器 S, Server] &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ▲&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       │ (内网，仅J可达)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[跳板机 J, Jump] ←──┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ▲       (Frp穿透)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       |           │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[本地机器 L, Local] ┘&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       │ (adb无线/USB)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ▼&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[测试手机 P, Phone]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;预期网络拓扑：开发服务器可以直接连接测试手机&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[开发服务器 S, Server] &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       │ (内网，仅J可达)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ▼&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[跳板机 J, Jump] ←──┐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       │       (Frp穿透)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ▼           │&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[本地机器 L, Local] ┘&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       │ (adb无线/USB)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;       ▼&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[测试手机 P, Phone]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;S (Server)&lt;/strong&gt;：代码开发服务器，IP为 $ip_S$，端口 $port_S$&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;J (Jump)&lt;/strong&gt;：跳板机&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;L (Local)&lt;/strong&gt;：开发者本地机器（Windows/Linux/WSL）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;P (Phone)&lt;/strong&gt;：测试手机，已开启ADB over TCP，IP为 $ip_P$，SSH端口 $port_P$&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;12-原理&#34;&gt;1.2 原理&#xA;&lt;/h2&gt;&lt;p&gt;构建端口转发链路：S($ip_S$: $port_S$) → L($ip_L$: $port_L$) → P($ip_P$: $port_P$)&lt;/p&gt;&#xA;&lt;h2 id=&#34;13-本地adb环境配置&#34;&gt;1.3 本地ADB环境配置&#xA;&lt;/h2&gt;&lt;p&gt;手机端开启ADB网络调试，需要自行&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/1914080129379968872&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;安装配置adb&lt;/a&gt;， &lt;a class=&#34;link&#34; href=&#34;https://developer.android.com/tools/adb?hl=zh-cn&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;adb介绍&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 通过USB临时连接手机后执行&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb tcpip port_P&#x9;&lt;span class=&#34;c1&#34;&gt;# 插入usb连接手机 启动无线adb调试，部分机型可能需要在开发者模式设置允许无线调试&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb connect ip_P:port_P  &lt;span class=&#34;c1&#34;&gt;# 验证无线adb连接，手机的ip可能会随着网络变化，可以在手机设置中搜索ip查看，或者路由器页面查看&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;这里注意WSL中USB设备需由Windows层接管，需要把USB访问权给WSL，&lt;a class=&#34;link&#34; href=&#34;https://learn.microsoft.com/en-us/windows/wsl/connect-usb&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;参考文档&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;14-构建服务器-本地转发链路s-l&#34;&gt;1.4 构建服务器-&amp;gt;本地转发链路(S-&amp;gt;L)&#xA;&lt;/h2&gt;&lt;h3 id=&#34;方案1-ssh端口转发&#34;&gt;方案1: SSH端口转发&#xA;&lt;/h3&gt;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;步骤1：服务器S  → 本地L（在本地L建立远程端口转发）&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 本地L 执行&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 后面user@ip -p port 是本地L通过ssh连接服务器S的user ip port, 不是需要转发的ip和端口&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh -N -R 0.0.0.0:port_S:localhost:port_L user@ip -p port &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 如果本地配置了config, (参考配置链接: https://zhuanlan.zhihu.com/p/1984208939030684698)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 假设别名是host_name, 可以修改成下面形式&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh -N -R 0.0.0.0:port_S:localhost:port_L host_name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# -N: 只用来转发数据&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# -R: 反向转发&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 0.0.0.0: 监听跳板机的所有网卡&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;步骤2：测试链路连通，&lt;a class=&#34;link&#34; href=&#34;https://zhuanlan.zhihu.com/p/694098553&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;参考&lt;/a&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 每一步可以通过netcat测试链路连通&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# netcat安装: https://www.trae.cn/article/706600706&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 例如: 测试 服务器S → 本地L 连通性&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 服务器 服务器S端口port_S是否已经转发给本地L端口port_L&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;hello&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; nc 127.0.0.1 port_S&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 本地&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nc -l -p port_L&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 测试成功本地输出hello&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;方案2-tailscaleeasytier隧道-推荐&#34;&gt;方案2: TailScale/EasyTier隧道 (推荐)&#xA;&lt;/h3&gt;&lt;p&gt;直接用TailScale/EasyTier打通服务器到本地隧道，TailScale会尝试直连打通隧道，打通成功网速不受限于Frp穿透机器，比较推荐。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;步骤1：本地L和服务器S分别部署TailScale/EasyTier, &lt;a class=&#34;link&#34; href=&#34;https://tailscale.com/kb/1017/install&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;TailScale参考教程&lt;/a&gt;， &lt;a class=&#34;link&#34; href=&#34;https://easytier.cn/guide/introduction.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;EasyTier参考教程&lt;/a&gt;&#xA;下面以EasyTier为例，&lt;strong&gt;注意EasyTier需要root权限 并且docker默认不具备TUN 支持，建议联系集群管理员提供隧道通信方式&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;本地L安装：从&lt;a class=&#34;link&#34; href=&#34;https://github.com/EasyTier/EasyTier/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;github-relase&lt;/a&gt;界面，选择对应版本，如winodws选择&lt;a class=&#34;link&#34; href=&#34;https://github.com/EasyTier/EasyTier/releases/download/v2.5.0/easytier-gui_2.5.0_x64-setup.exe&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;easytier-gui_2.5.0_x64-setup.exe&lt;/a&gt; 随后手动安装&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&#xA;    &lt;img alt=&#34;EasyTier安装界面&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;332px&#34; data-flex-grow=&#34;138&#34; height=&#34;1481&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_install.png&#34; srcset=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_install_hu_edc1c9e42d338a19.png 800w, https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_install_hu_6599fa5830919da1.png 1600w, https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_install.png 2049w&#34; width=&#34;2049&#34;&gt;&#xA;&#xA;打开EasyTier, 左下角可以切换中文模式&#xA;&#xA;    &lt;img alt=&#34;EasyTier主界面&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;305px&#34; data-flex-grow=&#34;127&#34; height=&#34;948&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui.png&#34; srcset=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_hu_53f46ab516cc84d4.png 800w, https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui.png 1206w&#34; width=&#34;1206&#34;&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;设置网络名称和密码，然后点击创建新网络，只有网络名和密码匹配才会加入同一个网络，所以网络名设置不要太简单。&lt;/p&gt;&#xA;&lt;p&gt;&#xA;    &lt;img alt=&#34;EasyTier网络配置&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;306px&#34; data-flex-grow=&#34;127&#34; height=&#34;949&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_config.png&#34; srcset=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_config_hu_160a2109d4416254.png 800w, https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_config.png 1210w&#34; width=&#34;1210&#34;&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;滑倒底下 运行网络，本地节点就启动了&#xA;&#xA;    &lt;img alt=&#34;EasyTier运行网络&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;311px&#34; data-flex-grow=&#34;129&#34; height=&#34;912&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_run.png&#34; srcset=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_run_hu_f61d3619bdf54967.png 800w, https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_run.png 1185w&#34; width=&#34;1185&#34;&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;服务器S节点安装&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安装&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;wget -O- https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo bash -s install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 配置，需要和前面一致的网络名和密码, 把下面passwd替换密码&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo easytier-core -d --network-name &lt;span class=&#34;nb&#34;&gt;test&lt;/span&gt; --network-secret &lt;span class=&#34;s2&#34;&gt;&amp;#34;passwd&amp;#34;&lt;/span&gt; -p tcp://public.easytier.cn:11010&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 查看节点，这里docker不具备&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;easytier-cli peer&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;结果如下，这里的公共服务器可以替换为自己的公网服务器。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;ipv4&lt;/th&gt;&#xA;          &lt;th&gt;hostname&lt;/th&gt;&#xA;          &lt;th&gt;cost&lt;/th&gt;&#xA;          &lt;th&gt;lat(ms)&lt;/th&gt;&#xA;          &lt;th&gt;loss&lt;/th&gt;&#xA;          &lt;th&gt;rx&lt;/th&gt;&#xA;          &lt;th&gt;tx&lt;/th&gt;&#xA;          &lt;th&gt;tunnel&lt;/th&gt;&#xA;          &lt;th&gt;NAT&lt;/th&gt;&#xA;          &lt;th&gt;version&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$ip_{S1}$&lt;/td&gt;&#xA;          &lt;td&gt;&amp;mdash;&amp;ndash;&lt;/td&gt;&#xA;          &lt;td&gt;Local&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;Symmetric&lt;/td&gt;&#xA;          &lt;td&gt;2.4.5-4c4d172e&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;PublicServer_hubei-public.easyti&lt;/td&gt;&#xA;          &lt;td&gt;p2p&lt;/td&gt;&#xA;          &lt;td&gt;9.42&lt;/td&gt;&#xA;          &lt;td&gt;0.0%&lt;/td&gt;&#xA;          &lt;td&gt;82.91 kB&lt;/td&gt;&#xA;          &lt;td&gt;8.78 kB&lt;/td&gt;&#xA;          &lt;td&gt;tcp&lt;/td&gt;&#xA;          &lt;td&gt;Restricted&lt;/td&gt;&#xA;          &lt;td&gt;2.5.0-db059c17~&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;$ip_{L1}$&lt;/td&gt;&#xA;          &lt;td&gt;&amp;mdash;&amp;ndash;&lt;/td&gt;&#xA;          &lt;td&gt;relay(2)&lt;/td&gt;&#xA;          &lt;td&gt;18.00&lt;/td&gt;&#xA;          &lt;td&gt;0.0%&lt;/td&gt;&#xA;          &lt;td&gt;0 B&lt;/td&gt;&#xA;          &lt;td&gt;0 B&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Symmetric&lt;/td&gt;&#xA;          &lt;td&gt;2.5.0-88a45d11~&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;在本地的gui界面可以看见两个节点 和对应IP, 这里测试的docker不支持TUN所以无法打通，自己搭建需要有docker权限且支持TUN&#xA;&#xA;    &lt;img alt=&#34;EasyTier节点列表&#34; class=&#34;gallery-image&#34; data-flex-basis=&#34;687px&#34; data-flex-grow=&#34;286&#34; height=&#34;1045&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_ip.png&#34; srcset=&#34;https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_ip_hu_e5c5b39ab048f0.png 800w, https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_ip_hu_d4225815a7425bf1.png 1600w, https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_ip_hu_7e45e9220c799eee.png 2400w, https://my-blog-p39q.vercel.app/p/remote-adb/png/easytier_gui_ip.png 2993w&#34; width=&#34;2993&#34;&gt;&#xA;&#xA;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;步骤2：登录TailScale，获取本地L和服务器S分配的ip, 分别记录为$ip_{L1}$ 和$ip_{S1}$。EasyTier直接在界面中获取。&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;步骤3：建立本地L到服务器S的SSH连接，其余配置一样，只需要修改原来通过SSH连接到服务器S的ip为$ip_{S1}$&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;步骤4：同[方案1](#方案1: SSH端口转发)，在本地建立到服务器的反向端口转发&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;注：同理，可以建立服务器到本地的SSH连接，然后在服务器开本地端口转发，&lt;a class=&#34;link&#34; href=&#34;https://www.bilibili.com/video/BV1C7411P7Er?spm_id_from=333.788.videopod.episodes&amp;amp;vd_source=df6453dea1e57d74d7c6fae78a4d376e&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;ssh转发参考&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;15-构建本地-手机的转发链路l-p&#34;&gt;1.5 构建本地-&amp;gt;手机的转发链路(L-&amp;gt;P)&#xA;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 本地L执行, 将本地L端口转发至 手机P的adb连接端口&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb forward tcp:port_L tcp:port_P&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;h2 id=&#34;16-测试&#34;&gt;1.6 测试&#xA;&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 服务器S执行, 已经将服务器端口port_S转发给手机adb端口&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# sudo apt install adb -y 若服务器无adb&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb connect 127.0.0.1:port_S&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;adb devices &lt;span class=&#34;c1&#34;&gt;# 正常显示连接设备&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;</description>
        </item></channel>
</rss>
