在外企上班,公司网络是直接vpn到新加坡的,也经常要用slack等工具进行线上交流,没个梯子还经常挺不方便的。最近抽空折腾了一下,写个文章记录一下过程。
服务器
服务器我用的是virmach,1.25刀一个月,价格还是挺实惠的,500GB的网络带宽应该是用不完的,至于网络速度,我测试了一下,youtube里的720p视频可以流畅播放。
在购买之前,最好先买一个月的主机试用一下,不同的地区的网络状况是不一样的,可以用站长工具来测一下速,我先后买过两个区的主机,本人在上海,第一个主机买的芝加哥,联通速度比较满意,移动网络有点卡,但是也能用,但是第二个主机在水牛城,联通速度却很卡,网络延时很大,移动的网络挺好延时一秒多.所以根据自己的需求和实际情况做一个使用前测试很有必要.或者可以购买多个区的来做备份,但也最好提前测试一下.
测试方法
在目标主机上用nginx搭一个静态网站,里面放一个150k的index.html
文件
1 | docker run --name some-nginx -p 80:80 -v /home/ubuntu/www/:/usr/share/nginx/html:ro -d nginx |
测试结果
服务端
服务端我用的是的shadowsocks-libv,为了与系统环境进行隔离,方便进行迁移,我用的是docker的方式来进行部署的,在官方hub里就有相应的docker镜像,使用还挺方便的。
如果没有docker的话,得先安装docker
1 | # install common tools |
- docker直接运行
1
docker run -e PASSWORD=<password> -p<server-port>:8388 -p<server-port>:8388/udp -d shadowsocks/shadowsocks-libev
- docker-compose方式,我更推荐这种方式,更加便于维护和管理,写一个
docker-compose.yml
,内容如下:然后运行1
2
3
4
5
6
7
8
9
10
11
12
13
14version: '2'
services:
shadowsocks1:
image: shadowsocks/shadowsocks-libev
container_name: shadowsocks1
environment:
PASSWORD: password
# METHOD: CHACHA20-IETF-POLY1305
ports:
- "8388:8388"
- "8388:8388/udp"
# volumes:
# - $PWD/config:/etc/shadowsocks
restart: alwaysdocker-compose up -d
来启动shadowsocks服务,如果不配置method,默认是使用aes-256-gcm
方法
客户端
Shadowsocks 目前的客户端基本各个平台上面的都有。本文主要介绍在 Windows、macOS、Linux、Android、iOS、OpenWRT 平台上常用的一些客户端。
需要说明的一点是,如果使用Outline
客户端,需要一个访问密钥,那这个访问密钥是怎么生成呢?
规则如下:
1 | const method='aes-256-gcm' |
例如:
1 | method: rc4-md5 |
拼接字符串得到:rc4-md5:test123@283.234.123.21:4000
进行base64
编码以后,得到:
1 | cmM0LW1kNTp0ZXN0MTIzQDI4My4yMzQuMTIzLjIxOjQwMDA= |
最后访问密钥如下:
1 | ss://cmM0LW1kNTp0ZXN0MTIzQDI4My4yMzQuMTIzLjIxOjQwMDA=#shadowsock |
更新: 发现原来还有一个官网,里面可以自动生成这个链接.
Windows
Shadowsocks Windows: GitHub
在 Windows 平台推荐使用,由官方出品,需要安装 .NET Framework,请尽量使用最新版本。使用教程请参考:在 Windows 中配置 Shadowsocks 客户端
Outline Windows: GitHub/Direct Download
Outline 由 Google Jigsaw 出品,功能上比较简单,必须使用秘钥进行连接。
macOS
ShadowsocksX-NG: GitHub
新一代的 ShadowsocksX,底层是基于 Shadowsocks-libev 的 ss-local 客户端。使用教程请参考:在 macOS 中配置 Shadowsocks 客户端
Outline macOS: GitHub/App Store
Outline 由 Google Jigsaw 出品,功能上比较简单,必须使用秘钥进行连接。
Linux
Shadowsocks Qt5: GitHub
Shadowsocks 在 Linux 上唯一的 GUI,请按照 Wiki 安装指南进行安装, 如果你喜欢命令行的请使用 Shadowsocks-libev 客户端。使用教程请参考:在 Linux 中配置 Shadowsocks 客户端
Android
如果无法访问 Google play 请下载 apk 安装。
Shadowsocks Android: GitHub/Google Play (beta)
Shadowsocks 官方开发的 Android 版本,功能强大,推荐使用。使用教程请参考:在 Android 中使用 Shadowsocks 客户端
Outline Android: GitHub/Play Store/Direct Download
Outline 由 Google Jigsaw 出品,功能上比较简单,必须使用秘钥进行连接。
iOS
目前在 App Store 上面无法在中国区搜索到,请使用非中国大陆区的账号搜索并购买。
Outline 由 Google Jigsaw 出品,功能上比较简单,必须使用秘钥进行连接。可以免费下载。
Potatso Lite: App Store
Potatso 的简版,不过功能够用,可以免费下载。
Shadowrocket: App Store
Shadowrocket 应该属于目前最火的 Shadowsocks iOS 客户端了,功能强大,更新快。性价比非常高,推荐购买使用,目前美区是 $2.99 的价格。使用教程请参考:在 iOS 中使用 Shadowsocks 客户端
OpenWrt/LEDE
Shadowsocks-libev for OpenWrt: GitHub
OpenWrt LuCI for Shadowsocks-libev: GitHub
在 OpenWrt/LEDE 的路由器中使用 Shadowsocks,配合 ChinaDNS 和 DNS-Forwarder 使用更好,在这里查看 OpenWrt/LEDE Shadowsocks 安装教程。
其它方案
与shadowsocks齐名的还有v2ray,部署要复杂得多,可以作为一个备选项.