FQ技术进阶之神器ShadowSocks

分类:运维日常    发布时间:2017-08-28 02:39:35

什么是Shadowsocks?

Shadowsocks是一个轻量级的代理服务,轻巧方便,功能却非常强大。

它在广大FQ群众中非常流行,有许多基于shadowsocks搭建的付费VPN服务,用它在自己服务器上搭建代理的朋友则是更多。


为什么它能帮我们FQ?

Shadowsocks实质上也是一种socks5代理服务,类似于ssh代理。这部分介绍其背后实现的原理,引用了一位网友对此的解释,适合帮助非专业人士理解。(不感兴趣的朋友,可以直接跳过此节)

简单来说,Shadowsocks是将原来 ssh 创建的 Socks5 协议拆开成 server 端和 client 端。


具体通信步骤如下:

客户端发出的请求基于 Socks5 协议跟 ss-local 端进行通讯,由于这个 ss-local 一般是本机或路由器或局域网的其他机器,不经过XXX,所以解决了上面被XXX通过特征分析进行干扰的问题;

ss-local 和 ss-server 两端通过多种可选的加密方法进行通讯,经过XXX的时候是常规的TCP包,没有明显的特征码而且XXX也无法对通讯数据进行解密;

ss-server 将收到的加密数据进行解密,还原原来的请求,再发送到用户需要访问的服务,获取响应原路返回。


优点:

安全(所有的流量都经过加密算法加密,支持自定义算法)

支持移动客户端(专为移动设备和无线网络优化)

跨平台(可运行于包括PC,Mac,手机(Android和iOS)和路由器(OpenWrt)在内的多种平台上)

开源、易于维护


接下来,我们开始配置服务端和客户端。


安装服务端

yum install -y python-setuptools

easy_install pip

pip install shadowsocks


创建配置文件/etc/shadowsocks.json,默认没有

[root@localhost /]# touch /etc/shadowsocks.json

修改配置文件

[root@localhost /]# vim /etc/shadowsocks.json

{

"server":"127.0.0.1",

"server_port":8388,

"local_address": "127.0.0.1",

"local_port":1080,

"password":"MyPass",

"timeout":300,

"method":"aes-256-cfb",

"fast_open": false,

"workers": 1

}


备注:加密方式aes-256-cfb比rc4-md5更安全,但是RC4比AES速度快,各位根据需求选择。

各字段说明:

    server:服务器IP

    server_port:服务器端口

    local_port:本地端端口

    password:用来加密的密码

    timeout:超时时间(秒)

    method:加密方法,可选择 “bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4″等


启动并在后台运行shadowsocks服务

[root@localhost /]# ssserver -c /etc/shadowsocks.json -d start


备注:若无配置文件,在后台可以使用一下命令运行:

[root@localhost /]# ssserver -p 8388 -k MyPass -m rc4-md5 -d start


停止服务

[root@localhost /]# ssserver -c /etc/shadowsocks.json -d stop


设置开机自启动服务:

vi /etc/rc.local

ssserver -c /etc/shadowsocks.json -d start

  


配置多用户多端口

{

    "server":"0.0.0.0",

    "local_address":"127.0.0.1",

    "local_port":1080,

    "port_password":{

         "8989":"password0",

         "9001":"password1",

         "9002":"password2",

         "9003":"password3",

         "9004":"password4"

    },

    "timeout":300,

    "method":"aes-256-cfb",

    "fast_open": false

}



客户端连接

1、windows客户端连接方式

windows版本的shadowsocks客户端,下载地址如下:

打开https://github.com/shadowsocks/shadowsocks-windows/releases

找到Shadowsocks-3.0.zip并下载,解压后,双击打开Shadowsocks,任务栏右键Shadowsocks,

服务器---编辑服务器,如下图设置:

wKioL1cHgimS9PTJAACt6SN_bTU364.png

上图点确定后,任务栏再次右键Shadowsocks,在以下地方打勾,如下图:

wKiom1cHgnjS1boTAADigJGVerg329.png



2、Mac客户端连接方式

Mac下的客户端推荐ShadowsocksX,这是Shadowsocks的作者自己开发的。下载完Mac客户端后,具体设置与Windows平台下的操作类似。


3、iOS客户端连接方式

直接在Appstore搜索下载Shadowsocks,app打开后就是一个浏览器,内置了公共服务器,但是一般情况下,公共服务器不稳定,基本没啥用的。

这时你就可以设置自己的服务器了。设置方法和Windows版一样。相比Android版,iOS版只支持浏览器。

当然,你也可以搭建 Strongswan,实现在 iOS 上连接 VPN。具体流程请参考:http://www.jianshu.com/p/2f51144c35c9。


4、Android客户端连接方式

安卓下的Shadowsocks软件名称为“影梭”,下载后无需root,设置好服务器和帐号信息后即可直接使用。与iOS版本不同,android版是以VPN的方式运行的,也就是说不仅支持浏览器,而且支持其他App,简直好用到没人性。

wKiom1cHgtOSW9fuAAKHApuF6AE761.jpg



全局代理设置

我们也可以当前电脑设置为代理让局域网中其他用户使用,如下:

wKioL1cHg-Sjw5rfAABAHhna0ZM500.png

经过上面设置后,只要局域网中的机器连接这台机器的1080端口,就可以使用代理FQ了。


1、windows客户端代理设置:

打开浏览器,在代理中进行以下设置,然后选择“使用代理服务器”

不同浏览器设置略有差异

192.168.0.101:1080@http

192.168.0.101:1080@ftp

192.168.0.101:1080@https



2、linux客户端代理设置

打开并编辑/etc/profile

vim /etc/profile

http_proxy=192.168.0.101:1080

export http_proxy

https_proxy=192.168.0.101:1080

export https_proxy

ftp_proxy=192.168.0.101:1080

export ftp_proxy


然后source /etc/profile使之生效

我们使用curl cip.cc进行测试如下:

curl cip.cc

wKioL1cHhQKBg0tHAABVKfUpq2U788.png

如果是代理服务器需要用户名和密码的话,可以使用如下格式:

export http_proxy=http://username:password@ip:port

这样就达到了我们对linux使用全局代理的功能。



参考:

http://ilanni.blog.51cto.com/526870/1682881



标签: shadowsocks

阅读(1220)┆ 评论(0) ┆ (0) ┆ 返回博客首页


发表我的评论

欢迎您: | 退出登录


文章评论