VPS 自建 / 02

连接 Linux 服务器:MobaXterm SSH 与常用命令入门

用 Windows 上的 MobaXterm 登录 Linux VPS,图解 SSH 密码登录、SFTP 文件传输和常用命令。Debian 普通 VPS 与 Shlii Alpine NAT 分开说明。

买好 VPS 后,先用 MobaXterm 登录一次。这篇从填写 IP、用户名和端口开始,再讲上传文件、查看日志和常用 Linux 命令;不需要预先装好其他命令行工具。

本站服务器登录教程统一使用 MobaXterm:它把 SSH 终端、SFTP 文件管理、隧道和密钥工具放在同一个界面中,对第一次管理 VPS 的用户比较友好。

第一次连接直接使用用户名和密码。密钥登录、关闭密码登录和修改 SSH 端口放到文章后半部分,等节点跑通后再处理,免得把自己锁在服务器外。

使用 MobaXterm 通过 SSH 和 SFTP 管理独立 IPv4 或 NAT VPS 的连接流程

使用 MobaXterm 连接不同类型的服务器

连接参数取决于服务器是否拥有独立公网 IP。先查看服务商控制台里的公网 IP、SSH 端口和操作系统,再点击对应标签;不要凭价格或产品名称猜。

适用于: VMISS、DMIT、RFCHost,以及其他带独立公网 IP 的 KVM VPS。

MobaXterm 字段应填写的内容
Remote host服务器独享的公网 IPv4 或服务商提供的域名
Specify username服务商给出的用户,常见为 root
Port通常是 22;控制台明确修改过时以控制台为准
登录方式第一次使用控制台提供的密码
  1. 找到开通信息: 记录公网 IP、用户名、SSH 端口和初始密码。
  2. 新建 SSH 会话: 在 MobaXterm 依次点击 SessionSSH,按上表填写。
  3. 完成首次登录: 接受核对无误的主机指纹,输入密码,看到 root@server:~# 即表示连接成功。
  4. 确认系统: 运行 cat /etc/os-release。本站手动搭建教程优先使用 Debian 12/13,Ubuntu 的登录方式相同。

普通 VPS 直接监听自己的公网端口,不需要在服务商控制台额外做 NAT 端口映射。

如果控制台提供 Web Console、VNC 或救援控制台,先记住入口位置。SSH 配置错误时,可以从这里重新进入服务器。不要把密码、私钥或完整登录信息发给其他人。

使用 MobaXterm 建立第一个 SSH 会话

以下界面截图来自 MobaXterm 官网。软件更新后配色和图标可能略有变化,但 SessionSSHRemote host 和左侧 SFTP 的位置与用途基本一致。

点击左上角 Session 后会打开会话类型窗口。第一次连接 Linux 服务器时,选择左上角的 SSH,不要选择旁边的 Telnet、RDP 或 SFTP 独立会话。

MobaXterm 新建会话时选择 SSH 类型的官方界面截图

从 MobaXterm 官网下载安装版或便携版,启动后按以下步骤创建会话:

  1. 选择 SSH 会话: 点击左上角 Session,选择 SSH
  2. 填写服务器地址:Remote host 填写公网 IP 或接入域名。这里不要填写 https://
  3. 填写登录用户: 勾选 Specify username,输入服务商给出的用户名,新手实例通常是 root
  4. 核对 SSH 端口: 独立 VPS 通常填 22,NAT VPS 必须填控制台显示的外部端口。
  5. 使用密码登录: 点击 OK,粘贴或输入初始密码。第一次先不要勾选私钥选项,减少需要同时排查的变量。

输入密码时终端不会显示星号,光标也不会移动,这是 Linux 的正常安全行为。完整输入后按 Enter 即可。

成功看到类似 root@server:~# 的提示符后,说明 SSH 已经连通。初始密码过于简单时,可以运行 passwd,按提示输入两次新密码。修改完成前保持当前窗口打开。

MobaXterm 通过 SSH 登录 Linux 服务器后的终端主界面

中间黑色区域是执行 Linux 命令的终端;左侧保存会话并显示远程文件。不要照抄截图中的示例 IP、用户名或路径,应始终使用自己服务商提供的信息。

第一次连接为什么会询问指纹

首次连接时,SSH 会显示服务器主机密钥指纹并询问是否信任。主机指纹用于确认“现在连接的仍是同一台服务器”,不是报错。

条件允许时,在服务商控制台核对指纹;也可以通过 Web Console 登录服务器后查看:

ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

确认无误后再接受。以后如果在没有重装系统、更换实例或修改 SSH 主机密钥的情况下突然出现指纹变化,应先停止连接并排查,不要直接删除警告。

用左侧 SFTP 面板上传和下载文件

MobaXterm 登录成功后,左侧通常会自动打开当前服务器的 SFTP 文件浏览器。SFTP 复用当前 SSH 加密连接,Windows 不需要安装 scp、OpenSSH 或额外文件传输软件。

MobaXterm 左侧 SFTP 文件浏览器与右侧 SSH 终端的官方界面截图

截图左侧是远程服务器目录,右侧仍是同一个 SSH 会话的终端。上传或下载时操作左侧文件列表,不要把 Windows 文件直接拖进右侧终端。

  1. 确认已经登录: 先打开对应的 MobaXterm SSH 会话;只有终端登录成功,左侧 SFTP 面板才能访问同一台服务器。
  2. 选择服务器目录: 在左侧地址栏进入目标目录。普通上传优先使用 /tmp 或当前用户主目录,避免直接覆盖系统配置。
  3. 从 Windows 上传: 把资源管理器中的文件拖进左侧面板,或点击面板的上传按钮选择文件;等待传输完成后再执行后续命令。
  4. 从服务器下载: 在左侧面板选中文件并点击下载,选择 Windows 保存位置;备份配置时使用这种方式即可。
  5. 在终端核对: 运行 ls -lah /tmp/文件名,确认文件名和大小正确,再用 installmv 放到最终目录。

本站后续凡是“电脑与 VPS 之间传文件”,都默认使用 MobaXterm 左侧 SFTP 面板。服务器在线下载软件仍使用文章给出的 curl 或软件包管理命令,这两类操作不要混淆。

先看懂终端提示符和命令结果

常见提示符类似下面两种:

root@server:~#
user@server:~$
  • # 通常表示当前是 root,命令拥有最高权限。
  • $ 通常表示普通用户,需要时在命令前加 sudo
  • ~ 表示当前用户的主目录,root 的主目录通常是 /root
  • Linux 区分大小写,Config.jsonconfig.json 是两个文件。

一条命令没有输出不一定是失败。执行后先看是否回到提示符,再用下面的命令检查退出状态:

echo $?

0 通常表示成功,非零值表示命令遇到错误。长时间运行的前台命令可以按 Ctrl+C 中止;按 Ctrl+D 或输入 exit 会结束当前 SSH 会话,但不会关闭服务器。

认识 Linux 的目录结构

Linux 从根目录 / 开始组织文件。搭建节点最常接触的是配置、日志、用户目录和可执行文件。

Linux 根目录下配置、日志、用户文件、临时文件和程序所在位置

目录主要用途后续常见内容
/etc系统与服务配置/etc/sing-box/config.json、软件源、网络配置
/var/log日志文件系统日志、服务运行日志
/rootroot 的主目录脚本、临时备份、私有配置
/home普通用户主目录用户文件和 SSH 公钥配置
/tmp临时文件上传后待安装的配置;重启后可能被清理
/usr/bin常用程序curlsshnano 等命令

不要把 //root 混淆:前者是整个文件系统的起点,后者只是 root 用户的主目录。

文件和目录的基本操作

下面这些命令足以完成大多数安装教程。先在自己的练习目录中操作:

命令作用示例
pwd显示当前位置pwd
ls -lah显示文件、权限和大小ls -lah /etc
cd切换目录cd /etc/sing-box
mkdir -p创建多层目录mkdir -p ~/uufly-practice
cp -a保留属性复制文件cp -a config.json config.json.bak
mv移动或重命名mv old.json config.json
cat输出短文件cat /etc/os-release
less分页阅读长文件less /var/log/messages
nano在终端编辑文本nano config.json
rm删除文件rm test.txt

完成一次安全练习:

mkdir -p ~/uufly-practice
cd ~/uufly-practice
printf 'hello linux\n' > hello.txt
cat hello.txt
cp -a hello.txt hello.txt.bak
mv hello.txt.bak backup.txt
ls -lah
rm hello.txt backup.txt
cd ~
rmdir ~/uufly-practice

rm 默认没有回收站。不要复制自己不理解的通配符或 rm -rf 命令;修改重要配置前先使用 cp -a 创建备份。

重定向和管道是什么意思

安装教程经常使用这些符号:

  • >:覆盖写入文件。
  • >>:追加到文件末尾。
  • |:把左侧命令的输出交给右侧命令。
  • &&:前一条命令成功后才执行下一条。

例如只查看监听端口中包含 443 的行:

ss -lntup | grep ':443'

写入配置前要特别留意 >,目标文件原有内容会被替换。

用 cat 一次写入完整文件

教程给出完整配置时,优先使用 cat 和 here-document 一次写入,避免在终端编辑器中漏行、少括号或保存失败:

cat > ~/uufly-example.conf <<'EOF'
server=example.com
port=443
enabled=true
EOF

上面的命令会把 EOF 之间的三行原样写入文件。结尾的 EOF 必须单独占一行,前后不要添加空格。写完立即检查:

cat ~/uufly-example.conf
rm ~/uufly-example.conf

后续文章中的完整配置都按这种 cat > 文件 <<'EOF' 格式给出,整段复制即可。

确认操作系统

运行下面两条命令,记下系统名称、版本和 CPU 架构:

cat /etc/os-release
uname -m

普通 VPS 建议选择 Debian 12/13,也可以使用 Ubuntu;两者通常用 apt 安装软件、用 systemctl 管理服务。Shlii NAT 实例通常是 Alpine,使用 apk 和 OpenRC,后续应走 Shlii 专用脚本,不要照抄 Debian 命令。

目录、文件、权限和 MobaXterm SFTP 的用法基本相同,所以本文后面的通用 Linux 操作仍可练习;标有“Debian / Ubuntu”的章节则只供普通 VPS 使用。

权限:读懂 600、700 和 755

ls -l 输出开头的字符表示文件类型和权限。后面的数字写法在服务配置中更常见:

权限含义常见用途
600仅所有者可读写私钥、包含密码的配置
700仅所有者可进入和执行私有目录、管理脚本
644所有人可读,仅所有者可写普通文本和公开配置
755所有人可进入或执行,仅所有者可写程序、公共目录

常用写法:

chmod 600 /etc/sing-box/config.json
chmod 700 /root/private-scripts
chown root:root /etc/sing-box/config.json

不要用 chmod 777 解决权限报错。它会让所有本机用户都获得写权限,通常只是掩盖文件所有者或运行用户配置错误。

节点故障的四步检查顺序

Linux 节点服务从进程、端口、日志到网络的四步排错顺序

上一步不正常时,先解决当前问题,再继续下一步。日志命令因系统和服务管理方式不同,Debian / Ubuntu 的具体用法放在下一节;下面这些通用命令可以先确认进程、资源、地址、路由和监听端口:

ps aux
top
free -h
df -h
ip -br address
ip route
ss -lntup
curl -4 https://icanhazip.com
  • free -h 查看内存,df -h 查看磁盘空间。
  • ip -br address 查看网卡和地址,ip route 查看默认路由。
  • ss -lntup 查看 TCP、UDP 监听端口及对应进程。
  • curl -4 返回当前服务器对外使用的 IPv4。

NAT VPS 中看到的内网地址与外部共享 IPv4 不同是正常现象。公网能否访问,取决于服务是否监听正确的内部端口,以及控制台端口映射是否一致。

Debian / Ubuntu 的服务管理和日志排错

普通 VPS 的 Debian 和 Ubuntu 通常由 systemd 管理服务:

systemctl status ssh --no-pager
systemctl restart ssh
systemctl enable --now sing-box
journalctl -u sing-box -n 100 --no-pager
journalctl -u sing-box -f

journalctl -f 会持续显示新日志,按 Ctrl+C 退出查看,不会停止服务。执行重启前先确认服务名称和配置文件已经通过语法检查。

Debian / Ubuntu 可选加固:密钥登录与修改 SSH 端口

下面内容不是搭建节点的前置条件。先使用密码完成整个新手流程;确认自己能进入服务商 Web Console 后,再逐项加固。

公钥和私钥分别是什么

  • 私钥保存在自己的电脑中,相当于不能交给任何人的登录钥匙。
  • 公钥写入服务器的 ~/.ssh/authorized_keys,可以公开,不具备单独登录能力。

服务器会验证本地私钥是否与公钥配对,因此密钥登录不需要在网络中传输账户密码。

密码登录成功后,继续使用 MobaXterm 完成密钥配置:

  1. 打开密钥工具: 在 MobaXterm 顶部依次选择 ToolsMobaKeyGen,进入内置密钥生成器。
  2. 生成 Ed25519 密钥: 选择 EdDSA / Ed25519,点击 Generate 并按提示在空白区域移动鼠标,为密钥提供随机性。
  3. 保存私钥: 设置私钥口令,点击 Save private key 保存到自己的电脑;私钥不要发送给他人,也不要上传到服务器。
  4. 写入服务器公钥: 复制 MobaKeyGen 顶部显示的完整 ssh-ed25519 ... 公钥,在当前密码会话中把下面占位行替换为真实公钥后执行:
install -d -m 700 ~/.ssh
cat >> ~/.ssh/authorized_keys <<'EOF'
粘贴 MobaKeyGen 显示的完整公钥
EOF
chmod 600 ~/.ssh/authorized_keys
  1. 创建密钥会话: 在 MobaXterm 新建相同服务器会话,进入 Advanced SSH settings,勾选 Use private key 并选择刚保存的私钥。
  2. 验证后再加固: 用新会话确认能够登录。原密码会话和服务商控制台必须保留到验证成功,不要刚写入公钥就关闭密码登录。

可选:修改 SSH 端口

修改端口主要用于减少互联网扫描产生的无效登录日志,并不能替代强密码或密钥。普通 Debian VPS 可以用 cat 写入单独配置:

mkdir -p /etc/ssh/sshd_config.d

cat > /etc/ssh/sshd_config.d/99-uufly-port.conf <<'EOF'
Port 22222
EOF

sshd -t
systemctl restart ssh

sshd -t 没有输出才表示语法通过。重启前先在服务商云防火墙中允许 TCP 22222;重启后不要关闭旧窗口,用 MobaXterm 新建第二个会话测试新端口。

NAT VPS 通常无需修改服务器内部的 22 端口,只要在控制台把外部 SSH 映射端口改成新的高位端口,然后用新外部端口连接。

可选:密钥确认可用后关闭密码登录

只有在第二个 MobaXterm 会话已经能用私钥登录后,才执行:

cat > /etc/ssh/sshd_config.d/99-uufly-auth.conf <<'EOF'
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin prohibit-password
EOF

sshd -t
systemctl restart ssh

再打开第三个会话验证。若失败,立即在仍连接的旧窗口中删除加固文件并恢复:

rm /etc/ssh/sshd_config.d/99-uufly-auth.conf
systemctl restart ssh

不要同时修改端口、关闭密码和调整云防火墙。一次只改变一个变量,每次都用新会话验证,出错时才知道应恢复哪一步。

常见连接错误怎么判断

错误常见原因优先检查
Connection timed outIP、NAT 外部端口或防火墙错误控制台地址、端口映射、安全组、实例状态
Connection refused地址可达,但该端口没有 SSH 服务监听SSH 端口、ss -lntpsshd 状态
Permission denied用户名、密码或私钥不匹配登录用户、键盘布局、私钥和公钥位置
Host key verification failed主机指纹变化或本地记录冲突是否刚重装;先核实新指纹再更新记录
登录后很快断开内存不足、Shell 配置或网络不稳定Web Console、系统日志、磁盘与内存

修改 SSH 端口、防火墙或登录方式时,始终保留当前已登录会话,再打开第二个窗口验证新配置。这样即使新配置不可用,也能在旧会话中恢复。

开始下一篇前的检查清单

  • 能区分服务器地址、SSH 端口、用户名和密码或私钥。
  • 能先用密码通过 MobaXterm 登录,并通过 SFTP 上传、下载一个测试文件。
  • 能使用 cdlscatcpmvnanorm
  • 能使用 cat > 文件 <<'EOF' 一次写入完整配置。
  • 能确认自己使用 Debian、Ubuntu 还是 Alpine,知道三者的软件包和服务命令不能混用。
  • 能查看系统版本、IP、磁盘、内存、监听端口和服务日志。
  • 知道密钥登录和修改 SSH 端口属于可选加固,并且一次只修改一个设置。

完成以上检查后,继续阅读搭建第一个节点:sing-box Reality + VLESS Vision,并在文章顶部选择与你服务器一致的标签页。