歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux系統入門學習:Linux 上 Wireshark 界面僵死解決

Linux系統入門學習:Linux 上 Wireshark 界面僵死解決

日期:2017/2/28 13:58:07   编辑:Linux教程

問題: 當我試圖在 Ubuntu 上的 Wireshark 中打開一個 pre-recorded 數據包轉儲時,它的界面突然死機,在我運行 Wireshark 的終端出現了下面的錯誤和警告。我該如何解決這個問題?

  1. (wireshark:3480):GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GObject'
  2. (wireshark:3480):GLib-GObject-CRITICAL **: g_object_set_qdata_full: assertion 'G_IS_OBJECT (object)' failed
  3. (wireshark:3480):GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkRange'
  4. (wireshark:3480):Gtk-CRITICAL **: gtk_range_get_adjustment: assertion 'GTK_IS_RANGE (range)' failed
  5. (wireshark:3480):GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkOrientable'
  6. (wireshark:3480):Gtk-CRITICAL **: gtk_orientable_get_orientation: assertion 'GTK_IS_ORIENTABLE (orientable)' failed
  7. (wireshark:3480):GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkScrollbar'
  8. (wireshark:3480):GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GtkWidget'
  9. (wireshark:3480):GLib-GObject-WARNING **: invalid unclassed pointer in cast to 'GObject'
  10. (wireshark:3480):GLib-GObject-CRITICAL **: g_object_get_qdata: assertion 'G_IS_OBJECT (object)' failed
  11. (wireshark:3480):Gtk-CRITICAL **: gtk_widget_set_name: assertion 'GTK_IS_WIDGET (widget)' failed

Wireshark 是一個基於 GUI 的數據包捕獲和嗅探工具。該工具被網絡管理員普遍使用,網絡安全工程師或開發人員對於各種任務的數據包級的網絡分析是必需的,例如在網絡故障,漏洞測試,應用程序調試,或逆向協議工程是必需的。 Wireshark 允許實時記錄數據包,並通過便捷的圖形用戶界面浏覽他們的協議首部和有效負荷。

這是 Wireshark 的 UI,尤其是在 Ubuntu 桌面下運行時,當你向上或向下滾動分組列表視圖時,或開始加載一個 pre-recorded 包轉儲文件時,有時會掛起或凍結,並出現以下錯誤。

顯然,這個錯誤是由 Wireshark 和疊加滾動條之間的一些不兼容造成的,在最新的 Ubuntu 桌面還沒有被解決(例如,Ubuntu 15.04 的桌面)。

一種避免 Wireshark 的 UI 卡死的辦法就是 暫時禁用疊加滾動條。在 Wireshark 上有兩種方法來禁用疊加滾動條,這取決於你在桌面上如何啟動 Wireshark 的。

命令行解決方法

疊加滾動條可以通過設置"LIBOVERLAY_SCROLLBAR"環境變量為“0”來被禁止。

所以,如果你是在終端使用命令行啟動 Wireshark 的,你可以在 Wireshark 中禁用疊加滾動條,如下所示。

打開你的 .bashrc 文件,並定義以下 alias。

  1. alias wireshark="LIBOVERLAY_SCROLLBAR=0 /usr/bin/wireshark"

桌面啟動解決方法

如果你是使用桌面啟動器啟動的 Wireshark,你可以編輯它的桌面啟動器文件。

  1. $ sudovi/usr/share/applications/wireshark.desktop

查找以"Exec"開頭的行,並如下更改。

  1. Exec=env LIBOVERLAY_SCROLLBAR=0 wireshark %f

雖然這種解決方法可以在系統級幫助到所有桌面用戶,但升級 Wireshark 後被覆蓋就沒用了。如果你想保留修改的 .desktop 文件,如下所示將它復制到你的主目錄。

  1. $ cp/usr/share/applications/wireshark.desktop ~/.local/share/applications/

Ubuntu 13.10 安裝 Wireshark http://www.linuxidc.com/Linux/2015-08/121326.htm

網絡抓包工具Wireshark的簡單使用 http://www.linuxidc.com/Linux/2013-05/84174.htm

Ubuntu 12.04 下安裝Wireshark http://www.linuxidc.com/Linux/2012-06/63582.htm

Linux中從普通用戶啟動Wireshark抓包 http://www.linuxidc.com/Linux/2012-06/63580.htm

Linux下安裝和運行Wireshark http://www.linuxidc.com/Linux/2014-09/106522.htm

Wireshark 的詳細介紹:請點這裡
Wireshark 的下載地址:請點這裡

Copyright © Linux教程網 All Rights Reserved