×

linux 配置shadowsocks代理全局代理

96
Joncc
2018.03.29 16:14* 字数 1085

一. centos7

客户端为CentOS(一般Linux环境)时,(尤其是命令行里的命令)使用shadowsocks搭配Privoxy上网的方法。

安装客户端shadowsocks
其实shadowsocks安装时是不分客户端还是服务器端的,只不过安装后有两个脚本一个是sslocal代表以客户端模式工作,一个是ssserver代表以服务器端模式工作。

yum install epel-release -y
yum install python-pip

pip install --upgrade pip

pip install shadowsocks

依次执行上述两个命令,先安装Python的pip,然后安装shadowsocks。然后执行下述命令后台启动:
执行前请更改命令中的默认参数

nohup sslocal -s your_server_ip -p your_server_port -l 1080 -k your_server_passwd -t 600 -m rc4-md5 > /dev/null

注意
1,使用的是sslocal这个命令,表示shadowsocks以客户端模式工作
2,将上述命令里的your_server_ip,your_server_port,your_server_passwd换成自己的,这三个分别代表服务器ip,服务器上shadowsocks的端口以及密码.后面的rc4-md5加密方式也要换成跟server端一致。
3,前面的nohub表示后台执行,否则将会阻塞shell端口.

为了更方便,建议新建一个.json的文件,将上述信息放里面,如新建/etc/shadowsocks.json文件,内容为:

ps : 用的时候把注释删除

vi /etc/shadowsocks.json

配置如下:

{
    "server":"your_server_ip",
    #ss服务器IP

    "server_port":your_server_port,
    #端口

    "local_address": "127.0.0.1",
    #本地ip

    "local_port":1080,
    #本地端口

    "password":"your_server_passwd",
    #连接ss密码

    "timeout":300,
    #等待超时

    "method":"rc4-md5",
    #加密方式

    "fast_open": false,
    # true 或 false。如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟。开启方法: echo 3 > /proc/sys/net/ipv4/tcp_fastopen 开启之后,将 fast_open 的配置设置为 true 即可

    "workers": 1
    # 工作线程数
}

然后运行

nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 & 

启动shadowsocks。
如果想增加开启自动启动,执行:
echo " nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &" /etc/rc.local 执行
ps aux |grep sslocal |grep -v "grep" 查看后台sslocal是否运行。

安装Privoxy

安好了shadowsocks后,但它是socks5代理,我门在shell里执行的命令,发起的网络请求现在还不支持socks5代理,只支持http/https代理。为了我门需要安装privoxy代理,它能把电脑上所有http请求转发给shadowsocks。
访问官网http://www.privoxy.org/获得Privoxy的最新源码:privoxy-3.0.24-stable-src.tar.gz,执行tar -zxvf privoxy-3.0.24-stable-src.tar.gz解压,然后cd privoxy-3.0.24-stable进去。

下载

wget http://www.silvester.org.uk/privoxy/source/3.0.26%20%28stable%29/privoxy-3.0.26-stable-src.tar.gz

解压

tar -vxf privoxy-3.0.26-stable-src.tar.gz

安装前需要执行useradd privoxy创建一个用户privoxy,然后依次执行如下三条命令:

autoheader && autoconf
./configure
make && make install

改之前备份配置文件

cp  /etc/privoxy/config /etc/privoxy/config.bak

查看vim /etc/privoxy/config文件,

先搜索关键字:listen-address找到listen-address 127.0.0.1:8118这一句,保证这一句没有注释,8118就是将来http代理要输入的端口。

然后搜索forward-socks5t,将forward-socks5t / 127.0.0.1:1080 .此句的注释去掉.

执行如下命令启动privoxy,参考官网,不同的平台对应不同的方法:

systemctl start privoxy

配置/etc/profile

执行vim /etc/profile,添加如下三句:

export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export ftp_proxy=http://127.0.0.1:8118

第三句ftp的代理根据需要,不需要的话可以不添加.然后source /etc/profile,执行curl www.google.comwget www.google.com判断是否成功访问。

或可以先执行:

curl ip.gs

显示为本地IP信息(例:当前 IP:222.xxx.xxx.xxx 来自:中国四川 电信) 直接执行:
export http_proxy=http://127.0.0.1:8118 再执行:

curl ip.gs 显示代理后的IP信息(例:当前 IP:138.xxx.xxx.xxx 来自:美国)

如果不能访问,请重启机器,依次打开shadowsocks和privoxy再测试.

nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &
systemctl start privoxy

二.ubuntu

配置全局代理

启动shawdowsocks服务后,发现并不能翻墙上网,这是因为shawdowsocks是socks 5代理,需要客户端配合才能翻墙。

为了让整个系统都走shawdowsocks通道,需要配置全局代理,可以通过polipo实现。

首先是安装polipo:

1
sudo apt-get install polipo
接着修改polipo的配置文件/etc/polipo/config:

logSyslog = true
logFile = /var/log/polipo/polipo.log

proxyAddress = "0.0.0.0"

socksParentProxy = "127.0.0.1:1080"
socksProxyType = socks5

chunkHighMark = 50331648
objectHighMark = 16384

serverMaxSlots = 64
serverSlots = 16
serverSlots1 = 32
重启polipo服务:

1
sudo /etc/init.d/polipo restart
为终端配置http代理:

1
export http_proxy="http://127.0.0.1:8123/"
接着测试下能否翻墙:

1
curl www.google.com
如果有响应,则全局代理配置成功。

注意事项

服务器重启后,下面两句需要重新执行:

1
sudo sslocal -c shawdowsocks.json -d start
export http_proxy="http://127.0.0.1:8123/"

linux
Web note ad 1