尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

用Trae Remote SSH远程开发:99元云服务器部署个人网站全流程

用Trae Remote SSH远程开发:99元云服务器部署个人网站全流程 前几天花了 99 块买了一台云服务器打算把自己折腾很久的个人项目正式挂到公网上去。本来第一反应是装宝塔面板图省事但看到这台小机器的配置之后放弃了——2 核 2G 的内存装个面板再跑数据库和 Web 服务光是系统常驻进程就能吃掉不少资源。正好我最近主力编辑器换成了 Trae就想着试试它自带的 Remote SSH 能力把服务器当成远程开发机来用代码直接在服务器上改、AI 直接读远程项目上下文改完刷新浏览器就能看到效果。整个流程走下来非常顺畅从一台空白系统盘到网站正常上线一个下午搞定。这篇就把我踩过的坑、调通的每一步都拆开写清楚适合想低成本入门云服务器部署、又不想被宝塔这类重面板绑住手脚的朋友参考。1. 项目整体设计与思路拆解1.1 为什么选择 Trae Remote SSH 这套组合以前写代码的习惯是本地开发、本地跑通再通过 Git 推到服务器上去拉代码、装依赖、重启服务。这套流程本身没毛病但对一个小项目来说太重了尤其是服务器和本地环境不一致的时候本地跑得好好的上了服务器就是起不来排查起来非常折磨人。Trae Remote SSH 的思路其实很简单把服务器当成一个远程工作区本地 Trae 窗口打开的、编辑的、运行的统统都是服务器上的文件和环境代码不存在本地。这样做的最大好处就是消除了环境差异代码和运行环境天然一致。再加上 Trae 本身是 AI 原生的 IDE内置的对话和智能体能力能直接基于远程项目的真实内容来理解问题、生成代码这种体验和以前“本地改完再同步上去”完全不是一个层级。另一个很实际的原因是成本。99 元的机器本身配置不高但如果只是跑一个 Nginx 和轻量后端资源完全够用。Trae 这种 IDE 最吃资源的其实是本地渲染和扩展进程服务器端只负责跑代码压力很小。等于说一台小服务器既当开发机又当生产环境对个人项目来说凑合得很。1.2 99 元云服务器到底够不够用先说清楚这台 99 元的机器能买到什么。以目前常见的活动价来看一般是 2 核 CPU、2G 内存、40GB 左右的 SSD 云盘带宽在 3M 到 5M 之间。地域通常可选一般建议选离自己近的节点延迟会低一些。这样的配置跑一个个人博客、作品集页面、小型 API 服务、或者一个带 SQLite 的后端应用是绰绰有余的。2G 内存装下 Nginx 加 Node 或者 Python 进程完全没问题40GB 硬盘对个人项目来说也够用很久。但你要是想拿它跑高并发的业务、大数据处理、视频转码那确实是想多了99 块买不了这个。我还看到有人担心 3M 带宽够不够。这里说个经验数据一个普通网页压缩之后也就几百 KB3M 带宽的理论下行速度约 384KB/s单用户访问完全够。真正要担心的是带宽被刷、被采集导致的流量耗尽所以后面上线后建议配合安全组和简单的限流策略这个我们在第五节详聊。1.3 整体实施路径规划这次实操我提前在纸上画了个路线避免做到一半不知道该干嘛购买云服务器选好系统镜像和地域。在云厂商控制台配置安全组放行 SSH、HTTP、HTTPS 端口。本机生成 SSH 密钥对并把公钥绑定到服务器。在 Trae 中安装 Remote SSH 扩展配置主机信息并远程连接。服务器上更新系统、安装 Nginx 等基础软件。创建项目目录写一个最小可用页面用 Nginx 配置站点访问。域名解析到服务器 IP申请 HTTPS 证书并配置跳转。做基础加固和最终验证。每一步看起来都不难但串起来会有不少细节坑尤其是安全组、密钥权限、Nginx 配置文件这些地方后面我会逐个讲。2. 云服务器选购与基础初始化2.1 服务器配置怎么挑99 元怎么花最值选服务器这件事我见过太多人一开始就往高了配结果跑了一两个小项目资源利用率不到 10%钱白花了。99 元的预算核心思路是“够用就好”重点看四个东西CPU 核数、内存大小、系统盘容量、带宽。CPU 和内存直接影响能跑什么应用。2 核 2G 是底线低于这个配置跑编译型项目会很难受。系统盘建议至少 40GB SSD因为现在系统镜像本身就要占 10GB 左右再加上 Docker 镜像、依赖包、日志文件太小的盘很快会满。带宽反而不用太纠结个人网站 3M 起步够用真遇到并发上来了再升级也不迟。购买地域建议选离自己近或者离目标用户近的节点。如果你主要自己调试那就选低延迟的如果服务器要给人访问就选目标用户集中的地域。国内云厂商的活动机通常是分地域的购买前看一眼可选区域别买完发现节点离你十万八千里SSH 连接都卡。2.2 系统镜像选择Ubuntu 22.04 LTS 是最省心的起点系统镜像我这次直接选了 Ubuntu 22.04 LTS。原因很简单第一apt 包管理器用起来顺手装软件基本一条命令解决第二22.04 是长期支持版本安全更新能覆盖到 2027 年第三社区资料最多遇到问题搜一下基本都有答案。有人会选 CentOS 或者 DebianCentOS 现在官方已经转向 CentOS Stream 了稳定性和习惯上和以前的 CentOS 7 差别不小新手容易在源配置上卡壳。Debian 本身也很好但包版本通常比 Ubuntu 保守一些如果你需要比较新的 Node.js、Python 版本Ubuntu 的 PPA 和官方源更方便。总结一句新手无脑 Ubuntu 22.04老手随意。还有云厂商自带的“宝塔面板”镜像我个人不建议在这个项目里用。面板虽然可视化方便但会额外占用内存而且在安全方面需要额外注意我们走的是轻量路线越干净越好。2.3 安全组、SSH 登录与密钥准备服务器买好之后第一件事不是马上连接而是先在控制台把安全组规则配好。安全组可以理解为小区门禁只有放行的端口才能从外部访问。新买的机器默认一般只开放了 22 和 ICMP我们需要额外放行 80HTTP和 443HTTPS之后还要用到的端口可以按需再加。接下来是 SSH 登录方式。我强烈建议用密钥对而不是密码登录。具体操作是在云厂商控制台创建密钥对把本地生成的公钥粘贴进去绑定到实例或者直接在购买时选择密钥登录。我个人在本机执行ssh-keygen -t ed25519 -C trae-remote生成一对密钥然后把公钥内容追加到服务器的~/.ssh/authorized_keys文件里并把私钥路径记下来后面 Trae 配置要用。密钥登录的好处不只是安全还有一个很实际的点Remote SSH 扩展在连接时如果配置了密钥就不会每次弹窗要密码体验顺畅很多。等所有流程走通之后我会再把密码登录关掉彻底堵住暴力破解的入口这个放到第五节讲。3. Trae 环境准备与 Remote SSH 连接配置3.1 Trae 安装与首次启动配置Trae 是一款 AI 原生的 IDE界面和交互对用过 VS Code 的人来说几乎是零门槛。直接去官网下载对应系统的安装包Windows 和 macOS 都有。安装完第一次启动登录自己的账号即可之后会进入默认工作区。值得多说一句的是 Trae 的 AI 能力设计。它的 AI 助手分为 Chat 模式和 Build 模式Chat 模式就是对话问答Build 模式可以一边理解整个项目结构一边直接改代码、创建文件、执行命令。你可以在远程环境里用 Build 模式让 AI 去读取服务器上的项目文件这个能力在后面的部署调试阶段非常好用。不过用 Trae 之前建议先装好本地的 Git以及把 SSH 密钥准备好因为 Trae 远程连接本质上还是调用系统 SSH 客户端本机没有 SSH 工具链的话连接环节会出各种奇怪问题。3.2 安装 Remote SSH 扩展并配置连接Trae 兼容 VS Code 的扩展生态这一点对迁移用户特别友好。在 Trae 的扩展市场里搜索Remote - SSH装微软官方发布的那个即可插件 ID 是ms-vscode-remote.remote-ssh。安装扩展后先准备 SSH 配置文件。我本机的配置路径是~/.ssh/configTrae 默认也会读取这个文件。配置内容大致如下Host my-server HostName 123.45.67.89 User root Port 22 IdentityFile ~/.ssh/id_ed25519 StrictHostKeyChecking no ServerAliveInterval 30 ServerAliveCountMax 3几个关键参数解释一下Host: 连接别名随便起方便记忆。HostName: 服务器公网 IP。User: 登录用户我这次用的 root如果是普通用户就写自己的用户名。IdentityFile: 指向刚才生成的私钥文件路径。StrictHostKeyChecking: 首次连接时如果服务器指纹不存在设为 no 可以免交互确认适合脚本化连接。但这个会稍微降低安全性看你自己的取舍。ServerAliveInterval: 每 30 秒发送一次心跳包防止长时间没操作被服务器断开连接。提示私钥文件权限一定要设置正确chmod 600 ~/.ssh/id_ed25519。如果权限过宽SSH 客户端会直接拒绝使用该密钥这是一个非常常见的坑。配置好后在 Trae 左下角点击远程连接按钮类似对角的监视器图标选择 “Connect to Host”再选my-server。第一次连接会提示确认服务器指纹确认后 Trae 会在远程服务器上自动安装 VS Code Server 环境这个下载过程可能比较慢耐心等就行。连接成功后左下角会显示类似 “SSH: my-server” 的状态。3.3 AI 智能体如何直接作用于远程项目Trae 连接远程之后整个窗口的工作区就变成了服务器上的目录。你可以在欢迎界面直接选择“打开文件夹”输入服务器上的路径比如/var/www/htmlTrae 会自动打开远程目录。这时候 Trae 的 AI 模式就有意思了。在 Chat 模式下你可以直接问“这个目录下有哪些服务在跑”AI 会读取远程项目结构并给出回答回答过程会帮你查看配置文件、分析日志。在 Build 模式下你甚至可以直接说“帮我把端口 8080 的服务改成 3000 端口”AI 会帮你定位到配置文件、修改内容并在远程终端里执行相关命令。这种体验的本质是Trae 的 AI 上下文不仅仅是本地代码而是整个远程文件系统。远程项目在服务器上AI 读到的、改到的、执行到的都是服务器上真实的东西没有同步延迟也没有环境偏差。不过也要提醒新手一句AI 帮你改配置的时候尤其是涉及 Nginx、systemd 这类影响系统服务的文件自动执行前务必让它先把改动 diff 出来看一眼。我实际用的时候AI 偶尔会想当然地改错目录权限这种错误不仔细看真发现不了。4. 服务器端运行环境搭建与代码部署4.1 更新系统与安装基础软件连上远程服务器后第一件事是更新系统软件包。这一步不要跳新买的服务器镜像可能存在已知漏洞而且软件源缓存也是旧的直接更新能避免后面装软件时出现依赖版本问题。sudo apt update sudo apt upgrade -y sudo apt install -y curl wget git unzip nginx顺便把常用工具也装齐了。Git 是你通过 Trae 或者终端推送代码到服务器的基础Nginx 作为 Web 服务器负责托管静态页面和反向代理后端服务。装完检查一下服务状态systemctl status nginx如果显示 active (running)说明 Nginx 已经起来了。这时候直接在浏览器输入服务器公网 IP应该能看到 Nginx 的默认欢迎页说明 80 端口已经通了。4.2 编写并部署一个最小可运行站点接下来我在服务器上建一个站点目录写一个最简单的页面测试流程sudo mkdir -p /var/www/html sudo chown -R $USER:$USER /var/www/html cd /var/www/html echo h1Trae Remote SSH Test/h1 index.html然后用 Trae 远程打开/var/www/html这个目录你会直接看到刚才创建的index.html文件可以随便改内容保存后刷新浏览器就能生效。接着配置 Nginx 的站点文件。在/etc/nginx/sites-available/default里把 root 路径和 server_name 调整成自己的。一个最基础的配置如下server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm; server_name _; location / { try_files $uri $uri/ 404; } }配置改完后先检查语法再重载sudo nginx -t sudo systemctl reload nginx这里有个经验每次改 Nginx 配置前先跑nginx -t语法错误导致服务挂了是最低级也最容易犯的错误。reload 不会中断现有连接比 restart 温柔得多生产环境也推荐用 reload。4.3 用 Trae Remote SSH 完成代码更新与结构扩展静态页面上线之后下一步是把这个流程扩展到真实项目中。我在本地用 Trae 已经把项目代码推到 Git 仓库里了现在想在服务器上拉下来就直接在 Trae 的远程终端里操作cd /var/www git clone gitgithub.com:yourname/yourproject.git如果项目依赖不多直接在服务器上安装运行即可。Node 项目的话装一个 Node.js 环境curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt install -y nodejs cd /var/www/yourproject npm install npm run build在远程终端里跑 npm 构建你会感受到 Trae Remote SSH 的另一个优势构建、安装依赖、重启服务全都在服务器本地完成不会占你本地内存也不用等文件上传。构建产物直接就在服务器上路径都指向最终的部署位置省掉一大堆同步工作。对于需要后台常驻的 Node 服务可以用 systemd 管理。写一个服务单元文件比如/etc/systemd/system/myapp.service[Unit] DescriptionMy Node App Afternetwork.target [Service] Userwww-data WorkingDirectory/var/www/yourproject ExecStart/usr/bin/node server.js Restarton-failure RestartSec5 [Install] WantedBymulti-user.target然后启动并设置开机自启sudo systemctl daemon-reload sudo systemctl enable --now myappNginx 那边再用location /api { proxy_pass ... }把请求代理到 Node 服务上前端静态文件继续由 Nginx 直接托管一套很典型的部署结构就成型了。5. 域名解析、HTTPS 与线上验证5.1 域名解析与备案注意事项网站要通过域名访问第一步是在域名服务商的控制台添加解析记录。一般加一条 A 记录主机记录填记录值填服务器公网 IP如果需要 www 子域名再加一条主机记录为www的 A 记录。解析生效时间通常几分钟到几小时不等可以在本机执行dig yourdomain.com或者ping yourdomain.com验证是否已经指向服务器 IP。这里必须提醒一个国内服务器特有的问题使用国内机房且绑定了域名对外提供访问是要求完成 ICP 备案的。备案流程通常需要十几个工作日。如果你不想等备案可以在解析生效前先用 IP 加端口的方式调试或者选择境外节点服务器绕过备案限制。具体采用哪种方式取决于你的项目和合规要求我这边只提示到这一步换什么方案你自己权衡。5.2 HTTPS 证书申请与 Nginx 配置网站上线不配 HTTPS现在说不过去了。好在免费证书方案已经非常成熟我用的是 Let‘s Encrypt 的 certbot一条命令就能完成申请和自动续期sudo apt install -y certbot python3-certbot-nginx sudo certbot --nginx -d yourdomain.com -d www.yourdomain.comcertbot 会自动检查域名解析是否生效、自动修改 Nginx 配置加证书并设置定时续期任务。我实测下来整个申请过程大概只要两三分钟。申请完成后访问https://yourdomain.com应该能看到小锁图标。为了把 HTTP 请求都跳转到 HTTPS可以在 Nginx 的 server 块里加一段server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$host$request_uri; }或者让 certbot 自动帮你配置它默认就会加入跳转。之后记得测试一遍浏览器直接打开 http 的地址应该自动跳到 https。5.3 上线后的基础安全与性能检查网站能访问了不代表可以放着不管。我每次上线新服务都会例行做一遍基础加固启用 UFW 防火墙只放行必要端口sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable修改 SSH 配置只允许密钥登录sudo vim /etc/ssh/sshd_config把PasswordAuthentication改成no然后sudo systemctl restart sshd。改之前先确认密钥登录没问题否则改完密码登录也被禁你就被关在门外了。查看资源占用情况free -h df -h top99 元的机器资源本身有限上线后留意内存和磁盘水位。日志文件如果不定期清理40GB 硬盘很快就会被塞满这算是小机器的通病。6. 常见问题与排查技巧实录6.1 Remote SSH 连接失败类问题连不上Connection timed out这是最常见的错误。先检查安全组是否放行 22 端口再检查服务器本地防火墙最后确认 IP 是否正确。很多人买了服务器之后直接在快照里的 IP 是内网地址拿内网 IP 去连当然超时。一定在控制台看公网 IP。提示 Host key verification failed说明服务器的 SSH 指纹变了可能是系统重装或者多人共用 IP。解决办法是编辑~/.ssh/known_hosts删除对应 IP 的那一行重新连接。Permission denied (publickey)一般是密钥没配对。检查本地用的私钥路径是否写对公钥是否真的追加到了服务器的~/.ssh/authorized_keys以及该文件权限是否过大正确是 600.ssh目录权限是否正确正确是 700。我用一条命令记住这个组合chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys6.2 环境与权限类问题浏览器访问出现 403 Forbidden大概率是 Nginx 的 worker 进程没有权限读取站点目录。查看目录权限ls -la /var/www/html如果所有者是 root而 Nginx 的 worker 用户是 www-data就会读不了。可以chown -R www-data:www-data /var/www/html或者给目录设置 755 权限。502 Bad Gateway说明 Nginx 反向代理的后端服务没有正常运行。在 Trae 远程终端里查看一下 Node 服务状态systemctl status myapp journalctl -u myapp -n 50日志会直接告诉你崩溃原因。常见的几个原因端口被占用、环境变量没配、依赖没装全。中文乱码修改文件后网页中文变乱码一般是字符集问题。确认 HTML 文件头有meta charsetutf-8同时确认终端写入文件时没有把编码改成其他格式。6.3 部署细节避坑速查表问题可能原因快速处理SSH 超时安全组未放行 22控制台检查入方向规则密钥不被接受私钥权限过大chmod 600 私钥Nginx 起不来语法错误nginx -t 查看报错403 页面目录权限不足chown 给 www-dataHTTPS 访问失败证书未续期检查 certbot 定时任务磁盘变满日志堆积journalctl --vacuum-size100M域名解析不生效DNS 缓存换手机网络验证这些坑我基本都踩过一遍。尤其是第一次配 Remote SSH 的时候密钥权限搞了我半小时后来才发现私钥文件默认生成的权限不对。还有一次把 Nginx 的 root 写错了直接导致 403当时还以为是服务器防火墙的问题。最后再分享一个小技巧整趟流程下来我最满意的一点是 Trae 远程开发模式下调试效率的提升。以前改服务器上的代码要在本地改、上传、看日志来回切换很累。现在直接在远程目录里改保存刷新就能看见效果AI 分析问题时又能直接读取远程日志文件整个闭环非常顺。如果你也刚买了一台便宜的小服务器建议先别急着装一堆面板和重工具试试这张轻量玩法一个 Trae、一个 Remote SSH、一台 99 元的服务器足够你把个人网站跑得很舒服。等你真正需要 Docker、多站点管理的时候再考虑升级方案也不迟。
返回列表