坑爹坑娘坑祖宗的87端口(記一次tomcat故障排查)


問題來源

因為經常有各種各樣的大小項目要跑,全部放一個tomcat很慢,所以俺平時喜歡新建80-89這10個tomcat,分別放不同的項目。以前還一直用的好好的,昨天突然發現87端口的tomcat怎么都訪問不了,本來大不了換一個別的端口就了事,但是我覺得問題既然碰到了就要徹底排查,不然下次再碰到就又沒轍了。

這個奇怪的問題糾結了我將近一天左右,記錄下來是為了讓后來人少走坑爹路。如果你想直接知道原因而不管我這沒啥意義的排查過程,直接滾動到最后就可以了。

現象描述

tomcat能正常啟動,也沒提示什么端口沖突,但就是訪問不了,要是頁面提示個什么404啥的也還OK啦,但偏偏提示的是“網絡連接錯誤”!這尼瑪,真是靈異事件啊,然后就嘗試着找原因。

打開瀏覽器只看到這樣的頁面:

排查

首先當然是試一下其它端口,發現86、88端口均正常,唯獨87不正常,然后就查看端口占用情況,仔細對比不同端口啟動時端口占用情況,開始還欣喜的以為發現問題了,因為其它端口啟動時都至少有4個相關記錄,唯獨87端口只有3條,但后來仔細對比來對比去也沒發現什么有用的價值,具體過程就不說了,反正就是沒從這條路上找到原因,貼上一張並沒有什么價值的對比圖:

然后想,tomcat確實成啟動了,只是瀏覽器不知為何訪問不了而已,要不我telnet試試?然后就試試telnet localhost 87,發現也沒問題啊,這說明端口確實被tomcat綁定了啊,可為啥就是訪問不了呢?

然后我注意到上面查看端口占用時貌似唯獨87端口沒有類似127.0.0.1:87地址出現,那是不是直接用ip可以呢?但是http://172.16.4.97:87http://localhost:87http://127.0.0.1:87等都試了下還是不行。

再然后,是不是換別人的電腦可以呢?拿一台局域網內的另外PC試了下,還是不行(特別說明:用的是大數字安全瀏覽器)。

再想想,是不是eclipse里面出了什么問題呢?我就直接到外面跑一個tomcat綁定87端口試一下,還是不行!

那又是不是我的tomcat7出了問題呢?然后又換tomcat6綁定一個87端口,再試,還是不行!

我滴個媽呀,這到底是個什么鬼啊[抓狂][抓狂],真是快瘋掉了!

重頭戲來了

就在我一籌莫展的時候,就在一個小時以前,我說,要不我換個瀏覽器試試?總不會跟瀏覽器有關系吧?(回頭想想我也不記得我是怎么想到的)

之前一直用的是“偉大的”大數字極速瀏覽器(為啥說偉大,后面你就懂了),我換了Chrome試了下,雖然也還是訪問不了,但是發現了一個非常關鍵的錯誤信息:ERR_UNSAFE_PORT

你說啥?不安全的端口?咋個不安全了勒?我就郁悶了,順手度娘了一下,果然發現有用信息了,貌似是瀏覽器做了手腳,沒等我仔細看,我就迫不及待的多試了幾個瀏覽器,試了下火狐,嘿嘿,火狐說的更直白一點:

此地址使用了一個通常用於網絡瀏覽以外目的的端口。出於安全原因,Firefox 取消了該請求。這下總算明白了,可以十分確定就是瀏覽器做的手腳!再試了下IE,嘿嘿,我大IE這次竟然很聽話,竟然沒啥問題(難不成說我早用IE就好了?)。。。

總結

糾結了我這么久,原來罪魁禍首竟然是我大數字急速瀏覽器啊,由於Chrome一些限制,一直習慣直接把它當成chrome來用,畢竟內核更新也比較快,也沒管其它太多,誰曾想,哎!不過好在問題原因總算找到了!

解決

啥?你以為這就完了?當然不是,找到問題原因了當然還要找到解決方法。

Chrome

開始菜單搜索“Chrome”,右鍵打開文件位置,選中的是一個快捷方式,右鍵屬性,增加以下參數:

// 表示允許的端口,多個端口逗號分隔
--explicitly-allowed-ports=87,6666,556,6667

示例如下:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --explicitly-allowed-ports=87,6666,556

再啟動,訪問,發現沒有問題了。

火狐

地址欄輸入about:config,然后右鍵新建一個字符串鍵,名稱為network.security.ports.banned.override,內容就是允許的端口,多個端口逗號分隔,如87,6666,556,然后確定,再試,OK了(貌似無需重啟瀏覽器)。

IE

IE?IE沒問題啊,還解決個球啊~~~

附錄

Google Chrome 默認非安全端口列表,雖然以上方法可以解決問題,但還是盡量避免吧,誰想沒事找麻煩啊:

  1,    // tcpmux
  7,    // echo
  9,    // discard
  11,   // systat
  13,   // daytime
  15,   // netstat
  17,   // qotd
  19,   // chargen
  20,   // ftp data
  21,   // ftp access
  22,   // ssh
  23,   // telnet
  25,   // smtp
  37,   // time
  42,   // name
  43,   // nicname
  53,   // domain
  77,   // priv-rjs
  79,   // finger
  87,   // ttylink
  95,   // supdup
  101,  // hostriame
  102,  // iso-tsap
  103,  // gppitnp
  104,  // acr-nema
  109,  // pop2
  110,  // pop3
  111,  // sunrpc
  113,  // auth
  115,  // sftp
  117,  // uucp-path
  119,  // nntp
  123,  // NTP
  135,  // loc-srv /epmap
  139,  // netbios
  143,  // imap2
  179,  // BGP
  389,  // ldap
  465,  // smtp+ssl
  512,  // print / exec
  513,  // login
  514,  // shell
  515,  // printer
  526,  // tempo
  530,  // courier
  531,  // chat
  532,  // netnews
  540,  // uucp
  556,  // remotefs
  563,  // nntp+ssl
  587,  // stmp?
  601,  // ??
  636,  // ldap+ssl
  993,  // ldap+ssl
  995,  // pop3+ssl
  2049, // nfs
  3659, // apple-sasl / PasswordServer
  4045, // lockd
  6000, // X11
  6665, // Alternate IRC [Apple addition]
  6666, // Alternate IRC [Apple addition]
  6667, // Standard IRC [Apple addition]
  6668, // Alternate IRC [Apple addition]
  6669, // Alternate IRC [Apple addition]


免責聲明!

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



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