从Ubuntu 13.04(raring)上的python脚本设置系统代理设置

从Ubuntu 13.04(raring)上的python脚本设置系统代理设置,python,shell,ubuntu,proxy,settings,Python,Shell,Ubuntu,Proxy,Settings,我正在编写一个python脚本,根据用户设置更改各种任务的系统范围代理设置 互联网上发布的各种(shell)解决方案使用gsettings或gconftool-2,因此我尝试了一下 我尝试过使用gsettings os.system("gsettings set org.gnome.system.proxy.socks host '%s'" % host) os.system("gsettings set org.gnome.system.proxy.socks port %d" % port)

我正在编写一个python脚本,根据用户设置更改各种任务的系统范围代理设置

互联网上发布的各种(shell)解决方案使用
gsettings
gconftool-2
,因此我尝试了一下

我尝试过使用
gsettings

os.system("gsettings set org.gnome.system.proxy.socks host '%s'" % host)
os.system("gsettings set org.gnome.system.proxy.socks port %d" % port)
os.system("gsettings set org.gnome.system.proxy mode 'manual'")
(或,禁用代理)

以及
gconftool-2

os.system("gconftool-2 --type string --set /system/proxy/mode manual")
os.system("gconftool-2 --type boolean --set /system/http_proxy/use_http_proxy true")
os.system("gconftool-2 --type string --set /system/http_proxy/host %s" % host)
os.system("gconftool-2 --type integer --set /system/http_proxy/port %d" % port)
os.system("gconftool-2 --type boolean --set /system/http_proxy/use_same_proxy true")
(要禁用:)

然而,这两项似乎都没有改变任何事情。网络设置的“网络代理”选项卡中的设置没有更改,我的计算机也没有启动/停止连接到代理服务器。我怀疑这可能是因为
gsettings
gconftool-2
都是GNOME工具,Ubuntu使用Unity,但我不确定这一点,互联网也不知道任何Unity的替代方案

编辑:


我一直以root用户身份运行这两个工具和这个程序,没有任何变化…

Linux没有真正的系统范围代理概念;不同的工具使用不同的方法获取代理。您正在使用什么工具/应用程序进行测试?在
os.system
在shell上运行这些命令后,我将使用正常GUI系统设置和
wireshark
在使用
chromium
的正常internet连接上检查代理是否已更改(它确实使用系统设置),这两个命令都告诉我设置没有更改(我仍然[没有]连接到代理服务器)查找这些工具的dbus接口,而不是尝试这些奇怪的命令行。@androyd如果您以同一用户的身份从普通shell运行这些命令,它们能工作吗?可能与身份验证有关。尝试使用sudo运行脚本。(特别是sudo,这样用户的家就设置正确了。)
os.system("gconftool-2 --type string --set /system/proxy/mode manual")
os.system("gconftool-2 --type boolean --set /system/http_proxy/use_http_proxy true")
os.system("gconftool-2 --type string --set /system/http_proxy/host %s" % host)
os.system("gconftool-2 --type integer --set /system/http_proxy/port %d" % port)
os.system("gconftool-2 --type boolean --set /system/http_proxy/use_same_proxy true")
os.system("gconftool-2 --type string --set /system/proxy/mode none")