VPS 安全与流量防偷跑全攻略

 .

本教程使用最新版本录制 3X-UI v3.8.5、Ubuntu v26.04、v2rayN v7.24.4
.

准备 VPS

高质量线路 最性价比 VPS - 搬瓦工
注册、登录 官网  👉点击前往

$49/年 点击👉 https://cutt.ly/gtsESaYA
线路:US - Los Angeles DC2 (USCA2)

视频同款 $49/季  https://cutt.ly/MeHOhuy0
线路:US - Los Angeles DC6 CN2GIA (USCA_6)
低延迟、晚高峰流畅

$21/年起 更多套餐 👉点此前往

重置VPS

重新安装操作系统 Ubuntu 26.04 (或 24.04 )
注:如果你是刚买的全新VPS,并且系统是Ubuntu 26.04,可以跳过此步骤。

更新脚本

.

测vps是否被墙

退出所有翻墙代理软件,使得本机处于裸奔直连。
打开 终端 窗口, 输入以下代码:

ping -n 6 11.12.13.14

如果返回值,6次都是连接超时, 说明IP被墙,需联系客服更换IP。

SSH工具

finalshell下载
SSH工具,服务器管理,支持挂代理连接VPS,支持Windows,macOS,Linux,版本4.6.3
1.国内云盘(夸克盘 高速)
https://pan.quark.cn/s/4a24db8c0748

2.国外云盘(百度盘海外版 免费1T空间)
https://terabox.com/s/1dvrAru9rfJFuJAnVYfxW8A

安装3X-UI

VERSION=v3.8.5 && bash <(curl -Ls "https://raw.githubusercontent.com/mhsanaei/3x-ui/$VERSION/install.sh") $VERSION

3x-ui 官网  https://github.com/MHSanaei/3x-ui

找 伪装网站

bash <(curl -Ls https://raw.githubusercontent.com/afeinet/sni-test/main/sni.sh)

搭建VPS节点

.

准备 住宅IP

本期以 onesProxy 的住宅IP为例来演示。

注册、登录 官网: https://cutt.ly/St2c9p9W
按带宽计费,带宽有10M,15M,20M,25M,30M。

搭建住宅IP节点

电脑端Win 配置v2rayN

版本:7.24.4

  1. 国内云盘(高速)
    1 ) 下载 "宝箱":
    https://pan.quark.cn/s/699b56703992
    2 ) 下载 "钥匙":
    https://pan.quark.cn/s/f84d5a2a7fa0
    3 ) 下载后 使用方法:
    (1) 把"钥匙"复制到"宝箱"的文件夹的内部, 使得所有文件放在同一个文件夹内;
    (2) 在"宝箱"的文件夹,双击"afei", 会生成一个压缩包,解压缩即可.

  2. 国外云盘(百度盘海外版 免费1T空间)
    https://terabox.com/s/1t8D6luxyt2eUOp8lUzmqVA

电脑端 避免真实IP泄露

插件WebRTC Contrl下载

  1. 国内云盘(高速)
    https://pan.quark.cn/s/007b726d9b7b

  2. 国外云盘(百度盘海外版 免费1T空间)
    https://1024terabox.com/s/1h6WCeZ_RFG2i0UAGHiJwSA


IP品质测试

常规属性
https://ping0.cc
https://ipinfo.io

欺诈检查
https://scamalytics.com/ip

严风控网站测试

AI:
https://chatgpt.com/

https://gemini.google.com/app

https://claude.ai/

流媒体:
https://www.netflix.com/

Tiktok:
https://www.tiktok.com/

网速测试

https://speedtest.net

苹果 电脑+手机 小火箭

1.美区apple ID获取:
点击👉前往官网

2.充值4美金、充值卡、小火箭账号购买:
https://cutt.ly/CtSmpGlb

3.在 苹果应用商店 中下载 shadowrocket (小火箭)
支持 iPhone, iPad, MacOS, apple TV.
shadowrocket (小火箭) 是一款付费软件,标称费用为$2.99,实际费用为$3.14.

重要!
避免真实IP泄露,访问强风控的网站或APP时,需要开启 全局 代理 模式。

安卓手机 NekoBox

可以在 Google Play 商店下载, 或者

1.国内云盘(高速)
1 ) 下载 "宝箱":「260524-nkb」
https://pan.quark.cn/s/26e6c550ec32
2 ) 下载 "钥匙":
https://pan.quark.cn/s/f84d5a2a7fa0
3 ) 下载后 使用方法:
(1) 把"钥匙"复制到"宝箱"的文件夹的内部, 使得所有文件放在同一个文件夹内;
(2) 在"宝箱"的文件夹,双击"afei", 会生成一个压缩包,解压缩即可.

2.国外云盘(百度盘海外版 免费1T空间)
https://1024terabox.com/s/1Kl-ziWlJko2QgiSRp1tVhA

.

如何知道你自己的VPS流量是否被偷跑
如何知道VPS是否被攻击 被暴力破解
如何查出攻击我们VPS的IP
如何更改SSH端口
如何安装防火墙UFW
如何放行我们需要的端口 关闭其他不用的端口
如何封杀攻击我们VPS的IP
如何设置封杀IP的规则 关小黑屋的天数
如何解封我们封杀过的IP

一、 流量排查与状态监控

1. 网页后台查看与预警(以搬瓦工 KiwiVM 为例)

                注册/登录 官网  点击👉前往官网
  • 设置流量预警邮件:

    进入 KiwiVM Admin Controls -> Security & Records -> Email notifications,开启 Bandwidth usage alert at 50% threshold(当流量使用达 50% 时自动发邮件提醒)。

  • 查看历史流量统计:

    进入 KiwiVM Admin Controls -> Security & Records -> Usage statistics

2. 服务器端排查异常连接与攻击

  • 查出当前正在连接的 IP:

    ss -tunp state established
    
  • 查出尝试暴力破解 SSH 登录失败的 IP 排行(前 20 名):

    适用于 systemd 日志系统(如 Debian/Ubuntu 新版本)

      sudo journalctl _SYSTEMD_UNIT=ssh.service | grep "Failed password" | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -n 20
    

    适用于传统日志文件

      sudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -n 20
    

二、 基础安全加固:修改端口与防火墙

1. 更改 SSH 默认端口

不要再使用默认的 22 端口,将其修改为万位数的随机端口(如 23456),这能直接过滤掉 99% 的自动化黑客扫描。

  1. 修改配置文件:
sudo nano /etc/ssh/sshd_config
  1. Port 22 改为 Port 23456(记得在下方防火墙放行该端口)。

  2. 重启 SSH 服务生效:

sudo systemctl restart ssh

sudo systemctl restart sshd

2. UFW 防火墙配置

⚠️ 服务商外层安全组提示:

阿里云、腾讯云、AWS 等厂商在控制台自带“安全组/防火墙”。如果厂商外层没放行某个端口,你内部就算用 UFW 放行了,外部也无法访问。请确保两边配置一致。

步骤 1:检查与安装 UFW

sudo ufw status

如果提示 command not found,则运行以下命令安装:

sudo apt update && sudo apt install ufw -y

步骤 2:查看当前 VPS 正在使用的端口

sudo ss -tuln

注: -t (TCP), -u (UDP), -l (监听中), -n (显示数字端口号)

步骤 3:放行必要的端口(关闭其他所有端口)

根据上一步查到的端口,依次放行。绝对不要漏掉 SSH 端口,否则会导致无法远程连接!

  1. 必须:放行你的 SSH 端口(假设你改成了 23456)
sudo ufw allow 23456/tcp
  1. 常用端口放行示例
  2. sudo ufw allow 80/tcp          # HTTP
    

    .

    sudo ufw allow 443/tcp         # HTTPS
    
    1. 删除端口
      查看 端口是以什么规则存在的:
    sudo ufw status numbered
    

    输出中会看到类似 [ 1] 22/tcp ALLOW Anywhere 这样的带编号列表。

    直接删除该允许规则

    sudo ufw delete allow 22/tcp
    

    或者根据第一步查到的编号(假设是编号 1)直接删除:

    sudo ufw delete 1
    

    如果你是通过删除编号的方式修改了规则,或者直接编辑了 UFW 的底层配置文件(比如 /etc/ufw/before.rules),那么必须执行一次重载命令:

    sudo ufw reload
    
    1. 进阶:放行连续的端口范围
    sudo ufw allow 8000:8080/tcp   # 批量放行 80008080 的 TCP 端口
    sudo ufw allow 5000:5050/udp   # 批量放行 50005050 的 UDP 端口
    

    步骤 4:启用防火墙并验证

    启用防火墙(提示可能中断连接时,输入 y 回车)

    sudo ufw enable
    

    查看防火墙详细状态

    sudo ufw status verbose
    

    三、 进阶防爆破:安装与配置 Fail2ban

    Fail2ban 是服务器防御的第二道防线。最稳妥的第一道防线依然是:关闭密码登录,改用 SSH 密钥认证。

    1. 安装 Fail2ban

    sudo apt update && sudo apt install fail2ban -y
    

    查看运行状态

    sudo systemctl status fail2ban
    

    2. 配置文件规范(黄金法则)

    Fail2ban 默认有两个核心文件:

    • /etc/fail2ban/jail.conf(默认配置文件,绝对不要直接修改,升级会被覆盖)

    • /etc/fail2ban/jail.local(用户自定义文件,会覆盖 conf 的同名配置)

    直接复制一份模板出来供我们修改:

    sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    

    编辑器修改

    sudo nano /etc/fail2ban/jail.local
    

    finalshell 定位文件、下载、修改、保存(适合小白)

    3. 编辑自定义规则与 SSH 监控

    打开 /etc/fail2ban/jail.local,将 [DEFAULT][sshd] 部分修改或确认为以下内容:

    [DEFAULT]
    # 白名单:绝对不会被封禁的 IP,多个 IP 用空格隔开。支持 IP 段(如 218.212.87.0/24)
    ignoreip = 127.0.0.1/8 ::1 218.212.87.152
    
    bantime  = 999d      # 只要被抓,直接封 999 天
    findtime  = 10m     # 10 分钟内统计错误次数
    maxretry  = 2       # 输错 2 次密码就封禁
    
    [sshd]
    enabled = true      # 必须设置为 true 才能启用 SSH 防护
    port    = 23456     # ⚠️如果你修改了 SSH 端口,这里必须改成你的新端口
    logpath = %(sshd_log)s
    backend = %(sshd_backend)s
    

    修改完成后,重启服务生效:

    sudo systemctl restart fail2ban
    

    4. 验证白名单是否生效

    查看全局默认白名单

    sudo fail2ban-client get sshd ignoreip

    正确输出应包含你的 IP,例如:['127.0.0.0/8', '::1', '218.212.87.152']

    5. Fail2ban 日常运维命令

    Fail2ban 提供了强力的命令行工具 fail2ban-client

    • 查看当前有哪些“监狱”正在运行:

      sudo fail2ban-client status
      

      输出示例:Jail list: sshd

    • 查看某个具体监狱的详细战果(如 sshd):

      sudo fail2ban-client status sshd
    

    可以看到当前被封禁的 IP 列表 (Banned IP list)

    • 手动解封某个 IP(误报救援):
      sudo fail2ban-client set sshd unbanip 你的IP地址
    
    • 手动强制封禁某个恶意 IP:

      sudo fail2ban-client set sshd banip 想要封禁的IP地址
      

    四、 常用运维辅助命令

    • 查看 VPS 当前使用的时区与时间:

      timedatectl
      
    • 查看 Fail2ban 的攻击与封杀日志:

      tail -f /var/log/fail2ban.log
      
            sudo fail2ban-client get sshd bantime
            sudo fail2ban-client get sshd maxretry

    重启VPS

    • 获取SSH 端口

                    sudo ss -tunlp | grep sshd
    • 防火墙放行了吗?

      运行
      sudo ufw status
      确保你修改后的那个新 SSH 端口处于 ALLOW(放行)状态。

    • 测试过新端口登录吗?

      千万不要断开当前这个好不容易连上的 SSH 窗口!请在电脑上新开一个终端窗口,尝试用新端口连接一下 VPS。

      ssh -p 新端口号 用户名@你的VPS_IP
      
      ssh -p 23456 root@23.106.153.19
      

      只有在新窗口成功登录进去了,才说明配置完全正确。此时你再回到旧窗口放心地敲下 sudo reboot

    重启

    sudo systemctl reboot

      sudo fail2ban-client status sshd

    完整版ubuntu (BrainHost RackNerd )不用额外设置,重启后直接使用。

    精简版Ubuntu (如 搬瓦工)重启后,会发现无法使用,需要特殊设置1次。
    打开
    sudo nano /etc/fail2ban/jail.local

    搜索 backend,其下面

    [DEFAULT]

       # 告诉 Fail2Ban 默认使用 systemd 后端读取日志

    将 

    backend = auto
    改为

       backend = systemd

    原因:在很多较新的 Linux 系统(如 Debian 12+、Ubuntu 22.04+,或者部分精简版的 VPS 系统)中,系统默认取消了传统的日志文件,改为完全由 systemd-journald 统一接管。重启前 Fail2Ban 可能还能勉强运行,但重启后系统没有生成这些旧的日志文件,Fail2Ban 找不到它们,于是就直接罢工(崩溃)了。


    评论