2015年10月11日 星期日

解決「vnStat 不能『追加』監控的網卡」的問題

前文〝網路流量監控工具(二):vnStat〞中提及依 vnStat 的文件操作,卻不能再追加監控的網卡。雖然前文有替代方案,不過將所監控的網卡關閉,同時也會清除之前的記錄,如果這些記錄想留下來做參考,就沒有辦法。
  最近找到問題點,也發現了解決辦法。記錄下來,供以後參考。

一、不能監控『追加』的網卡之原因

追加的網卡不能監控,是出於追加的網卡之設定檔,其「擁有者」及「擁有群組」被設定為 root,而 vnStat 服務讀取設定時權限不符,因此將追加的網卡忽略掉。用以下 5 個命令測試,就知道原因了。
[root@Core-i7 ~]# ll /var/lib/vnstat/
總計 8
-rw-r--r--. 1  vnstat  vnstat  2272  10月 10 16:50  wlp3s0
-rw-r--r--. 1  vnstat  vnstat  2272  10月 10 16:50  enp5s02

[root@Core-i7 ~]# vnstat --delete --force -i wlp3s0
Database for interface "wlp3s0" deleted.
The interface will no longer be monitored.

[root@Core-i7 ~]# ll /var/lib/vnstat/
總計 4
-rw-r--r--. 1  vnstat  vnstat  2272 10月 10 17:50  enp5s02

[root@Core-i7 ~]# vnstat -u -i wlp3s0
Error: Unable to read database "/var/lib/vnstat/wlp3s0".
Info: -> A new database has been created.

[root@Core-i7 ~]# ll /var/lib/vnstat/
總計 8
-rw-r--r--. 1  root     root     2272  10月 10 17:52  wlp3s0
-rw-r--r--. 1  vnstat  vnstat  2272  10月 10 17:50  enp5s02
其中,
  • 第一個命令是將 vnStat 的設定檔列出,包含檔案的詳細資訊。可見到設定檔的權限屬於 vnStat。
  • 第二個命令是將 wlp3s0 移除這張網卡的監控,由訊息可以看到:資料庫記錄也跟著被刪除了。
  • 第三個命令是再將 vnStat 的設定檔列出,可見到 wlp3s0 這張網卡的監控已被移除。
  • 第四個命令是將追加 wlp3s0 這張網卡的監控,由訊息可以看到:一個新的資料庫記錄被建立了。
  • 第五個命令是再將 vnStat 的設定檔列出,可見到追加的 wlp3s0 這張網卡,其設定檔的權限屬於 root。
因為『追加』的網卡權限屬於 root,所以 vnStat 服務無法讀取,才會發生『追加』無效。

二、解決『不能追加監控網卡』的辦法

既然知道『追加』的網卡不能監控的原因是出於檔案權限,就將權限調整一下。用 chown 和 chgrp 這兩個命令就可以,
[root@Core-i7 ~]# cd /var/lib/vnstat/
[root@Core-i7 vnstat]# ll
總計 8
-rw-r--r--. 1  root     root     2272  10月 10 17:52  wlp3s0
-rw-r--r--. 1  vnstat  vnstat  2272  10月 11 10:29  enp5s02
[root@Core-i7 vnstat]# chown vnstat wlp3s0
[root@Core-i7 vnstat]# chgrp vnstat wlp3s0
[root@Core-i7 vnstat]# ll
總計 8
-rw-r--r--. 1  vnstat  vnstat  2272  10月 10 17:52  wlp3s0
-rw-r--r--. 1  vnstat  vnstat  2272  10月 11 10:29  enp5s02
將權限修改後,過一會在一般使用者權限下,再用 vnstat 查詢,就可以看到新追加網卡的累計流量紀錄了。

已測試版本:

  • Fedora: 21, 22

參考資料:

2 則留言:

  1. 小弟想請教一下,我設了一台linux sever,要如何讓他上網,我家是浮動ip

    回覆刪除
    回覆
    1. 你是否想問:IP 分享器對外的 IP 是浮動的,Server 是在內網,如果讓外界的電腦可以連入 Server?
      Ans: 我的環境就是如此
      1. IP 分享器是 24 小時開的,只用 10 W 要 5 天才用一度電。
      2. 沒有使用『免費』的「網域名稱」,所以連入時只能用 IP,也因為沒關 IP 分享器,IP 不會改變。
      3. IP 分享器對網內「特定電腦」分配固定 IP,或是在電腦中直接手動設定(可以參考其它使用「自動分配 IP」的電腦之網路資訊)。
      4. 修改 IP 分享器的設定,將外界連入的「特定埠號」,重導至網內的「特定電腦」的 IP 及埠號。

      如果是其它情形,歡迎繼續交流意見。

      刪除

感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)