新聞中心
最近在做一個VPN中間件的配置工作,在配置iptables的時候,當(dāng)用戶想刪除EIP(即釋放當(dāng)前連接),發(fā)現(xiàn)使用iptables的相關(guān)命令會提示錯誤。

公司主營業(yè)務(wù):成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出潛江免費做網(wǎng)站回饋大家。
iptables: Bad rule (does a matching rule exist in that chain?).
1. 按行刪除
如果按照行號刪除,就不會有這篇文章了,當(dāng)然如果你刪除前就知道了行號,那么就可以使用一下命令
iptables -t $table -D POSTROUTING 2
-t: 后面接的是要操縱的表。表包括四個,注意默認(rèn)的可能不是你的table,具體看官方文檔地址
-D: 代表刪除
POSTROUTING: 用于源地址轉(zhuǎn)換(SNAT),這里需要填你的規(guī)則連接。
然后后面接行號
iptables -t $table -L -n --line-numbers
2. 根據(jù)匹配規(guī)則刪除、
官方文檔中采用的的精確匹配刪除。所以你不能只制定一個篩選條件。必須給出規(guī)則的每一個細(xì)節(jié),和你當(dāng)初添加該規(guī)則時一樣,和添加動作唯一不同的是,你要把-A改成-D。這種精確匹配刪除的成功依賴的就是用戶提供的所有match字段,target字段必須和內(nèi)核中保存的一模一樣,精確到字節(jié)級別的匹配。如果哪怕有一個字節(jié)不匹配,就會有二義性,刪除失敗。
3. 整表整鏈刪除
這個太極端了,慎用
iptables -t $table -F
4. 使用Python-iptables進(jìn)行操作
本來我這接口就是用python寫的,所以自然就想到使用python-iptables來進(jìn)行規(guī)則的刪除。這樣就可以不用精確匹配了。但問題是無法在阻塞態(tài)的時候使用
==但是可以重啟一個單獨的腳本運行==
python-iptables的官方文檔
import iptctable = iptc.Table(iptc.Table.NAT)table.autocommit = False # 不加亦可,會自動提交,此處是手動chain = iptc.Chain(table, "POSTROUTING")for rule in chain.rules: if rule.src == f"{network_segment}/255.255.255.0": chain.delete_rule(rule)table.commit()table.autocommit = True
文章名稱:iptables刪除命令出錯解決方案
文章分享:http://fisionsoft.com.cn/article/djdsihc.html


咨詢
建站咨詢
