目前的現象是phpstorm + xdebug能調試連上我筆記本上虛擬機中的web服務, 卻連不上在線web主機. php
擦擦, 之前也沒直接連到在線主機來調試, 一直都是本地調試, 此次狀況特殊就歇菜了.web
搞了一個通宵, 累死找到緣由.
原來xdebug是把本地的phpstorm IDE做爲調試過程當中的服務端的, web服務運行的主機纔是client!!!!架構
而後我設置web服務上的xdebug一直都是接受所有調試回連請求 xdebug.remote_connect_back = 1
沒有指定ip, 這樣虛擬機中的web服務卻是能回連上筆記本實機中的phpstorm
但是我那個在線的web服務主機要socket回連到個人phpstorm就得穿過光纖貓->穿過路由器->再到個人phpstormIDE,phpstorm
因爲xdebug檢測到的公網ip是分配給光纖貓的, 這樣調試回連的socket直接被中間者光纖貓給截斷了, 沒法到達我筆記本上的phpstorm。socket
可見, debug過程當中, C/S架構,誰是C, 誰是S, 思想概念上顛倒個對象順序直接就坑死我了, 之前也沒看太仔細xdebug的架構介紹, 此次就擦擦了. 若是phpstorm是做爲debug過程的C端的話, 是萬萬不會浪費我一通宵的額spa
也罷, 找到緣由就解決問題, 訪問光纖貓配置頁, 將其DMZ主機設置爲個人筆記本,這樣個人筆記本將會受理光纖貓收到的全部端口請求, 這樣在線web服務上的xdebug就能回連上我筆記本上的phpstorm了( 固然你也能夠設置端口轉發方案,將光纖貓的9000端口轉發到你筆記本的9000端口 )debug
唉, 那兩天真是鬱悶了, 但願之後有其餘人遇到相似問題能少走彎路吧. 我先不謝了, 嘎嘎調試