如何在 Xubuntu、Lubuntu 或 Ubuntu Studio 中设置系统范围的代理服务器?

sid*_*rth 87 xfce xubuntu proxy ubuntu-studio

我在任何地方都找不到代理设置。我是否必须通过终端设置它,通过gconftools还是有一些 GUI 存在?

ish*_*ish 116

Ubuntu Studio、Xubuntu 和 XFCE 中的系统范围代理必须通过环境变量设置

Ubuntu Studio 与 Xubuntu 一样,使用 XFCE 桌面环境,它不包含图形设置工具来设置系统范围的代理(与默认的 Ubuntu 桌面环境 Unity 不同)。

1. 为大多数程序设置代理

  • /etc/environment使用gksudo leafpad(或您喜欢的编辑器)打开文件。该文件存储在启动时初始化的系统范围的变量。
  • 添加以下几行,并进行适当修改。您必须以大写和小写形式进行复制,因为(不幸的是)某些程序只查找其中一个:

    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"
    

2.然后为Rhythmbox等GTK3程序设置代理:

一些较新的 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
Run Code Online (Sandbox Code Playgroud)

3. 最后,设置代理apt-get和更新管理器

  • 这些程序也不会遵守环境变量。创建一个名为95proxiesin的文件/etc/apt/apt.conf.d/,并包含以下内容:

    获取::http::proxy "http://myproxy.server.com:8080/";
    获取::ftp::proxy "ftp://myproxy.server.com:8080/";
    获取::https::proxy "https://myproxy.server.com:8080/";
    

最后,注销并重新启动以确保更改生效。


来源:123。请特别参阅 1 以获取其他帮助,包括快速打开/关闭代理的脚本。


用于打开/关闭代理服务器的脚本

免责声明::在继续之前,请注意我已经在 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不存在或其中没有任何重要内容。

所以!如果您想自动化打开和关闭代理的过程而无需键入 allot。您可以制作两个可执行的 shell 脚本,proxyon.shproxyoff.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
Run Code Online (Sandbox Code Playgroud)

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;
Run Code Online (Sandbox Code Playgroud)

如何使用:一旦你制作了这些脚本,让它们可执行,你可以把它们放在你喜欢的任何地方。要打开代理,您只需转到包含“proxyon.sh”脚本的目录,然后输入sudo ./proxyon.sh {host} {port}. 作为一个例子,考虑这个:

 $ sudo ./proxyon.sh 10.2.20.17 8080
 OR
 $ sudo ./proxyon.sh myproxy.server.com 8080
Run Code Online (Sandbox Code Playgroud)

其中“10.2.20.17”是代理服务器的 IP——您也可以输入类似 myproxy.server.com 的内容——“8080”是端口。之后,只需注销并登录到您的帐户,以确保一切都已设置。您可以开始使用互联网或其他任何东西。当您想关闭代理时,请转到包含“proxyoff.sh”的目录并键入:

 $ sudo ./proxyoff.sh
Run Code Online (Sandbox Code Playgroud)

这将取消设置您的所有代理。现在注销并再次登录以切换到正常模式。

  • 以上对我有用。但是当我下班把笔记本电脑带回家时,没有代理 - 我无法连接到互联网。当我回到家时,是否有一种捷径可以再次禁用代理,而无需进行极端的轮换配置文件和重新启动?这将是对答案的一个很好的补充。 (3认同)

小智 7

有一个名为 UbProxy 的图形工具,它通过图形界面 (GUI) 为整个系统设置代理。对我来说唯一的问题是我必须注销我的用户并再次登录以加载配置。使用起来非常简单。

您可以在Google 代码档案或其分支上找到它