一、为什么不能将本机的请求跳转/转发到回环接口上?
如上图一样,服务器对外只开放了一个80端口,但是web服务监听在了lo 接口上8080端口上,现在要实现外网通过访问服务器的80端口,来提供web服务。(有人可能会说这样做没有意义啊!你直接把web服务的监听ip和端口改成外网ip和80端口上就得了)。有意义无意义,我也不清楚,只是想从技术上考虑能否实现?
像平常一样,做个DNAT转发,将访问 192.168.30.177(公网)端口80的请求转发/跳转到 127.0.0.1的8080 端口上。使用下面两条命令就行:
# iptables -t nat -A PREROUTING -p tcp --dport -j DNAT --to-destination 127.0.0.1:
# iptables -I INPUT -p tcp --dport -j ACCEPT
检查服务监听地址:
# netstat -ulntp|grep :
tcp 127.0.0.1: 0.0.0.0:* LISTEN /nginx
但是在测试80端口连接时,出现了连接失败的提示,如下图:
正常我觉得是可以通的啊,毕竟用dnat转发到其它主机时是没有问题的。而且我用了REDIRECT 动作,也是不行。