最近在學習搭建數據庫服務,由於跟產品相關因此須要從流量中拿到mysql的數據包。而後就想着在本機搭建mysql數據庫,而後鏈接,用wireshark抓就好了。html
MySQL搭建用的是XAMPP,想說XAMPP真的是很強大啊,方便簡單,對測試小白來講搭建簡單的環境真是神器存在,說岔了......開啓web服務和mysql服務以後,一通操做,什麼添加用戶,新建數據庫表,然而wireshark並沒抓到包。mysql
換種方法,在本身的虛擬機上裝了一個MySQL數據庫,而後本機用SecureCRT利用ssh登上虛擬機,再一通鏈接數據庫等各類操做,這時候抓的包都是ssh協議的。恩...必定是哪裏不對,思考思考,上面兩種辦法的源地址和目的地址都是同一個啊,應該會有影響,因此決定用另外一種方法,遠程鏈接mysql,這下應該就能夠了web
遠程鏈接mysql:遠程鏈接以前須要配置Mysql容許遠程鏈接,改表法,受權法,百度以後統統試一遍,這裏參考https://www.cnblogs.com/skyWings/p/5952795.html ,配置完成以後,本機進入DOS命令窗口,鏈接MySQL,開始抓包:mysql -h "ip" -u root -p "password"sql
這裏顯示鏈接成功,wireshark也終於抓到mysql數據包,喜悅之情有點難以自抑啊....數據庫
那爲啥第一次抓不到包呢,後來經查資料發現:(如下內容很重要很基礎,最容易被忽略)windows
當本身電腦既是客戶端又是服務器時,互相訪問時流量並無通過網卡,windows系統又沒有提供本地迴環網絡的接口,wireshark在windows系統上默認使用的是WinPcap來抓包的,用它監控網絡的話只能看到通過網卡的流量,看不到訪問localhost的流量,因此纔會出現第一次鏈接始終沒有數據包的情況。解決這個問題的兩種辦法是:要麼服務器和客戶端不要在同一臺機器上,要麼用Npcap來替換掉WinPcap,Npcap提供環回接口服務器
雖然內容很基礎,可是經過此次操做,發現了之前一直忽略的問題,也算學到了新知識點,仍是有點成就感的。網絡