Apache-2.2

是什麼阻止了 Apache 使用者進行出站連接?

  • April 16, 2012
curl http://example.com

數據檢索正常

sudo -u apache curl http://example.com

20 秒後

curl: (7) couldn't connect to host

什麼會導致這種情況,我該如何改變它?我正在將一些程式碼作為 apache 執行(主要是由於文件權限),並且該程式碼需要能夠連接到另一台伺服器。

基於另一個問題(阻止某些 uids(root、apache、nobody)的傳出連接),我認為答案可能在 /etc/iptables 中,但該文件不使用 -m owner:

# 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。

好的,想通了 - 這是一個代理問題。在我的啟動腳本中設置了一個代理環境變數,它不會被 apache 呼叫。

引用自:https://serverfault.com/questions/379754