黑五 VPS 购买记录:RackNerd
一、引言
每年的“黑色星期五”(Black Friday),不仅是消费电子产品的促销季,也是海外 VPS(虚拟专用服务器)提供商的重要战场。
对于开发者和个人用户来说,这是一个以较低成本购入一台海外服务器的好时机。可以用它来搭建个人网站、部署实验性项目,或者学习 Linux 系统管理。
今年,我选择的是 RackNerd。这家提供商在性价比方面口碑不错,尤其适合作为入门的第一台 VPS。
二、为什么选择 RackNerd
在选择 VPS 时,我主要考虑以下几个因素:
- 价格:年付 10-15 美元左右,是完全可以接受的试错成本。
- 支付方式:支持支付宝,购买流程对国内用户非常友好。
- 口碑:在相关社区有一定知名度,相对稳定,减少“跑路”风险。
RackNerd 的黑五套餐满足了以上所有条件。我最终选择了 $10.60/年 (实际付款$9.70)的套餐,配置如下:
- 1 vCPU Core
- 1 GB RAM
- 25 GB SSD Storage
- 2 TB Monthly Bandwidth
- 洛杉矶 DC机房
下单、用支付宝付款,整个过程非常顺畅。几分钟后,就收到了包含服务器 IP 地址、用户名和密码的邮件。
三、遇到的问题:SSH 登录失败
按照惯例,我立即尝试通过 SSH 连接服务器。
然而,连接请求长时间挂起,最终报错 Connection timed out。这通常意味着网络层面的不通,而不是密码错误。
我进行了简单的排查:
- 确认 IP 地址:无误。
- 使用手机热点:排除本地网络问题,同样失败。
- Ping 测试:
ping 服务器IP,结果也是 100% 丢包。
情况很明确:从中国大陆地区,根本无法通过 ICMP 和 TCP 22 端口访问到这台新开的服务器。
四、解决方案:提交工单
遇到这种自己无法解决的问题,最有效的办法就是联系服务商的客服。RackNerd 是通过“工单”(Ticket)系统来提供支持的。
- 登录 RackNerd 客户后台。
- 找到 Open Ticket -> Support。
清晰描述问题:
标题:Unable to Connect to VPS via SSH from Mainland China
内容:
I am writing to report a persistent issue with SSH connectivity to my VPS from Mainland China. Below are the details:
VPS IP Address: xxxx
Operating System: xxxx
SSH Port: xxxx
Problem Description
When attempting to SSH into the VPS from networks in Mainland China, the connection times out consistently. This suggests a potential network restriction or routing issue specific to China.
提交工单后,我原本以为需要等待半天甚至更久。但出乎意料的是,大约 30分钟后,就收到了回复。
客服的回复很直接,他们确认了问题,并告知我需要进行一次“迁移”(Migration)来解决网络路由问题。他们提供了一个目标机房(同样是洛杉矶的另一个数据中心),问我是否同意迁移。
我回复同意后,大约又过了 10 分钟,收到了一封新邮件,通知我服务器已经迁移完成,并附上了新的 IP 地址。
五、问题解决与后续
使用新的 IP 地址,SSH 连接一次性成功。后续的服务器初始化工作(更新系统、修改 SSH 端口、配置密钥登录、安装必备软件)都进行得非常顺利。
总结一下这次经历:
- 问题:新购的 RackNerd VPS 可能因网络路由或防火墙策略,导致从中国大陆无法直接连接。
- 解决:通过后台提交工单是唯一正确的途径。客服响应迅速,通过迁移机房(更换IP)解决了问题。
- 启示:对于海外 VPS,遇到初始连接问题并不罕见。保持耐心,积极与客服沟通,通常都能得到解决。RackNerd 的工单响应速度给我留下了不错的印象。
六、服务器安全加固
登录新购买的 VPS 后,我立即开始进行安全加固。一个刚开通的服务器如果保持默认设置,很快就会被网络上的自动化脚本发现并攻击。
我的加固工作主要围绕三个核心措施:隐匿、强化认证和最小化暴露面。
1. 修改 SSH 端口
首先,我将 SSH 默认的 22 端口改为一个不常见的高位端口。这是最基础的隐匿措施,可以避开大部分自动化扫描。
修改配置文件后,我遇到了一个特殊情况:执行重启 SSH 服务的命令时失败了。经过排查,发现这个系统使用 systemd socket activation 机制运行 SSH 服务。
这种机制的特点是:平时不运行 sshd 守护进程,只有当有连接请求到达 22 端口时,才临时启动服务。这与传统的常驻进程模式不同,导致标准的服务管理命令无法正常工作。
解决方法是将 SSH 服务从 socket 激活模式切换到传统的守护进程模式。切换后,新端口立即生效。
# 禁用 socket 激活,改为标准的常驻守护进程模式
sudo systemctl enable ssh.service
sudo systemctl start ssh.service
sudo systemctl disable ssh.socket2. 强制使用密钥认证
端口修改完成后,下一步是彻底禁用密码登录,强制使用 SSH 密钥认证。密钥认证比密码安全得多,因为它几乎不可能被暴力破解。
我先将本地的公钥上传到服务器,然后在配置文件中关闭密码认证功能。这样,服务器就只认密钥不认密码了。
3. 配置防火墙
最后,我设置了防火墙规则,采用"默认拒绝"的策略:禁止所有传入连接,只单独开放 SSH 管理端口。
这种最小化暴露面的做法,确保服务器只对外开放绝对必要的服务端口。
七、参考资料


