Linux使用iptables實(shí)現(xiàn)IP訪問限制與解除限制的詳細(xì)教程
在Linux服務(wù)器運(yùn)維中,iptables是一款強(qiáng)大的防火墻工具,常用于IP訪問控制、端口管理等場景。本文將聚焦“IP訪問限制”與“限制解除”兩大核心需求,結(jié)合實(shí)戰(zhàn)命令詳細(xì)拆解操作流程,適合運(yùn)維新手及需要快速解決問題的開發(fā)者參考。
核心場景:當(dāng)我們需要禁止某個特定IP(如惡意攻擊IP、非法訪問IP)訪問服務(wù)器時(shí),可通過iptables添加DROP規(guī)則;后續(xù)若需恢復(fù)該IP訪問權(quán)限,則需精準(zhǔn)刪除對應(yīng)限制規(guī)則。本文以192.168.1.101 為例進(jìn)行演示。
一、前置知識:iptables基礎(chǔ)規(guī)則說明?
在操作前,先明確幾個核心概念,避免誤操作:?
鏈(Chain):iptables默認(rèn)包含INPUT(入站規(guī)則)、OUTPUT(出站規(guī)則)、FORWARD(轉(zhuǎn)發(fā)規(guī)則)等鏈,IP訪問限制主要操作INPUT鏈(控制外部IP訪問服務(wù)器)。?
目標(biāo)動作(Target):
規(guī)則優(yōu)先級:iptables按規(guī)則添加順序匹配,匹配到第一條符合條件的規(guī)則后,不再執(zhí)行后續(xù)規(guī)則。
二、實(shí)戰(zhàn)1:添加IP訪問限制(禁止特定IP訪問)
需求:禁止IP192.168.1.101訪問服務(wù)器(入站方向)。
2.1 核心命令(添加限制規(guī)則)
iptables -A INPUT -s 192.168.1.101 -j DROP
2.2 命令參數(shù)詳解
- -A:Append(追加),將規(guī)則添加到指定鏈的末尾;
- INPUT:指定操作的鏈為入站鏈;
- -s:Source(源IP),指定需要限制的IP地址(此處為
192.168.1.101,支持網(wǎng)段,如192.168.1.0/24); - -j:Jump(跳轉(zhuǎn)),指定匹配規(guī)則后執(zhí)行的目標(biāo)動作(此處為DROP,丟棄數(shù)據(jù)包)。
2.3 驗(yàn)證限制是否生效
添加規(guī)則后,可通過以下命令查看INPUT鏈規(guī)則,確認(rèn)規(guī)則已添加:
iptables -nL INPUT --line-numbers
輸出結(jié)果類似如下(重點(diǎn)看包含192.168.1.101的規(guī)則):
Chain INPUT (policy ACCEPT) num target prot opt source destination 1 DROP all -- 192.168.1.101 0.0.0.0/0 2 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
說明:num列是規(guī)則編號(后續(xù)刪除需用到),source列顯示限制的IP,target列顯示動作(DROP),表示規(guī)則已生效。
三、實(shí)戰(zhàn)2:解除IP訪問限制(恢復(fù)特定IP訪問)
需求:后續(xù)若需恢復(fù)IP 192.168.1.101 的訪問權(quán)限,需刪除上述添加的DROP規(guī)則。推薦兩種方法,優(yōu)先選擇“精準(zhǔn)刪除”(避免影響其他規(guī)則)。
方法1:按規(guī)則編號精準(zhǔn)刪除(推薦)
此方法需先獲取限制規(guī)則的編號,再刪除,適合規(guī)則較多的場景。
- 步驟1:查看規(guī)則編號:執(zhí)行以下命令,獲取
192.168.1.101對應(yīng)規(guī)則的num值(參考2.3節(jié),假設(shè)編號為1):iptables -nL INPUT --line-numbers - 步驟2:刪除指定編號的規(guī)則:
iptables -D INPUT 1參數(shù)說明:-D(Delete,刪除),INPUT為鏈名,1為規(guī)則編號。
方法2:按規(guī)則內(nèi)容直接刪除(無需查編號)
若明確知道添加限制時(shí)的完整命令,可直接按規(guī)則內(nèi)容刪除,適合規(guī)則較少的場景:
iptables -D INPUT -s 192.168.1.101 -j DROP
說明:此命令與添加規(guī)則的命令僅將-A(追加)改為-D(刪除),即可精準(zhǔn)匹配并刪除目標(biāo)規(guī)則。
方法3:臨時(shí)清空INPUT鏈所有規(guī)則(慎用)
若僅用于臨時(shí)測試,且不在乎清空INPUT鏈的所有規(guī)則(包括其他合法規(guī)則),可執(zhí)行:
iptables -F INPUT
警告:此命令會刪除INPUT鏈下所有規(guī)則,可能導(dǎo)致服務(wù)器暴露風(fēng)險(xiǎn),僅臨時(shí)測試時(shí)使用,生產(chǎn)環(huán)境嚴(yán)禁隨意執(zhí)行!
驗(yàn)證限制是否解除
刪除規(guī)則后,再次執(zhí)行以下命令查看INPUT鏈:
iptables -nL INPUT
若輸出結(jié)果中無“192.168.1.101 + DROP”的條目,說明限制已成功解除。
四、關(guān)鍵補(bǔ)充:保存iptables規(guī)則(避免重啟失效)
注意:上述添加/刪除規(guī)則的操作僅在當(dāng)前系統(tǒng)運(yùn)行時(shí)有效,服務(wù)器重啟后規(guī)則會全部丟失!需執(zhí)行保存命令,將規(guī)則持久化到配置文件。
不同Linux發(fā)行版的保存命令略有差異,重點(diǎn)介紹兩種主流系統(tǒng):
4.1 CentOS/RHEL 系統(tǒng)
# 方法1:通過service命令保存 service iptables save # 方法2:直接導(dǎo)出規(guī)則到配置文件(推薦) iptables-save > /etc/sysconfig/iptables
4.2 Debian/Ubuntu 系統(tǒng)
Debian/Ubuntu默認(rèn)未安裝規(guī)則持久化工具,需先安裝iptables-persistent:
# 安裝工具 apt update && apt install iptables-persistent -y # 保存IPv4規(guī)則(核心) iptables-save > /etc/iptables/rules.v4 # 若需保存IPv6規(guī)則(可選) ip6tables-save > /etc/iptables/rules.v6
五、常見問題與注意事項(xiàng)
- 問題1:執(zhí)行iptables命令提示“Permission denied”:原因是未使用root權(quán)限,需在命令前加
sudo(如sudo iptables -A INPUT ...)或切換到root用戶(su - root)。 - 問題2:刪除規(guī)則后仍無法訪問:可能是存在其他限制規(guī)則(如網(wǎng)段限制),可通過
iptables -nL INPUT --line-numbers全面檢查;或存在防火墻疊加(如firewalld、ufw),需關(guān)閉其他防火墻或同步規(guī)則。 - 注意事項(xiàng)1:添加規(guī)則時(shí),避免誤將自己的IP加入DROP列表,否則會導(dǎo)致無法遠(yuǎn)程連接服務(wù)器(解決方案:若有物理機(jī)訪問權(quán)限,直接在服務(wù)器本地操作刪除規(guī)則;若無物理機(jī)權(quán)限,需聯(lián)系機(jī)房運(yùn)維)。
- 注意事項(xiàng)2:生產(chǎn)環(huán)境中,建議先添加ACCEPT規(guī)則(如允許管理員IP訪問),再添加DROP規(guī)則,避免鎖死自己。示例:
# 先允許管理員IP(如192.168.1.100)訪問iptables -A INPUT -s 192.168.1.100 -j ACCEPT# 再禁止目標(biāo)IP訪問 iptables -A INPUT -s 192.168.1.101 -j DROP
六、總結(jié)
本文通過實(shí)戰(zhàn)案例講解了iptables添加IP限制(iptables -A INPUT -s 目標(biāo)IP -j DROP)與解除限制(按編號/內(nèi)容刪除規(guī)則)的完整流程,核心要點(diǎn)如下:
- 精準(zhǔn)刪除規(guī)則是首選,避免使用清空鏈命令(
iptables -F); - 規(guī)則添加/刪除后,務(wù)必保存規(guī)則,防止重啟失效;
- 操作前優(yōu)先查看規(guī)則(
iptables -nL INPUT --line-numbers),避免誤操作。
以上就是Linux使用iptables實(shí)現(xiàn)IP訪問限制與解除限制的詳細(xì)教程的詳細(xì)內(nèi)容,更多關(guān)于Linux iptables實(shí)現(xiàn)IP訪問與解除限制的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
新版ubuntu20.04 使用root用戶登錄系統(tǒng)的詳細(xì)教程
這篇文章主要介紹了新版ubuntu20.04 使用root用戶登錄系統(tǒng)的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
Linux CentOS 定時(shí)運(yùn)行腳本配置的方法
今天小編就為大家分享一篇Linux CentOS 定時(shí)運(yùn)行腳本配置的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
linux應(yīng)用軟件編程之多任務(wù)(進(jìn)程)詳解
文章介紹了進(jìn)程與多任務(wù)的概念,涵蓋進(jìn)程定義、狀態(tài)(運(yùn)行、就緒、等待、僵尸等)、調(diào)度算法及資源回收機(jī)制,并列舉了ps、top、kill等系統(tǒng)命令和fork、exit等編程方法,說明如何創(chuàng)建、管理及終止進(jìn)程2025-08-08
Linux 遠(yuǎn)程管理及sshd服務(wù)驗(yàn)證知識點(diǎn)詳解
在本篇文章里小編給大家整理了一篇關(guān)于Linux 遠(yuǎn)程管理及sshd服務(wù)驗(yàn)證知識點(diǎn)總結(jié),有需要的朋友們跟著學(xué)習(xí)參考下。2021-12-12
在Linux/WSL2環(huán)境下安裝和配置Claude Code的全過程
這篇文章就帶你從0開始,在Linux/WSL2環(huán)境下完成安裝、API配置到成功啟動的Claude Code 全流程,我會用API中轉(zhuǎn)服務(wù)簡化 國內(nèi)直連,避免翻 墻和海外賬戶問題,盡量把每個步驟講清楚,讓你少踩坑,需要的朋友可以參考下2026-05-05
Apache提示 the requested operation has failed無法啟動的解決方法大全
這是我這兩天頻繁遇到的問題。Apache服務(wù)器還真是問題少年!任何點(diǎn)改動都可能導(dǎo)致它無法使用,下面結(jié)合網(wǎng)上搜來的內(nèi)容,總結(jié)下自己關(guān)于此問題的解決方法,分享給大家2014-08-08
CentOS搭建PHP服務(wù)器環(huán)境簡明教程
這篇文章主要介紹了CentOS搭建PHP服務(wù)器環(huán)境的方法,簡單講述了CentOS平臺安裝Apache、mysql、php環(huán)境及相關(guān)測試代碼,非常簡單實(shí)用,需要的朋友可以參考下2018-03-03

