2020年5月14日,筆者發了個微頭條:朋友新介紹的一個客戶,中國電信固定IP的城域網,打不開http的網站,但是https的網站,都能夠正常打開,其他網絡功能也沒有異常。
奇怪的是,上一次發生故障,是在4月底,當時實在沒辦法解決,中國電信只能更換了IP地址,可是10多天以后,故障又重現了,總不能每個月變更兩次IP地址吧?
這個微頭條發了以后,評論區很是熱鬧,有些網友是對這個奇怪的問題很感興趣,囑咐筆者有下文以后,一定要寫篇文章來說明一下; 還有些網友就在出謀劃策,其中大部分人,都在說是端口被封了,因為網站沒有備案或者有違規行為,其實這個觀點是錯誤的,他們所謂的封端口,是指入端口被封了,而現在的問題,是在出端口。
什么是端口?
先來解釋一下,什么是端口。在網絡技術中,端口有兩種含義:一是物理意義上的端口,比如說網線接口,也被稱為RJ-45端口;二是邏輯意義上的端口,一般是指TCP/IP協議中的端口,端口號的范圍從0到65535,比如用于FTP服務的TCP21端口、用于WEB服務的TCP80端口、用于TFTP(小型文件傳輸協議)的UDP69端口等等。TCP和UDP的區別,以后有機會再談,反正記住一點,TCP是可靠端口,相反UDP提供不可靠服務,很多情況下,都是兩者并用的。
端口的作用
我們平時所說的端口,一般來說,都默指服務端口,即入端口,比如說,你搭建了一臺FTP服務器,那么,FTP服務默認的TCP21端口,就被打開了,或者說被啟用了。在FTP客戶端,通過輸入IP地址和端口號21,就能連接上FTP服務器,輸入正確的用戶名和密碼之后,就登錄到FTP服務器了; 同理,網站就是http服務和https服務,這兩個服務,默認的端口為TCP80和TCP443。總之,沒有端口,就不能正常地提供網絡服務。在實際的應用過程中,處于安全性的考慮,我們經常需要改變默認端口,如下圖所示:
端口的方向
說端口的方向,其實不太合適,因為端口本身并沒有方向性,只是身份的變化,導致了方向的不同。例如前面提的, 我們自己架設的服務器,用來給客戶端訪問,那么,我們服務器上開放的端口,就是入端口,我們需要在防火墻上打開相應的端口,客戶端才能訪問。而我們的電腦如果作為客戶端,要訪問別人的網站,那么就是出端口了。
如果我們架設的服務器,在內網訪問正常,而在外網無法被訪問到,排除自己的問題以后,那么就有可能是被運營商封端口了,沒有備案的網站或者有違規的網站,80端口是必封的,沒有發布網站的前提下,運營商的線路,也是默認為禁用80端口的。
分析故障
回到文章開頭所說的故障,在客戶內網的任何一臺電腦,都不能打開http類型的網站,筆者一開始認為是路由器配置問題,仔細檢查以后,沒有發現相關的禁止策略,然后直接把筆記本連接到光貓進行測試,發現故障依舊,這時候,已經沒有必要進一步排查了,直接提交電信運營商更有效率。
現在大家知道,為什么網友說80端口被封了要去備案,是錯誤的吧?因為如果是80端口被封了,那么這個客戶的網站,就無法被訪問了,而發生故障的時候,客戶的網站能夠正常地被訪問到。其實這個時候,根本不用去檢測客戶的網站是否能被訪問,筆者只是一時好奇,想看一下他們有沒有網站,80端口是否正常而已。
一般來說,運營商封80入端口的目的,是禁止未備案的網站、禁止不合規的網站;而無法訪問http類型的網站,是因為出端口80被禁止了,這真的很少聽到,以致于有些網友也說,是電信把ACL做反了。
如下圖所示,當我們打開瀏覽器,輸入網址的時候,本地端口(圖中Local Port)其實是隨機端口,絕對不會是80端口,而遠程端口(即網站服務器端口)才是80端口,下圖中,TcpView這款軟件,直接把80端口標記為http了,沒有以數字形式體現。
運營商不太可能會主動封用戶出80端口,據筆者分析,極有可能是內部服務器中毒,被當成跳板,不斷攻擊互聯網上的其他http服務器,即大量地掃描、攻擊互聯網上其他服務器的80端口,導致運營商的防火墻發現后,自動禁止該IP出80端口,否則不太可能連續被封幾次。
找到了問題所在,處理也就簡單了,請求電信運營商將IP手動放到白名單,把客戶那臺普通的某link路由器換下來,華為防火墻上去,并且配置好IPS和AV,內網服務器及臺式機排查病毒及惡意程序。這些事做完,才能踏實地“以觀后效”,否則再次發生,要如何面對電信的質問?如何再從黑名單中移除呢?
——最近在櫥窗里面上了一些黑科技尖貨,還有幾本書,有興趣的朋友,可以去看一下。
——筆者為網絡工程師,擅長計算機網絡領域,創業多年,希望把自己的經驗分享給大家,覺得有用的,可以關注、點贊、轉發,如有相同或者不同觀點,歡迎評論,謝謝!
*請認真填寫需求信息,我們會在24小時內與您取得聯系。