99元云服务器+Trae Remote SSH:低成本从零建站全流程实操
2026/9/14 3:28:54 网站建设 项目流程

如果你最近正琢磨着搞一个自己的网站,又不想在这个事上砸太多钱,那这条路线应该对胃口:花 99 块钱弄一台入门云服务器,再配上 Trae 这个 AI 编辑器里的 Remote SSH 功能,直接从空盘干到网站上线。我上周刚把这条链路完整跑了一遍,中间踩了不少坑,也总结出一些值得记住的操作习惯。这篇就按我实测的顺序,从买服务器、初始化系统、装 Nginx,到用 Trae 远程连上去改代码上线,一步不落给你捋清楚,顺便把那些不看文档根本发现不了的坑也一并交代了。

这套组合适合谁呢?想低成本练手的学生、独立开发者,或者第一次做个人站、博客、作品集的新手都合适。你不需要额外买一台电脑当服务器,也不需要每次改代码都走 FTP 上传,在 Trae 里就能直接编辑云服务器上的文件,改完保存,浏览器刷新就生效,效率高很多。下面进入正题。

1. 先说结论:Trae Remote SSH 这条路值不值得走

1.1 没有 Remote SSH 之前,我建站都要经历什么

在不用 Remote SSH 的情况下,一个典型的建站流程是这样的:先在本地用编辑器写代码,然后把写好的文件打包,通过 FTP、宝塔面板或者 git push 推到云服务器,再登录服务器的 SSH 终端执行命令,该迁移配置迁移配置,该重启服务重启服务。如果你的项目比较小,这套流程勉强能忍;一旦代码改得频繁,来回切换的割裂感就很折磨人。

尤其是当你开着 Trae 这种带 AI 能力的编辑器时,这种割裂会更明显。你在本地让 AI 帮你生成了一段代码,还得想方设法传到服务器上看效果,一来一回浪费不少时间。而 Remote SSH 的思路,是让你的编辑器直接跑在服务器上——我指的是编辑器的界面还是在你自己电脑上,但你打开、编辑、保存的文件都是服务器上的真实文件,终端也直接连到服务器,等于把远程服务器变成了你的“本地环境”。

1.2 99 元服务器够不够用,实测数据说话

先说硬件:99 元档位的云服务器,主流配置一般是 2 核 CPU、2G 内存、40G 左右的 SSD 磁盘、3M 带宽。这套配置表面看着不大,但跑一个个人博客、静态站点、或者轻量级的 Node.js/Python 应用,完全是够用的。

我实测的结果是:装完 Ubuntu 22.04 系统后,剩余磁盘空间约 32G,可用内存大概 1.6G(系统占用 300M 左右)。在这上面装了 Nginx、Node.js 18、Git 等基础环境,开启服务后内存占用也就 500M 上下,CPU 日常在 5% 以下。也就是说,常规的小网站流量进来,性能完全富余。3M 带宽意味着并发上传下载能力有限,但对普通图文站和展示页,体验影响不大,图片做好压缩就行。

所以结论很直接:99 元不是够不够的问题,而是这种配置本身就是为轻量建站场景设计的,买来练手、跑个人项目正合适。等以后流量大了,再按需升级配置也不迟,没必要第一台服务器就追高配。

2. 买服务器和初始化的几个关键选择

2.1 99 元/年的云服务器怎么选才不踩坑

市面上的 99 元服务器主要集中在阿里云、腾讯云这类大厂的促销活动里,一般是“新用户专享、首年特价”。购买时我建议重点看四个参数:CPU 核数、内存大小、带宽、系统盘类型。2 核 2G 是底线,再低的话装完基础环境就会捉襟见肘;带宽 3M 是常规值,低于 2M 打开页面会有明显卡顿;磁盘建议选 SSD,读写速度快,对网站响应提升明显。

选购还有一个细节容易忽略:地域。国内节点访问快但域名需要备案,海外节点不用备案就是延迟会高一截。如果你就是想快速上线、不折腾备案,选海外节点最省事;如果你要长期运营、目标用户就在国内,那就踏实选国内节点,域名备案按流程走,合规也没那么可怕。

另外一定要看清活动的续费价格。很多 99 元/年是首年优惠价,续费可能是原价甚至更高。买的时候截图留个底,心里有个预期,别等到期了才傻眼。如果是学生,可以留意常规的学生机政策,价格一直都很友好。

2.2 系统镜像选 Ubuntu 22.04,别再用过时的 CentOS

买完服务器进入控制台,第一件事是选系统镜像。我这次选的是 Ubuntu 22.04 LTS,这也是目前个人开发者圈子里最主流的选择。原因很直接:Ubuntu 的软件源新,装什么包都方便;社区资料多,网上搜问题一大把解决方案;LTS 版本支持周期到 2027 年,省心。

这里我要专门提醒一句:别再选 CentOS 了。CentOS 7 官方生命周期已经结束,很多源都已经失效,装软件、更新安全补丁都会遇到麻烦。虽然在服务器领域还有不少存量机器,但新项目没必要再入这个坑。如果你是照着老教程操作卡在 yum 命令上,大概率就是你选了 CentOS 或者碰到一些老教程的坑。

镜像选好后,在控制台会要求设置 root 密码或者密钥对。如果你刚开始接触服务器,先设置一个强密码并妥善保存,后面我再带你把密码登录改成更安全的密钥登录。

2.3 安全组不放行这些端口,后面全白搭

这一步太容易翻车了,我单独拎出来写。云服务器和普通虚拟主机不一样,它有两层防火墙:一层是云厂商控制台里的“安全组”,一层是操作系统内部的防火墙(比如 UFW)。

安全组在控制台里操作,相当于云厂商在机房帮你做的外层过滤。新买的机器默认通常只放行 22 端口,也就是 SSH 登录端口。这意味着你哪怕在系统里装好了 Nginx、打开了 80 端口,外网照样访问不了网站。我当时第一次建站就被这个坑了半小时,页面一直打不开,最后才发现是安全组没有放行 80。

所以拿到服务器后,第一时间去控制台的安全组规则里确认三个端口的放行状态:22(SSH 登录)、80(HTTP 网站访问)、443(HTTPS 加密访问)。如果以后要跑数据库、调试接口,再按需放行对应端口,原则是最小化暴露,不需要的端口不要乱开。放行范围上,22 端口建议只对你自己常用的 IP 放开,或者走密钥登录;80 和 443 则必须对所有来源开放,否则访客进不来。

2.4 第一次登录:顺手把密码登录换成密钥登录

新服务器到手后,第一个要连进去的操作就是 SSH 登录。Windows 用户直接在本地终端(PowerShell 或 CMD)里执行:

ssh root@你的服务器IP

然后输入密码就能进系统。Mac 和 Linux 用户同一条命令。这里有个体验小细节:如果你用的是 Windows,建议直接装一个 Windows Terminal,比自带 CMD 好看好用太多,后面用 Trae 命令行也得靠终端。

登录成功后,我强烈建议立刻做一件事:配置 SSH 密钥登录,然后禁用密码登录。原因很简单,服务器放在公网上,从开机那一刻起就有大量扫描机器人在试探 22 端口,暴力破解密码是常态。用密钥登录可以让密码形同虚设,安全性瞬间拉满。

配置方法分两步。第一步,在本地终端生成密钥对:

ssh-keygen -t ed25519 -C "your_email@example.com"

一路回车即可,会生成一对密钥,默认存放在~/.ssh/下,.pub结尾的是公钥,不带后缀的是私钥。公钥可以随便公开,私钥必须藏好。

第二步,把公钥传到服务器:

ssh-copy-id -i ~/.ssh/id_ed25519.pub root@你的服务器IP

Mac 和 Linux 自带ssh-copy-id,Windows 没有这个命令,可以用下面这条替代:

cat ~/.ssh/id_ed25519.pub | ssh root@你的服务器IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

执行完后,用密钥方式重新登录一次确认能进去,然后编辑服务器的 SSH 配置文件:

sudo vim /etc/ssh/sshd_config

找到PasswordAuthentication,把它改成no,保存退出后重启 SSH 服务:

sudo systemctl restart ssh

这样密码登录就被关掉了,只有持有密钥的设备才能连上服务器。

3. 从空盘到网站可访问:Nginx 建站全流程

3.1 新服务器到手后的第一步:更新系统

不管你是准备装网站还是跑服务,新服务器开机的第一件事永远是更新系统、升级软件包。这一步既能把系统漏洞补上,也能让后面安装软件时少碰到版本不对、依赖缺失的问题。

Ubuntu 系统下执行这两条命令:

sudo apt update sudo apt upgrade -y

update是更新软件源列表,upgrade是真正升级已安装的软件包。整个过程需要几分钟,取决于服务器带宽。升级完成后可以顺手重启一次系统,确保内核等底层组件生效:

sudo reboot

重启后重新 SSH 登录,基础环境就准备好了一个干净、最新、安全的状态。

3.2 安装并启动 Nginx,看到欢迎页

Nginx 是目前最主流的 Web 服务器之一,稳定、轻量、配置灵活。我用它来托管网站文件,你可以理解成它负责接待访客的请求,然后把对应的网页文件返回给对方。安装非常简单:

sudo apt install nginx -y

装完后 Nginx 会自动启动,Ubuntu 里它是作为系统服务管理的,所以开机也会自动运行。查看运行状态:

sudo systemctl status nginx

只要出现active (running)就说明在跑了。这时候在浏览器里访问你的服务器 IP:

http://你的服务器IP

如果看到 Nginx 的默认欢迎页,说明 Web 服务已经通了。如果你是刚配好安全组才来看的页面,等一两分钟是因为安全组规则下发有延迟,属于正常。

3.3 配置站点目录和 Nginx server 块

看到欢迎页后,就可以把默认页面替换成你自己的网站内容了。Nginx 的默认站点根目录是/var/www/html,如果你想跑多个网站,建议每个站都建独立的目录,然后用 Nginx 的 server 块把它们分开。

我这次的实际操作是这样,先创建一个站点目录:

sudo mkdir -p /var/www/mysite

然后把目录的所有权交给当前用户,避免每次写文件都要 sudo:

sudo chown -R $USER:$USER /var/www/mysite

接下来为这个站点创建 Nginx 配置。Nginx 的站点配置文件放在/etc/nginx/sites-available/,启用则要软链接到/etc/nginx/sites-enabled/。先新建配置文件:

sudo vim /etc/nginx/sites-available/mysite

写入如下内容:

server { listen 80; server_name your_domain_or_ip; root /var/www/mysite; index index.html; location / { try_files $uri $uri/ =404; } }

保存后,把这个配置软链接到启用目录:

sudo ln -s /etc/nginx/sites-available/mysite /etc/nginx/sites-enabled/

然后测试配置是否正确:

sudo nginx -t

看到syntax is oktest is successful就没问题,重载让配置生效:

sudo systemctl reload nginx

如果你不想保留 Nginx 默认站点,可以删掉默认的软链接:

sudo rm /etc/nginx/sites-enabled/default

这样访问 IP 时就会走你自己的站点配置。

3.4 域名解析:先能用 IP 访问,再绑域名

这一步是可选项,但你大概率会用到。先用 IP 访问没问题,不过 IP 难记、也显不出专业度,所以通常都会配一个域名。

域名解析的操作在域名服务商的控制台做,核心是添加一条 A 记录,主机记录填@,记录值填你的服务器 IP,TTL 默认即可。添加后过几分钟到几小时不等,DNS 会全球生效。国内节点如果绑定域名访问网站,需要走 ICP 备案流程,这个建议提前查清楚要求再操作;海外节点则无此步骤,直接解析就能用。

解析生效后,把 Nginx server 块里的server_name从 IP 改成你的域名,然后sudo systemctl reload nginx重载。之后再访问域名,就能看到你的网站内容了。到这里,一个用传统方式搭起来的网站已经能跑起来了,下一步我会把 Trae Remote SSH 接进来,彻底解放开发效率。

4. Trae Remote SSH 实操记录

4.1 扩展安装:Trae 商店找不到 Remote SSH 怎么办

Trae 是基于 VS Code 内核做的 AI 编辑器,界面和操作习惯跟 VS Code 高度一致,所以 VS Code 的很多经验都能直接搬过来。但有一个小坑:Trae 的扩展商店目前对部分 VS Code 扩展支持得并不完整,我首次搜索“Remote SSH”时就没有搜到官方那个remote-ssh扩展。如果你也遇到同样的情况,别慌,有替代办法。

最省事的方案是直接下载 VSIX 文件手动安装。VSIX 是 VS Code 系扩展的安装包格式,你可以在扩展市场网站上找到Remote - SSH的 VSIX 下载链接。下载完成后,在 Trae 里按Ctrl+Shift+P打开命令面板,输入“Install from VSIX”,选择你刚下载的文件,Trae 就会自动安装。装完后左侧会出现一个远程资源管理器图标,说明扩展已经生效。

还有一个思路是先装 Remote - SSH 的依赖扩展Remote - SSH: Editing Configuration Files,这个是用来远程编辑服务器配置文件的,实测下来少它有时候会连不上。装扩展时把两个一起装好,省得后面补。

4.2 配置 SSH config,建立远程连接

扩展装好后,第一次使用需要先配置 SSH 连接信息。在 Trae 里按Ctrl+Shift+P,输入Remote-SSH: Open SSH Configuration File,会打开一个 SSH config 文件配置界面,选择编辑~/.ssh/config(这是本地 SSH 客户端的全局配置文件),然后把下面这段填进去:

Host MyServer HostName 你的服务器IP User root Port 22 IdentityFile ~/.ssh/id_ed25519

每行含义解释一下:Host是连接的别名,可以随便起,后面连的时候用这个名字就行;HostName是服务器真实 IP;User是登录用户名,在 Ubuntu 上一般是root或你自建的用户;Port是 SSH 端口,如果按前面步骤改过端口,这里要同步改;IdentityFile指向你的私钥文件,指定了它,登录时就不用手动输密钥了。

保存配置后,再次打开命令面板,输入Remote-SSH: Connect to Host,弹出列表里选MyServer,Trae 就会开始建立连接。第一次连接会下载安装一些远程服务端组件,需要稍等一会儿。如果一切顺利,左下角会显示SSH: MyServer,说明已经进入了“远程模式”——你打开的资源管理器、终端、插件,都是针对服务器这台机器运行的。

4.3 打开远程文件夹,像编辑本地文件一样写网站

连接成功后,默认打开的是远程用户的家目录。你需要手动打开网站目录。在 Trae 顶部菜单选“文件 -> 打开文件夹”,弹出的路径框里输入/var/www/mysite,回车,Trae 会把远程目录当作工作区加载出来。

这一步之后,整个体验就和本地开发没有区别了。你能在左侧看到服务器上的所有文件,双击即可编辑;新建文件、删除文件、重命名,全都在远程直接操作。最爽的是保存即生效——因为文件本来就在服务器上,本地一保存,Nginx 立刻就能读到你改的内容,浏览器刷新一下就能看到效果,不再需要任何上传动作。

我在这一步实际写了一个个人主页,HTML 结构、CSS 样式、JS 脚本全都在 Trae 里直接编辑,改一行刷新一下,整个迭代速度比之前用 FTP 快了不止三倍。

4.4 让 Trae 的 AI 直接改服务器上的文件

Trae 和普通编辑器最大的不同,是它内置了 AI 对话和 Agent 能力。配合远程模式,这个能力会被放大到很实用的程度:你的 AI 可以直接读写服务器上的文件。

比如我在远程项目里选中index.html,在对话框里说“把标题改成我的名字,并把导航栏的背景色换成深蓝色”,Trae 就能直接修改这个远程文件。它还会理解项目结构,比如我让它“在 footer 里加一行版权说明”,它不用我手动指定行号,直接找到合适的位置就改好了。

更有意思的是 Agent 模式。你可以在对话框里说“帮我在这个站点目录下生成一个博客页面,包含文章列表和文章详情页”,Trae 会自己创建目录、生成 HTML/CSS 文件,甚至把页面间的链接都处理好。这些文件同样是直接生成了在服务器上的文件,做完整套就等着你刷新浏览器看效果。这种“AI 直接在服务器上写代码”的体验,传统的本地开发配合 git push 流完全不具备。

不过要提个醒:让 AI 自动改文件时,一定要先确认当前工作区是远程目录,别让 AI 把文件改到本地去了。可以在资源管理器顶部的路径栏确认一下路径开头是不是/var/www,养成检查习惯就不容易出事。

4.5 终端联动:构建、重启、看日志在同一窗口完成

Remote SSH 模式下,Trae 内置的终端也直连服务器,这相当于把文件编辑、命令执行、日志查看统一到了一个界面里。我在测试环境里跑一个 Node.js 应用时,就是直接在 Trae 终端里执行:

cd /var/www/mysite node app.js

站点跑起来后,再查日志也不用切工具,直接:

tail -f /var/log/nginx/error.log

这里要重点提醒一句:如果你修改了 SSH 端口,Trae 终端和连接配置文件里的端口都要同步,很多用户改了端口后去改 config,却忘了 Trae 终端用的还是全局配置,结果连不上,别问我是怎么知道的。

另外,远程模式下编辑器里的“源代码管理”也直接读服务器上的 git 仓库,你可以直接在远程目录里git init,然后像本地一样提交代码。这样的完整链路——写代码、跑服务、看日志、提交代码——全在 Trae 一个窗口里完成,不再来回切换应用,这种流畅感是真香。

5. 实测中翻过的车:问题排查与避坑清单

5.1 连不上服务器:先查这四层

我这次实测中最常见的报错就是连接超时,每次原因还不太一样。遇到连不上的情况,按下面四层顺序排查基本能定位:

  • 一层:本地网络是否能通到服务器。先ping 服务器IP,如果 ping 不通,十有八九是服务器关机了或者安全组把 ICMP 拦了,去控制台确认服务器状态和安全组规则。
  • 二层:SSH 端口是否可达。执行telnet 服务器IP 22nc -vz 服务器IP 22,如果端口不通,检查安全组是否放行了 22 端口,以及服务器系统防火墙(ufw)是否拦住了 SSH 端口。
  • 三层:端口通了但连接被拒。多半是 SSH 服务没启动,登录云控制台用 VNC 方式进入服务器,执行sudo systemctl status ssh查看状态,必要时重启 SSH 服务。
  • 四层:SSH 配置是否有误。如果端口、密钥、用户这些信息填错,会提示Connection refused或权限错误,对照 config 文件逐一核对。

5.2 登录提示 Permission denied

这类报错八成出在密钥登录上。排查思路也很简单:第一种可能,IdentityFile路径写错了,或者私钥文件和服务器上的公钥不匹配,重新确认密钥对;第二种可能,服务器上的authorized_keys文件权限不对,必须确保这个文件属于当前用户且权限为 600,目录权限为 700,你可以通过云控制台 VNC 登录去修复;第三种可能,你确认密码登录已被禁用,而密钥又没配对成功,那就只能走 VNC 恢复通道重新配置。

一个规避办法:在本地配置私钥文件权限,Windows 下检查私钥文件属性不能勾选“继承”,否则 SSH 客户端会报UNPROTECTED PRIVATE KEY FILE错误。

5.3 网站访问 403 或白屏

网页能打开但报 403,基本就是权限问题。Nginx 的 worker 进程默认以www-data身份运行,如果你的站点目录是 root 所有且权限很严格,www-data没有读取权限,就会 403。解决方法是把站点目录的所有者改成 www-data,或者给目录加上合适的可读权限:

sudo chown -R www-data:www-data /var/www/mysite sudo chmod -R 755 /var/www/mysite

白屏则多半是你用 SPA 或者框架开发,没有配置单页应用的路由回退。在 server 块里加一行try_files $uri $uri/ /index.html;就能解决大部分白屏问题。这也是我实测中最容易出现的问题,前端页面明明在本地打开是正常的,一到服务器上刷新就白屏。

还有一个隐藏坑:你用了 node 服务,但 Nginx 没有把请求反代过去。那需要在 server 块里加一段 location 配置,把动态请求代理给你的应用端口:

location /api { proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; }

5.4 80 端口被占用和磁盘写满

这两个问题虽然不常遇到,碰到就很头疼。80 端口被占用,通常是你之前装过 Apache,和 Nginx 抢端口。查看占用的服务:

sudo lsof -i :80

如果确认是 Apache(apache2),停掉它并禁止开机自启:

sudo systemctl stop apache2 sudo systemctl disable apache2

磁盘写满的问题在 40G 的小盘机上很常见,尤其是日志文件堆积。用这条命令看磁盘占用:

df -h

定位大文件:

sudo du -sh /var/log/*

Nginx 和系统日志占大头时,可以清理旧日志。另外别忘了节点包管理器缓存,~/.npm目录经常会吃掉几个 G 的空间,清掉能救急:

npm cache clean --force

养成定期查看磁盘的习惯,小服务器才活得久。


这里再分享一个我自己的体会:整个流程走下来,最大的收获不是省了多少钱,而是把“编辑代码”和“操作服务器”这两件事彻底统一到了同一个工具里。以前我会花大量时间在文件传输和命令切换上,现在 Trae Remote SSH 把这条链路缩短成了“写、存、刷”三步。如果你也正打算用低成本把自己的网站跑起来,这套组合值得投入一个下午去实践,做完你会回来感谢现在的自己。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询