VPS开荒

VPS初始化

前提条件

  • VPS:具备独立IPv4(xx.xx.xx.xx)的Ubuntu 22.04实例

  • 登陆:客户端有SSH,通过ssh root@xx.xx.xx.xx并输入密码登陆VPS

  • 轮询:避免登陆后长时间未操作被VPS自动踢出,客户端配置~/.ssh/config

    1
    2
    3
    Host *
    ServerAliveInterval 60
    ServerAliveCountMax 3

更新系统

  • VPS更新软件包索引: apt update
  • 升级软件包:apt upgrade -y
  • 清除无用依赖:apt autoremove -y

创建管理员

  • VPS创建管理员:adduser arvin,输入密码后一直回车
  • 添加管理权限:usermod -aG sudo arvin
  • 切换到新用户:su - arvin
    • 终端提示符变为arvin@hwo-tokyo-vps
    • arvin用户下输入sudo whoami,打印root

SSH登陆

公钥登陆

  • 客户端确认设备公钥:cat ~/.ssh/id_xxx.pub
    • 公钥默认为id_rsa.pub,也可使用其他加密算法
    • 私钥本地保管,避免泄露,必要时重新生成
  • 复制公钥到VPS:ssh-copy-id arvin@xx.xx.xx.xx
    • 也可以复制其他公钥到VPS:ssh-copy-id -i ~/.ssh/id_xxx.pub arvin@xx.xx.xx.xx
  • 再次登陆VPS:ssh arvin@xx.xx.xx.xx,可以发现这次登陆不在需要输入密码

禁用密码

  • VPS打开或创建配置文件:sudo vim /etc/ssh/sshd_config.d/50-cloud-init.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 禁用root通过SSH登陆
    PermitRootLogin no

    # 禁用密码登陆
    PasswordAuthentication no

    # 禁用键盘交互认证`,防止变种密码登陆
    KbdInteractiveAuthentication no

    # 允许公钥认证
    PubkeyAuthentication yes
  • 检查配置:sudo sshd -t,无输出则语法无误

  • 重启SSH服务:sudo systemctl restart ssh

SSH会先加载/etc/ssh/sshd_config中的官方主配置文件,后加载刚才创建的50-cloud-init.conf,覆盖掉主配置文件中的相关配置;创建用户配置文件,可以避免直接修改官方配置文件,利于后续版本更新

登陆验证

  • 认证客户端登陆rootssh root@xx.xx.xx.xx,提示Permission denied (publickey)
  • 认证客户端登陆arivnssh arvin@xx.xx.xx.xx,无需密码直接进入
  • 陌生客户端登陆arvinssh arvin@xx.xx.xx.xx,提示Permission denied (publickey)

防火墙

放行端口

  • 安装基础防火墙(UFW):sudo apt install ufw -y,系统通常自带并启用了UFM

  • VPS确认SSH端口:sudo ss -tlnp | grep ssh
    image-20251225172939505

    • SSH服务同时监听IPv4和IPv6,端口号默认均为22
  • 放行必要端口:SSH(默认TCP 22)、WireGuard(默认UDP 51820)

    • 启用防火墙必须放行SSH,否则VPS断连
    1
    2
    sudo ufw allow 22/tcp
    sudo ufw allow 51820/udp

TCP(Transmission Control Protocol)可靠,UDP(User Datagram Protocol)低延迟

1
2
3
4
5
6
7
应用(SSH / WireGuard)

传输协议层(TCP / UDP)

网络层(IP)

物理网络
  • 若开放端口改变需删除旧端口
    • 线检查当前规则:sudo ufw status numbered
    • 删除上述命令输出的对应需要的端口:sudo ufw delete <number>

出入站策略

  • 设置出入站策略

    1
    2
    sudo ufw default deny incoming
    sudo ufw default allow outgoing
    • 入站:默认拒绝除放行端口外的所有入站流量

    • 出站:允许服务器主动访问外部,保证系统更新和服务正常运行

  • 启用UFW:sudo ufw enable

  • 检查命令:sudo ufw status verbose

    image-20251225175425204
    • Logging: on (low)表示防火墙已开启基础日志

    • routed是流量转发策略,UFW默认不参与处理

    • New profiles: skip表示新安装了一个带 UFW profile 的服务时,UFW 不会自动启用它,避免端口自动开放