我面前有一个真正令人困惑的问题。
我有一个 Amazon EC2 实例,大约 6 个月前建立的。它在端口 81(不安全)和 8000(安全)上运行 Apache HTTPD。它还在端口 8443 上运行 Tomcat。但外界看到的 Tomcat(安全)在 443 上。
没有涉及负载均衡器(我们有负载平衡集群;我知道它是什么样子的)。
Tomcat 和 HTTPD 服务器彼此独立运行。
如果我在 EC2 实例上执行 netstat,它会显示它正在监听 8443,而不是 443。Tomcat 的 server.xml 中的活动连接器包含 443 的“proxyPort”子句。
如果我从我的桌面对 Tomcat 服务器执行 curl,在 443 上,我会得到一些返回。如果我从 EC2 实例对 localhost 执行 curl,在 443 上,我什么也得不到;如果我在 8443 上执行 curl,我会收到一条投诉,说证书对于“localhost”是错误的,所以它显然是连接的。因此显然,443 和 8443 之间的映射是实例外部的。
像个十足的白痴一样,我没有留下任何关于我做了什么来让这个东西正常工作的记录。有人能告诉我我做了什么,以及我是怎么做的吗?或者至少告诉我要寻找什么?我看到了一个安全组,但它没有提到任何有关重新映射任何端口的信息。
答案1
做完了吗iptables
?
运行iptables-save
并查找 443 和 8443 之间的端口映射。也许iptables-save | grep 443
可以开始。
希望有帮助:)
答案2
MLu 说:
显然我提到的所有命令都是特权命令,
啊哈!谢谢!在采用 root 权限后,“iptables -L”仍然只生成列标题,但 iptables-save 生成以下内容:
# Generated by iptables-save v1.4.18 on Mon Jan 6 21:17:22 2020
*filter
:INPUT ACCEPT [5018099:5766179544]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4555500:2863742410]
COMMIT
# Completed on Mon Jan 6 21:17:22 2020
# Generated by iptables-save v1.4.18 on Mon Jan 6 21:17:22 2020
*nat
:PREROUTING ACCEPT [41828:2351495]
:INPUT ACCEPT [76356:4167904]
:OUTPUT ACCEPT [254990:18418937]
:POSTROUTING ACCEPT [254990:18418937]
-A PREROUTING -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 8443
COMMIT
# Completed on Mon Jan 6 21:17:22 2020
我觉得我发现了一些东西。不过我不太清楚那是什么,也不太清楚我是怎么把它放在那里的。