IPTables 将端口 8080 转发至 80

IPTables 将端口 8080 转发至 80

我的硬件防火墙开放了 8080 端口

我的目标是让我的服务器通过 8080 接收请求,并通过 iptables 路由该请求以供 httpd 处理。

这看起来很简单(在我看来),但我遗漏了一些东西。

这是我的 IPTable 规则:

*nat
:PREROUTING ACCEPT [6:782]
:POSTROUTING ACCEPT [1:732]
:OUTPUT ACCEPT [1:732]
-A PREROUTING -i eth1 -p tcp -m tcp --dport 8080 -j DNAT --to-destination :80
COMMIT
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [87:12324]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

当我尝试请求一个站点时,我得到了 301 重定向而不是站点本身(通过 curl 测试):

* About to connect() to server.domain.com port 8080 (#0)
*   Trying <ip addy>... connected
* Connected to server.domain.com (<ip addy>) port 8080 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: server.domain.com:8080
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Date: Wed, 08 Nov 2017 19:07:32 GMT
< Server: Apache/2.2.15 (CentOS)
< X-Powered-By: PHP/5.3.3
< Set-Cookie: cf7msm_check=1; path=/
< Set-Cookie: PHPSESSID=0lblsu0t9of4id2nraei0v7rb0; path=/
< Expires: Thu, 19 Nov 1981 08:52:00 GMT
< Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
< Pragma: no-cache
< X-Pingback: http://server.domain.com/wp/xmlrpc.php
< Location: http://server.domain.com/
< Content-Length: 0
< Connection: close
< Content-Type: text/html; charset=UTF-8
< 
* Closing connection #0

HTTPD 设置为监听 80。

请求正在到达 HTTPd,但由于我尚未弄清楚的原因,请求没有得到预期的响应。

如果我把所有东西都改成直接使用端口 80,那么一切都会正常工作。

答案1

您的 301 重定向来自 WordPress。如果您打算在非标准端口上运行 WordPress,则需要在“设置”>“常规”中输入正确的端口号。

相关内容