失去带宽

失去带宽

我已经安装了 Ubuntu Linux 11.10。

我的带宽已用完。

使用nethogs eth0表明/usr/bin/python一直在发送和接收。

使用netstat -tup表明该地址48293.kwaimuk.canonical:https正在占用我的带宽。

我怎样才能阻止这种情况?

答案1

这是ubuntu-one连接到规范的亚马逊服务器。kwaimuk.canonical.comgrape.canonical.com

如果你不使用 Ubuntu One,你可以使用以下命令卸载

sudo apt-get remove ubuntuone-*

来源: http://ubuntuforums.org/archive/index.php/t-1745621.html

答案2

我实际上不知道这个问题的答案,但我可以通过以下方法找到答案:

netstat有一个-p标志,将显示具有打开网络连接的进程/pid。因此,您的netstat -tup命令可以增强为:

sudo netstat -tup | grep 48293.kwaimuk.canonical

(您需要 root 权限才能使用 -p)。该行中的最后一个字段应为 PID。如果进程名称只是 python,则通过以下方式获取完整脚本名称:

ps auxw | grep PID

现在希望您知道使用此连接的脚本/程序的位置。可能某物.py

通过以下方式查找它位于哪个包中dpkg

dpkg -S /usr/local/bin/something.py

现在您可以删除apt-get remove有问题的软件包了。这里还是要小心,小心它还会试图删除哪些依赖项。

答案3

问题是 python 可以是任意数量的应用程序,甚至是后台脚本。例如,如果您使用 Screenlets,我相信小部件是 python 进程。您无法删除 python,因为它会禁用许多重要的应用程序和脚本。如果您想停止泄漏带宽,您可以尝试我在这篇 Google+ 帖子中概述的方法:https://plus.google.com/118226948467140990198/posts/YZhZJCZmGgm

TL;DR 版本:阻止所有 TCP/IP 流量,除了您创建的新组运行的流量。然后打开一个可以访问该组的 shell,只有您从该 shell 启动的应用程序才能访问互联网。首先创建组:

sudo groupadd internet

现在将其保存到脚本中并在您想要控制带宽时运行它:

#!/bin/sh
# Firewall apps - only allow apps run from "internet" group to run

# clear previous rules
sudo iptables -F

# accept packets for internet group
sudo iptables -A OUTPUT -p tcp -m owner --gid-owner internet -j ACCEPT

# also allow local connections
sudo iptables -A OUTPUT -p tcp -d 127.0.0.1 -j ACCEPT
sudo iptables -A OUTPUT -p tcp -d 192.168.0.1/24 -j ACCEPT

# reject packets for other traffic
sudo iptables -A OUTPUT -p tcp -j REJECT

# open a shell with internet access
sudo -g internet -s

您可能需要更改“192.68.0.1/24”位以适合您的本地网络。现在您将获得一个 shell,您启动的任何应用程序(如 Firefox)都可以访问互联网。这些应用程序仍将以您的用户名运行。所有其他应用程序都将被阻止(除非它们已经有持久连接,在这种情况下您需要终止这些进程)。

相关内容