用 VS Code Remote-SSH 连上树莓派在 Ubuntu 22.04 环境里直接把树莓派当成主力开发机来写代码、跑调试、开终端、映射端口这套玩法我今年在好几个项目里都用得很顺手。以前给树莓派做开发要么蹲在显示器前操作要么用 Vim 在终端里硬扛远程改代码同步麻烦调试更是一言难尽。用了 Remote-SSH 之后本地的 VS Code 界面、快捷键、插件全都作用于远程设备体验上几乎和开发本机项目没区别。这篇东西我尽量把从烧录系统、换源、配 SSH、装扩展到离线安装 VS Code Server 的完整过程都写出来适合准备用树莓派做毕业设计、边缘计算实验或者单纯想把吃灰的树莓派 4B 重新用起来的同学。Remote-SSH 不是简单的“远程看代码”它把 VS Code 的客户端/服务端架构拆开了本地跑界面远端跑语言服务、调试器、终端两边通过 SSH 通道通信。这意味着你在本地装的界面插件主题、快捷键、代码片段能用而 Python、C/C 这类依赖语言服务的插件实际在树莓派上运行代码索引、补全走的是树莓派的 CPU。这个机制对树莓派这种小型设备尤其重要因为它决定了哪些插件放本地、哪些放远端也决定了第一次连接时为什么要在远端下载并启动 VS Code Server。1. 为什么我建议用 Remote-SSH 开发树莓派1.1 传统开发方式的痛点我在接触 Remote-SSH 之前给树莓派写代码基本是两条路线。第一条是把显示器、键盘、鼠标全接上把树莓派当成一台小电脑直接用。本地跑 VS Code 看起来没毛病问题是树莓派 4B 的 CPU 性能有限Ubuntu 22.04 桌面版本身就要吃掉不少内存再开个 VS Code内存经常飙到 80% 以上编译项目的时候风扇呼呼转打字都能感觉到卡顿。第二条路线是用 SSH 登录到树莓派里用 Vim、nano 写代码虽然省资源但代码补全、跳转、调试这些现代编辑器体验全没了改个多文件项目得来回切换效率很低。很多人卡在中间状态用 VS Code 编辑本地文件再通过 SFTP 插件同步到树莓派。这种思路的问题是双向同步很容易冲突你改了本地文件忘了上传或者树莓派上程序自己生成的日志、配置文件被误同步覆盖排查起来非常痛苦。还有一类需求是开发串口、GPIO 设备控制程序本地文件同步过去之后还得手动 SSH 去启动、看日志来回折腾很消耗耐心。1.2 Remote-SSH 的工作机制Remote-SSH 改变了这个模式。它的核心思想是VS Code 安装一份“客户端”在本地负责界面渲染和处理你的操作同时在远程机器上启动一个“服务端”负责实际的文件读写、代码分析、终端执行。本地和远程之间通过 SSH 协议互相通信你需要做的只是在本地安装 Remote-SSH 扩展然后告诉它你要连哪台机器。连接成功后你可以像操作本地项目一样操作树莓派上的文件左侧资源管理器显示的是远程目录打开的文件内容实时从远端读取CtrlS 保存时直接写回树莓派。最妙的是 VS Code 的终端窗口打开后默认就是登录到树莓派的 shell你可以直接跑python3 app.py或者systemctl status查服务状态。调试功能同样走远程断点、变量监视、调用栈全都在本地界面上展示但实际运行的是树莓派里的程序这对开发 GPIO 控制、传感器读取这类单板程序太有价值了。要理解插件为什么分“本地”和“远程”两类。Remote-SSH 连接成功后VS Code 界面左下角会显示一个绿色的“SSH: 主机名”标记。你在扩展面板里会看到有些插件是装在本地的比如汉化包、主题、Remote-SSH 本身有些插件则会自动安装到远程端比如 Python、Pylance、C/C 这些。因为语言服务需要在有解释器、编译器的那一端运行远程插件直接跑在树莓派上这样它才能找到/usr/bin/python3才能用树莓派上的编译链。1.3 树莓派 Ubuntu 22.04 的选型逻辑树莓派的可选操作系统很多官方自己的 Raspberry Pi OS基于 Debian也流行我为什么用 Ubuntu 22.04 LTS最直接的原因是开发环境的一致性。我平时的主力服务器、云主机很多都是 Ubuntu 22.04树莓派也用同一套系统那么apt包管理、systemd 服务管理、Python 环境、Docker 容器在树莓派和服务器上表现一致写好的东西可以直接迁移部署。Ubuntu 22.04 是 2024 年仍然在标准支持期内的 LTS 版本软件源里的 Python 3.10、GCC、Node.js 版本都比较新对做毕业设计、跑现代框架来说更省心。另一个原因是树莓派 4B 的性能正好够 Ubuntu 桌面版跑起来但我强烈建议装 Ubuntu Server 版本或者桌面版装好后把桌面关掉只保留命令行。原因很简单我们用 Remote-SSH 开发树莓派本身根本不需要桌面环境多跑一个桌面就多消耗几百兆内存。我在 4GB 内存的树莓派 4B 上把桌面服务禁用后空闲内存能空出来 2.5GB 以上留给编译和容器使用体验提升非常明显。2. 环境准备烧录系统、换源、开启 SSH2.1 烧录 Ubuntu 22.04 LTS树莓派 4B 烧录 Ubuntu我还是推荐用官方 Raspberry Pi Imager。这个工具支持直接下载系统镜像并写入 SD 卡省去手动下载镜像、解压、写卡的多步操作。在 Imager 的Choose OS里选择 Other general-purpose OS - Ubuntu - Ubuntu Server 22.04 LTS (64-bit)注意选 64 位版本因为树莓派 4B 的 CPU 是 64 位架构而且现在很多 Python 包、Docker 镜像只有 arm64 版本32 位系统会遇到兼容性问题。烧录前有个容易被忽略的操作点击右下角的齿轮图标进入高级设置提前配置好 hostname、用户名和密码最关键的是勾选“Enable SSH”用密码认证。这样 SD 卡烧好后系统第一次启动就能直接 SSH 登录不用插显示器去手动配置。如果你已经烧好了系统才发现没开 SSH也有补救办法把 SD 卡重新插到电脑上在 boot 分区里创建一个名为ssh的空文件同时编辑network-config文件配置好网络如果是有线连接基本不用管再把卡插回树莓派启动SSH 服务就会自动开启。SD 卡的选择上我建议用至少 32GB 的 Class 10 / A1 以上速度的卡。树莓派 4B 的 SD 卡读写速度往往成为系统瓶颈Remote-SSH 使用中如果感觉打开文件卡顿、终端输出迟钝换个高速卡比任何软件优化都有效。我给树莓派跑 Docker 和编译任务时用的是一张 128GB 的 A2 卡整体体验比原来那张杂牌卡好很多。2.2 登录系统后第一时间要做的换源Ubuntu 22.04 装好后默认的 apt 软件源指向的是官方服务器。如果你在国内网络环境执行apt update时经常速度很慢我实测过官方源在部分网络下每秒只有几十 KB甚至直接卡住。所以登录系统后的第一件事就是换源这步做完后面安装任何软件包都会顺畅很多。换源操作其实不复杂核心是把/etc/apt/sources.list里的官方地址替换成国内镜像源。Ubuntu 22.04 的源格式是新式结构文件内容大概长这样# 先备份原文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # 查看系统版本代号22.04 对应 jammy lsb_release -c # 编辑源列表 sudo sed -i s/archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo sed -i s/security.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list这里我用阿里云镜像源做演示你完全可以根据自己网络环境选择清华 tuna、中科大 USTC 或者其他镜像站地址格式都一样。替换完成后执行sudo apt update sudo apt full-upgrade -yapt update是刷新软件包索引full-upgrade会把系统现有的软件包升级到软件源里的最新版本。刚烧录的系统做一次全量升级非常有必要里面包含了很多安全补丁和 bug 修复而且后续装新软件时避免依赖版本不一致的问题。有个细节提醒如果你用的是 Ubuntu 桌面包换源时还要同步处理内置软件商店Snap Store的更新源不过我们这次主推 Server 版加 Remote-SSH 开发Snap 的问题基本可以忽略。另外/etc/apt/sources.list.d/目录下可能有第三方源文件比如 Docker 官方源它们不归sources.list管需要单独处理。2.3 开启并测试 SSH 服务Ubuntu Server 默认安装了 OpenSSH Server但如果没有在 Imager 里提前开 SSH系统起来后服务可能没启动。我先说怎么确认状态# 查看 SSH 服务状态active (running) 表示正常运行 systemctl status ssh # 如果没运行先启动并设置开机自启 sudo systemctl enable --now ssh确认服务在运行后先在树莓派本机或者通过本地终端登录查一下 IP 地址ip addr show找到eth0有线或wlan0无线对应的 IP比如192.168.1.100。然后在你的电脑上用任意 SSH 客户端测试ssh username192.168.1.100第一次连接会提示确认远程主机指纹输入yes再输入密码就能登录。能通过这个命令登录进去说明 Remote-SSH 的基础已经通了。关于用密钥替代密码我在 3.2 节专门讲这里先不展开。一个建议是给树莓派设置静态 IP或者至少在路由器上做 IP 绑定。树莓派默认通过 DHCP 获取地址重启后 IP 可能会变到时候 Remote-SSH 的配置文件里地址不对就会连接失败。我是在路由器后台根据树莓派网卡的 MAC 地址绑定了一个固定 IP这样不管重启路由器还是树莓派地址都不会变省了很多麻烦。3. 本机 VS Code 与 Remote-SSH 连接配置3.1 安装 VS Code 和 Remote-SSH 扩展本地电脑上VS Code 直接去官网下载安装包就行这一步不再赘述。装好后打开 VS Code左侧扩展面板搜索Remote-SSH认准发行方是 Microsoft 的那个扩展 ID 是ms-vscode-remote.remote-ssh点击安装。这里我建议顺手把另外两个官方远程扩展也装上Remote-SSH: Editing Configuration Files和Remote Explorer前一个让你在 VS Code 里直接编辑 SSH 配置文件时有语法高亮和补全后一个在侧边栏提供远程主机管理视图方便多主机切换。安装完扩展后VS Code 会在最底部状态栏的左侧显示一个绿色的远程标记区域打开命令面板CtrlShiftP输入Remote-SSH: Connect to Host就能看到它要求你输入 SSH 连接命令或者选择配置文件里的主机。第一次连接时它会尝试在远程主机上安装匹配版本的 VS Code Server这个过程是自动的只要网络通畅就能完成。这里要提一个影响后续体验的关键点VS Code Server 的版本必须和本地 VS Code 版本严格匹配。Remote-SSH 每次连接都会检查版本发现不一致会提示重新下载。如果远程端曾经安装过旧版本可能需要手动清理~/.vscode-server目录才能解决版本冲突问题。这个我在第 5 章的问题排查里细说。3.2 配置 SSH Config从口令到密钥用命令面板输入完整 SSH 命令能连但每次都敲太麻烦。我建议把主机信息写进~/.ssh/config文件Remote-SSH 会自动读取这个文件连接时只要选主机名就行。在本地终端执行code ~/.ssh/config如果文件不存在VS Code 会提示创建。一个典型的树莓派配置长这样Host rpi4j HostName 192.168.1.100 User ubuntu Port 22 ServerAliveInterval 30 ServerAliveCountMax 3 ForwardAgent yes我解释一下每个字段的作用。Host是你在 VS Code 里看到的别名随便起HostName是实际 IP 地址User是登录用户名Port默认是 22如果改过 SSH 端口就填实际的ServerAliveInterval和ServerAliveCountMax是心跳参数防止网络环境不稳定时连接被中间设备静默断开。实际使用中我发现这个设置对长时间保持 Remote-SSH 会话特别重要不加的话笔记本合盖再打开后远程连接经常假死。用密码登录虽然简单但每次连接都要输入密码而且有些场景比如 VS Code 打开后自动重连密码认证不够顺滑。更好的方式是配置 SSH 密钥认证。在本地生成密钥对# 如果已经有 ~/.ssh/id_ed25519 可以跳过生成步骤 ssh-keygen -t ed25519 -C raspberry-pi-ubuntu # 将公钥复制到树莓派会自动追加到远程 ~/.ssh/authorized_keys ssh-copy-id ubuntu192.168.1.100之后再次 SSH 连接就不再需要密码。ssh-keygen生成密钥时建议给私钥设置一个 passphrase虽然每次使用可能要输入一次但私钥泄露时的风险会小很多。我个人是配合系统钥匙串来管理 passphrase平时使用几乎无感。3.3 连接远程并安装远程插件配置写好后VS Code 左下角点击绿色远程按钮或者命令面板执行Remote-SSH: Connect to Host选择rpi4j。如果密钥认证配置成功你甚至看不到任何密码输入提示十几秒内新窗口就打开了。新窗口打开后第一件事是到扩展面板检查远程插件。你会发现扩展列表被分成了“本地 - 已安装”和“SSH: rpi4j - 已安装”两类。你需要把开发树莓派项目真正用到的插件装到远程端。方法很简单在扩展面板搜索插件点击安装时 VS Code 会自动判断并安装到当前连接的远程环境。常见的远程插件组合Python包含 Pylance、Python Debugger是树莓派 Python 开发的核心。C/C由微软官方维护支持 IntelliSense、调试和编译任务。Docker管理树莓派上的 Docker 容器和镜像。Remote-SSH 本身不需要装到远程它只是本地扩展。有些同学误以为所有插件都要装远程其实不对。像中文语言包、Material Theme 这类纯界面插件装在本地就好远程端装了反而浪费空间。判断标准很简单插件是不是需要读取远程的文件、调用远程的解释器/编译器需要就装远程否则就用本地。登录远程终端后执行code --install-extension ms-python.python这类命令也可以安装远程插件但多数情况下直接点击界面安装就够了。4. 深度开发实战把树莓派当主力开发机4.1 远程文件夹、终端和端口转发连接稳定后日常开发操作和本地几乎无差别。你通过File - Open Folder打开的是树莓派上的目录VS Code 会在远程端为这个目录建立一个工作区文件监视、Git 操作、终端路径都绑定到这个目录。我在树莓派上专门建了~/projects目录放所有代码VS Code 记住工作区后每次重连自动恢复到上次打开的目录省时省力。端口转发是 Remote-SSH 非常实用的功能。树莓派上跑的 Web 服务、Jupyter Notebook、Flask 应用都是监听在树莓派的某个端口上在本地浏览器直接访问192.168.1.100:5000也能打开但想用localhost:5000访问就得靠端口转发。打开命令面板执行Remote-SSH: Forward Port from Host输入远程端口号比如5000VS Code 会自动将远端的 5000 端口映射到本地的随机端口并在右下角弹窗告诉你本地访问地址。你也可以在“端口”面板里手动指定本地端口比如映射成localhost:8501这样访问本地地址就和访问远程服务对齐了。我经常用端口转发调试树莓派上的 FastAPI 服务。本地写好接口代码保存后远程端uvicorn热重载然后本地浏览器直接访问localhost:8000/docs看 Swagger 文档整个调试闭环非常顺畅。还有一个冷门用法是把 SSH 本身的转发能力扩展为动态转发但这需要手动编辑 SSH 配置日常开发用不到这里就不展开了。4.2 Python 虚拟环境 Docker 部署在树莓派上做 Python 开发我强烈建议所有项目都使用虚拟环境别把依赖直接装到系统 Python 里。树莓派的系统 Python 被很多系统工具依赖你贸然升级某个包可能把系统环境搞坏。我在树莓派上的标准做法是sudo apt install -y python3-venv python3-pip mkdir -p ~/projects/car-detection cd ~/projects/car-detection python3 -m venv venv source venv/bin/activate pip install --upgrade pip创建虚拟环境后VS Code 会自动检测到.venv或者你手动创建的venv目录并把 Python 解释器自动指向虚拟环境。你在 VS Code 里新建终端时终端也会自动激活虚拟环境前提是 VS Code 选择的 Python 解释器是虚拟环境里的。之后运行pip install安装的包都会装进虚拟环境不会污染系统 Python。如果在 VS Code 右下角看到 Python 解释器还是系统的手动按 CtrlShiftP 执行Python: Select Interpreter切换一下。如果是做毕业设计数据采集、模型推理这类任务经常需要固定的运行环境直接用 Docker 是更省心的方案。Ubuntu 22.04 上安装 Docker 官方源和引擎curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg echo deb [archarm64 signed-by/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable | sudo tee /etc/apt/sources.list.d/docker.list sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin # 将当前用户加入 docker 组免去每次执行 sudo docker sudo usermod -aG docker $USER树莓派是 arm64 架构Docker 镜像必须选 arm64 或者多架构版本。比如跑容器化的 Python 应用用python:3.10-slim官方镜像就支持 arm64。Docker 安装完你完全可以在树莓派上跑一套完整的服务端环境再用 Remote-SSH 把容器内的开发调试都串起来。4.3 串口、GPIO 与外设开发树莓派开发有很大一部分涉及硬件比如用 GPIO 控制舵机、读取传感器、操作串口。Remote-SSH 也没落下这个场景。你在树莓派上用 Python 的 GPIO 库RPi.GPIO、gpiozero 或树莓派 5 上新的 gpiod 接口写代码VS Code 的代码补全和语法检查都能正常工作因为 Python 插件运行在远程端读得到树莓派上的 GPIO 库。串口开发有一点特别程序运行后串口数据流在树莓派和外部设备之间传输VS Code 的终端里只能看到日志输出。我的习惯是让程序把串口收发数据同时打到日志里通过 Remote-SSH 终端实时观察。另外要注意的是串口权限Ubuntu 22.04 下串口设备一般位于/dev/ttyUSB0或/dev/ttyAMA0当前用户必须加入dialout组才能访问sudo usermod -aG dialout $USER改完用户组后要重新登录生效。以前我在树莓派上调试一个 GPS 模块时程序一直报Permission denied: /dev/ttyUSB0排查半天发现就是用户组权限没到位。这类硬件权限问题在树莓派开发里非常常见加完之后基本一劳永逸。如果你用的是树莓派 Pico 这类单片机的开发板VS Code 也有对应的方式。Pico 本身不算运行 Ubuntu 的主机它通常通过 USB 连接树莓派树莓派上安装picotool和pico-sdk通过 Remote-SSH 在树莓派上交叉编译并在终端里烧录。搭配 Wokwi一个 VS Code 模拟器扩展可以在没有硬件的情况下仿真 Arduino、树莓派 Pico 的电路对调试逻辑很有帮助。4.4 离线安装 VS Code ServerRemote-SSH 第一次连接时会在远程主机上下载并安装 VS Code Server。这个下载过程如果卡住最常见的表现是 VS Code 显示“Unable to download VS Code Server”或者 Failed to fetch 一类的错误下面跟着一个很长的commit id链接。我之前在腾讯云轻量服务器上也遇到一模一样的问题当时网络环境下载官方服务器文件特别不稳定反复重试都可能失败。这个 commit id 是有用的。VS Code 每次发布版本Server 的下载地址都会被改写成https://update.code.visualstudio.com/commit:commit_id/server-linux-arm64/stable。你可以先在本地浏览器把对应的server-linux-arm64包下载下来这里之所以要留一个 commit id就是为了手动定位版本然后通过 scp 传送到树莓派上# 在错误信息里找到 commit id 和下载链接 # 在本地下载好 server-linux-arm64 文件比如 vscode-server-linux-arm64.tar.gz scp vscode-server-linux-arm64.tar.gz ubuntu192.168.1.100:/tmp/然后在树莓派上按 VS Code Server 的目录规范放置mkdir -p ~/.vscode-server/bin/commit_id tar -xzf /tmp/vscode-server-linux-arm64.tar.gz -C ~/.vscode-server/bin/commit_id --strip-components1解压完成后在 VS Code 里重新执行Remote-SSH: Kill VS Code Server on Host如果有这个命令或者直接断开当前连接并重新连接。这一回连接时 VS Code 会发现远端已经存在对应版本不再触发下载直接启动服务。整个过程完全绕开了远程下载这一步只依赖你本地网络能下载到 Server 包。关于这个问题的根源我自己总结原因就是本地访问 VS Code 官方 update 服务器不稳定不一定是你电脑的问题。手动离线安装是原理最清晰、最可控的解法。如果你嫌手动不方便也可以尝试在树莓派上配置镜像源或使用内网穿透服务但说到底最稳的还是离线放文件一次放完后面连接都不会再触发下载。5. 常见问题与排查实录5.1 问题速查表项目用多了以后Remote-SSH 的坑基本都踩过我挑一些最高频的整理成表格方便你直接对照排查现象可能原因解决方案连接时提示 Failed to fetch VS Code Server远程下载官方服务器包超时或被中断手动下载 Server 包离线安装参考 4.4 节连接成功后立刻自动断开SSH 服务异常或网络不稳定检查远程systemctl status ssh在 SSH Config 加ServerAliveInterval 30远程终端中文乱码树莓派系统 locale 未设置为 UTF-8执行sudo dpkg-reconfigure locales勾选 en_US.UTF-8 或 zh_CN.UTF-8打开代码时补全和跳转不生效Python/C 插件装在本地而不是远程在远程连接状态下重新安装对应插件到远程端保存文件后远端代码不更新打开了本地工作区而不是远程用Remote-SSH: Connect to Host连接后重新Open Folder远程端口转发后本地无法访问防火墙或 VS Code 自动分配了随机端口检查远端sudo ufw status在端口面板手动指定本地端口一直提示输入密码密钥不生效ssh-copy-id没成功或权限不对检查远程~/.ssh/authorized_keys权限为600.ssh目录权限为700VS Code 连接后远程端卡死树莓派内存不足或服务器被多次启动重启树莓派删除~/.vscode-server缓存并重连在终端执行code提示命令找不到未在远程安装 VS Code CLI 软链在远程终端执行echo export PATH$PATH:$HOME/.vscode-server/bin/commit_id/bin ~/.bashrc说几个容易混淆的地方。第一ssh-copy-id虽然方便但它默认只复制~/.ssh/id_rsa.pub或id_ed25519.pub如果你用了非默认文件名需要加-i参数指定公钥文件。第二VS Code Server 的缓存目录~/.vscode-server如果损坏最直接的解决办法就是把它整个删掉让 VS Code 重新安装别在这上面花太多时间修复。第三如果你发现某个插件在远程端装不上可以试着重启 VS Code 窗口很多时候是插件市场的远程会话同步没走完。5.2 三条避坑经验第一条经验是给树莓派做好散热。树莓派 4B 在高负载下尤其是你用 Remote-SSH 跑编译、跑模型推理发热非常猛不加散热片和风扇的话CPU 会主动降频表现出来就是 Remote-SSH 界面响应变慢、编译时间突然拉长。我之前用铝合金外壳加双风扇套件效果显著树莓派 4B 的 CPU 温度基本能压在 60°C 以下。做毕设长跑实验的同学这一步别省。第二条经验是养成定期快照或备份的习惯。SD 卡出错、系统崩溃、误删文件这些事在树莓派上不比服务器少见。我的做法是所有代码和配置用 Git 管理代码推送到远程仓库比如 Gitea 自建或公有 Git 平台系统层面的关键配置用脚本固化。这样就算 SD 卡整个挂掉重烧系统后跑一遍脚本就能恢复大部分环境不至于从零开始。第三条经验是善用 Remote-SSH 的“再次连接”能力。VS Code 每次启动时会尝试恢复到上次的远程工作区但在网络切换后这项工作偶尔会失败。我在笔记本电脑上专门养成了一个习惯如果打开 VS Code 后处于“无连接”状态先等两三秒让自动重连尝试如果没反应就手动用命令面板重新连接。看似是个小动作但能避免很多“我已经连上了怎么操作没反应”的假象。最后分享一个小技巧Remote-SSH 支持把本地的settings.json同步到远程但更推荐的做法是为树莓派项目单独建.vscode/settings.json放在项目目录下比如把 Python 解释器路径、代码格式化配置、终端自动激活虚拟环境等写进去。这样项目在任何机器上打开都能保持一致的开发配置远程协作或换电脑后不需要重新调环境对团队项目或者隔几个月再回来看代码的“考古”场景特别友好。说实话Remote-SSH 用顺手之后树莓派就变成了一台真正的开发服务器。我甚至把路由器的端口映射打开在公司也能连回家里树莓派上继续调试配合端口转发功能远程开发的体验非常接近本地。你如果正在为树莓派开发环境的搭建头疼照着我这套流程走下来基本不会再被环境问题打断思路可以把精力放回功能本身。