Iptables
我的 iptables 有什麼問題?
問題
我無法在埠 80 上向伺服器請求重定向到埠 8080 上的客戶端
伺服器
我使用 CentOS 6.3 VM 作為伺服器,客戶端是 Arduino
伺服器 eth0 - 172.16.145.139 eth1 - 10.14.4.1
客戶端 eth0 - 10.14.45
最終目標
任何可以讓我從內部客戶端獲取網頁的修復程序
我試過的
我試圖以各種方式修改我的 iptables 以允許我訪問。我得到的最接近的是我的客戶註冊了一個連接,但網頁不會載入。這也發生在我使用 SSH 隧道時。所以我認為有一些設置我忽略了它不允許它正確轉發
# cat /proc/sys/net/ipv4/ip_forward 1
平板電腦
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 10.14.4.5:8080 -A POSTROUTING -s 10.14.4.0/25 -o eth0 -j SNAT --to-source 172.16.145.139 COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -i eth1 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT -A FORWARD -i eth1 -s 10.14.4.0/25 -o eth0 ! -d 10.14.4.0/25 -j ACCEPT -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
提前感謝您的任何幫助!
以下是在我的 VM 伺服器上對我有用的方法(適用於您的 IP):
## Allow through firewll iptables -I FORWARD -d 10.14.4.5/32 -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT ## Set up NAT forwarding rule iptables -t nat -I PREROUTING -p tcp -i eth0 --destination-port 8080 -j DNAT --to-destination 10.14.4.5:80
看起來您缺少第一條規則,它允許數據包通過防火牆。不過,你的 nat 規則看起來還不錯。
請注意,“-I”插入規則鏈的頂部,“-A”附加到底部。對於第一條規則,我們希望它出現在過濾表中的“拒絕”規則之前——最簡單的方法是繼續並將其插入頂部(如果你正在修改現有表——否則,如果修改現有配置文件,繼續將其轉換為“-A”並將其放在“拒絕”規則之前)。