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

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

我找不到任何代理设置。我必须通过终端进行设置吗?gconftools还是有 GUI 可以进行设置?

答案1

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

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

  • 这些程序也不会遵循环境变量。创建一个名为的文件95proxies/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.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

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

答案2

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

您可以在Google 代码档案或其分叉

答案3

我有一些函数可以处理这个问题。调用它们的方式如下:

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:[email protected]: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:[email protected]: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!"
}

答案4

你可以完成所有手动设置来自最佳答案/etc/apt/apt.conf,,,)以及通过使用增强的/etc/environmentJava/etc/bash.bashrcgsettingsub代理 图形用户界面在我们的o2idev/ubproxy叉。


很遗憾,在较新的 Ubuntu 版本中(基于 gtk3)需要有之前存在的依赖 Ubuntu 库。在 ubproxy 中修复此问题之前,至少要apt手动设置代理然后执行:

sudo apt install python python-gtk2
sudo python ubproxy

相关内容