如何通过代理服务器设置系统范围的连接


12

我通过代理访问Internet,我的操作系统是Debian 8,每个应用程序都必须将其配置为使用代理,但是要使其与代理一起使用有些麻烦,那么我的问题是:有什么办法还是一个程序,将我所有的连接(tcp,udp等)发送到代理?也就是说,如何通过代理服务器设置系统范围的连接?

Answers:


10

有多种解决方案:

1.配置http_proxy变量

您可以设置$http_proxy和其他此类变量。大多数应用程序会自动选择此变量。要在系统范围内进行设置,可以在~/.bashrc文件或中设置此变量/etc/profile。设置为:

http_proxy=http://user:password@proxyserver.com:3128
https_proxy=https://user:password@proxyserver.com:3128
export http_proxy
export https_proxy

2.使用proxy_chains

某些应用程序将不使用您的代理变量,甚至可能没有使用代理服务器的设置。在这种情况下,您可以使用引导所有PC通信通过代理服务器proxy_chains

我从没用过proxy_chains,但是他们的主页似乎可以在一个页面上显示所有内容:http : //proxychains.sourceforge.net/howto.html

3.使用透明代理

要通过代理强制所有PC连接,还可以使用透明代理代替proxy_chains。我不太想知道如何设置它(尽管我做了很久了,但它确实起作用了!),所以您必须自己看。


1
proxychains在FreeBSD上可以完美地工作,这太棒了。
user3405291 17-10-16

1
有没有一种方法可以不使用密码纯文本?
samthebest

2

您可以在设置偏好设置中设置代理,它会在所有地方反映出来

在此处输入图片说明


具体的影响是什么?哪些变量/设置被编辑?我想编写一个脚本来执行此操作,而不是使用UI来执行。
吉列尔莫

1

正如shivams所说的,有多种解决方案,仅通过导出http_proxy就无法建立连接。我将设置代理的方式如下所示,

  1. 首先,我将通过运行来设置身份验证cntlm

    一种。为此,/etc/cntlm.conf通过添加用户名,密码(您也可以使用为密码生成的哈希),域,工作站和代理等来编辑文件。

    b。我将收听端口3128。

  2. 我将为不同的应用程序或程序设置代理,就像wget我将在内部设置/etc/wgetrc,如果curl在其他位置curlrc...

  3. 我将导出http(s)_proxywith http://localhost:3128。您可以为特定的会话设置此环境变量,也可以将其放入内部/etc/profile.d/
  4. 完成

1

要将代理环境变量设置为全局变量,请打开/ etc / profile文件:

# vi /etc/profile

添加以下信息:

export http_proxy=http://proxy-server.mycorp.com:3128/

要么

export http_proxy=http://USERNAME:PASSOWRD@proxy-server.mycorp.com:3128/
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.