大多数时候,当我将笔记本电脑或台式机(Fedora 26 和 Gnome 3.24)连接到网络时,初始流量很大,通常在 80 MB 到 120 MB 之间。通常(但并非总是如此)之后会出现一个 Gnome 弹出窗口,通知我可以安装更新。这让我怀疑流量来自检查更新。
如何防止这种流量的发生?我经常只能通过将手机连接到任意一台计算机来访问互联网,而这种网络使用浪费了按流量计费的蜂窝数据。
我在某处阅读执行以下命令以防止检查更新:
sudo systemctl disable dnf-makecache.service
sudo systemctl disable dnf-makecache.timer
但这并没有消除这个问题。
答案1
只需以“普通”用户身份禁用,而不是 root、su 或 sudo:
gsettings set org.gnome.software download-updates false
答案2
这是一种拼凑,而不是真正的解决方案;但是,它解决了我的问题。如果有人发布更好的解决方案,我会接受。由于我不知道我的机器上的哪些程序正在发起流量,因此我决定阻止它们连接到的 IP 地址。
这些是我采取的步骤:
- 安装Wireshark
- 在 Wireshark 菜单的“查看 | 名称解析”下,选中“解析网络地址”。这有助于稍后查找与域名关联的所有 IP 地址。
- 使用 Wireshark 成功捕获不需要的网络流量,并记下源列和目标列中显示的域。
- 对于每个域,例如
example.com
,执行命令host example.com
。这将列出解析到该域名的所有 IPv4 和 IPv6 地址,因此这些都是需要阻止的地址。 - 对于每个 IPv4 地址
foo
,以 root 身份运行iptables -I INPUT -s foo -j DROP
。 - 对于每个 IPv6 地址
bar
,以 root 身份运行ip6tables -I INPUT -s bar -j DROP
。
要解除对地址的阻止,请以 root 身份运行iptables -D INPUT -s foo -j DROP
或者ip6tables -D INPUT -s bar -j DROP
如果该地址是 IPv6 地址。或者,只需重新启动计算机即可解锁地址 - iptables 命令的效果不会在重新启动后持续存在。为了方便起见,我建议将阻止和解除阻止地址的命令收集到两个 shell 脚本中。
在我的具体情况下,我发现我的桌面正在连接到
admin.fedoraproject.org
wildcard.fedoraproject.org
dl.l.google.com
mirror.uoregon.edu
前两个域似乎用于选择要连接的 Fedora 存储库的最佳镜像,Google 域可能来自检查 Chrome 的更新,最后一个域负责大部分流量,是镜子Fedora 26 的版本。这证实了我的猜测,即流量来自检查软件更新。到目前为止,我已经使用这个解决方案一天并取得成功。