我正在设置我的路由器上的Apache(我已经安装了Tomato,一个定制的基于Linux的固件包)。 我已经成功地安装了Apache,并且相信我已经正确configuration了它,但是却无法获得默认的“It works!”。 页面加载。
运行netstat,我可以在每次尝试通过浏览器访问服务器文件时看到“Recv-Q”列中的值,但是就好像Apache不会或不能响应请求一样。 拖尾Apache error_log也不会产生任何结果。
有没有人看到任何明显的东西,或者有一些build议要尝试才能使事情正常工作? 我可以提供任何有用的信息吗?
示例netstat输出(请参阅地址为“::: www”的第5个条目:
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:52698 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:1338 0.0.0.0:* LISTEN tcp 4 0 :::www :::* LISTEN tcp 0 0 :::domain :::* LISTEN tcp 0 0 :::ssh :::* LISTEN tcp 0 0 :::telnet :::* LISTEN tcp 0 0 localhost:52698 :::* LISTEN tcp 0 0 :::1338 :::* LISTEN udp 0 0 localhost:38032 0.0.0.0:* udp 0 0 0.0.0.0:5038 0.0.0.0:* udp 0 0 0.0.0.0:domain 0.0.0.0:* udp 0 0 0.0.0.0:bootps 0.0.0.0:* udp 0 0 0.0.0.0:60648 0.0.0.0:* udp 0 0 0.0.0.0:49518 0.0.0.0:* udp 0 0 0.0.0.0:38000 0.0.0.0:* udp 0 0 :::domain :::* raw 0 0 0.0.0.0:255 0.0.0.0:* 255 Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 13850 /opt/var/apache2/run/cgisock.1325
Apache error_log内容:
[Wed Feb 13 16:05:16 2013] [notice] Digest: generating secret for digest authentication ... [Wed Feb 13 16:05:16 2013] [notice] Digest: done [Wed Feb 13 16:05:16 2013] [info] APR LDAP: Built with OpenLDAP LDAP SDK [Wed Feb 13 16:05:16 2013] [info] LDAP: SSL support available [Wed Feb 13 16:05:16 2013] [info] mod_unique_id: using ip addr 192.168.253.1 [Wed Feb 13 16:05:17 2013] [notice] Apache/2.2.20 (Unix) DAV/2 configured -- resuming normal operations
更新:它看起来像防火墙阻止传入的请求,即使我已经打开了端口80(和443)。
防火墙消息(清理地址信息,x =本地,y =远程):
Feb 13 16:53:15 UBERnet user.warn kernel: DROP IN=vlan2 OUT= MACSRC=xx:xx:xx:xx:xx:xx MACDST=yy:yy:yy:yy:yy:yy MACPROTO=0800 SRC=yyy.yyy.yyy.yyy DST=xxx.xxx.xxx.xxx LEN=48 TOS=0x00 PREC=0x20 TTL=57 ID=48272 DF PROTO=TCP SPT=43229 DPT=80 SEQ=3727060622 ACK=0 WINDOW=65535 RES=0x00 SYN URGP=0 OPT (0204056404020000)
iptables -L输出:
Chain INPUT (policy DROP) target prot opt source destination DROP all -- anywhere anywhere state INVALID ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED shlimit tcp -- anywhere anywhere tcp dpt:ssh state NEW shlimit tcp -- anywhere anywhere tcp dpt:1338 state NEW ACCEPT all -- anywhere anywhere ACCEPT all -- anywhere anywhere ACCEPT udp -- anywhere anywhere udp spt:bootps dpt:bootpc ACCEPT tcp -- anywhere anywhere tcp dpt:1337 ACCEPT tcp -- anywhere anywhere tcp dpt:1338 logdrop all -- anywhere anywhere ACCEPT tcp -- anywhere anywhere tcp dpt:www ACCEPT tcp -- anywhere anywhere tcp dpt:https ACCEPT tcp -- anywhere anywhere tcp dpt:www Chain FORWARD (policy DROP) target prot opt source destination all -- anywhere anywhere account: network/netmask: 192.168.253.0/255.255.255.0 name: lan ACCEPT all -- anywhere anywhere DROP all -- anywhere anywhere state INVALID TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU monitor all -- anywhere anywhere ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED wanin all -- anywhere anywhere wanout all -- anywhere anywhere ACCEPT all -- anywhere anywhere Chain OUTPUT (policy ACCEPT) target prot opt source destination Chain logdrop (2 references) target prot opt source destination LOG all -- anywhere anywhere state NEW limit: avg 1/sec burst 5 LOG level warning tcp-sequence tcp-options ip-options macdecode prefix `DROP ' DROP all -- anywhere anywhere Chain logreject (0 references) target prot opt source destination LOG all -- anywhere anywhere limit: avg 1/sec burst 5 LOG level warning tcp-sequence tcp-options ip-options macdecode prefix `REJECT ' REJECT tcp -- anywhere anywhere reject-with tcp-reset Chain monitor (1 references) target prot opt source destination RETURN tcp -- anywhere anywhere WEBMON --max_domains 1000 --max_searches 1000 Chain shlimit (2 references) target prot opt source destination all -- anywhere anywhere recent: SET name: shlimit side: source logdrop all -- anywhere anywhere recent: UPDATE seconds: 60 hit_count: 4 name: shlimit side: source
更新:作为一个方面说明,我能够得到lighttpd只是iptables调整工作,所以它似乎是一个特定于Apache的configuration问题。
在防火墙的INPUT链中, logdrop线会导致连接logdrop 。 这是一个所有不必要的stream量,以避免所有链。 规则处理永远不会达到networking规则。 您必须将接受规则移到logdrop规则之上 。
有什么不对 Apache只在侦听IPv6。 你能否把Apacheconfiguration文件中的Listen参数改成
Listen 0.0.0.0:80
然后重新启动Apache。 再次执行netstat,并确保输出包含0.0.0.0:www或者沿着这些IPv4的行。
我不知道可能是什么问题,但有用的下一步可能是用strace附加到听力过程(和它的叉子),并看看当你尝试连接时发生了什么。
strace -o apache.strace -f -p $PID
把结果放到文件apache.strace中。