在Linux命令行界面使用代理服务器上网

在Linux命令行界面使用代理服务器上网

系统环境:Red Hat Enterprise Linux Server release 5 (kernel 2.6.18-8.el5xen)
软件环境:
    elinks-0.11.1-5.1.el5
    lynx-2.8.5-28.1
    wget-1.10.2-7.el5
    krb5-workstation-1.5-17
    prozilla-2.0.4.tar.bz2        http://prozilla.genesys.ro/downl ... zilla-2.0.4.tar.bz2

目标功能:
    通过指定代理服务器,在Linux命令行界面访问web网站、及下载软件
    (适合某些局域网必须指定代理服务器才能上网的场合)

一、命令行界面的一般代理设置方法
  1、在profile文件中设置相关环境变量
    # vi /etc/profile
http_proxy=192.168.20.20:3128       # 分别指定http、https、ftp协议使用的代理服务器地址
https_proxy=192.168.20.20:3128
ftp_proxy=192.168.20.20:3128
no_proxy=192.168.20.        # 访问局域网地址(192.168.20.0/24网段)时不使用代理,可以用逗号分隔多个地址
export http_proxy https_proxy ftp_proxy no_proxy
    保存退出,注销重新登陆系统即可生效。
  2、经测试结果:
    可以使用wget命令通过代理下载文件(如下行命令可以递归下载FreeBSD的整个中文手册目录):
      # wget -krp -np http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/
    可以使用elinks访问web网站(适合在终端下访问以文字为主的英文网站)
    使用lynx上网时,貌似如果代理服务器使用的是Microsoft ISA,则不支持。

二、安装prozilla多线程下载工具及代理设置
  1、安装prozilla
    # wget http://prozilla.genesys.ro/downl ... zilla-2.0.4.tar.bz2
    # tar zxvf prozilla-2.0.4.tar.bz2 -C /usr/src/
    # cd /usr/src/prozilla-2.0.4
    # ./configure
    # make && make install
[错误提示:]
    若编译时报“download_win.h:55: 错误:有多余的限定 ‘DL_Window::’”错误,则按提示修改出错文件,再重新编译即可:
—— 将源代码里 /usr/src/prozilla-2.0.4/src/download_win.h 文件的第55行,由原来的:
void DL_Window::print_status(download_t * download, int quiet_mode);
更改为:
void print_status(download_t * download, int quiet_mode);
  2、指定代理服务器地址
    # vi ~/.prozilla/prozconfig
httpproxy=192.168.20.20:3128
httpproxyuser=
httpproxypassword=
httpproxytype=7
usehttpproxy=1
ftpproxy=192.168.20.20:3128
ftpproxyuser=
ftpproxypassword=
ftpproxytype=7
useftpproxy=1
  3、下载示例(指定以并发10个线程下载):
    # proz -k 10 http://prozilla.genesys.ro/downl ... zilla-2.0.4.tar.bz2

三、附参考:自动登陆ftp及下载文件的shell脚本

  1、vi autoftp1.sh
#!/bin/bash
ftp -iun 192.168.20.20 2121 2>/dev/null <<"EOF"
user ftp ftp
binary
lcd /tmp
cd /files
mget *.tar.gz
bye
EOF
或者
  2、vi autoftp2.sh
#!/bin/bash
host=192.168.20.20
port=2121
username=ftp
password=ftp
echo "open $host $port
user $username $password
binary
lcd /tmp
cd /files
mget *.tar.gz
bye" > /tmp/ftp.txt
ftp -iun < /tmp/ftp.txt
rm -rf /tmp/ftp.txt
矿吧吧天下