(把护目镜推到头顶,长长的兔耳朵抖了抖,尾巴在椅子后面扫来扫去。清了清嗓子,对着麦克风试音)

“喵~ 测试测试!频道连接正常!这里是代号「01」的技术兔为您播报!今天要进行一项令人兴奋的基建任务——服务器部署大作战!喵!”⚡️

虽然我是兔子,但今天的操作会像猫咪一样灵活精准哦!指挥官,请跟紧我的步伐,我们要开始构建新的秘密基地啦!🥕


🚀 1. 开端:新基地的选址

呀,马上就要放假啦!(开心地搓搓手) 这种时候最适合折腾技术了对吧?我决定要把那个旧旧的服务器淘汰掉,买个新的来替代!

我在网络世界里四处搜寻(嗅嗅),正好发现了雨云!经过本兔的精密计算,它的性价比相当高,非常适合用来搭建我们的新窝。

具体的配置清单我都列出来啦,看这里看这里:

【此处插入两张服务器购买与配置的图片 喵!】

下单的时候太兴奋了,居然没仔细看系统版本……(尴尬地挠了挠耳朵) 不过没关系,重装系统可是我的拿手好戏!这里我选择的是最熟悉的 Ubuntu 24.04,这可是新鲜出炉的胡萝卜……啊不,操作系统!

【此处插入重装系统的进度条图片】

注意哦,因为这次我们使用的是 NAT(网络地址转换) 架构的服务器,就像是住在公寓里一样,没有独立的门牌号。所以我们需要去控制面板里获取 SSH 的公网 IP 和那个长长的端口号,当然还有最重要的 Root 初始密码!

【此处插入控制面板获取IP端口的图片】

🔌 2. 建立神经连接:SSH 启动!

咳咳,现在介绍一下本兔的终端设备。虽然我用的是一台很酷的鸿蒙 PC,它确实支持 SSH 连接,但是那个自带的界面……怎么说呢,不够极客,也不够可爱!

所以,我祭出了我的秘密武器——一个 Alpine Linux 虚拟机作为跳板机!喵~

2.1 域名魔法

为了方便记忆,我才不要记那一串冷冰冰的数字 IP 呢!于是我给这个 IP 施加了一个魔法——绑个域名!

以后只要呼唤 ry.y1yan.com 就可以找到它啦!

连接指令发射:

ssh root@ry.y1yan.com -p 56356

(屏幕上跳出了一串字符,数据流开始涌动……)

连接成功后,终端里大概是这样子的,看!喵呜!

hish:~# ssh root@ry.y1yan.com -p 56356

# 这里是初次连接的指纹确认,要大胆地输入 yes 哦!
The authenticity of host '[ry.y1yan.com]:5[***]6 ([1[***]1]:5[***]6)' can't be established. 
ED25519 key fingerprint is SHA256:y8[********]IE. 
This key is not known by any other names. 
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added '[ry.y1yan.com]:5[***]6' (ED25519) to the list of known hosts. 

# 这里的密码要盲输,不要以为键盘坏了喵!
root@ry.y1yan.com's password: 

Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-49-generic x86_64) 

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Sat Jan 24 11:00:49 AM UTC 2026

  System load:  0.0                Processes:              128
  Usage of /:   12.9% of 29.42GB   Users logged in:        0
  Memory usage: 3%                 IPv4 address for ens18: 172.16.201.161
  Swap usage:   0% 

Expanded Security Maintenance for Applications is not enabled. 

0 updates can be applied immediately. 

root@RainYun-Z03ZAhR1:~# 

看到这个提示符,就说明我们已经成功潜入系统内部啦!喵!✨


🛡️ 3. 安全协议升级:生成 SSH 密钥

直接用 Root 账号加上密码登录,就像是把大门的钥匙挂在门把手上一样危险!这绝对不符合安全规范!❌

我们需要创建一个新的特工账号。

root@RainYun-Z03ZAhR1:~# adduser wansu
# 一路回车,然后输入一个复杂的密码喵!
info: Adding user `wansu' ... 
# ...(省略中间的创建过程)...
root@RainYun-Z03ZAhR1:~# usermod -aG sudo wansu

(给 wansu 赋予 sudo 权限,这样他就有了临时的管理员魔法了!)

接下来,我们要制作一对“数字钥匙”(SSH Key)。这可是最高级别的通行证!

# 在本地机器生成钥匙对,强度选 4096 位,硬得像金刚石一样!
hish:~# ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_wansu

Generating public/private rsa key pair. 
# ...(看到那个漂亮的随机字符画了吗?那就是钥匙的灵魂喵!)...
The key's randomart image is: 
+---[RSA 4096]----+
# ...

然后,我们要把公钥(锁芯)拿出来:

hish:~# cat ~/.ssh/id_rsa_wansu.pub 
ssh-rsa AAAAB3NzaC1yc2E...(后面好长好长)... root@hish

接着,切换到服务器上的新用户 wansu,把这个锁芯安装到 .ssh/authorized_keys 只有这样,锁和钥匙才能配对!

wansu@RainYun-Z03ZAhR1:~$ mkdir -p ~/.ssh
wansu@RainYun-Z03ZAhR1:~$ chmod 700 ~/.ssh # 权限设置要严谨,不能让别人偷看!
# 把刚才那串长长的公钥粘贴进去
wansu@RainYun-Z03ZAhR1:~$ echo "ssh-rsa AAAAB3NzaC..." >> ~/.ssh/authorized_keys
wansu@RainYun-Z03ZAhR1:~$ chmod 600 ~/.ssh/authorized_keys # 只有我自己能读写!

现在,见证奇迹的时刻!我们可以不用密码,直接刷脸……啊不,刷密钥进入啦!喵!

hish:~# ssh -i ~/.ssh/id_rsa_wansu wansu@ry.y1yan.com -p 56356

🔒 焊死大门

为了绝对的安全,我们要修改配置文件,把不安全的入口统统堵死!

打开配置文件:
nano /etc/ssh/sshd_config

我们要修改这几个关键参数(找不到就在文件末尾加上去喵):

# 禁止 Root 直接登录(太显眼了会被攻击的!)
PermitRootLogin no

# 禁止密码登录(钥匙在手,密码拜拜!)
PasswordAuthentication no

# 确保公钥验证是开启的
PubkeyAuthentication yes

# 如果你想更绝一点(可选):只允许 wansu 一个人进来!
AllowUsers wansu

保存退出 (Ctrl+O, Enter, Ctrl+X)。如果不生效,记得重启 ssh 服务哦!


🏠 4. 房间精装修:环境配置

现在的服务器还是个毛坯房,下载速度慢得像蜗牛……受不了啦!我们要给它换个源,装上涡轮增压!🚀

APT 换源

先备份原来的配置(这可是好习惯喵):
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后用 sed 命令进行批量替换,把那些慢吞吞的地址换成阿里云的镜像:

sudo sed -i 's/http:\/\/archive.ubuntu.com/http:\/\/mirrors.aliyun.com/g' /etc/apt/sources.list
sudo sed -i 's/http:\/\/security.ubuntu.com/http:\/\/mirrors.aliyun.com/g' /etc/apt/sources.list

最后刷新一下缓存:
sudo apt-get update

看着那些 Hit 和 Get 飞快地跑过屏幕,心情瞬间变好了呢!喵呜~ 🎶

安装 Node.js 引擎

我们要安装 Node.js,这可是很多现代应用的动力核心!

# 获取安装脚本
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - 
# 正式安装
sudo apt-get install -y nodejs

NPM 换源

Node.js 装好了,但是 npm 默认还是连国外的仓库。为了以后安装 code-server 不哭鼻子,我们要把它换成国内的镜像!

npm config set registry https://registry.npmmirror.com
# 检查一下有没有生效
npm config get registry

如果显示 npmmirror,那就乖了!摸摸头~ 👋


💻 5. 核心装置:Code Server 部署

终于到了最关键的一步!我们要把 VS Code 搬到浏览器里!

但是……(看了一眼网络状态)……哼,这台服务器直接下载 GitHub 的文件太慢了,会超时的!

没办法,只能启动 Plan B!喵!

1. 本地下载 & 空间传送 (SCP)

先在你自己的电脑上(Windows/Mac/HarmonyOS 都可以),打开浏览器去下载最新的 .deb 安装包:
https://github.com/coder/code-server/releases/latest

下载那个 _amd64.deb 结尾的文件哦!

然后,用 SCP 命令把它“传送”到服务器上去!📦

# 假设你在下载目录,要把文件名换成你下载的那个!
scp -P 56356 code-server_4.96.1_amd64.deb wansu@ry.y1yan.com:~

(注意这里的 -P 是大写的哦,和 ssh 的小写 -p 不一样,是不是很狡猾?喵!)

2. 服务器安装

回到服务器终端,拆快递啦!

ls -lh # 看看文件在不在
sudo dpkg -i code-server_*.deb # 让包管理器吃掉它!

3. 启动服务

装完后,我们要让它开机自动起床干活:

sudo systemctl enable --now code-server@$USER
# 系统会自动识别 $USER 是 wansu,真聪明!

4. 秘密通道:SSH 隧道

虽然 Code Server 启动了,但配置外网访问和 HTTPS 太麻烦了。

本兔有一个绝招——SSH 隧道!这就像在你的电脑和服务器之间开了一个虫洞!🌀

在本地电脑执行:

ssh -L 0.0.0.0:37345:127.0.0.1:37345 wansu@ry.y1yan.com -p 56356 -i ~/.ssh/id_rsa_wansu

这行命令的意思是:把我电脑上的 37345 端口,映射到服务器的 127.0.0.1:37345 上。

现在,只要打开你本地电脑的浏览器,访问 http://localhost:37345……

锵锵! 🎉 可以在浏览器里写代码啦!是不是超棒?喵!


呼……今天的基建任务大成功!(擦了擦额头的汗,开心地摇了摇尾巴)

如果你还想了解更多关于开发环境构建的高级玩法(比如那些让你掉头发的细节),可以参考这篇更完整的笔记哦:

🔗 笔记】开发环境构建完全指南:从入门到放弃
https://blog.y1yan.com/archives/development-environment-configuration.html

好了,本兔要去吃胡萝卜补充算力了!下次见,喵!🐾👋

最后修改:2026 年 01 月 24 日
如果觉得我的文章对你有用,请随意赞赏