选择提供商:优先选择明示支持“CN2”或“CN2 GIA/BGP”线路的VPS提供商(如某些国外主机商 / 机房示例)。在购买页面确认机房为新加坡,网络为CN2或BGP CN2。
配置选择:建议至少1核/1GB内存起步、带宽按需(建议10Mbps以上),系统镜像选择Ubuntu LTS(如22.04)。确保包含公网IPv4地址,记录控制台账号、IP、密码和VNC/控制台访问方式。
通过控制台或SSH首次连接:如果提供商给出root密码,用命令 ssh root@IP 登录。首次登录先修改root密码:passwd。
更新系统与安装常用工具:
命令示例:sudo apt update && sudo apt upgrade -y;安装常用工具 sudo apt install -y curl wget git ufw ca-certificates apt-transport-https
创建用户并赋予sudo:adduser youruser(按提示设置密码),然后 usermod -aG sudo youruser。
切换到新用户测试 sudo:su - youruser;sudo -l 检查权限。保留root以备恢复,但建议后续禁止root远程登录。
在本地生成密钥(如果还没有):ssh-keygen -t ed25519 -C "your@email"。生成后使用 ssh-copy-id youruser@IP 或手动把 ~/.ssh/id_ed25519.pub 内容追加到服务器上 /home/youruser/.ssh/authorized_keys 并设置权限 chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys。
修改 SSH 配置:sudo vim /etc/ssh/sshd_config,建议修改或添加如下项:
Port 22(可改为非标准端口如 2222),PermitRootLogin no,PasswordAuthentication no(在确认密钥可用后启用),然后 sudo systemctl restart sshd。
初始化UFW并允许必要端口:
sudo ufw allow OpenSSH(若改端口 sudo ufw allow 2222/tcp),sudo ufw allow http, sudo ufw allow https;然后 sudo ufw enable && sudo ufw status verbose。
确认规则生效并测试SSH以避免被锁死。
安装 Nginx:sudo apt install -y nginx。启动并设置开机自启:sudo systemctl enable --now nginx。
默认页面访问服务器IP,若能看到 Nginx 欢迎页说明已安装成功。自定义网站文件放在 /var/www/yourdomain/html,设置权限 chown -R youruser:www-data /var/www/yourdomain。
示例 Nginx 虚拟主机配置(/etc/nginx/sites-available/yourdomain):
server {
listen 80; server_name yourdomain.com www.yourdomain.com;
root /var/www/yourdomain/html; index index.html index.htm index.php;
location / { try_files $uri $uri/ =404; }
}
启用并测试:sudo ln -s /etc/nginx/sites-available/yourdomain /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl reload nginx。
在域名注册商控制面板添加 A 记录:主机 @ 指向 VPS IPv4;可添加 www 的 CNAME 指向 @ 或单独 A 记录。TTL 可设低一点便于调试(如 300 秒)。
检查解析状态:用命令 dig +short yourdomain.com 或 nslookup yourdomain.com,确认返回的是你的VPS IP。
安装 Certbot 并为 Nginx 获取证书:
sudo apt install -y certbot python3-certbot-nginx,然后 sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com 按提示操作并选择重定向(HTTP->HTTPS)。
设置自动续期(Cron / systemd 已默认安装):sudo certbot renew --dry-run 检查是否成功。
安装 Node.js(示例 Node 18):curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - && sudo apt install -y nodejs
进入项目目录,npm install,测试运行 node app.js。使用 PM2 管理后台进程:sudo npm i -g pm2;pm2 start app.js --name yourapp;pm2 save;pm2 startup systemd(并按输出执行命令)。
用 Nginx 反向代理到 Node 进程(示例 upstream 为 localhost:3000),修改 Nginx server 配置中的 location / proxy_pass http://127.0.0.1:3000;
安装 MariaDB:sudo apt install -y mariadb-server,然后 sudo mysql_secure_installation 进行初始加固,创建专用数据库与用户。
备份建议:定期使用 mysqldump 导出数据库并推送到远端存储或对象存储(如 S3)。示例脚本:mysqldump -u user -p'password' dbname | gzip > /backup/dbname-$(date +%F).sql.gz 并用 cron 定时。
安装 fail2ban 防止暴力破解:sudo apt install -y fail2ban 并根据 /etc/fail2ban/jail.local 配置 SSH 等规则。
性能优化建议:根据站点类型调整 nginx worker_connections、开启 gzip、使用缓存头和 CDNs。针对连接中国大陆用户的 CN2,测试 tracert/traceroute 与 mtr,必要时调整 MTU 或联系VPS商家优化路由。
无法访问网站:先检查域名解析(dig),再检查服务器防火墙(ufw status),最后 nginx 状态(sudo systemctl status nginx)与证书是否过期(sudo certbot certificates)。
SSH 无法登录:确认 SSH 端口规则、ssh 服务是否启动(sudo systemctl status sshd),若被锁可用VPS控制台或救援模式重置配置。
问:选择新加坡 CN2 的主要优势是什么?
答:CN2(尤其是CN2 GIA)提供更优异的中国大陆到新加坡的路由质量和更低延迟,适合面向中国用户的网站或需要稳定大陆带宽的应用。但不同提供商实现的效果不同,务必查看测试 IP 的延迟和丢包情况。
问:Certbot 的证书会自动续期吗?需要注意什么?
答:Certbot 默认会安装定时续期任务(systemd timer 或 cron)。建议执行 sudo certbot renew --dry-run 检查续期能否成功。若使用自定义 Nginx 配置或非常规端口,需要确保 HTTP 验证(80端口)可达或使用 DNS 验证。
问:网站在国内访问时延迟高或丢包,先做哪些排查步骤?
答:先用 mtr 或 traceroute 从国内或使用在线工具测路由,查看哪一跳有丢包;检查服务器端 TCP 重传、网卡错误,确认带宽是否被流量占满;联系VPS提供商要求测试或切换更优路由(如CN2 GIA),必要时调整MTU或使用加速服务/CDN。