linux下利用redsocks+iptables实现全局socks5代理上网

3277 views
Skip to first unread message

Rain Zen

unread,
Nov 19, 2015, 8:25:41 AM11/19/15
to go-gost
之前写过一个类似的文档,不过因为参杂了vpn配置,所以略微复杂,下面是简化版。

在linux下的应用若要使用socks5代理,一般都需要在应用内手动设置,而且有些应用不支持设置代理功能。
其实可以通过redsocks+iptables来实现类似于vpn功能,将所有tcp流量重定向到socks5代理(也支持https代理)。

步骤如下:

1. 安装redsocks:
ubuntu下:
sudo apt-get install redsocks

如果没有此软件,则只能自己下源码编译 https://github.com/darkk/redsocks


2. 配置redsocks:

新建一个配置文件redsocks.conf,内容如下:
base {
       log_debug = off;
       log_info = on;
       log = "file:/tmp/reddi.log";

        daemon = on;
       redirector = iptables;
}

redsocks {
       local_ip = 127.0.0.1;
       local_port = 31338;

        ip = 127.0.0.1;
       port = 8888;
       type = socks5;
}

配置项里面的port指的就是socks5代理的端口(这里使用的是8888)。

然后执行redsocks:
redsocks -c redsocks.conf


通过netstat查看是否运行正常(监听在31338端口):
netstat -tlnp










查看日志:
tail -f /tmp/reddi.log


3. 配置iptables,新建配置文件ipt.conf,内容如下:
*filter
:INPUT ACCEPT
:FORWARD ACCEPT
:OUTPUT ACCEPT
COMMIT

*nat
:PREROUTING ACCEPT
:INPUT ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
# Create new chain
:REDSOCKS - 

-A REDSOCKS -d 0.0.0.0/8 -j RETURN
-A REDSOCKS -d 10.0.0.0/8 -j RETURN
-A REDSOCKS -d 127.0.0.0/8 -j RETURN
-A REDSOCKS -d 169.254.0.0/16 -j RETURN
-A REDSOCKS -d 192.168.0.0/16 -j RETURN
-A REDSOCKS -d 224.0.0.0/4 -j RETURN
-A REDSOCKS -d 240.0.0.0/4 -j RETURN
-A REDSOCKS -d proxy_server_ip -j RETURN
# Anything else should be redirected to port 31338
-A REDSOCKS -p tcp -j REDIRECT --to 31338
-A OUTPUT -p tcp -j REDSOCKS

COMMIT

注(这一步很重要):配置中红色标明的proxy_server_ip指的是本地代理软件所连接的远程服务器ip地址,用gost为例:
gost -L :8888 -F a.b.c.d:8080
要将proxy_server_ip替换为a.b.c.d
如果是shadowsocks,就是shadowsocks配置文件中的server项


最后应用iptables配置:
sudo iptables-restore < ipt.conf

结束!

c9b...@gmail.com

unread,
Dec 11, 2015, 9:44:44 PM12/11/15
to go-gost
mark

在 2015年11月19日星期四 UTC+8下午9:25:41,Rain Zen写道:

Douglas Lee

unread,
Dec 10, 2016, 1:23:18 PM12/10/16
to go-gost
建议考虑gost自己增加透明代理类型,这样就可以直接给iptables用,省去redsocks了。

luxun

unread,
Dec 13, 2016, 5:02:19 AM12/13/16
to go-gost
要是windows10也能这样搞就好了


在 2015年11月19日星期四 UTC+8下午9:25:41,Rain Zen写道:
之前写过一个类似的文档,不过因为参杂了vpn配置,所以略微复杂,下面是简化版。

abc391...@gmail.com

unread,
Feb 23, 2018, 10:40:08 PM2/23/18
to go-gost
教程很管用,谢谢,这里可以把自己局域网的网段加上,就不会出现访问不了内网的情况了  -A REDSOCKS -d 192.168.0.0/16 -j RETURN

在 2015年11月19日星期四 UTC+8下午9:25:41,ginuerzh写道:

xiaoh...@gmail.com

unread,
Mar 1, 2018, 9:25:21 PM3/1/18
to go-gost
按照这个配置有的网站显示https错误


在 2015年11月19日星期四 UTC+8下午9:25:41,ginuerzh写道:
之前写过一个类似的文档,不过因为参杂了vpn配置,所以略微复杂,下面是简化版。

xiaoh...@gmail.com

unread,
Mar 1, 2018, 9:28:48 PM3/1/18
to go-gost
而且,请问下iptables没有指定UDP转发,UDP会转发吗?

在 2018年3月2日星期五 UTC+8上午10:25:21,xiaoh...@gmail.com写道:
Reply all
Reply to author
Forward
0 new messages