以前一直在使用wireshark这个网络工具,最近在用来抓包学习MQTT协议的时候,发现wireshark暂时还未加入对MQTT协议分析的原生支持,网上搜了一下,可以自己用插件的形式扩展wireshark的协议支持,但是几经周折之后发现原来我安装wireshark的方式有问题,以非root用户启动wireshark后发现没权限获取网卡使用权;以root用户启动后会提示风险,禁用某些功能,比如插件功能就是有问题的。
It dosn't work well on ubuntu14.04 (actually before 16.04).It warns:
(wireshark:): Gtk-CRITICAL **: gtk_orientable_get_orientation: assertion 'GTK_IS_ORIENTABLE (orientable)' failed (wireshark:): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkScrollbar' (wireshark:): GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkWidget' (wireshark:): 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