
我有一個 iptable 規則,允許 IP 子網路。規則如下:
iptables -I 輸入 2 -i eth0 -s xxxx/24 -d xxXx -j 接受
例如,我想允許子網路 172.16.0.0/24。我可能會遇到這樣的問題:儘管我已配置允許該子網,但該子網的 IP 無法存取?
我正在處理這樣的問題。我已將 172.16.0.0/24 配置為允許 iptables,但當我嘗試從 IP 172.16.0.9 存取時,我無法存取。
答案1
您可以透過啟用 TRACE 目標來調試 netfilter 規則:
首先載入相關核心模組直接記錄到syslog:
modprobe -i ipt_LOG
然後建立一條規則來記錄來自行為不當系統的所有流量:
iptables -t raw -A PREROUTING --source 172.16.0.9 -p tcp -j TRACE
封包使用字串前綴進行記錄: TRACE: tablename:chain- name:type:rulenum
其中 type 可以是「rule」(表示普通規則)、「return」(表示使用者定義鏈末尾的隱式規則)和「policy」(表示內建鏈的策略)。被發現與iptables -L --line-numbers
答案2
嘗試刪除“-d xxxx”。我這樣說是因為 INPUT 表示所有發送到您電腦的流量,因此無需指定目的地。編輯:另外,請嘗試在“-s xxxx/24”之前新增“-p tcp”。我認為你需要指定比賽的協議。 – aseaudi 17 分鐘前
答案3
我正在考慮兩個可能的問題:
1 - 您不允許流量從您的機器流出
iptables -I OUTPUT 1 -i eth0 -d x.x.x.x/24 -j ACCEPT
2 - 您正在阻止廣播資料包到達您的計算機
嘗試這個而不是你原來的輸入:
iptables -I INPUT 1 -i eth0 -s x.x.x.x/24 -j ACCEPT
不使用目標IP。