我有一个不太正确的简单 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 一起工作,还是其他错误?谢谢你的帮助。
关于 iptables 的最有用的工具:
http://en.wikipedia.org/wiki/File:Netfilter-packet-flow.svg
看到它-t nat -A PREROUTING
在到达 INPUT 链之前被应用于数据包。所以,接受--dport 8080
而不是--dport 80
。
归档时间: |
|
查看次数: |
163 次 |
最近记录: |