更新:

更新:

我对服务器和 iptables 还不熟悉。我的 Centos 6.7 apache/httpd 服务器上运行着一个 Web 应用程序(恰好是 bugzilla),它尝试通过端口 80 连接到 Web(updates.bugzilla.org)。它还尝试使用端口 465 连接到(smtp.gmail.com)。但是,它无法连接。尽管默认输出策略为 ACCEPT,并且已打开相关端口进行输入,但仍然无法连接。

我不知道接下来该怎么办。我应该从哪里着手解决此问题?可能的罪魁祸首是什么?

一些输出:

$ 服务 iptables 状态

表格:过滤器

链输入(策略接受)

数量 目标 保护 选项 源 目标

1 接受全部 -- 0.0.0.0/0 0.0.0.0/0

2 接受全部 -- 0.0.0.0/0 0.0.0.0/0 状态 RELATED,ESTABLISHED

3 接受 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22

4 接受 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80

5 接受 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443

6 接受 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25

7 接受 tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587

链转发(策略丢弃)数量目标保护选择源目标

链输出(策略接受)num 目标 prot opt 源目标

和:

iptables -L -v Chain INPUT(策略接受881个数据包,106K字节)

pkts 字节数 目标 协议 选择加入 退出 源 目标

0 0 接受全部 -- lo 任何地点任何地点

436 183K 接受全部 -- 任何任何地点任何位置状态已关联,已建立

0 0 接受 tcp -- 任何 任何 任何地方 任何 tcp dpt:ssh

1 60 接受 tcp -- 任何 任何 任何地方 任何 tcp dpt:http

0 0 接受 tcp -- 任何 任何 任何地方 任何 tcp dpt:https

0 0 接受 tcp -- 任何 任何 任何地方 任何 tcp dpt:smtp

0 0 接受 tcp -- 任何 任何 任何地点 任何地点 tcp dpt:提交

链转发(策略丢弃 0 个数据包,0 字节)数据包字节目标协议选择加入退出源目标

链输出(策略接受 348 个数据包,56741 字节)

pkts 字节数 目标 协议 选择加入 退出 源 目标

我希望这不是 bugzilla 或 centos 特有的问题,因为我已经在 ubuntu 桌面上成功安装了 bugzilla,尽管那是在使用 ubuntu 的 ufw 时(我想我也尝试过使用 iptables,但必须再试一次以验证)。

更新:

对于那些在网上搜索并在之后看到这个问题的人来说,这原来是一个 SELinux 问题!需要启用布尔值“httpd_can_network_connect”(对于其他人,请使用“getsebool -a”)。

答案1

尝试这个:

service iptables save
service iptables stop
chkconfig iptables off

砰,防火墙没了。再测试一下。

尝试使用 telnet 测试该端口:

telnet updates.bugzilla.org 80

一旦连接到 telnet,键入“get”并查看是否有响应。

Example:

# telnet updates.bugzilla.org 80
Trying 63.245.223.29... 
Connected to updates.bugzilla.org.
Escape character is '^]'
get
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.0.15</center>
</body>
</html>
Connection closed by foreign host.

没有用?

尝试 tcptraceroute 来查看它在哪里被阻止:

tcptraceroute updates.bugzilla.org 80

还有其他东西阻塞端口吗?防火墙、路由器、ISP?

相关内容