【Linux-服务】proxychains+socks5快速搭建代理
时间:2015-01-02 06:01:10 作者:vaster 标签: proxychains socks5 分类: Linux linux应用
代理服务器
Socks是个电路级网关,由David Koblas在1990年开发。此后,就一直作为Internet RFC(Request for Comments)中的开放标准。Socks在协议栈的TCP层上运行。Socks代理只是简单地传递数据包,而不必关心是何种应用协议(比如FTP、HTTP和NNTP请求)。Socks5代理支持TCP和UDP协议,而且还支持各种身份验证机制、服务器端域名解析等,socks5通过配置可以支持socks4。我们平时使用的Internet Explorer、QQ等软件都支持socks代理设置。
下载socks5-v1.0r11.tar.gz和socks5-v1.0r11.patch (这个补丁对此版本很重要)拷贝到/tmp目录下
#cd /tmp #tar -xvzf socks5-v1.0r11.tgz #cd socks5-v1.0r11/include #patch -p0 < /tmp/socks5-v1.0r11.patch #cd /tmp/socks5-v1.0r11 //回到socks5-v1.0r11目录开始编译 #./configure --with-threads# make && make install # make && make install
拷贝配置文件,并进行配置
# cp src/ssocksd.conf /etc# cp src/ssocksd.auth /etc # cp src/ssocksd.auth /etc
配置/etc/ssocksd.conf 文件的以下选项
# ssocksd configuration file # More info man 5 ssocksd.conf # listening port port = 1080 # If is decomment authentification is on, need to # have more then credential in file # auth = /etc/ssocksd.auth # Log file if is comment no log of connection log = /var/log/ssocksd.log # enable secure version socks5 with ssl # to use this you need a certificate file # and a private key # ssl = 1 # cert = /etc/ssocksd/server.crt # key = /etc/ssocksd/server.pem # Daemon mode if init script start the server # is automatically in daemon mode daemon = 1 # You don't need this just for test#verbosity = 0 #verbosity = 0
配置/etc/ssocksd.auth 文件的以下选项
# Password file for ssocksd # Format username:password # Actually in plain text, kill me! # More info man 5 ssocksd.authadmin:abcde admin:abcde
测试,执行
#/usr/local/bin/ssocksd
若仅显示:XXXXX: Socks5 starting at Mon Jun 21 01:23:45 2002 in normal mode 则表示成功,
如果显示:XXXXX:Bind failed for serverip:1080:address already in use 则换一个不常用的port试试。
系统起动时自动运行,在/etc/rc.d/rc.local里加入下面这一行
/usr/local/bin/ssocksd
代理客户端proxychains
它同时支持http代理和socks4与socks5代理。可以从http://proxychains.sourceforge.net/轻松下载到proxychains-3.*.tar.gz文件,目前最新版本是3.1版,它可以支持几乎所有程序的代理,包括ssh,telnet,ftp,cvs等,只要在命令前多输一个proxychains命令。
l 安装
#tar –zxvf proxychains-3.0.tar.gz #cd proxychains-3.0#./configure && make && make install #./configure && make && make install
l 配置
它的配置文件是按照以下顺序寻找的:
1. ./proxychains.conf 2. $(HOME).,proxychains/proxychains.conf3. /etc/proxychains.conf 3. /etc/proxychains.conf
找到该文件后,就可以在里面添加代理服务器列表,可以选择三种代理方式:dynamic_chain, strict_chain,random_chain
第一种方式是动态的,它按照代理服务器在列表中出现的先后顺序(A,B,C,...)将这些代理服务器串成一条链,但是不要求链上每一台代理服务器都是在线的,至少有一台代理服务器在线即可;
第二种方式是严格的,它按照代理服务器在列表中出现的先后顺序(A,B,C,...)将这些代理服务器串成一条链,要求链上每一台代理服务器都是在线的;
第三种方式是随机的,链中的代理服务器的任何一台都可以成为所使用的代理服务器(链长有chain_len指定),这种方式很适合网络扫描操作(参数chain_len只对random_chain有效)。
l 配置random_chain的配置实例:
random_chain chain_len=1 tcp_read_time_out 15000 tcp_connect_time_out 10000 [ProxyList] http ***.***.***.*** 808socks5 ***.***.***.*** 1080 socks5 ***.***.***.*** 1080
l 使用也非常方便:
如通过代理ssh: # proxychains ssh abc.efg.com
通过代理telnet: # proxychains telnet abc.efg.com
通过代理ftp: # proxychains ftp
FAQ:
执行命令时,出现以下错误提示:ERROR: ld.so: object 'libproxychains.so' from LD_PRELOAD cannot be preloaded: ignored.
修复方案:
# cat /bin/proxychains #!/bin/sh echo "ProxyChains-3.1 (http://proxychains.sf.net)" if [ $# = 0 ] ; then echo " usage:" echo " proxychains <prog> [args]" exit fi #将这里的so路径修改成so的绝对路径 export LD_PRELOAD=/lib/libproxychains.soexec "$@" exec "$@"