【保姆级】阿里云ECS服务器选购、安全组配置及VS Code SSH连接全攻略(避坑指南)

0. 前言

刚买完云服务器,面对满屏的参数和报错手足无措?本文总结了从服务器系统选择、防火墙安全配置到 VS Code 远程开发的完整流程,带你绕过新手最容易踩的几个大坑。


1. 平台初识:为什么选择阿里云?

国内云服务器市场目前是"一超多强":

  • 阿里云:全能领头羊,稳定、产品线最全,适合追求极致稳定和 AI 开发的用户。

  • 腾讯云:音视频、游戏、小程序开发首选。

  • 七牛云:专业的"专精特新"云,擅长图片/视频存储(OSS)和 CDN 加速。

  • 华为云/天翼云:政企信创、国产化替代的首选。


2. 核心避坑:操作系统的选择

这是新手最容易犯错的地方。千万不要选 CentOS 7!

为什么推荐 Ubuntu 22.04?

  • VS Code 兼容性:新版 VS Code 要求的 glibc 组件版本较高,旧版系统(如 CentOS 7)会导致连不上。

  • 教程丰富:90% 的 Web 部署教程(Nginx, Docker)都是基于 Ubuntu。

  • Alibaba Cloud Linux 是什么? 它是阿里云自研系统,优化了性能,但对新手来说,Ubuntu 的生态更友好。

UEFI 是什么?要选吗?

  • 结论不要选 UEFI 版

  • 解释:UEFI 是新式启动模式,除非你的硬盘超过 2TB 或有特殊需求,否则普通版兼容性更稳,配置更简单。


3. 必须重视:防火墙(安全组)配置

防火墙决定了谁能访问你的服务器。

推荐规则配置清单:

|------------------|------------------------|--------------------|
| 协议端口 | 授权对象 | 用途 |
| TCP:22 | 0.0.0.0/0 (建议改为"我的IP") | SSH 远程登录(必须) |
| TCP:80 / 443 | 0.0.0.0/0 | 个人网站 HTTP/HTTPS 访问 |
| ICMP | 0.0.0.0/0 | 允许 Ping 命令检测网络是否通畅 |

⚠️ 安全大坑:

不要把数据库端口(MySQL 3306, Redis 6379)开放给 0.0.0.0/0!

如果你为了方便远程连接而全开,极易遭遇勒索病毒扫库。如果必须远程连数据库,请将授权对象改为你本地的公网 IP


4. 终极神器:使用 VS Code SSH 远程写代码

比起阿里云网页版的 Workbench,VS Code 才是开发者的真爱。

配置步骤:

  1. 安装扩展:在 VS Code 搜索并安装 Remote - SSH 插件。

  2. 添加主机:输入 ssh root@你的公网IP。

  3. 配置文件:编辑 .ssh/config,确保格式如下:

    codeText

    复制代码
    Host 121.196.xxx.xxx
      HostName 121.196.xxx.xxx
      User root

常见报错排查:

  • 报错:Permission denied (publickey...)

    • 原因:服务器默认禁用了密码登录。

    • 解决:通过 Workbench 登录后,修改 /etc/ssh/sshd_config,将 PasswordAuthentication 改为 yes,并重启 SSH 服务(sudo systemctl restart sshd)。

  • 报错:LinuxPrereqs (glibc 不满足)

    • 原因:系统太老(如 CentOS 7)。

    • 解决 :去控制台更换操作系统为 Ubuntu 22.04

  • 报错:Host key verification failed

    • 原因:你重装了系统,本地电脑记录的服务器"指纹"变了。

    • 解决:在本地电脑终端执行:ssh-keygen -R 你的服务器IP。

4. 核心:TypeScript 全栈项目环境搭建

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -

sudo apt-get install -y nodejs

如果你的项目包含 pnpm-lock.yaml、vite.config.ts、server/ 和 drizzle/ 文件夹,请按以下步骤配置环境:

4.1 安装 Node.js (建议 v20 LTS)

不要使用 Ubuntu 自带的旧版 Node。使用 NodeSource 脚本安装:

codeBash

复制代码
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
# 验证:node -v

4.2 安装 pnpm (项目核心包管理工具)

由于项目使用了 pnpm 锁定文件,必须安装 pnpm:

codeBash

复制代码
sudo npm install -g pnpm

4.3 数据库环境 (以 PostgreSQL 为例)

如果你的 Drizzle 配置连接的是 Postgres:

codeBash

复制代码
sudo apt install postgresql postgresql-contrib -y

4.4 安装 PM2 (让后端在后台永不掉线)

codeBash

复制代码
sudo pnpm add -g pm2

5. 项目部署实战流程

  1. 上传代码 :在 VS Code 连接 SSH 后,直接将本地项目文件夹拖入左侧文件栏(或通过 Git Clone)。

  2. 安装依赖:在项目根目录下执行 pnpm install。

  3. 配置环境变量:在服务器新建 .env 文件,填入生产环境的数据库连接字符串。

  4. 数据库迁移:运行 Drizzle 迁移命令(如 pnpm drizzle-kit push)同步表结构。

  5. 构建与运行

    • 前端:pnpm build。

    • 后端:pm2 start server/index.ts --interpreter ts-node (根据实际入口调整)。


6. 结语

  1. 选系统:Ubuntu 22.04(不带 UEFI)。

  2. 配安全组:只开 22, 80, 443,严禁裸奔数据库端口。

  3. 装环境:Node.js v20 + pnpm + 对应数据库。

相关推荐
JACK的服务器笔记4 小时前
《服务器测试百日学习计划——Day11:网卡与链路基础,一张4口RoCE网卡的完整识别方法》
运维·服务器·学习
派大星爱吃鱼4 小时前
侧信道安全(Side-Channel Security)
算法·安全
duoduo_sing4 小时前
如何备份天翼云/阿里云/腾讯云映射的“虚拟磁盘”?
阿里云·云计算·腾讯云·松鼠备份
Scabbards_4 小时前
阿里云百炼 MCP 部署
深度学习·阿里云
Predestination王瀞潞4 小时前
8.4.1 安全->SM商密(GM T 0002-2012 0003-2012):SM商密
网络·安全
gaize12134 小时前
阿里云经济型 e 实例
阿里云·云计算
Mr-Wanter4 小时前
IDEA 借助 docker-compose.yml 一键打包镜像并推送到开发服务器(前端部署终极方案)
服务器·docker·docker-compose·intellij-idea
动物园猫4 小时前
厨房食品卫生与安全检测14类数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·安全·yolo
EasyGBS4 小时前
国密GB35114协议+国标GB28181平台EasyGBS双重保障筑牢安防视频安全防线
安全·https·音视频