使用shadowsockets和SwitchOmega畅游互联网

vangoleo · · 558 次点击 · · 开始浏览    
作者: vangoleo

官网: http://www.vangoleo.com/ss-visit-internet

背景

互联网本是一个开放、自由、精彩的世界。可是由于某些原因,很多网站在中国大陆是不能访问的,比如Google,Facebook。出于工作或者生活需要,尤其是对于技术开发者,设计师,科学上网是必需的。

为什么需要科学上网?

  1. Google:珍惜生命,远离某度。而且Google还提供了许多优质的服务,比如Gmail、文档、论文搜索等。
  2. Youtube:有各种高质量的科技、开发类视频。
  3. 博客和论文:许多博客和论文都被墙了,比如Blogspot和Medium。
  4. 社交:Twitter和Facebook。
  5. 编程:许多语言的开发环境都需要翻墙,比如Golang和Rust。

科学上网的方式有多种,今天给大家介绍一下其中最稳定,使用最广泛的,使用Shadowsockets来科学上网。

现在这个社会生存还真困难,上个网也要被限制、监视、审查,我想说:『 世界那么大,我想出去看看 !』

<!-- more -->

准备条件

本教程会从零开始,一步一步教大家如何搭梯子来科学上网。完成本教程需要大家准备以下条件:

  • 一台可以直接无限制访问互联网的电脑。即可以直接访问Google或Facebook的电脑。
  • WEB浏览器。(本教程会使用Chrome浏览器)
  • 熟悉基本的Linux操作。
Q: 什么样的电脑可以无限制访问互联网?
A: 在GFW管辖区域外的网络环境,即非中国大陆的电脑都是可以无限制访问互联网的。比如在阿里云香港region购买的ECS、搬瓦工美国区域购买的VPS等。

事先申明!!!本文科学上网教程,不为盈利,只为学习使用。请大家遵守中国互联网法,做一个遵纪守法的好公民。如果对这块法律规定不是很熟悉的小伙伴可以移步中国工信部官网。

关于Shadowsockets

关于Shadowsockets是什么、它是怎么工作的,可以参考网上的一些图片,我觉得非常棒,将它们摘抄于此,分享给大家。

很久很久以前

当恶魔来了

Shadowsockets来拯救世界

这三张图蛮有意思的,故事有一个简单而美好的开始,然后恶魔来袭。我们还看到了道高一尺魔高一丈,还有。。。(此处省略吐槽两千字)

可以看到 ShadowSocks工作原理中涉及到如下几种角色:

  • PC:终端用户。
  • SS Local:Shadowsockets本地客户端,运行在PC上。
  • GFW:^#¥%&)orz
  • SS Server:Shadowsockets服务端。可以无限制访问互联网。比如在搬瓦工美国区购买的一台VPS。

PC通过客户端以指定的密码、加密方式和端口连接SS服务器。成功连接到SS服务器后,客户端在用户的电脑上构建一个本地socks5代理。使用时将流量分到本地socks5代理,客户端将自动加密并转发流量到服务器,服务器以同样的加密方式将流量回传给客户端,以此实现代理上网。

Shadowsockets服务端

科学上网的第一步,也是最关键的一步,就是搭建Shadowsockets服务端。

安装Shadowsockets服务端

有多种方式可以安装Shadowsockets,最简单的是使用包管理器和Python来安装。比如在CentOS上可以使用如下命令:

yum install python-setuptools
easy_install pip
pip install shadowsocks

执行完上面的命令,Shadowsockets就安装好了。可以执行ssserver -h命令确保Shadowsockets已正确安装。

创建Shadowsockets配置文件

Shadowsockets运行时需要一份配置文件。新建一个文件/etc/shadowsocks/config.json,内容如下:

{
    "server":"0.0.0.0",
    "server_port":443,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"your_password",
    "timeout":300,
    "method":"aes-256-cfb",
    "fast_open":false,
    "workers": 1
}

说明:

  • server:server监听地址,默认0.0.0.0
  • server_port:server监听端口
  • password:连接密码
  • method:加密方法,推荐选择aes-256-cfb

如果无特殊要求,可以直接使用上图中的配置,除了将密码替换为你们自己的。

运行Shadowsockets

上面的步骤中,已安装好Shadowsockets并创建好了配置文件。现在可以启动Shadowsockets了。
使用如下命令来启动,停止和重启服务:

  • 启动:ssserver -c config.json -d start
  • 停止:ssserver -c config.json -d start
  • 重启:ssserver -c config.json -d start

为了方便操作Shadowsockets,建议在服务器上创建如下的3个Shell脚本,来启动、停止和重启服务:

  • 使用start-shadowsocket.sh启动:
#!/bin/bash

ssserver -c /etc/shadowsocks/config.json -d start
echo 'shadowsocket started successfully with config file /etc/shadowsocks/config.json'
  • 使用restart-shadowsocket.sh重启:
#!/bin/bash

sudo ssserver -c /etc/shadowsocks/config.json -d restart
echo 'shadowsocket stopped successfully with config file /etc/shadowsocks/config.json'
  • 使用stop-shadowsocket.sh停止:
#!/bin/bash

sudo ssserver -c /etc/shadowsocks/config.json -d stop
echo 'shadowsocket stopped successfully with config file /etc/shadowsocks/config.json'

执行启动命令后,可以使用netstat来确认Shadowsockets已正确运行:

[root@leiwei-server ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1066/sshd
tcp        0      0 0.0.0.0:8388            0.0.0.0:*               LISTEN      11350/python

可以看到Shadowsockets已运行并监听本地的8388端口,即上面配置的server端口。

注意:
Shadowsockets服务端需要部署在没有GFW的地区哦。如果你部署在北京,是不能科学上网的哦。
同时尽量部署在连接速度快的地区。比如部署在香港是一个不错的选择。

温馨提醒
可以在AWS,阿里云,Azure来购买服务器。如果是在阿里云购买,可以通过http://aliyun.nagekuai.com/查看各个region的延迟大小。优先选择延迟较小的region。

Shadowsockets客户端

安装Shadowsockets客户端

部署好了服务端后,接下来就需要在本地电脑上安装客户端。Shadowsockets对各个平台都提供了客户端,可以在https://github.com/shadowsocks下载,如下截图所示:

Shadowsockets客户端下载

注意:
Mac用户请下载上图标注的客户端,地址为https://github.com/shadowsocks/ShadowsocksX-NG
网上很多比较早的教程介绍的是https://github.com/shadowsocks/shadowsocks-iOS,这个是旧版本,已被https://github.com/shadowsocks/ShadowsocksX-NG代替了。

安装,配置Shadowsockets客户端

Shadowsockets的安装很简单,就是标准的DMG文件安装。安装完后,启动客户端,按照如下图所示进行配置:

配置Shadowsockets客户端

说明:

  • 本地监听地址:填写127.0.0.1。
  • 本地Socks5监听端口:默认1086,无需修改。客户端会监听本地的该端口。

如果无特殊需求,直接使用上图所示的配置即可。

添加远程Shadowsockets服务器

Shadowsockets客户端的作用是将浏览器的访问代理到远程Shadowsockets服务器。接下来我们来为客户端添加服务器。
打开「服务器设置」>>「添加服务器」:
添加远程Shadowsockets服务器

说明:

  • 地址:Shadowsockets服务端地址。
  • 加密方法:Shadowsockets服务端端口,对应配置文件中的server_port,本例中是443。
  • 密码:Shadowsockets服务端密码,对应配置文件中的password。

到此,科学上网必须的步骤都已完成了,我们可以在浏览器中访问Google验证一下。

可以上Google了

SwitchOmega

按照上面的步骤,我们已经可以在浏览器中科学上网了。但是遗留了一个问题:访问所有的网站都会走Shadowsockets代理,包括被墙的和正常的。
这会导致:

  • 访问国内网站需要从代理绕一圈,速度反而变慢。
  • 增加Shadowsockets服务端的流量,某些机器的流量是按量付费或有上限的。

比如访问百度,本来速度很快,如果使用Shadowsockets代理,需要去国外服务器绕一圈,速度反而变慢。而且像搬瓦工购买的VPS,是有流量上限的,需要珍惜使用。

所以,我们需要一种机制,实现只有被墙的网站走代理,正常的网站依然直连,浏览器能够自动判断是直连还是走代理。这样,访问百度会直连,速度快且不消耗代理的流量。访问Google走代理。

这时候就轮到SwitchOmega登场了。

SwitchOmega是一个Chrome浏览器插件。SwitchOmega能够根据预先配置的规则,将浏览器的请求进行直连或代理访问。最常用的是根据域名来判断。正如其名,它可以自动切换直连和代理访问。
当使用SwitchOmega时,在浏览器中访问网站的流程如下所示:

使用SwitchOmega上网流程

说明:

  • 图中1为SwitchOmega。
  • 图中2为Shadowsockets客户端。监听本地1086端口,并将请求转发到Shadowsockets服务端。
  • 图中3为Shadowsockets服务端。通常是一个Linux服务器,监听本地8388端口。
说明:
Chrome的代理服务器插件有很多,但使用最广泛的就是SwitchOmega,功能强大,运行稳定。

添加本地Shadowsockets客户端

本地已经运行了Shadowsockets客户端,监听本地的1086端口。所以,在SwitchOmega中只需要配置代理服务器为本地的127.0.0.1地址,1086端口即可。

SwitchOmega添加本地SS客户端

SwitchOmega的功能十分强大,将会用另一篇文章来专门介绍它的使用。

最后

本教程中,我们从零开始,利用Shadowsockets + Chrome + SwitchOmega来越过GFW,让我们可以畅游精彩的互联网了。希望能给大家带来一些帮助。后续还会补充如下的内容:

  • 在阿里云上如何搭建Shadowsockets
  • 在搬瓦工上如何搭建Shadowsockets
  • SwitchOmega插件的详细使用

最后还是要提醒大家,一定要文明上网,遵守中国互联网法,做一个遵纪守法的好公民。

本文由 www.vangoleo.com 发布

本文来自:Segmentfault

感谢作者:vangoleo

查看原文:使用shadowsockets和SwitchOmega畅游互联网

入群交流(和以上内容无关):Go中文网 QQ 交流群:729884609 或加微信入微信群:274768166 备注:入群;关注公众号:Go语言中文网

558 次点击  ∙  1 赞  
加入收藏 微博
4 回复  |  直到 2019-10-24 22:52:42
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传