一、shadowsocks简介(以下来自wiki百科)
shadowsocks是一种基于Socks5代理方式的网络数据加密传输包,并采用Apache许可证、GPL、MIT许可证等多种自由软件许可协议开放源代码。shadowsocks分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。目前包使用Python、C、C++、C#、Go语言等编程语言开发。 运行原理: Shadowsocks的运行原理与其他代理工具基本相同,使用特定的中转服务器完成数据传输。在服务器端部署完成后,用户需要按照指定的密码、加密方式和端口使用客户端软件与其连接。在成功连接到服务器后,客户端会在用户的电脑上构建一个本地Socks5代理。浏览网络时,网络流量会被分到本地socks5代理,客户端将其加密之后发送到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。二、搭建教程
1、环境介绍
阿里云服务器ECS(香港): 配置:cpu 1核心、内存 1GB、出网带宽 1Mbps。 系统:centos72、服务器端搭建
1)使用root用户,分别执行以下3条命令$ wget --no-check-certificate -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh $ chmod +x shadowsocks-all.sh $ ./shadowsocks-all.sh 2>&1 | tee shadowsocks-all.log执行后,会提示输入源码语言,密码、端口、及加密方式等。(笔者这里端口使用8989;源码选择的是go语言;加密方式我这里选择aes-256-cfb;) 最终会显示以下效果,说明部署已完成:
Congratulations, your_shadowsocks_version install completed! Your Server IP :11.11.11.11 Your Server Port :8989 Your Password :123456 Your Encryption Method:aes-256-cfb Welcome to visit:https://teddysun.com/486.html Enjoy it2)把8989端口设置为开放状态 CentOS7默认使用firewall防火墙,因此这里不再使用iptables配置端口 查询所有开启的端口,是否包含刚才使用的8989端口,如果有就可以不必开放端口
firewall-cmd --zone=public --list-ports永久开放8989端口号:
firewall-cmd --permanent --zone=public --add-port=8989/tcp重新载入:
firewall-cmd --reload3)开放云服务器端口(如果是阿里云服务器请继续看) 阿里云有安全组配置,需要进入阿里云管理界面找到安全组配置,把8989端口开放。否则外网依然无法方位该端口。 至此,服务器部署完成! 4)卸载方法:使用root用户,执行以下命令即可
$ ./shadowsocks-all.sh uninstall
3、客户端使用
1)windows客户端
首先搜索shadowsocks-windows,打开后编辑服务器进行如下配置。 服务器IP、服务器端口、服密码、加密方式、代理端口保持1080默认即可,其余配置保持默认 配置好后,在电脑右下角找到ss,勾选系统代理、代理模式选择PAC模式、是否开机启动。 至此,代理配置成功!请用多个浏览器进行访问测试吧! Chrome浏览器无法访问请参考:https://www.inhowe.cn/index.php/2019/01/06/ss%EF%BC%88shadowsocks%EF%BC%89%E6%90%AD%E5%A5%BD%E4%BA%86%E4%BD%86chrome%E6%97%A0%E6%B3%95%E8%AE%BF%E9%97%AE%E5%A4%96%E7%BD%91/2)iphone代理配置
a.下载: APP Store中下载SuperRocket(需要8元进行购买)。 20190414更新:该应用已经被封,另一款可用应用为Detour。 要想保持应用稳定,建议使用美区AppleID购买应用 b.使用: 打开App后, 点击右上角 + 号: 输入并核对服务器IP、端口、密码、加密方式,其余保持默认值 点击“save configuration”后进入choos页面,点击你刚刚创建的那个名字abcd即可。回到首页,找到你创建的代理并打开。 配置成功!经测试google、YouTube等网站打开很快,1080p视频毫无压力。 c.混淆配置: 在确认可以正常访问外网后,你可以尝试使用混淆配置,这可以让你的访问记录更具有私密性。- 如果你所在地区封锁不是很严重,推荐使用的协议:
auth_aes128_md5
或auth_aes128_sha1。混淆值:plain
- 地方封锁严重的,如校园网、企业网,推荐使用的协议:
auth_aes128_md5
或auth_aes128_sha1。混淆值:http_simple与tls1.2_ticket_auth
3)ubuntu系统代理配置(未测试)
a.安装shadowsocks$ sudo apt install shadowsocksb.找到config.json,并编辑代理配置
$ cd /etc/shadowsocks/ $ sudo vim config.json
{ "server":"x.x.x.x", //ss服务器的ip "server_port":8989, //ss服务器的端口,笔者这里配置的是8989 "local_address": "127.0.0.1", "local_port":1080, //本机端口:可以换成别的 "password":"123456", //ss服务器密码 "timeout":300, "method":"aes-256-cfb" //ss服务器配置的加密方式 }c.启动shadowsocks,启动后控制台不要关闭
$ sslocal -c config.jsond.配置代理。 右上角-系统设置-网络-网络代理-手动。 Socks主机:127.0.0.1 端口:1080 最后点击“应用到整个系统”,至此,配置完成。 e.让终端也走代理的方法: 在~/.bashrc文件中增加以下两句,表示bash终端中的http和https的请求也通过socks5协议进行代理转发。
export http_proxy="socks5://127.0.0.1:1080" export https_proxy="socks5://127.0.0.1:1080"