今天臨時(shí)被抓去配置一臺windows server 2012。之前沒搞過啊,linux下面各種相對熟悉。windows server什么鬼。于是在阿里云上配綁定公網(wǎng)IP,開放端口。然后丟給其他團(tuán)隊(duì)部署他們的服務(wù)。吃完飯回來,哥們兒告訴我,項(xiàng)目部署好了,但是只能localhost和127.0.0.1能訪問。不管是內(nèi)網(wǎng)IP還是公網(wǎng)IP都不能訪問。
我去,什么問題都找我來了。windows server、IIS,什么鬼?你搞windows web開發(fā)的不會(huì),找我還有理了。算了,誰叫我善良呢。
首先看看web服務(wù)是否起來,好不容易找到IIS的服務(wù)配置的地方,各種停止,重啟。看來服務(wù)啟動(dòng)這塊沒啥問題。然后看看綁定的地址,居然是"*",那應(yīng)該沒問題啊。通過命令行看看監(jiān)聽端口和服務(wù)器IP。
$ netstat -nao | findstr 7081

很明顯,只有127被綁定了。怎么能是所有呢。然后telnet連一下內(nèi)網(wǎng)和localhost的端口,內(nèi)網(wǎng)返回失敗。
$ telnet 172.16.47.121 7081
$ telnet 127.0.0.1 7081
看來問題大概是web服務(wù)綁定的IP不對。怎么把內(nèi)網(wǎng)IP綁定到web服務(wù)上呢。在阿里云上找到這個(gè)命令。
$ netsh http add iplisten ipaddress=172.16.47.121
把http的監(jiān)聽地址加上過后,再通過下面這個(gè)命令查看,明顯多了內(nèi)網(wǎng)的IP。
$ netsh http show iplisten
下面再看看7081這個(gè)端口監(jiān)聽時(shí)綁定的IP。生效了。

現(xiàn)在打開內(nèi)網(wǎng)的http鏈接,正常訪問。一陣喜悅在心間流淌。
但是,當(dāng)用公網(wǎng)IP打開的時(shí)候,又不行了。然后再縷一遍。安全策略組開放端口了,那就是防火墻了。關(guān)掉防火墻果然生效。最后去添加防火墻規(guī)則。
總結(jié)下來,遇到這種問題。
- 檢查服務(wù)是否起來,起碼localhost對應(yīng)的端口是通的;
- 查看監(jiān)聽端口和服務(wù)器,最好出現(xiàn)0.0.0.0:7081, 如果沒有,那就把內(nèi)網(wǎng)IP加上;
- 查看是不是沒有在阿里云的安全策略組里開放相應(yīng)的端口;
- 查看是不是防火墻的問題,是不是被防火墻限制了。
如果這幾個(gè)操作都不能解決你的問題,你還能向阿里云提工單。這個(gè)就是花錢買云服務(wù)器的好處。起碼有個(gè)人能和你一起解決問題。