Linux系统上的网络数据存储在哪里?

Linux系统上的网络数据存储在哪里?

有什么方法可以找到有关我的 wifi 连接的信息吗?我连接到哪些网络以及何时连接?我试图在 proc/net 下查找此信息,但一无所获。 (更具体地说,我想在我的 Android 设备上找到此信息。)

答案1

连接历史记录并没有明确存储在 Linux 上,您必须区分硬件信息和网络信息。硬件特定信息的一个示例是dmesg,这可能会向您显示有关特定硬件的信息,即链接是打开还是关闭,但不会记录特定 WiFi 接入点的名称。

还值得注意的是,设置取决于您的 Linux 发行版使用的系统。许多基于 Debian 的系统,例如 Ubuntu 和 Deepin,都使用网络管理器。因此,已配置的所有无线连接在/etc/NetworkManager/system-connections文件夹中都有适当的文件。如果我们讨论的是 WiFi 连接,每个连接的每个文件都会包含接入点的密码和 BSSID。文件名是 ESSID,尽管对于可能在多个 BSSID 接入点共享相同 ESSID 的网络(例如,我的大学在具有不同路由器的不同建筑物中具有相同的 WiFi 接入点名称) - 除了接入点名称。请注意,您必须拥有 root 权限才能查看所有这些信息,尽管您也可以从桌面小程序查看这些信息。我无法评论其他网络管理实用程序,因为我从未使用过它们。

然而,实现此类日志记录是可能的,因为至少网络管理器通过 DBus 进程间通信子系统发送有关连接的信息,因此可以通过dbus-monitor实用程序编写脚本。

实施此类日志记录时可以考虑的另一件事是 DHCP 租约。使用的系统应在输出systemd中提供有关来自哪个网关的 IP 地址租用的信息。journalctl相关帖子以供参考。

如果您具体询问有关 Android 的问题,请注意 android.stackexchange.com 应该是更合适的询问地点,但我也怀疑 Android 上也有类似的日志记录做法 - 即,当设备连接到接入点时不会记录它,而是仅限哪一个。同样,此类信息有特定的位置。根据这个帖子:

在 CyanogenMod 设备以及可能的其他 AOSP ROM 上,您应该能够从 /data/misc/wifi/wpa_supplicant.conf 文件中获取它。

在 Android 上访问任何系统级信息(包括上述引用的文件)都需要 root。

答案2

我连接到了哪些网络?

iw命令允许您获取已连接的网络:

iw dev <Interface> link

例如:

iw dev wlan0 link | grep SSID

或者使用 depriated 命令iwgetid

什么时候?

通过检查wpa_supplicant以下事件syslog

# cat /var/log/syslog | grep wpa_supplicant

e,g :在具有 root 访问权限的 Android 上使用 termux 终端:

$ tsu
# logcat | grep -i wpa_supplicant

相关内容