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


82

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

Answers:


114

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

像Xubuntu一样,Ubuntu Studio使用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.然后为GTK3程序(例如Rhythmbox)设置代理:

一些较新的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和Update Manager 设置代理

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

    获取:: http :: proxy“ http://myproxy.server.com:8080/”;
    获取:: ftp ::代理“ ftp://myproxy.server.com:8080/”;
    获取:: https ::代理“ 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不存在或没有任何重要内容。

所以!如果要自动执行打开和关闭代理的过程而不必键入分配。您可以制作两个可执行的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

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

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



如果您需要对apt-get代理进行身份验证,则可以这样设置:Acquire :: http :: proxy“ user:pass@myproxy.server.com:8080 ”;
Jim Ford

3
以上为我工作。但是,当我将笔记本电脑从工作场所带回家时,那里没有代理-我无法连接到互联网。是否有一种捷径可以在我回到家时再次禁用该代理,而无需旋转配置文件并重新启动?这将是对答案的很好补充。
TenLeftFingers 2014年

为了确保在公共WiFi上的安全,我正在尝试配置我的Chromium浏览器(在Xubuntu 16.04 LTS中),使其所有网页请求都通过localhost:10001处的PuTTY Socks5代理传递,该代理通过我在家时通过Raspberry Pi隧道传输离开家。上面的说明不适用于Socks5代理,因此我希望可以弄清楚。(注意:Firefox很容易,因为它的代理设置可以在FireFox中内部设置,但是我也想为Chromium设置代理,并且也要apt-get设置-理想情况下,DNS请求也要通过代理。)
加布里埃尔·斯台普斯

如果您可以添加Socks 5代理说明/修改,那也会有所帮助。谢谢!
加布里埃尔·斯台普斯

8

有一个称为UbProxy的图形工具,可通过图形界面(GUI)将整个系统设置为代理。对我而言,唯一的问题是我必须注销用户并再次登录以加载配置。使用非常简单。 https://code.google.com/p/ubproxy/


看起来很有希望。

当您连接到WiFi甚至连接有线网络时,您可以自动配置不同应用程序所需的所有各种代理设置。参见:gist.github.com/frgomes/544014b53e5384e00847da20b3e1da5b
Richard Gomes

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:$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!"
}

1
这是一个可怕的建议来存储密码的文本文件
BЈовић

1
@BЈовић:你是对的。就我而言,这是公共uni代理密码,因此,我想这没关系。
费尔南多·巴索2014年

任何想法如何配置一个袜子代理?
加布里埃尔·斯台普斯

0

不必通过/etc/apt/apt.conf.d中的proxy95文件重新启动整个系统以进行apt-get调整

  • 它只是在文件写入后立即起作用,
  • 文件消失后,它立即消失了。

考虑将脚本重命名为* .bak以启用和禁用文件,以便在必要时快速切换代理。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.