Centos 7 配置 redsocks
Redsocks 是一个开源的代理重定向工具,常用于把流量从不支持代理的应用程序重定向到代理服务器。它的典型用例是将 TCP 或 UDP 流量重定向到 SOCKS5 或 HTTP 代理。
安装
依次执行命令:
#安装依赖
yum install libevent-devel git gcc -y
#下载代码
git clone https://github.com/darkk/redsocks.git
cd redsocks
make
配置
命令完成后,获取配置文件
# 从默认的模板复制一份来编辑
cp redsocks.conf.example redsocks.conf
然后按照需求编辑配置文件。
redsocks运行的时间长会失效,原因是程序没有心跳,旧的链接没有及时关闭,新连接打开的又太多。配置文件中找到下面这三行,然后去掉注释并参照下面修改数值:
tcp_keepalive_time = 5;
tcp_keepalive_probes = 2;
tcp_keepalive_intvl = 1;
在配置文件主要配置这一块:
redsocks{
local_ip = 127.0.0.1;
local_port = 12345;
ip = 127.0.0.1;
port = 1080;
type = socks5;
}
其中local_ip就是监听地址,local_port就是监听端口。
ip是转发流量的地址,port是转发流量的端口。
type就是转发流量的类型。
原理就是,比如通过代理软件设一个127.0.0.1:1080的socks5代理。然后用iptables把机器发出的流量全部定向到127.0.0.1:12345,再然后redsocks就把他处理一下发到127.0.0.1:1080进行数据通信。
iptables配置方法:
#不重定向发往代理服务器的流量,$SS_IP换成你的代理服务器的IP
iptables -t nat -A OUTPUT -d $SS_IP -j RETURN
#不重定向保留地址的流量,这一步很重要
iptables -t nat -A OUTPUT -d 127.0.0.0/8 -j RETURN
#不重定向私有地址的流量
iptables -t nat -A OUTPUT -d 10.0.0.0/8 -j RETURN
iptables -t nat -A OUTPUT -d 172.16.0.0/16 -j RETURN
iptables -t nat -A OUTPUT -d 192.168.0.0/16 -j RETURN
#把不满足上面条件的流量重定向到12345端口
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 12345
然后保存service iptables save
此时流量已经全局代理出去,如需要正常上网,停掉iptables即可。
运行方法:
./redsocks -c redsocks.conf
如在root目录下后台运行
nohup /root/redsocks/redsocks -c /root/redsocks/redsocks.conf > /dev/null 2>&1