我无法在任何地方找到代理设置。我需要通过终端设置,通过 gconftools
还是有相应的图形界面可供使用?
我无法在任何地方找到代理设置。我需要通过终端设置,通过 gconftools
还是有相应的图形界面可供使用?
Ubuntu Studio和Xubuntu使用XFCE桌面环境,该环境不包含图形化设置工具以设置系统范围的代理(与默认的Ubuntu桌面环境Unity不同)。
gksudo leafpad
(或您喜欢的编辑器)打开/etc/environment
文件。该文件存储了系统引导时初始化的系统范围变量。添加以下行,并适当修改。您必须在大写和小写之间进行复制,因为(不幸的是)有些程序只会查找其中一个:
http_proxy=http://myproxy.server.com:8080/ https_proxy=http://myproxy.server.com:8080/ ftp_proxy=http://myproxy.server.com:8080/ no_proxy="localhost,127.0.0.1,localaddress,.localdomain.com" HTTP_PROXY=http://myproxy.server.com:8080/ HTTPS_PROXY=http://myproxy.server.com:8080/ FTP_PROXY=http://myproxy.server.com:8080/ NO_PROXY="localhost,127.0.0.1,localaddress,.localdomain.com"
一些较新的GTK3程序(例如Rhythmbox)忽略上面设置的环境变量,而依赖于Gnome设置。为确保它们得到覆盖,请打开一个终端并逐行粘贴以下内容,根据需要进行修改:
gsettings set org.gnome.system.proxy mode 'manual'
gsettings set org.gnome.system.proxy.http host 'myproxy.server.com'
gsettings set org.gnome.system.proxy.http port 8080
apt-get
和 Update Manager 设置代理这些程序也不会遵守环境变量。在 /etc/apt/apt.conf.d/
目录下创建一个名为 95proxies
的文件,并包含以下内容:
Acquire::http::proxy "http://myproxy.server.com:8080/"; Acquire::ftp::proxy "ftp://myproxy.server.com:8080/"; Acquire::https::proxy "https://myproxy.server.com:8080/";
最后,注销并重新启动以确保更改生效。
免责声明: 在继续之前,请注意我在Lubuntu 14.04上尝试过这个方法,重要的是在运行上述脚本之前,文件/etc/environment
应只有一行内容,即'$PATH...',文件中不应包含其他任何内容,否则您可能需要修改脚本代码。这些脚本会设置和取消代理,但它们依赖于截断文件和追加文件来更改/etc/environment
和/etc/apt/apt.conf.d/95proxies
文件。因此,请确保:
1) /etc/environment
文件仅包含一行内容,即'$PATH:...',没有其他内容。
2) 文件/etc/apt/apt.conf.d/95proxies
不存在或者没有任何重要内容。
所以!如果您想自动化这个打开和关闭代理的过程,而不必输入很多命令,您可以创建两个可执行的shell脚本proxyon.sh
和proxyoff.sh
,如下所示:
proxyon.sh:
if [ $(id -u) -ne 0 ]; then
echo "This script must be run as root";
exit 1;
fi
if [ $# -eq 2 ]
then
gsettings set org.gnome.system.proxy mode 'manual' ;
gsettings set org.gnome.system.proxy.http host '$1';
gsettings set org.gnome.system.proxy.http port $2;
grep PATH /etc/environment > lol.t;
printf \
"http_proxy=http://$1:$2/\n\
https_proxy=http://$1:$2/\n\
ftp_proxy=http://$1:$2/\n\
no_proxy=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n\
HTTP_PROXY=http://$1:$2/\n\
HTTPS_PROXY=http://$1:$2/\n\
FTP_PROXY=http://$1:$2/\n\
NO_PROXY=\"localhost,127.0.0.1,localaddress,.localdomain.com\"\n" >> lol.t;
cat lol.t > /etc/environment;
printf \
"Acquire::http::proxy \"http://$1:$2/\";\n\
Acquire::ftp::proxy \"ftp://$1:$2/\";\n\
Acquire::https::proxy \"https://$1:$2/\";\n" > /etc/apt/apt.conf.d/95proxies;
rm -rf lol.t;
else
printf "Usage $0 <proxy_ip> <proxy_port>\n";
fi
proxyoff.sh
:if [ $(id -u) -ne 0 ]; then
echo "This script must be run as root";
exit 1;
fi
gsettings set org.gnome.system.proxy mode 'none' ;
grep PATH /etc/environment > lol.t;
cat lol.t > /etc/environment;
printf "" > /etc/apt/apt.conf.d/95proxies;
rm -rf lol.t;
如何使用:一旦您创建了这些脚本并使其可执行,您可以将它们放在任何地方。要启用代理,您只需进入包含“proxyon.sh”脚本的目录,然后输入sudo ./proxyon.sh {host} {port}
。以此为例:
$ sudo ./proxyon.sh 10.2.20.17 8080
OR
$ sudo ./proxyon.sh myproxy.server.com 8080
在这里,'10.2.20.17' 是代理服务器的IP地址 - 你也可以输入类似于 myproxy.server.com 的内容 - 而 '8080' 则是端口号。之后只需注销并重新登录您的账户,以确保一切设置生效。然后您就可以开始使用互联网或其他功能了。当您想要关闭代理时,请进入包含 'proxyoff.sh' 的目录,并输入以下命令:
$ sudo ./proxyoff.sh
这将取消所有代理设置。现在注销并重新登录以切换到正常模式。
有一个名为UbProxy的图形工具,通过图形界面(GUI)设置整个系统的代理。
对我来说唯一的问题是,我必须注销我的用户并重新登录以加载配置。
使用起来非常简单。
您可以在Google code archives上找到它,或者在以下地方找到其分支:
myProxyOn
https://gist.github.com/fernando-basso/6352040
#!/usr/bin/env bash
# gsettings list-recursively org.gnome.system.proxy
# Change de ip address and port number accordingly.
function myProxyOn() {
gsettings set org.gnome.system.proxy mode 'manual' # ' manual / nome / automatic '
gsettings set org.gnome.system.proxy.http host '10.0.0.1'
gsettings set org.gnome.system.proxy.http port 8080
gsettings set org.gnome.system.proxy.https host '10.0.0.1'
gsettings set org.gnome.system.proxy.https port 8080
gsettings set org.gnome.system.proxy.ftp host '10.0.0.1'
gsettings set org.gnome.system.proxy.ftp port 8080
echo "Configuração do 'System Proxy' settada para 'manual', com host 10.0.0.1, port 8080."
}
function myProxyOff() {
gsettings set org.gnome.system.proxy mode 'none' # ' manual / nome / automatic '
echo "Proxy cofigurado para 'none'."
}
function proxyOn() { # {{{
#echo -n 'Username: '
#read -e username
#echo -n 'Password: '
#read -es password
#echo ''
echo 'Setting variable "http_proxy"...'
#export http_proxy="http://$username:$password@172.17.0.1:8080/"
export http_proxy="http://10.0.0.1:8080/"
echo 'Setting variable "https_proxy..."'
export https_proxy="https://10.0.0.1:8080/"
echo 'Setting variable "ftp_proxy"...'
#export ftp_proxy="http://$username:$password@172.17.0.1:8080/"
export ftp_proxy="ftp://10.0.0.1:8080/"
echo 'Done!'
}
function proxyOff() {
unset HTTP_PROXY
unset http_proxy
unset FTP_proxy
unset ftp_proxy
echo -e "\nProxy environment variables removed!"
}
gsettings set org.gnome.system.proxy.socks
,我不知道为什么没有一个回复涵盖了完整的设置。我从Fiddler的“捕获”脚本中获取了完整的列表,该脚本可以通过一个按钮来捕获机器流量。 - m3ndabash script.sh
运行了两个shell脚本,但都没有成功。 - sequence通过在/etc/apt/apt.conf.d目录下的proxy95文件进行apt-get调整,不需要重新启动整个系统。
考虑编写脚本,通过将文件重命名为*.bak来快速切换代理(如果需要)。
/etc/apt/apt.conf
,/etc/environment
,/etc/bash.bashrc
,gsettings
)以及使用增强版ubproxy GUI来完成所有手动设置,并且还可以通过我们的o2idev/ubproxy分支来安装Java。
sudo apt install python python-gtk2
sudo python ubproxy
ubproxy
脚本呢?它需要Python2的gtk,而这无法通过APT安装,因为它已经非常过时且不再受支持。请问您能否在您的Python requirements.txt
文件和虚拟环境中包含所需的库呢? - sequence前往Dash主页,输入“系统设置”,点击系统设置,然后选择网络。代理设置将对您可见。点击“系统范围”。这可能与系统代理设置相同。
/etc/apt/apt.conf.d/95proxies
是什么意思?我在/etc/apt/apt.conf
中添加了apt的代理设置,它有效果。然而,这些代理设置对Firefox没有任何影响。您必须再次在Firefox中进行配置。 - smwikipediaproxyon.sh
和proxyoff.sh
后需要注销,而不是直接关闭代理?在Ubuntu的图形界面中,你可以在不注销和重新登录的情况下打开和关闭代理。 - Timgsettings set org.gnome.system.proxy.https
、gsettings set org.gnome.system.proxy.ftp
和gsettings set org.gnome.system.proxy.socks
。如果你不设置这些,就可以称之为"系统范围"。 - m3nda