以前一直在使用wireshark這個網絡工具,最近在用來抓包學習MQTT協議的時候,發現wireshark暫時還未加入對MQTT協議分析的原生支持,網上搜了一下,可以自己用插件的形式擴展wireshark的協議支持,但是幾經周折之后發現原來我安裝wireshark的方式有問題,以非root用戶啟動wireshark后發現沒權限獲取網卡使用權;以root用戶啟動后會提示風險,禁用某些功能,比如插件功能就是有問題的。
It dosn't work well on ubuntu14.04 (actually before 16.04).It warns:
(wireshark:5785): Gtk-CRITICAL **: gtk_orientable_get_orientation: assertion 'GTK_IS_ORIENTABLE (orientable)' failed (wireshark:5785): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkScrollbar' (wireshark:5785): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkWidget' (wireshark:5785): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GObject'
solution: set the environment variable "LIBOVERLAY_SCROLLBAR" to "0"
1、sudo vim /usr/share/applications/wireshark.desktop
2、change "Exec=wireshark %f" to "Exec=env LIBOVERLAY_SCROLLBAR=0 wireshark %f"
正確安裝wireshark的方法是:
$ sudo apt-get install wireshark $ sudo dpkg-reconfigure wireshark-common $ sudo usermod -a -G wireshark $USER $ sudo reboot