跳转至

科学上网之部署使用详解

Shadowsocks (中文名称:影梭,下面简称 SS)是使用 Python 等语言开发的、基于 Apache 许可证开源的代理软件。SS 使用 socks5 代理,由于其流量特征不明显,不太容易用技术手段拦截,因此用于保护网络流量。

1. SS 特点

省电,在电量查看里几乎看不到它的身影;
支持开机自启动,且断网无影响,无需手动重连,方便网络不稳定或者 3G & Wi-Fi 频繁切换的小伙伴;
可使用自己的服务器,安全和速度的保证;
支持区分国内外流量,传统 VPN 在翻出墙外后访问国内站点会变慢;
可对应用设置单独代理,5.0 之后的系统无需 root。

2. SS 科学上网原理

Shadowsocks 客户端启动后会在本地开启一个代理,可以理解为一个数据的出入口。用户想通过 SS 访问墙外网站的请求都要经过这个本地代理。

通过 SS 科学上网的过程是这样的:

用户发起一个网络访问请求,比如用浏览器访问 google.com,请求被发送到本地代理。
客户端从本地代理拿到请求数据,然后发送至墙外的 SS 服务端。
服务端向 google.com 发起请求,然后收到 google 的响应数据,也就是 google 首页的数据。
服务端把响应数据发回客户端。
客户端再通过本地代理把响应数据交给浏览器,google 首页就显示出来了。

整个过程中的第 2 步和第 4 步都是通过 SS 自定义的协议隐蔽地进行,很难被过滤,所以我们才能一直用它顺畅地科学上网。

3. SS 服务搭建指南

3.1 购买 VPS 服务器

SS 的正常使用需要服务器端,其实,所有的科学上网软件都是通过服务器端,而搭建服务器端,你就需要有自己的 VPS,所以第一步你就是需要购买一个自己的 VPS (或者你可以跟别人合租),现在普遍使用的搭建服务器端的 vps 有很多,在这里我们主要介绍性价比比较高的 4 种,一个是 Linode,一个是 DigitalOcean,一个是 BandwagonHOST (搬瓦工),还有就是 vultr,这是从价格,性能等方面做出的推荐,当然,一分价钱一分货,你可以根据自己的实际需求以及支付能力自由选择。

3.1.1 Linode

Linode 是国外非常著名的 VPS 商之一,目前在国内站长圈中备受推崇,被许多使用用户评为 “高富帅” 主机产品。Linode 目前最低的 1G 内存方案,1T 流量/月,25G 固态 SSD 硬盘仅需 5 美金一月,折合 RMB 也就在 35 元左右。截止 2018.07.01,Linode VPS   主机报价,详情参考:https://www.linode.com/pricing

3.1.2 DigitalOcean

digitalocean 是一家成立于 2012 年的总部设置在纽约的云主机商家,采用 KVM 虚拟,配置高性能的 SSD 做储存。截止 2018.07.01,DigitalOcean VPS 主机报价,其中最低 1G 内存方案,1T 流量/月,25G 固态 SSD 硬盘需 5 美金一月(与 Linode 一样),详情参考:https://www.digitalocean.com/pricing/

3.1.3 Vultr

Vultr 是全球最大的游戏主机提供商之一,上线之后以高质的性价比、15 个数据中心,以及新注册账户赠送 5 美金的账户使用金优惠促销,吸引广大的用户。作为 Vultr 的用户,日本、洛杉矶等数据中心速度较好,如果有需要海外其他机房也可以在其 12 个数据中心中选择到适合自己的。

截止 2018.07.01,Vultr VPS 主机报价,目前最低的 1G 内存方案,500G 流量/月,512M 硬盘仅需 2.5 美金一月,性价比相当不错,详情参考:https://www.vultr.com/pricing/

3.1.4 BandwagonHOST

搬瓦工 VPS 是一款性价比较高的便宜 VPS 主机,且适合入门级网友学习 Linux 和建站用途。

截止 2018.07.01,BanwagonHOST VPS 主机报价(搬瓦工最新 10G VPS、20G VPS 虚拟主机现在都是按年服务,以前按月服务的已经找不到),详情参考:https://bwh1.net/vps-hosting.php


以下 VPS 的购买以 2017 年按月付费的 BanwagonHOST VPS 为例。2018 最新按年服务的 BanwagonHOST VPS 购买和部署使用步骤也一样。

2017 年按月付费的 BanwagonHOST VPS:

  1. 首先选择 $4.99 的 KVM 搬瓦工 VPS 主机,点击 “Order KVM” 进入购买配置页:

  2. 在上一步的 Product Configuration 页面点击鼠标右键,选择”查看页面源代码”,获取优惠码:

  3. 在 Product Configuration 页面,点击”Add to Cart”。在出现的 Order Summary 页面输入 Promotional Code:BWH1ZBPVK,点击 “Validate Code” 验证优惠码:

  4. 点击 “Checkout” 填写注册信息,选择使用支付宝支付。

  5. 最后点击 “Complete Order” 完成订单,KiwiVM 会把所有买 VPS 主机的 IP、root 密码、SSH 端口信息发送到你的注册邮箱,当然你也可以登陆 BanwagonHOST (https://bwh1.net/clientarea.php) 去查看。

3.2 SS 服务端搭建

  1. SecureCRT 或 putty 或者 xshell 连接服务器。

  2. 环境安装与更新。搬瓦工 $4.99/mon VPS 主机默认为 centos-6 操作系统,Shadowsocks 服务端搭建我们推荐使用一键安装脚本,使用 root 用户登录,运行以下命令:

    $ 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
    Which Shadowsocks server you'd select:
    1) Shadowsocks-Python
    2) ShadowsocksR
    3) Shadowsocks-Go
    4) Shadowsocks-libev
    Please enter a number (Default Shadowsocks-Python):1   # 选择安装 Python 版 shadowsocks
    
    You choose = Shadowsocks-Python
    
    Please enter password for Shadowsocks-Python
    (Default password: teddysun.com): xxxx   # 设置密码
    
    password = xxxx
    
    Please enter a port for Shadowsocks-Python [1-65535]
    (Default port: 8989): 18989   # 设置默认端口
    
    port = 18989
    
    Please select stream cipher for Shadowsocks-Python:
    1) aes-256-gcm
    2) aes-192-gcm
    3) aes-128-gcm
    4) aes-256-ctr
    5) aes-192-ctr
    6) aes-128-ctr
    7) aes-256-cfb
    8) aes-192-cfb
    9) aes-128-cfb
    10) camellia-128-cfb
    11) camellia-192-cfb
    12) camellia-256-cfb
    13) xchacha20-ietf-poly1305
    14) chacha20-ietf-poly1305
    15) chacha20-ietf
    16) chacha20
    17) salsa20
    18) rc4-md5
    Which cipher you'd select(Default: aes-256-gcm):9   # 选择加密方式;如不设定,Python 和 libev 版默认为 aes-256-gcm,R 和 Go 版默认为 aes-256-cfb
    
    cipher = aes-128-cfb
    
    Press any key to start...or Press Ctrl+C to cancel
    [Info] Checking the EPEL repository...
    [Info] Checking the EPEL repository complete...
    ....
    
    Starting Shadowsocks success
    
    Congratulations, Shadowsocks-Python server install completed!
    Your Server IP        :  xxx.xxx.xxx.xxx
    Your Server Port      :  18989
    Your Password         :  xxxxxx
    Your Encryption Method:  aes-128-cfb
    
    Your QR Code: (For Shadowsocks Windows, OSX, Android and iOS clients)
     ss://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxk=
    Your QR Code has been saved as a PNG file path:
     /data/shadowsocks_python_qr.png
    
    Welcome to visit: https://teddysun.com/486.html
    Enjoy it!
    

  3. 安装完成后,从脚本提示获取服务器 IP、密码、端口、加密方式、二维码等客户端登陆必须的信息。

  4. SS 卸载,若已安装多个版本,则卸载时也需多次运行(每次卸载一种)。使用 root 用户登录,运行以下命令:

    ./shadowsocks-all.sh uninstall
    

  5. 启动脚本。启动脚本后面的参数含义,从左至右依次为:启动,停止,重启,查看状态。

    # Shadowsocks-Python 版
    /etc/init.d/shadowsocks-python start | stop | restart | status
    
    # ShadowsocksR 版
    /etc/init.d/shadowsocks-r start | stop | restart | status
    
    # Shadowsocks-Go 版
    /etc/init.d/shadowsocks-go start | stop | restart | status
    
    # Shadowsocks-libev 版
    /etc/init.d/shadowsocks-libev start | stop | restart | status
    

  6. 各版本默认配置文件

    # Shadowsocks-Python 版
    /etc/shadowsocks-python/config.json
    
    # ShadowsocksR 版
    /etc/shadowsocks-r/config.json
    
    # Shadowsocks-Go 版
    /etc/shadowsocks-go/config.json
    
    # Shadowsocks-libev 版
    /etc/shadowsocks-libev/config.json
    

3.3 SS 客户端使用

各个平台下 SS 客户端列表:

平台 软件名 链接
Windows 影梭 https://github.com/shadowsocks/shadowsocks-windows/releases GitHub 官方下载
Android - https://github.com/shadowsocks/shadowsocks-android/releases 下载 APK,安装后完成设置即可
iOS OpenWingy APP Store 搜索 OpenWingy 进行安装 AppStore 搜索 OpenWingy,安装后完成设置即可
linux shadowsocks-qt5 deepin linux 应用商店

3.3.1 windows 下使用

SS 常规版 windowns 客户端下载地址:https://github.com/shadowsocks/shadowsocks-windows/releases。客户端下载解压后,只需要按照服务器的配置填写服务器 IP 地址、服务器端口、本地端口(如果没有本地端口选项,就是默认的 1080)、密码、加密方式等参数就可以愉快地科学上网了。

3.3.2 Linux 下使用

这里主要说一下 deepin linux 中 SS 的配置使用。

  1. 进入”深度商店”,搜索 “shadowsocks-qt5”,点击完成安装。
  2. 在系统启动器中找到 SS,点击启动,设置连接。
  3. 安装完后连接代理服务器,发现 google 依然无法访问,这里需要浏览器插件支持才能访问。以 chrome 为例,安装 SwitchyOmega 插件。安装教程:https://www.switchyomega.com/download.html
  4. 设置代理服务器,点击 “应用选项” 保存设置。
  5. 连接上网,登陆 YouTube 测试。

4. 参考资料