![什么阻止了 Apache 用户建立出站连接?](https://linux22.com/image/581636/%E4%BB%80%E4%B9%88%E9%98%BB%E6%AD%A2%E4%BA%86%20Apache%20%E7%94%A8%E6%88%B7%E5%BB%BA%E7%AB%8B%E5%87%BA%E7%AB%99%E8%BF%9E%E6%8E%A5%EF%BC%9F.png)
curl http://example.com
数据已检索成功
sudo -u apache curl http://example.com
20秒后
curl: (7) couldn't connect to host
什么原因会导致这种情况?我该如何改变它?我正在以 apache 身份运行一些代码(主要是由于文件权限),并且该代码需要能够连接到另一台服务器。
根据另一个问题(阻止某些 uid(root、apache、nobody)的传出连接)我认为答案可能在 /etc/iptables 中,但该文件没有使用 -m 所有者:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
据我所知,SELinux 处于宽容模式:
cat /selinux/enforce
0
还有什么原因造成这种情况?RHEL 6.2。
答案1
好的,搞清楚了 - 这是代理问题。我的启动脚本中设置了一个代理环境变量,但 Apache 不会调用它。