Socks5+proxychains做正向代理
1、 应用场景:
有一台能上外网的机子,内网机子都不能连外网,需求是内网机子程序需要访问外网,做正向代理。
2、 软件
Server端:
Client端:
3、SOCKS5 是一个代理协议,它在使用TCP/IP协议通讯的前端机器和服务器机器之间扮演一个中介角色,使得内部网中的前端机器变得能够访问Internet网中的服务器,或者使通讯更加安全。SOCKS5 服务器通过将前端发来的请求转发给真正的目标服务器, 模拟了一个前端的行为。在这里,前端和SOCKS5之间也是通过TCP/IP协议进行通讯,前端将原本要发送给真正服务器的请求发送给SOCKS5服务器,然后SOCKS5服务器将请求转发给真正的服务器。
可以代理任何tcp的请求。
安装socks5:
找一个能上外网的服务器,安装socks5.
1、 配置编译环境:
yum -y install gcc automake make
2、
安装socks5必要的包
yum -y install pam-devel openldap-devel cyrus-sasl-devel
3、
下载,编译安装socks5
wget http://vpszn.net/soft/ss5-3.8.9-8.tar.gz
tar zxvf ss5-3.8.9-8.tar.gz
cd ss5-3.8.9-8
./configure
make
make install
4、启动ss5服务。
chmod +x /etc/init.d/ss5
/etc/init.d/ss5 start
5、开机启动ss5服务。
chkconfig –add ss5
chkconfig ss5 on
6、默认使用1080端口,并允许任何人使用。
我们可以修改ss5的配置文件 /etc/opt/ss5/ss5.conf,进行用户认证:
vim /etc/opt/ss5/ss5.conf
1、#auth 0.0.0.0/0 - -
改为:
auth 0.0.0.0/0 - u ---u指验证用户名和密码
2、# permit - 11.1.1.0/24 - 0.0.0.0/0 - - - - -
改为
permit u 0.0.0.0/0 - 0.0.0.0/0 - - - - -
可以限制网段、带宽、高可用等,具体配置按实际环境来配置
cd /etc/opt/ss5
然后在 /etc/opt/ss5/ss5.passwd 中添加用户名和密码 如:
test 123
重启ss5服务,以使修改生效:
/etc/init.d/ss5 restart
7、修改默认的端口:
vi /etc/rc.d/init.d/ss5
daemon /usr/sbin/ss5 -m -t -b IP:8833
else
/usr/local/sbin/ss5 -m -t -b IP:8833
/etc/rc.d/init.d/ss5 start
8、默认支持S4匿名可以使用取消S4,
mv /usr/lib/ss5/mod_socks4.so /usr/lib/ss5/mod_socks4.so.bk
9、查看日志:
more /var/log/ss5/ss5.log
4、
客户端安装proxychains:
5、
proxychains有四条链,每条链一种配置,我这里采用 strict_chain模式--严格按照代理列表顺序使用代理,所有代理必须可用,具体说明,请见链接地址https://www.52os.net/articles/proxychains-ng-redirect-tcp-to-proxy.html
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure
(sudo) make && make install
cp ./src/proxychains.conf /etc/proxychains.conf
cd .. && rm -rf proxychains-ng
vim /etc/proxychains.conf
推荐配置
strict_chain
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
localnet 127.0.0.0/255.0.0.0
quiet_mode
[ProxyList]
socks5 127.0.0.1 1080 nali 123
默认使用必须在命令前面加上proxychains4:
例如(不要使用ping测试,ping不生效)
# proxychains4 curl www.baidu.com
这样很不方便,比如运行tomcat等需要访问外网的程序,可以使用全局代理:
#proxychains4 -q /bin/bash
然后在执行相应的启动命令。就会有访问外网的权限。
然后可以输入exit命令退回到原来的bash里面。