一, shadowsocks 简介 (以下来自 wiki 百科)
shadowsocks 是一种基于 Socks5 代理方式的网络数据加密传输包, 并采用 Apache 许可证, GPL,MIT 许可证等多种自由软件许可协议开放源代码. shadowsocks 分为服务器端和客户端, 在使用之前, 需要先将服务器端部署到服务器上面, 然后通过客户端连接并创建本地代理. 目前包使用 Python,C,C++,C#,Go 语言等编程语言开发.
运行原理:
Shadowsocks 的运行原理与其他代理工具基本相同, 使用特定的中转服务器完成数据传输. 在服务器端部署完成后, 用户需要按照指定的密码, 加密方式和端口使用客户端软件与其连接. 在成功连接到服务器后, 客户端会在用户的电脑上构建一个本地 Socks5 代理. 浏览网络时, 网络流量会被分到本地 socks5 代理, 客户端将其加密之后发送到服务器, 服务器以同样的加密方式将流量回传给客户端, 以此实现代理上网.
二, 搭建教程
1, 环境介绍
阿里云服务器 ECS(香港):
配置: CPU 1 核心, 内存 1GB, 出网带宽 1Mbps.
系统: centos7
2, 服务器端搭建
1) 使用 root 用户, 分别执行以下 3 条命令.
- $ wget --no-check-certificate -O 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 it
2) 把 8989 端口设置为开放状态
打开防火墙配置文件:
$ VIM /etc/sysconfig/iptables
插入下面这句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8989 -j ACCEPT
保存后使更改生效, 执行以下:
$ service iptables save
3) 开放云服务器端口 (如果是阿里云服务器请继续看)
阿里云有安全组配置, 需要进入阿里云管理界面找到安全组配置, 把 8989 端口开放. 否则外网依然无法方位该端口.
至此, 服务器部署完成!
4) 卸载方法: 使用 root 用户, 执行以下命令即可
$ ./shadowsocks-all.sh uninstall
3, 客户端使用
1)Windows 客户端
首先搜索 shadowsocks-Windows, 打开后进行如下配置.
服务器地址: 云服务器 ip, 端口: 之前配置的端口, 加密方式要选择服务器选择的加密方式, 本级代理端口 1080(可以改成别的).
配置好后, 在电脑右下角找到 ss, 并点击启用.
2)iPhone 代理配置
a. 下载:
App Store 中下载 SsrConnectPro(目前中国区可下载, 没有被封).
b. 使用:
打开 App 后, 点击右上角 + 号:
type:ss
name : 随便起一个名字即可. 笔者是: abcd
server : 云服务器 ip
port : 刚才配置的 ip. 笔者是: 8989
password : 你服务器设置的密码
proxyMethod:system
method : 刚才配置的加密方式. 笔者是: AES-256-CFB
点击 "save configuration" 后进入 choos 页面, 点击你刚刚创建的那个名字 abcd 即可. 回到首页, 找到你创建的代理并打开.
配置成功! 经测试 google,YouTube 等网站打开很快, 1080p 视频毫无压力.
3)Ubuntu 系统代理配置
a. 安装 shadowsocks
$ sudo apt install shadowsocks
b. 找到 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.JSON
d. 配置代理.
右上角 - 系统设置 - 网络 - 网络代理 - 手动.
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"
来源: https://yq.aliyun.com/articles/656990