FQ技术进阶之神器ShadowSocks

FQ技术进阶之神器ShadowSocks

什么是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,默认没有

[[email protected] /]# touch /etc/shadowsocks.json

修改配置文件

[[email protected] /]# vim /etc/shadowsocks.json

{

"server":"0.0.0.0",

"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服务

[[email protected] /]# ssserver -c /etc/shadowsocks.json -d start

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

[[email protected] /]# ssserver -p 8388 -k MyPass -m rc4-md5 -d start

停止服务

[[email protected] /]# 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,

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

FQ技术进阶之神器ShadowSocks

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

FQ技术进阶之神器ShadowSocks

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,简直好用到没人性。

FQ技术进阶之神器ShadowSocks

全局代理设置

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

FQ技术进阶之神器ShadowSocks

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

1、windows客户端代理设置:

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

不同浏览器设置略有差异

192.168.0.101:[email protected]

192.168.0.101:[email protected]

192.168.0.101:[email protected]

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

FQ技术进阶之神器ShadowSocks

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

export http_proxy=http://username:[email protected]:port

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

参考:

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

更多相关文章
  • 前言:因为XenDesktop 4和XenDesktop 5之间的架构变化非常大,很多以前在4中的命令,在5中失去了市场.只有重新学习,才能达到个人技术的登峰造极.DDC,全名为Desktop Delivery Controller,从英文字面的意思是桌面交付控制器,DDC在XenDesktop的作 ...
  • 通常,一个人对技术的掌握程度可以分为精通.熟练.熟悉.了解,详细解析如下: 精通:能够掌握此技术的85%技术要点以上,使用此技术时间超过两年,并使用此技术成功实施5个以上的项目.能使用此技术优化性能或代码,做到最大可能的重用. 熟练:能够掌握此技术的60%技术要点以上,使用此技术时间超过一年,并使用 ...
  • 爬虫技术--进阶学习七简单爬虫抓取示例附c#代码
    这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string> todo :进行抓取的网址的集合 List<string> visited :已经 ...
  • 爬虫技术--进阶学习八模拟简单浏览器附c#代码
    由于最近在做毕业设计,需要用到一些简单的浏览器功能,于是学习了一下,顺便写篇博客~~大牛请勿喷,菜鸟练练手~ 实现界面如下:(简单朴素版@_@||)   button_go实现如下: private void button_go_Click(object sender, EventArgs e) { ...
  • 爬虫技术--进阶学习九使用HtmlAgilityPack获取页面链接附c#代码及插件下载
    菜鸟HtmlAgilityPack初体验...弱弱的代码... Html Agility Pack是一个开源项目,为网页提供了标准的DOM API和XPath导航.使用WebBrowser和HttpWebRequest下载的网页可以用Html Agility Pack来解析. HtmlAgility ...
  • linux初级班(a) 1>linux图像界面使用 2>linux简单目录结构 3>常用命令 4>linux系统安装linux中级班(b) 1>linux用户/文件系统管理 2>linux网络管理 3>linux磁盘管理 4>linux系统和日志维护管 ...
  •   反向代理也是一种可以帮助实现网站静态化的重要技术,今天我就来讲讲反向代理这个主题.那么首先我们要了解下什么是反向代理.和反向代理相对应的是正向代理,正向代理也就是我们常说的代理服务,正向代理是非常常见的,例如在某些公司里我们想使用互联网,那么我们就得在浏览器里设置一个代理服务器,通过代理服务器我 ...
  • 不知怎么回事,一款优秀的开源,跨平台,安全的即时通讯工具 Telegram 就被 GG 了. 但是我们还得继续使用--那就 FQ 吧.用 ShadowSocks FQ 还不错. 安装 ShadowSocks Linux 下你需要在软件仓库里面安装即可. Debian 系: sudo apt-cach ...
一周排行
  • SpringSecurity身份认证之HelloSpringSecurity附源码
        在上一篇文档中,对Spring Security中的身份认证的流程和管理进行了详细 ...
  • 冒泡排序:多重循环#!/usr/bin/env python # _*_ coding:utf-8 _*_ def bubbleSort(numbers):     for j in range(len(number ...
  • #!/bin/bash #随机取出res目录下20个大于50K的图片并输出其名称 res=(`find res/ -name "*.png" -size +50k -o  -name " ...
  • 使用InstelliJIDEA创建SpringMVC应用程序
    环境版本 Windows 8.1 IDE:InstelliJ IDEA 13    Spr ...
  • 主备切换MSN警告    当主备机发生故障切换时,会发MSN消息给警报给管理员,此警报消息是由keepalived上的bash脚本将参数通过crul命令传给PHP接口程序(也就是拓扑中的WEB),由PHP接口程序来完 ...
  • 参考资料:1.popupwindow中的Edittext长按不出现输入法选择框http://www.eoeandroid.com/thread-9-1.html2. Edittext不能复制和粘贴http ...
  • sudo !!以 root 帐户执行上一条命令.python -m SimpleHTTPServer利用 Python 搭建一个简单的 Web 服务器,可通过 http://$HOSTNAME:8000 访问.:w ...
  • Java基础---Java条件语句之switch二十一
    Java条件语句之 switch当需要对选项进行等值判断时,使用 switch 语句更加简 ...
  • 原题:Problem Description 还记得中学时候学过的杨辉三角吗?具体的定义这里不再描述,你可以参考以下的图形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1 Input 输 ...
  • 其实大部分都仅仅是个技术爱好者而已... 其实真正的黑客只是人群中的绝少一部分人而已... 其实真正的黑客需要一些天赋的... 其实普通人仅凭借着热情是成不了黑客的... 其实黑客研究的都是些很费脑力的问题的... ...