轻量服务器入门
最近开了一台阿里云新加坡轻量应用服务器,系统是 Ubuntu 22.04。第一次从本地连接海外服务器时,需要先确认实例网络和 SSH 端口,再在终端软件里填写连接信息。
这篇文章记录我的入门流程:用 Tabby 建立 SSH 连接、检查服务器状态,再把密码登录换成 SSH 密钥登录。出于安全考虑,我没有公开自己的公网 IP、实例 ID、密码或私钥;文中的服务器地址用 YOUR_SERVER_IP 代替,项目目录统一写成 taest,方便跟着示例操作。
准备服务器信息
在阿里云轻量应用服务器控制台找到实例,先记录这些信息:
| 信息 | 用途 |
|---|---|
| 公网 IP 地址 | Tabby 连接服务器的地址 |
| SSH 端口 | 默认通常为 22,若改过端口则填写实际端口 |
| 登录用户名 | 初始账号按创建方式和镜像设置,常见为 root |
| 登录凭据 | 服务器密码,或之后配置的 SSH 私钥 |
检查阿里云防火墙
进入轻量应用服务器实例的防火墙页面,确认有一条允许 SSH 的入方向规则:
- 协议:TCP
- 端口:22(如果 SSH 使用了其他端口,就填写实际端口)
- 来源:优先限制为自己的公网 IP;临时排查时才考虑放宽
轻量应用服务器使用控制台中的防火墙规则管理入方向流量,不使用 ECS 的安全组。Linux 实例通常默认放行 22、80、443 端口,但仍应在控制台检查规则是否存在且已启用。阿里云轻量应用服务器防火墙说明
如果实例内部还启用了 UFW,也要确认对应端口允许通过。Ubuntu 上可以用下面的命令查看状态:
1 | |
如果 UFW 已启用且 SSH 端口没有放行,先添加规则再调整其他防火墙设置:
1 | |
如果你使用的不是 22 端口,请把命令中的 22 换成实际端口。修改远程登录防火墙时要保留当前 SSH 连接,确认新规则生效后再关闭旧规则,避免把自己锁在服务器外。
在 Tabby 创建 SSH 连接
Tabby 是一款支持 SSH 的终端工具,也提供连接配置和 SFTP 文件传输等功能。Tabby 官方网站介绍了它内置的 SSH 客户端和连接管理器。
- 打开 Tabby,进入配置文件或连接管理页面,新增一个 SSH 配置。
- 在主机(Host)中填写阿里云实例的公网 IP,例如
YOUR_SERVER_IP。 - 端口(Port)填写
22,用户名(Username)填写实例实际使用的账号。 - 首次连接可以选择密码认证,输入在阿里云控制台设置或重置的服务器密码。
- 保存配置并连接。首次连接时,Tabby 会询问是否信任服务器主机密钥;确认这是自己的实例后再接受。
阿里云轻量服务器没有通用的默认登录密码。若尚未设置密码,可以在控制台重置服务器密码,然后再用 SSH 客户端登录。阿里云轻量应用服务器新手指引
连接成功后会看到类似下面的命令行提示符:
1 | |
此时已经进入远程 Ubuntu 服务器。注意,终端里运行的命令会作用于服务器,而不是本地电脑。
首次登录后的基础检查
先确认登录用户、系统版本、磁盘和内存:
1 | |
更新软件包索引并安装系统更新:
1 | |
如果更新了内核或系统核心组件,Ubuntu 可能会提示需要重启。可以在确认没有正在运行的重要任务后执行:
1 | |
服务器重启后,Tabby 当前连接会断开,等待实例恢复运行后重新连接即可。
SSH 登录后常用命令
下面这些是我连上服务器后常用的命令。可以先记住“我在哪、我是谁、机器状态怎么样”,再去找项目目录。
先看懂命令怎么写
Linux 命令通常由“命令名 + 选项 + 操作对象”组成。比如:
1 | |
ls是list的缩写,表示列出内容。-l表示长格式(long format),会显示权限、链接数、所有者、所属组、大小和修改时间等信息。-a表示全部(all),包括名称以.开头的隐藏文件。/root是要查看的目录;省略它时,ls默认查看当前目录。
-l 和 -a 可以合并写成 -la,也可以写成 -al,效果相同。很多 Linux 命令都遵循这种习惯:短选项前面加一个减号,可以组合使用;长选项通常写成 -- 开头,例如 ls --all。
执行 ls -la 后,每一行大致可以这样读:
1 | |
开头的权限串里,第一位表示类型(- 普通文件、d 目录、l 软链接),后面每三位一组,分别是所有者、所属组和其他用户的读(r)、写(w)、执行(x)权限。
| 写法 | 英文记法 | 好记的意思 |
|---|---|---|
pwd |
print working directory | 打印当前工作目录,看看“我在哪” |
whoami |
who am I | 我是谁,显示当前用户名 |
id |
identity | 查看用户的 UID、GID 和所属组 |
hostname |
host name | 这台主机的名字 |
cd |
change directory | 切换目录 |
ls |
list | 列出目录内容 |
mkdir |
make directory | 创建目录 |
cat |
concatenate | 原意是连接文件;常用来直接显示文件内容 |
cp |
copy | 复制文件或目录 |
mv |
move | 移动或重命名文件 |
rm |
remove | 删除文件或目录 |
df |
disk free | 查看文件系统还剩多少空间 |
du |
disk usage | 查看文件或目录占用了多少空间 |
nproc |
number of processing units | 查看可用的处理器数量 |
ps |
process status | 查看进程状态 |
ss |
socket statistics | 查看网络套接字和监听端口 |
grep |
global regular expression print | 按文本模式查找匹配内容 |
uname |
Unix name | 查看系统和内核信息 |
apt |
Advanced Package Tool | Ubuntu 上安装和更新软件包的工具 |
chmod |
change mode | 修改文件权限 |
chown |
change owner | 修改文件所有者 |
有些常用写法不是英文首字母缩写,而是看参数来理解:
| 参数 | 英文记法 | 例子和含义 |
|---|---|---|
-a |
all | ls -a:显示全部内容,包括隐藏文件 |
-l |
long | ls -l:用详细的长格式显示 |
-h |
human-readable | df -h、free -h:用 KB、MB、GB 等易读单位显示 |
-R |
recursive | ls -R:递归列出子目录 |
-d |
directory | ls -ld /bin:查看目录本身的信息,而不是列出目录里的内容 |
例如 ss -tlnp 可以拆成:-t 只看 TCP、-l 只看正在监听的端口、-n 直接显示数字端口、-p 同时显示相关进程。ps aux 中 a、u、x 是组合选项,用来查看更多用户和不挂在终端上的进程;这类老命令选项不一定都能按一个英文单词直译,记住它的用途更实用。
命令帮助可以用 命令 --help 查看,例如 ls --help。也可以用 man ls 打开手册页,按 /关键词 搜索,按 q 退出。记忆英文是帮助理解,具体行为还是以当前系统里的帮助信息为准。
命令行里还有几个常见连接符:| 是管道,把左边命令的输出交给右边命令;&& 表示左边成功后才运行右边;; 表示依次执行,前一条成功与否都继续执行。例如 df -h; free -h; uptime 会连续查看磁盘、内存和运行时间。
重定向也很常见。以 find / -type d -name ".git" 2>/dev/null 为例:2> 把错误输出重定向,/dev/null 是系统里的“丢弃口”,所以 2>/dev/null 的效果就是不显示错误信息。它不会隐藏正常找到的结果。
| 写法 | 英文记法 | 含义 |
|---|---|---|
head |
head | 看文件或输出的开头;默认显示前 10 行 |
tail |
tail | 看文件或输出的末尾;常用来查看日志最后几行 |
wc |
word count | 统计行数、单词数或字符数;wc -l 只统计行数 |
systemctl |
system control | 管理 systemd 服务,例如查看 SSH 服务状态 |
sudo |
常记作 “superuser do” | 临时以管理员权限运行命令;运行前要确认命令内容 |
例如:
1 | |
记住一条就够用:先认命令名,再看减号后面的选项,最后看路径或文件名;遇到不熟悉的写法,先查 --help 或 man,不要直接给不懂的命令加 sudo。
先确认位置和账号
| 命令 | 作用 | 例子 |
|---|---|---|
pwd |
显示当前所在目录 | 输出 /root |
whoami |
显示当前用户名 | 输出 root |
hostname |
查看这台机器的主机名 | 输出当前主机名 |
id |
查看用户 ID 和所属用户组 | 输出 UID、GID 和 groups |
查看和切换目录
1 | |
Ubuntu 默认可能没有 tree,需要先安装:
1 | |
找到项目目录
项目通常放在家目录、/opt 或 /var/www。先看常见位置:
1 | |
也可以按项目特征搜索:
1 | |
全盘搜索可能比较慢;如果已经大致知道项目放在哪里,先把 / 换成 ~、/opt 或 /var/www,会更快一些。项目目录的例子统一写作 taest:
1 | |
快速了解系统
1 | |
Ubuntu 中 /bin、/sbin、/lib 常会链接到 /usr 下对应目录。检查 /tmp 时要记得它用于临时文件,系统可能按自身策略定期清理其中的内容。
查看服务器状态
1 | |
查看网络和服务
1 | |
检查项目和部署记录
进入项目目录后,可以用下面这些命令快速判断项目结构和最近的改动:
1 | |
查看配置、日志或命令历史时,注意不要把密码、访问令牌、私钥等凭据复制到公开位置。
Ubuntu 目录结构速记
1 | |
我自己的记法是:配置先去 /etc 找,项目先看 /home、/opt 和 /var/www,日志先看 /var/log,系统命令通常在 /usr/bin。
最实用的“五连击”
1 | |
熟悉这些基础命令后,遇到“项目在哪、端口有没有监听、磁盘是否满了”这类问题,就可以先在 Tabby 里自己定位。
建议改用 SSH 密钥登录
密码可以用于首次连接,但日常管理更适合使用 SSH 密钥。私钥留在自己的电脑上,服务器只保存与之对应的公钥;不要把私钥上传到服务器或提交到 Git 仓库。
在 Windows 生成密钥
在本地 PowerShell 中运行:
1 | |
按提示选择保存位置,并为私钥设置一个口令。默认密钥通常保存在:
1 | |
其中 .pub 文件是公钥,可以放到服务器;没有 .pub 后缀的文件是私钥,只留在本地。
将公钥放到服务器
先用 Tabby 的密码方式连接服务器,然后在服务器终端运行:
1 | |
在本地 PowerShell 显示公钥内容:
1 | |
复制整行公钥,粘贴到服务器的 authorized_keys 文件中。保存退出后执行:
1 | |
然后在 Tabby 的 SSH 配置中选择密钥认证,并指向本地 id_ed25519 私钥文件。先新开一个 Tabby 连接测试密钥确实能登录,再考虑关闭密码认证;不要在密钥登录验证成功前关闭密码登录。
常见连接问题
连接超时
优先检查公网 IP 是否正确、实例是否运行,以及阿里云防火墙有没有放行 SSH 端口。若使用了 UFW 等系统防火墙,也要检查系统内部规则。阿里云建议在无法远程连接时逐项检查端口放行和本地网络。远程连接常见问题
Connection refused
这通常表示网络已经到达服务器,但目标端口没有 SSH 服务监听,或端口填写不正确。可以通过阿里云 Workbench 登录后检查服务:
1 | |
Ubuntu 的 SSH 服务单元通常名为 ssh。如果服务没有运行,可以检查安装和启动状态:
1 | |
Permission denied
检查 Tabby 中的用户名、认证方式和密钥路径。密码登录时要确认密码是当前服务器密码;密钥登录时确认服务器 authorized_keys 中保存的是配对的公钥,并检查目录和文件权限。
小结
这台服务器的连接流程可以概括为:在阿里云确认公网 IP 和 SSH 端口、检查防火墙规则、在 Tabby 保存 SSH 配置,首次连接后完成系统更新,再切换为密钥登录。
海外服务器的访问速度会受本地网络、运营商路由、实例地域和线路等因素影响。新加坡只是实例所在地域,具体体验还要以自己的网络测试为准。配置完成后,Tabby 可以保存连接配置,后续打开配置就能登录,也可以使用 SFTP 浏览和传输服务器文件。