1. 限制來源IP: 使用ipset可以輕易地限制特定來源IP的訪問,可以有效防止DDoS攻擊或其他惡意行為。
```bash
# 創建一個名為blacklist的IP set
ipset create blacklist hash:ip
# 將惡意IP地址加入黑名單
ipset add blacklist 1.2.3.4
# 使用iptables將黑名單中的IP封鎖
iptables -A INPUT -m set --match-set blacklist src -j DROP
```
在這個指令中,hash:ip 是指創建一個使用IP地址作為鍵值的Hash類型的IP集合(ipset)。這表示當您將IP地址添加到此ipset時,系統將使用專門的哈希函數來存儲和查找這些IP地址。
您可以替換hash:ip中的ip為其他合適的值,例如:
- hash:net 代表使用IP網絡作為鍵值的hash類型的ipset。
- hash:ip,port 表示使用IP地址和端口號作為鍵值的hash類型的ipset。
請根據您的需求,選擇適合的ipset類型。
2. 阻擋廣告IP: 使用ipset可以將已知的廣告伺服器IP地址加入到一個IP set中,然後透過iptables封鎖這些IP地址,從而幫助過濾網頁上的廣告。
```bash
# 創建一個名為ads的IP set
ipset create ads hash:ip
# 將廣告伺服器IP地址加入到ads IP set
ipset add ads 5.6.7.8
# 使用iptables將ads IP set中的IP封鎖
iptables -A INPUT -m set --match-set ads src -j DROP
```
3. 加速反向代理: 在反向代理伺服器上使用ipset可以快速地過濾掉已知的惡意IP地址或機器,從而提升反向代理的性能。
```bash
# 創建一個名為whitelist的IP set
ipset create whitelist hash:ip
# 將信任的IP地址加入到whitelist IP set
ipset add whitelist 10.20.30.40
# 使用iptables將whitelist中的IP地址添加到允許的訪問規則
iptables -A INPUT -m set --match-set whitelist src -j ACCEPT
```
```
# 列出目前在ipset中的清單
ipset list
# 這條指令將會列出所有目前在ipset中的IP地址或者網段的清單。
# 列出一個特定的ipset清單下的所有內容
ipset list set_name
# 其中,set_name 是你想要查看的ipset清單的名稱
# 刪除ipset清單
ipset destroy set_name
# 不刪除ipset清單的情況下清空內容
ipset flush set_name
# 將ipset配置保存到文件中,這樣可以在需要時重新加載
ipset save > /etc/ipset.conf
# 重新加載配置
ipset restore < /etc/ipset.conf
```