在Linux上使用redsocks, shadowsocks/v2ray进行全局代理

0x1.引用

http://wonderkun.cc/index.html/?p=394

0x2.背景介绍

由于所处的网络环境被限制,无法使用Aria2等BT工具下载种子,所以只能使用代理伪装一下
把所有流量都转发到代理服务器上.

0x3.前提

默认电脑上已经安装shadowsocks, v2ray等代理软件,并打开了1080(socks5)代理端口,或其它的代理方式.

0x4.安装redsocks

本篇主角redsocks登场, 首页安装redsocks,这里使用仓库安装sudo apt install redsocks
安装完成以后,默认配置文件:/etc/redsocks.conf
一些常用的命令:

sudo service redsocks start     #打开redsocks
sudo service redsocks stop      #停止redsocks
sudo service redsocks restart   #重启redsocks

sudo systemctl enable redsocks  #开机启动redsocks
sudo systemctl disable redsocks  #停止开机启动redsocks

0x5.配置redsocks

编辑redsocks配置文件/etc/redsocks.conf
找到redoscks节点

redsocks {
        /* `local_ip' defaults to 127.0.0.1 for security reasons,
         * use 0.0.0.0 if you want to listen on every interface.
         * `local_*' are used as port to redirect to.
         */
        local_ip = 127.0.0.1;
        local_port = 12345; //这个端口默认就行,只要跟你以后iptables,重定向的端口一样就ok

        // `ip' and `port' are IP and tcp-port of proxy-server
        // You can also use hostname instead of IP, only one (random)
        // address of multihomed host will be used.
        ip = 127.0.0.1; //本地shadowsocks客户端,地址就是127.0.0.1
        port = 1080;    //shadowsocks  客户端的端口,默认就是1080


        // known types: socks4, socks5, http-connect, http-relay
        type = socks5; //使用的代理类型

        // login = "foobar";
        // password = "baz";
}

修改正确的配置以后,重启redsocks即可

0x6.配置iptables

大佬写了一个脚本[链接在文章开头已经注明]附带注释,方便不太懂iptables的同学们来使用

#file name iptables.sh

#!/bin/bash
if [ $# -lt 1 ]

#不重定向目的地址为服务器的包
then
    echo -en "\n"

    echo "Iptables redirect script to support global proxy on ss for linux ... "
    echo -en "\n"
    echo "Usage : ${0} action [options]"
    echo "Example:"
    echo -en "\n"
    echo "${0} start server_ip To start global proxy"
    echo "${0} stop To stop global proxy"
    echo -en "\n"

else
    if [ ${1} == 'stop' ]
    then
        echo "stoping the Iptables redirect script ..."
        sudo iptables -t nat -F
   fi
   if     [ ${1} == 'start' ]
   then
       if    [ $# -lt 2 ]
       then
            echo -e "\033[49;31mPlease input the server_ip ...\033[0m"
       else
           ##不重定向目的地址为服务器的包  
           sudo iptables -t nat -A OUTPUT -d ${2} -j RETURN #请用你的shadowsocks服务器的地址替换$SERVER_IP
           # #不重定向私有地址的流量
           sudo iptables -t nat -A OUTPUT -d 10.0.0.0/8 -j RETURN
           sudo iptables -t nat -A OUTPUT -d 172.16.0.0/12 -j RETURN
           sudo iptables -t nat -A OUTPUT -d 192.168.0.0/16 -j RETURN

           #不重定向保留地址的流量,这一步很重要
           sudo iptables -t nat -A OUTPUT -d 127.0.0.0/8 -j RETURN

            # #重定向所有不满足以上条件的流量到redsocks监听的12345端口
           sudo iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 12345 #12345是你的redsocks运行的端口,请根据你的情况替换它
     fi
  fi
fi

使用方法很简单,就两条命令

./iptables.sh   start  ip     #ip是你的shadowsocks服务器的ip,开启全局代理
./iiptables.sh  stop   #结束全局代理,这句是不用全局代理之后,必须运行的,否则是没有办法上网的

0x7.总结

再次打开Aria2, 就可以正常使用了, 哈哈,有需要的同学可以看看.

评论

还没有人评论,抢个沙发吧...

Viagle Blog

欢迎来到我的个人博客网站