外網無法通過IP訪問部署在Windows服務器上的網站


前段時間在Windows服務器上利用IIS部署了.NET Core項目,在服務器瀏覽器上可以通過localhost訪問,但是在外網無法通過服務器IP:端口號的形式訪問該網站。記錄下解決的過程。

一、環境

1、阿里雲服務器

我用的是阿里雲服務器,裝的鏡像是Windows服務器,版本如下:

阿里雲已經開放了8001端口。 

2、IIS配置,如下圖:

 在服務器上可以通過http:localhost:8001訪問網站,但是在外部通過ip(公網IP39.105.99.43):端口號的方式無法訪問

二、問題及解決

從環境的配置中可以看出,公網ip有了,端口號在ESC控制台中已經開放,但是在外網瀏覽器(接下來稱本地吧)中輸入:http:39.xx.xx.43:8001卻打不開網站,emmm,接下來看看必要的查找問題的流程

1、ping下公網IP

本地打開Windows powershell,看看能不能ping通公網IP

 從上圖可以看出是OK的

2、telnet 測試端口號

通過telnet ip 端口號,測試下端口號是否開放

 

從上圖可以看出居然無法聯通,明明端口號已經在阿里雲ecs中開放了啊,難道是Windows服務器本身的問題?肯定是先從Windows服務器防火牆入手檢查了

3、關閉Windows防火牆

從上面的檢測發現能聯通公網IP,卻無法入站,有可能是防火牆的限制,那么我們現將Windows服務器上的防火牆關掉,試下

 

在本地再試下能不能聯通

emmmm還是不行

4、入站規則

關閉防火牆也不行,還是先把防火牆啟動吧。網上搜了搜說是需要在防火牆中添加入站規則(很好奇關閉防火牆都不管用,添加入站規則就可以,哎,以后再研究吧),按照網上的步驟添加入站規則,配置步驟如下:

通過命令打開控制面板,定位到防火牆配置頁面:

打開防火牆的高級配置,點擊入站規則,按照如下截圖進行一步一步的操作即可:

 

 

 

 

在本地測試一下發現仍然沒有解決問題,擦擦擦,靜下心來想想該做的都做的,咋還不行呢,后來靈光一閃,Windows服務器默認會添加幾個入站規則,現在本地試試Windows服務器默認的端口能不能聯通,比如端口號21、80,效果如下:

回車:

 哈哈,居然能聯通,再來試試端口號21,回車后的結果如下:

也能聯通,而且還告訴我們該端口號已經被FileZilla使用,嘻嘻。接下來就有思路了,為啥我添加的入站規則不能聯通,Windows默認的入站規則可以呢,先看看人家的入站規則屬性如下:

多看了幾個,發現只有本地端口有所不同,有選擇“特定端口”的,也有選擇“所有端口的”,其他的配置都差不多。抱着試試的態度,修改一下8001入站規則屬性,就改本地端口屬性,每個選項都試試,最終試了下“所有端口”選項,發現可以了,本地可以聯通8001端口號了。

 雖然還不是特別了解啥原因,但是問題解決了,在外網瀏覽器中輸入http:39.105.99.43:8001也可以打開網站了。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM