今天被人问了一个“奇怪”的问题,说本地服务开启,自己能访问,别人访问不了,遇到这种问题,一般是防火墙规则导致的,所以我先建议关闭了防火墙,结果还是不能正常访问,于是又想起了mysql在开启IPV6的时候,如果想监听IPV4端口需要在配置文件中单独配置,问题终于解决。
第一,查看本地的监听【windows下】:
C:\Users\Long80A>netstat -an | findstr 80
TCP 10.250.2.190:49328 202.39.170.15:8080 ESTABLISHED
TCP 10.250.2.190:51572 202.226.89.167:80 CLOSE_WAIT
TCP 10.250.2.190:54734 202.79.157.251:80 ESTABLISHED
TCP 10.250.2.190:54881 202.176.31.204:80 CLOSE_WAIT
TCP 10.250.2.190:55219 202.60.153.98:80 ESTABLISHED
TCP 10.250.2.190:55803 202.28.226.40:80 CLOSE_WAIT
TCP 10.250.2.190:55854 202.188.46.24:80 TIME_WAIT
TCP 10.250.2.190:55855 202.188.46.24:80 TIME_WAIT
TCP [::]:80 [::]:0 LISTENING
TCP [::]:8009 [::]:0 LISTENING
监听的TCP [::]:80 [::]:0 LISTENING显示监听了IPV6格式的端口。
【查看本地是否开启了IPV6,ipconfig /all,如果此命令中有本地链接 IPv6 地址. . . . . . . . : fe80::d423:34af:7a7c:c995%10,说明已经开启了IPV6】
第二,修改tomcat的配置文件:
找到:
<Connector port="80" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
修改为:
<Connector port="80" maxHttpHeaderSize="8192" address="0.0.0.0"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" />
第三,重启tomcat查看监听:
C:\Users\Long80A>netstat -an | findstr 80
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
第四,添加一个允许访问80端口的防火墙规则
开始-控制面板-防火墙-高级设置-入站规则-新建规则,选择端口,TCP,80,然后一直下一步。
第五,从其他机器就能正常访问了
curl -I http://10.250.2.190
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Wed, 20 Nov 2013 02:48:33 GMT
转载请注明本文地址: IPV6开启状态下,tomcat监听IPV4端口