Centos系统中安装部署shadowsocks
第一部分:服务端部署
1.shadowsocks这里安装的是python版的
- 1
- 2
- 3
注:如果是debian/ubuntu系统,apt-get安装即可
如果是windows:
下载安装windows版的OpenSSL。linux因为自带了,所以不需要单独再安装一遍。然后和linux安装一样,要安装easy_install 和 pip,再安装shadowsocks 。
如果安装shadowsocks时报warning警告,则尝试采用以下方法解决
解决方法
首先安装python-devel libffi-devel openssl-devel
yum install python-devel libffi-devel openssl-devel
之后在安装pyopenssl ndg-httpsclient pyasn1
pip install pyopenssl ndg-httpsclient pyasn1
在运行pip就不会出现警告了
2.配置文件
安装完后配置文件默认目录如下:(也可能没有,可以自行新建,其它目录也可以)
/usr/local/lib/node_modules/shadowsocks/config.json
打开配置文件,格式如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
server需要填写本机的外网IP才是启用对外网的端口,其它的机器才能连接上
如果想使用多用户和密码:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
server:监听地址,即服务器的公网IP,有的服务器不让监听公网IP,那可以使用0.0.0.0(我在阿里云的美国服务器上就遇到这个问题,搞了半天才搞好,使用公网IP时,启动shadowsocks提示成功,但在进程中却没有)
server_port:监听端口
local_address:本地监听地址,直接写127.0.0.1就可以了,默认就是127.0.0.1,不用更改
local_port:本地监听端口,这个自己随意写,不和其它端口冲突就可以了
password:shadowsocks的客户端连接密码
timeout:超时时间,单位是秒,默认也可以,
method:加密方式,有”bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4”,推荐使用:aes-256-cfb
其实官网还有一个参数:
auth:值为true/false 开户一次性认证,但默认安装时,配置文件里没有此参数,可忽略,手机客户端有这个选项,但可以不开启
fast_open:是否启用TCP-Fast-Open,
如果您的服务器和客户端都部署在Linux 3.7.1或更高版本上,则可以打开fast_open以实现更低的延迟.
首先设置fast_open为true在config.json。
然后在您的操作系统上暂时打开快速打开:
echo 3 > /proc/sys/net/ipv4/tcp_fastopen
wokers :worker数量,默认为 1,(这个只在Unix和Linux下有用,可不设置)
3.启动shadowsocks
启动文件安装在/usr/local/bin/下启动文件是ssserver
下面启动shadowsocks
- 1
- 2
- 3
- 4
设置开机启动就把上面的启动命令加到rc.local里就可以了
也可以使用以下使用启动和停止shadowsocks
ssserver -p your_server_port -k your_server_password -d start
ssserver -p your_server_port -k your_server_password -d stop
注记得防火墙添加相应端口:
vim /etc/sysconfig/iptables
加入以下行
-A INPUT -m state --state NEW -m tcp -p tcp --dport your_server_port -j ACCEPT
your_server_port:表示你在配置文件里的server_port
如果添加失败,有可能是复制的文本linux不认识,可以手工输入试试。
如果新装的Linux系统/etc/sysconfig目录下无iptables文件,可以使用下面的方法解决:
1、在控制台使用iptables命令随便写一条防火墙规则,如:iptables -P OUTPUT ACCEPT
2、使用service iptables save进行保存,默认就保存到了/etc/sysconfig目录下的iptables文件中
添加后重启防火墙
service iptables restart
到现在,服务端已经配置完毕了
第二部分:客户端部署
Centos中安装客户端shadowsocks
其实shadowsocks安装时是不分客户端还是服务器端的,只不过安装后有两个脚本一个是sslocal代表以客户端模式工作,一个是ssserver代表以服务器端模式工作。
yum install python-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 2>&1 &
如果报pip命令不存在,则安装之
yum -y install python-setuptools
easy_install pip
注意
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
文件,内容为:
{
"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的最新源码(linux中使用source目录下的包):privoxy-3.0.24-stable-src.tar.gz
,执行tar -zxvf privoxy-3.0.24-stable-src.tar.gz
解压,然后cd privoxy-3.0.24-stable
进去。
安装前需要执行useradd privoxy
创建一个用户privoxy,然后依次执行如下三条命令:
autoheader && autoconf
./configure
make && make install
我在执行autoheader一行命令时出现了很多WARNING,例如:
autoheader: WARNING: Using auxiliary files such as `acconfig.h', `config.h.bot'
我没有理睬,继续执行了后面的安装命令,结果可以使用。
查看vim /usr/local/etc/privoxy/config
文件,先搜索关键字:listen-address
找到listen-address 127.0.0.1:8118
这一句,保证这一句没有注释,8118就是将来http代理要输入的端口。然后搜索forward-socks5t
,将forward-socks5t / 127.0.0.1:1080 .
此句的注释去掉.
执行如下命令启动privoxy,参考官网,不同的平台对应不同的方法:
privoxy --user privoxy /usr/local/etc/privoxy/config
配置/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.com
或wget www.google.com
判断是否成功访问。
注意:此处不要用ping命令来检测
如果不能访问,请重启机器,依次打开shadowsocks和privoxy再测试.
nohup sslocal -c /etc/shadowsocks.json /dev/null 2>&1 &
privoxy --user privoxy /usr/local/etc/privoxy/config
备注:如果不需要用代理了,记得把bash里的配置注释上,免得把流量跑完了。
Windows中安装客户端shadowsocks
官网下载相应客户端,记得官网是https://shadowsocks.org,以org结尾,并不是.com的那个
客户端按照服务器配置的相应参数填写就可以了,这里不在做教程,比较简单
下面贴出windows下的客户端界面:
andriod客户端:
其它客户端就不一一贴出来了,大同小异,看下就明白了^_^