本文目录
背景:
用MacBook+MAMP Pro搭建web服务,本机访问正常,但是同内网段的Windows机器绑定host却一直不能正常访问,Telnet也不通。
MAcbook内网IP:10.2.100.13
Windows内网IP:10.1.102.119
解决:
1)在Windows ping MacBook 内网ip,可以ping通
D:\phpStudy\PHPTutorial\WWW\data>ping 10.2.100.13 Pinging 10.2.100.13 with 32 bytes of data: Reply from 10.2.100.13: bytes=32 time=3ms TTL=63 Reply from 10.2.100.13: bytes=32 time=1ms TTL=63 Reply from 10.2.100.13: bytes=32 time=3ms TTL=63 Reply from 10.2.100.13: bytes=32 time=2ms TTL=63 Ping statistics for 10.2.100.13: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 1ms, Maximum = 3ms, Average = 2ms
2)在Windows telnet MacBook 内网ip,不能建立TCP连接
D:\phpStudy\PHPTutorial\WWW\data>telnet 10.2.100.13 80 Connecting To 10.2.100.13...Could not open connection to the host, on port 80: Connect failed
3)在MacBook查看端口开放情况:
[rj@RJdeMacBook-Pro /Users/rj]$netstat -nat | grep 80 | grep tcp4 tcp4 0 0 127.0.0.1.80 *.* LISTEN
可以看到是80端口是有开放的,到这里我还以为是shadowsocks代理之类的问题,关闭之后依然无法建立连接,继续排查。
4)打开MAMP Pro打开Redis和Memcache测试:
Redis无法建立连接:
D:\phpStudy\PHPTutorial\WWW\data>telnet 10.2.100.13 6379 Connecting To 10.2.100.13...Could not open connection to the host, on port 6379: Connect failed
Memcache可以建立连接:
netstat memchche和redis信息如下:
[rj@RJdeMacBook-Pro /Users/rj]$netstat -nat | grep 11211 | grep tcp4 tcp4 0 0 *.11211 *.* LISTEN [rj@RJdeMacBook-Pro /Users/rj]$netstat -nat | grep 6379 | grep tcp4 tcp4 0 0 127.0.0.1.6379 *.* LISTEN
原来redis和apache的端口只开给了127.0.0.1这个IP访问,redis配置改下,切换到from other computer,即可正常建立TCP连接:
但是Apache没有直接的开关,打开Apache配置文件httpd.conf:
找到:
Listen 127.0.0.1:MAMP_IP_Port_MAMP
改为:
Listen 0.0.0.0:MAMP_IP_Port_MAM
重启Apache,netstat如下:
[rj@RJdeMacBook-Pro /Users/rj]$netstat -nat | grep 80 | grep tcp4 tcp4 0 0 *.80 *.* LISTEN
Windows可以正常访问MacBook Web项目。
以上配置只是允许ipv4所有ip访问80端口,如果要让ipv6也能访问,则配置如下:
Listen *:MAMP_IP_Port_MAMP ------------------------------------ [rj@RJdeMacBook-Pro /Users/rj]$netstat -nat | grep 80 tcp46 0 0 *.80 *.* LISTEN
Refer
https://my.oschina.net/foreverich/blog/402252
发表评论
欢迎评论