首頁 > 軟體

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

2020-06-16 17:53:26

問題: 當我試圖在 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


IT145.com E-mail:sddin#qq.com