为了测试目的,我在开发服务器上创建了 Apache httpd 进程的新实例。该机器运行的是 Centos 6.8。
我能够通过 curl 本地连接到 Web 服务器,但无法连接到外部。
# curl 127.0.0.1:1500
{"message":"Hello World!"}
我已更新我的 iptables 以允许通过端口 1500 建立新的 TCP 连接 - 目前我的规则如下:
# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:1500
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
我也尝试过允许通过 SELinux 进行访问:
# semanage port -l | grep 1500
http_port_t tcp 1500, 8080, 80, 81, 443, 488, 8008, 8009, 8443, 9000
任何有关调试此问题的帮助都将不胜感激,因为我不确定还能尝试什么。
根据 Simon 的评论进行编辑:
# netstat -nlp | grep 1500
tcp 0 0 :::1500 :::* LISTEN 23117/httpd_dev
答案1
(从评论来看)似乎上游的 GCP 防火墙正在阻止访问。
检查你的 httpd 服务器是否正在监听你的外部 IP 地址,例如
netstat -tnlp | grep :1500
应该给出类似的输出
tcp 0 0 :::1500 :::* LISTEN 2295/httpd
如果它监听所有地址,如果它只监听 127.0.0.1,你会看到类似的内容
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2297/httpd
并且您应该适当调整 httpd 配置中的 listen 指令。