Apache-2.2

apache 沒有從外部響應(防火牆/iptables 問題)

  • November 3, 2018

CentOS安裝httpd. 可以從機器內部連接lynxhttp://localhost和到http://10.20.30.40(真實IP)。無法從外部連接。以下是摘錄:/etc/httpd/conf/httpd.conf

Listen 0.0.0.0:80

<VirtualHost 10.20.30.40:80>
   DocumentRoot /var/www/vhost1
   ErrorLog logs/vhost1-error_log
   CustomLog logs/vhost1-access_log common
</VirtualHost>

我正在嘗試從位於同一子網上的機器連接(據我所知)。

日誌文件中沒有任何可疑之處。請問有什麼建議嗎?

更新:執行時iptables -L我有以下行(也許是相關的)REJECT all -- anywhere anywhere reject-with icmp-host-prohibited:。

更新 N2iptables -vnL輸出:

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
   0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           udp dpt:53
   0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53
   0     0 ACCEPT     udp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           udp dpt:67
   0     0 ACCEPT     tcp  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           tcp dpt:67
1576K 1643M RH-Firewall-1-INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target     prot opt in     out     source               destination
   0     0 ACCEPT     all  --  *      virbr0  0.0.0.0/0            192.168.122.0/24    state RELATED,ESTABLISHED
   0     0 ACCEPT     all  --  virbr0 *       192.168.122.0/24     0.0.0.0/0
   0     0 ACCEPT     all  --  virbr0 virbr0  0.0.0.0/0            0.0.0.0/0
   0     0 REJECT     all  --  *      virbr0  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
   0     0 REJECT     all  --  virbr0 *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
   0     0 RH-Firewall-1-INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0

Chain OUTPUT (policy ACCEPT 354K packets, 58M bytes)
pkts bytes target     prot opt in     out     source               destination

Chain RH-Firewall-1-INPUT (2 references)
pkts bytes target     prot opt in     out     source               destination
 922  823K ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
  19  1412 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0           icmp type 255
   0     0 ACCEPT     esp  --  *      *       0.0.0.0/0            0.0.0.0/0
   0     0 ACCEPT     ah   --  *      *       0.0.0.0/0            0.0.0.0/0
159K   28M ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251         udp dpt:5353
2869  640K ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:631
   0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:631
1239K 1589M ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
   8  1064 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22
175K   25M REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited

試試這個看看是否有幫助:

sudo /sbin/iptables -A INPUT -p tcp --dport http -j ACCEPT

如果您事先使用以下內容,則可以輕鬆恢復:

/sbin/iptables-save > /tmp/fw

如果您想完全關閉 iptables(儘管最好適當地配置它),請使用:

sudo /sbin/chkconfig iptables off

否則,使規則持久保存到 /etc/sysconfig/iptables:

/sbin/iptables-save > /etc/sysconfig/iptables

在 CentOS 7 或更高版本上

在 CentOS 7 和 RHEL 7 上,您可能會使用firewall-cmd來允許 HTTP 流量。

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

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