前言
由于使用nodejs安装包非常困难,因此萌生了使用 shadowsocks 的念头。
本文记录了我在 CentOS 7 上成功安装运行 shadowsocks 客户端的过程。
本文的过程我已在本地 CentOS 上成功运行 。
安装 pip
Pip 是 Python 的包管理工具,这里我们用 pip 安装 shadowsocks。
有些文章会介绍用 yum install -y pip 安装,我用的是官方一个最小化的 CentOS,没有这个包,所以手动安装。
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
安装pip方法二
适用于 CentOS/Fedora/RedHat/OpenSUSE
sudo yum install python-setuptools && easy_install pip
适用于 Debian/Ubuntu
sudo apt-get install python-pip
Shadowsocks服务端
有了 pip 之后,安装 shadowsocks 就是很简单的事情了
安装
pip install --upgrade pip #更新pip(视情况更新)
pip install shadowsocks #安装
配置
下面,我们还需要添加一些设置才能让 shadowsocks 按照我们期望的方式工作。
首先,创建一个配置文件 /etc/shadowsocks.json, 输入如下信息
单用户
{
"server":"x.x.x.x", # Shadowsocks服务器地址一般是0.0.0.0
"server_port":1035, # Shadowsocks服务器端口 自由更改
"local_address": "127.0.0.1", # 本地IP 不用改
"local_port":1080, # 本地端口
"password":"password", # Shadowsocks连接密码 自己的密码
"timeout":300, # 等待超时时间
"method":"aes-256-cfb", # 加密方式
"fast_open": false, # true或false。开启fast_open以降低延迟,但要求Linux内核在3.7+
"workers": 1 #工作线程数
}
多用户
{
"server":"your_server_ip",
"port_password":{
"8381":"pass1",
"8382":"pass2",
"8383":"pass3",
"8384":"pass4"
},
"timeout":300,
"method": "aes-256-cfb",
"fast_open":false,
"workers":1
}
启动/停止/重启
ssserver -c /etc/shadowsocks.json -d restart
在服务器上成功启动 shadowsocks 服务之后,就可以去他们在 GitHub 的官方主页下载相应的客户端了。shadowsocks 分别提供了Windows版,Android版和OSX/iOS客户端。使用方法较为简单,本文就不再做详细介绍了。
————————————————————————————————————————————————————————————————————————
以下是centos系统客户端的一些配置和服务搭建。
Shadowsocks 客户端
安装
pip install --upgrade pip
pip install shadowsocks
配置
新建配置文件:
vi /etc/shadowsocks.json
填写以下内容
{
"server":"x.x.x.x", #你的 ss 服务器 ip
"server_port": 10001, #你的 ss 服务器端口
"local_address": "127.0.0.1", #本地ip
"local_port": 1080, #本地端口
"password":"password", #连接 ss 密码
"timeout":300, #等待超时
"method":"aes-256-cfb", #加密方式
"workers": 1 #工作线程数
}
后台运行Shadowsocks
sslocal -c /etc/shadowsocks.json -d start #启动
sslocal -c /etc/shadowsocks.json -d stop #停止
echo "sslocal -c /etc/shadowsocks.json -d start " /etc/rc.local #设置自启动
Privoxy
Shadowsocks使用socks5协议,而终端很多工具目前只支持http和https等协议,所以我们为终端设置Shadowsocks的思路就是将socks5协议转换成http协议,然后为终端设置即可。
下载安装文件
wget http://www.privoxy.org/sf-download-mirror/Sources/3.0.26%20%28stable%29/privoxy-3.0.26-stable-src.tar.gz
tar -zxvf privoxy-3.0.26-stable-src.tar.gz
cd privoxy-3.0.26-stable
privoxy-3.0.26-stable 是目前最新的稳定版,建议在下载前去 Privoxy 官网下载页 检查一下版本。
新建用户(可选)
Privoxy 强烈不建议使用 root 用户运行,所以我们使用 useradd privoxy 新建一个用户.
安装
autoheader && autoconf
./configure
make && make install
配置
vi /usr/local/etc/privoxy/config
找到以下两句,确保没有注释掉
listen-address 127.0.0.1:8118 # 8118 是默认端口,不用改,下面会用到
forward-socks5t / 127.0.0.1:0 . # 这里的端口写 shadowsocks 的本地端口
注意:
遇到Error: Wrong number of parameters for forward-socks4a directive in configuration file. 这个错误的原因就是忘记之前的那个点了!!!记住forward-socks5t / 127.0.0.1:1080 . 后面的那个点一定要有!!!!!
启动
privoxy --user privoxy /usr/local/etc/privoxy/config # 使用privoxy启动
临时代理
临时使用代理输入export http_proxy=http://localhost:8118 回车即可。
如果想撤销当前会话的http_proxy代理,使用unset http_proxy即可。
验证代理是否成功
没有挂代理的时候
curl ip.gs
# 显示本机ip
挂代理后:
$ export http_proxy=http://localhost:8123
$ curl ip.gs
显示 shadowsocks 服务器ip
永久代理
配置 /etc/profile
编辑:
vi /etc/profile
添加下面两句:
export http_proxy=http://127.0.0.1:8118 #这里的端口和上面 privoxy 中的保持一致
export https_proxy=http://127.0.0.1:8118
运行以下,立即生效代理配置:
source /etc/profile
测试生效:
curl www.google.com
返回一大堆 HTML 则说明 shadowsocks 正常工作了。
Proxychains
有了privoxy ,为什么还要Proxychains呢?因为有时候全局代理反而会带来一些麻烦,使用Proxychains可以根据情况选择是否挂代理。
安装Proxychains
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure
make && make install
cp ./src/proxychains.conf /etc/proxychains.conf
cd .. && rm -rf proxychains-ng # 删除安装包
编辑proxychains配置
vim /etc/proxychains.conf
将socks4 127.0.0.1 9095改为
socks5 127.0.0.1 1080 # 这里的端口写 shadowsocks 的本地端口
使用方法
在需要代理的命令前加上 proxychains4 ,如:
proxychains4 wget http://xxx.com/xxx.zip
后记
如果不能访问,请重启机器,依次打开 shadowsocks 和 privoxy 再测试.
nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &
privoxy --user privoxy /usr/local/etc/privoxy/config # 使用privoxy启动
如果不需要用代理了,记得把 /etc/profile 里的配置注释掉,不然会一直走代理流量。
主要参考: https://brickyang.github.io/2017/01/14/CentOS-7-安装-Shadowsocks-客户端/