Skip to content

liuwenru/intelliq-redsocks

Repository files navigation

一、简介

实现 Linux 下的全局翻墙,使用 redsocks 配合 iptables 实现请求流量的转发

有的时候在实验环境中下载一些被GFW给墙掉的资源会出现下载不到的情况,好在网上有大神使用C写了一个库可以将将本地的流量从一个端口转向Socket5的端口,我们再使用一个SSH -D参数本地启动一个Socket5端口,使用redsocks将流量转到对应的Socket5上。这样就是就可以实现任何流量都可以翻墙了,由于官方的redsocks并没有提供iptables的配置方法,所以我写了一个脚本,自动的读取配置文件啥的,帮助快速使用。

感谢大神的项目,详细参见此处 Github 主页

一、使用方法

本人已经针对redsocks的一个稳定版本编译好了一个直接可以运行的二进制文件,使用alpine musl gilbc编译,因此可以不需要安装依赖直接使用,提供了x86aarch64两个版本,使用方法如下

  1. 安装
Shell> git clone 本仓库
Shell> ./install.sh
please tell me you sock_server:127.0.0.1 #输入socket5代理服务器的地址
please tell me you sock_port:7070        #输入socket5代理服务器的端口
  1. 启动 redsocks
Shell > service redsocks start
  1. 选择代理模式

全局代理模式

Shell>   proxyall      #启动全局代理模式,此模式下将代理所有的访问

 your iptabls OUTPUT chain like this....
 Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination

 Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination

 Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination
 1        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            192.168.188.0/24
 2        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            127.0.0.1
 3        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            127.0.0.1
 4        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            redir ports 12345

 Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
 num   pkts bytes target     prot opt in     out     source               destination

代理指定主机

该模式下只代理GFlist.txt中指定的主机

Shell> proxy

this ip[216.58.194.99] will use proxy connected ....
this ip[180.97.33.107] will use proxy connected ....
your iptabls OUTPUT chain like this....
   Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
   num   pkts bytes target     prot opt in     out     source               destination

   Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
   num   pkts bytes target     prot opt in     out     source               destination

   Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
   num   pkts bytes target     prot opt in     out     source               destination
   1        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            192.168.188.0/24
   2        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            127.0.0.1
   3        0     0 RETURN     tcp  --  *      *       0.0.0.0/0            127.0.0.1
   4        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            216.58.194.99        redir ports 12345
   5        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            180.97.33.107        redir ports 12345

   Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
   num   pkts bytes target     prot opt in     out     source               destination
  1. 清理代理与关闭代理
Shell> iptable -t nat -F                  #清理所有的代理模式
Shell> service redsocks start             #关闭代理

静态编译方法

apk --no-cache add busybox-extras musl-dev linux-headers libevent-static libevent-dev musl-dev gcc make vim bash