雲主機建好 LAMP 之後,接下來最重要的是建立 L3 及 L4 防火牆規則,把一些爬蟲、代理池與高風險國家 IP 區段封鎖,減輕硬碟的 I/O 壓力。 不然每隔幾秒就來一次請求,就算 L7 應用層有高階防爬蟲機制,還是會消耗雲主機的算力。 當然最好是在路由端用硬體防火牆清洗,但因為是雲主機沒有實體路由,因此改用 Linux kernel 層級的黑名單系統 ipset 也能達到 L3 與 L4 清洗效果,讓 Apache/PHP 完全碰不到,不吃 CPU、不吃 I/O。 經過實際執行、爆肝測試後,去除所有失敗方法,以下為正確建立ipset 黑名單的方法: 1、建立 ipset sudo ipset create blacklist hash:ip 如果看到: ipset v7.x.x: Set cannot be created: already exists 代表曾經建立過,需要 destroy。 如果返回: Command 'ipset' not found, but can be installed with: apt install ipset 表示 Linux 初始環境沒有預裝 ipset,輸入以下指令安裝: sudo apt update sudo apt install ipset -y 完成後驗證: ipset list 如果返回: ipset v7.x.x: The set with the given name does not exist 表示 ipset 已成功安裝(但還沒建立 blacklist)。 2、建立一份「只有網段」的列表檔 輸入指令建立 sudo nano /root/blacklist.txt 貼上以下內容(改成您自己的IP名單) 1.0.1.0/24 1.0.2.0/23 1.0.8.0/21 1.0.32.0/19 (略…) Ctrl+O 儲存 → Enter 確認 → Ctrl+X 返回。注意:一定要用 nano 建立,避免 BOM/CRLF 問題。 3、建立自動載入腳本 輸入指令建立 sudo nano /usr/local/bin/ipset-load.sh 貼入以下腳本 #!/bin/bash # 建立 blacklist(若存在就忽略) ipset create blacklist hash:net...