我想将所有流量从端口 443 重定向到内部端口 8080。我正在为 iptables 使用此配置:
iptables -t nat -I PREROUTING --source 0/0 --destination 0/0 -p tcp \
--dport 443 -j REDIRECT --to-ports 8080
Run Code Online (Sandbox Code Playgroud)
这适用于所有外部客户。但是如果我试图从同一台机器访问端口 443,我会收到连接被拒绝的错误。
wget https://localhost
Run Code Online (Sandbox Code Playgroud)
如何扩展 iptables 规则以重定向本地流量?
我想设置我的 CentOS 6.5 机器以将与 localhost (127.0.0.1) 的连接转发到远程机器上的相同端口(例如 10.0.3.10)。
我已经尝试了下面的 iptables 规则,但是当我尝试连接时,它只是挂起:
iptables -t nat -I OUTPUT --src 0/0 --dst 127.0.0.1 -p tcp --dport 8888 \
-j DNAT --to-destination=10.0.3.10:8888
Run Code Online (Sandbox Code Playgroud)
tcpdump在远程机器上运行,我可以看到没有传入流量。我已经做了一些谷歌搜索,但没有发现任何特别有用的东西。我还确认我的sysctl.conf文件包含net.ipv4.ip_forward = 1.
编辑我添加了日志记录以响应以下评论之一。当我去 127.0.0.1:8888 时它不产生输出,但去 10.0.3.10 时确实产生输出:
# Generated by iptables-save v1.4.7 on Tue Jul 29 12:52:17 2014
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [11:1008]
:OUTPUT ACCEPT [11:1008]
:LOGGING - [0:0]
-A OUTPUT -p tcp -m tcp -d 10.0.3.10 --dport 8888 -j LOGGING
-A LOGGING …Run Code Online (Sandbox Code Playgroud)