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

标签: redsocks, 流量转发, Linux

添加新评论

Loading...
Fullscreen Image