这些 iptables 规则有什么问题?

blu*_*blu 1 ubuntu iptables

我有一个不太正确的简单 iptables 设置,我很想知道它为什么会这样工作,以及我能做些什么来让它工作。这是我的规则:

# redirect 80 to site
sudo iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to 8080

sudo iptables -A INPUT -s 127.0.0.1 -j ACCEPT # local is good
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # stuff from me is good 
sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT # ssh is good
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # and so is web
sudo iptables -A INPUT -j DROP # culprit?
Run Code Online (Sandbox Code Playgroud)

所以从 80 到 8080 的端口转发很酷,直到我添加最后一个 DROP 规则。当我这样做时,我会收到请求超时。有什么我必须链接才能让 drop 和 prerouting 一起工作,还是其他错误?谢谢你的帮助。

Mic*_*nik 8

关于 iptables 的最有用的工具:

http://en.wikipedia.org/wiki/File:Netfilter-packet-flow.svg

看到它-t nat -A PREROUTING在到达 INPUT 链之前被应用于数据包。所以,接受--dport 8080而不是--dport 80