我已经安装了 Ubuntu Linux 11.10。
我的带宽已用完。
使用nethogs eth0
表明/usr/bin/python
一直在发送和接收。
使用netstat -tup
表明该地址48293.kwaimuk.canonical:https
正在占用我的带宽。
我怎样才能阻止这种情况?
答案1
这是ubuntu-one
连接到规范的亚马逊服务器。kwaimuk.canonical.com
和grape.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)都可以访问互联网。这些应用程序仍将以您的用户名运行。所有其他应用程序都将被阻止(除非它们已经有持久连接,在这种情况下您需要终止这些进程)。