为 Unix 和 Linux 配置上网代理

运维 系统运维
公司的网络环境有点复杂,该死的“保密策略”要求所有的外网连接都要通过HTTP代理来实现。在Win环境下只要通过域策略同步代理配置就可以了,但对于Linux下就相对比较麻烦了。研究了一下,分享给大家。

公司的网络环境有点复杂,该死的“保密策略”要求所有的外网连接都要通过HTTP代理来实现。在Win环境下只要通过域策略同步代理配置就可以了,但对于Linux下就相对比较麻烦了。研究了一下,分享给大家。

 

获取代理服务器地址

一般代理的设置较常见的有几种方式,比较简单的是可以直接在IE的网络配置中可以看到的,不管是不是可以修改,至少可以看到IP/主机名和端口号的配置,这就足够了!

另一种则就像下图一样自动获取,这个相对就需要动一番脑筋了。

Windows下的配置

提前开一个终端,键入netstat,不要回车,立即切换到IE访问一个相对比较慢的网页。切回终端,回车!然后……

C:Usersliqunjia>netstat

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    10.239.204.38:5357     GUANQUNW-MOBL:60787    TIME_WAIT
  TCP    10.239.204.38:54912    outlooksh:59532        ESTABLISHED
  TCP    10.239.204.38:59490    fmscsp1fe04:5061       ESTABLISHED
  TCP    10.239.204.38:59678    outlooksh:59532        ESTABLISHED
  TCP    10.239.204.38:59842    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59844    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59847    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59848    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59850    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59851    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59857    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59858    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59862    litrin-test:http       TIME_WAIT
  TCP    10.239.204.38:59867    shzdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59869    shmdmzpr02_int:911     CLOSE_WAIT
  TCP    10.239.204.38:59870    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59871    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59872    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59873    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59874    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59875    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59876    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59877    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59878    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59879    shmdmzpr02_int:911     ESTABLISHED
  TCP    10.239.204.38:59880    shmdmzpr02_int:911     ESTABLISHED
  TCP    127.0.0.1:50035        LIQUNJIA-MOBL:62522    ESTABLISHED
  TCP    127.0.0.1:62522        LIQUNJIA-MOBL:50035    ESTABLISHED
  TCP    [::1]:59671            LIQUNJIA-MOBL:59673    ESTABLISHED
  TCP    [::1]:59673            LIQUNJIA-MOBL:59671    ESTABLISHED

大量的established指向了同一个端口,这个ip和端口就是代理地址无疑。

桌面环境

这里主要讲的是Firefox的配置,跟Windows下的FF配置没什么两样,就截个图吧。

Linux FireFox proxy configurations

Shell下的配置

想必正常情况下没有几个人仅仅通过shell就可以浏览网页了吧,大多数情况shell的互联网连接仅仅只用于wget/curl或者更新管理器之类的用途吧。

shell下的互联网代理设置主要是通过几个环境变量的配置来实现的。格式如下:

export http_proxy=http://server-ip:port/ #HTTP代理的配置
export https_proxy=https://server-ip:port/ #https代理的配置
export ftp_proxy=ftp://server-ip:port/ #ftp代理(还能再古老一点吗?)
export no_proxy=*.edu #不通过代理的地址特征

需要说明的是如果你的代理是有用户认证的,那配置的格式就应该是这样的:

export http_proxy=http://username:password@server-ip:port/

好吧,如果你的用户名或密码里有”@””/”之类的符号的话——比如windows域帐户的认证方式大多都有这个问题,你可以用””符号转义掉。

如果不希望自己每次登录都要输入一遍代理配置的话,个人建议可以将export命令保存到~/.bashrc中(或其他的shellrc),每次启动shell后系统会自动加载。

wget 其实本身是可以直接指定代理服务器认证方式的,也可以用–no_proxy参数强行绕过代理。

wget --proxy-user=USER --proxy-password=PASS http://www.abc.com/
wget --no_proxy http://www.abc.com/ #不用代理

Curl自然比wget更为灵活不是一点了。

curl --proxy http(s)://server-ip:port http://abc.com/ #指定单独的代理
curl --socket4 server-ip:port http://abc.com/ #指定socket4代理
curl --socket5 server-ip:port http://abc.com/ #指定socket5代理
curl --proxy-user username:password http://abc.com/ #使用系统的代理服务器配置
curl --noproxy http://abc.com #绕开代理
责任编辑:黄丹 来源: 开源小站
相关推荐

2010-04-26 14:22:03

Unix配置

2011-01-10 11:39:48

linuxvmware上网

2011-09-05 17:44:49

LinuxUnix

2009-12-03 10:12:24

LinuxUnix

2010-04-08 17:17:36

Unix操作系统

2010-02-03 10:00:29

Linux YUM

2021-01-12 09:55:29

LinuxCntlm代理

2010-11-15 14:46:04

linuxsquidsquidGuard

2009-12-02 14:50:28

操作系统

2009-08-13 10:29:29

2009-06-12 11:16:28

Java HomeLinux

2009-12-03 18:07:48

Squid代理服务器

2009-12-04 10:14:03

Chrome OS上网本

2009-08-04 10:13:09

Linux命令行代理服务器设置Linux命令行界面

2012-12-07 10:14:48

Nginx负载均衡

2018-08-02 10:10:38

LinuxUnix

2020-10-16 06:57:46

UnixLinux命令操作系统

2009-06-27 21:32:19

LINUX

2009-08-30 15:12:34

ODULinuxUnix平台

2012-05-04 08:24:14

LinuxUnix
点赞
收藏

51CTO技术栈公众号