科学上网

科学上网--基于Shadowsocks和ssh

Posted by Chopong on July 22, 2021

Table of Contents

科学上网

配置服务器

基于Shadowsocks和ssh

  • 服务器一般选择linux系统, 运行稳定, 还自带openssl, 因此只需要在部署之后, 安装Shadowsocks就可以, 下面介绍如何使用Shadowsocks进行搭建.

一. 部署服务器

  1. 配置服务器一定得有一台虚拟的机器才行, 一般要求不高的话可以选择比较便宜的Vultr, 最少充值10$, 可以使用支付宝进行充值.

  2. 选择服务器位置. 不要觉得日本近而选择日本节点, 因为它并不一定是最快的服务器, 通过点击下载测试网速文件进行选择最快的节点. 点击测试

  3. 测试节点网速, 选快的(废话). 这里需要注意的是, 位于不同国家或城市的服务器的套餐价位是可变的, 一般价格为5 $/mon, 或者是按小时收费, 只要服务器搭建好了, 就会持续收费, 除非你摧毁掉它.

  4. 还有一些城市有2.5 $/mon的套餐, 但是只支持ipv6, 对于国内一般家庭网络(ipv4)可能不支持. 这里我选择纽约.

  5. 服务器的系统选择Ubuntu18.4, 点击部署就可以了, 等待几分钟, 服务器就搭建好了, 记住IP和密码下面要用到.

二. 服务器基础配置

  1. 服务器部署结束之后, 使用终端(linux)或者ssh客户端putty(Windows, Mac)来登录并控制服务器.

  2. 使用命令登录. ssh root@服务器IP, 输入上面的登录密码后, 就可以登录了

  3. 首先, 更新源

         apt-get update && upgrade
    
  4. 安装python组件

         apt-get install python-pip python-gevent python-m2crypto
    
  5. 更新pip库

         pip install --upgrade setuptools
    
  6. 安装shadowsocks, 出现Successful installed shadowsocks-xxx就说明成功了.

         pip install shadowsocks
    

三. Shadowsocks服务端配置

  1. 新建文件夹, 使用vim编辑器编辑配置文件.

         mkdir -p /etc/shadowsocks
         vim /etc/shadowsocks/config.json
    
    • vim编辑器使用说明:
按键 功能
i 进入编辑模式
ESC 退出编辑模式
:w Enter 保存文件
:q Enter 退出
  1. config.json内容如下

         {
             "server":"0.0.0.0",
             "server_port":8838,
             "password":"your password",
             "time_out":600,
             "method":"aes-256-cfb",
             "fast_open":false
         }
    
    • 简单说明:
      • server: Vultr服务器的IP地址
      • server_port: 端口数, 可以自己写
      • password: 登录密码, 与Vultr提供的不一样, 自己定义
      • time_out: 超时
      • method: 加密方式
  2. 如果需要开启多个端口, 可以使用以下内容

         {
             "server":"0.0.0.0",
             "port_password":{
                 "8888":"yourpassword",
                 "8838":"yourpassword"
                 },
             "time_out":600,
             "method":"aes-256-cfb",
             "fast_open":false
         }
    
  3. 由于部分openssl升级到了1.1.0版本, 所以启动时可能会报undefined symbol错误, 下面解决这个错误. 如果没有报错, 那么可以直接跳过这一部分.

    • 打开openssl.py
         vim /usr/local/lib/python2.7/dist-packages/shadowsocks/cropto/openssl.py
    
    • 将文本中52行和111行的cleanup替换为reset, 即:

    libcrypto.EVP_CIPHER_CTX_cleanup –> libcrypto.EVP_CIPHER_CTX_reset

  4. 启动shadowsocks服务.

         ssserver -c /etc/shadowsocks/config.json -d start
    

    以上就把服务端配置好了, 第4步开机自启可以跳过. 但如果你服务器经常需要重启, 继续第4步.

四. Shadowsocks服务端开机自启动(可选)

  1. 创建shadowsocks.service文件

         vim /etc/systemd/system/shadowsocks.service
    
  2. 文件内容如下

         [Unit]
         Description=Shadowsocks
         After=network.target
    
         [Service]
         Type=forking
         PIDFile=/run/shadowsocks/server.pid
         PermissionsStartOnly=true
         ExecStartPre=/bin/mkdir -p /run/shadowsocks
         ExecStartPre=/bin/chown root:root /run/shadowsocks
         ExecStart=/usr/local/bin/ssserver --pid-file /var/run/shadowsocks/server.pid -c /etc/shadowsocks/config.json -d start
         Restart=on-abort
         User=root
         Group=root
         UMask=0027
    
         [Install]
         WantedBy=multi-user.target
    
  3. 更改文件权限

         chmod 755 /etc/systemd/system/shadowsocks.service
    
  4. 启动服务

        systemctl start shadowsocks
        systemctl enable shadowsocks
    

五. Shadowsocks客户端配置

不同操作系统使用Shadowsocks的方式大同小异, 下载安装shadowsocks客户端, 资源见下:

  1. Linux, Windows, Mac:
    • 添加新配置, 填写服务器IP地址, 自己上面设置的端口和对应的自己设置的密码, 本地IP和端口保持默认(一般为127.0.0.1:1080).
    • 测试节点延迟, 并进行连接, 打开系统代理或全局代理即可.
    • (可选) Linux系统有应用代理, 可以单独设置代理上网的应用.
  2. Android:
    • 配置同上, 一般没有设置本地IP和端口的选项.

六. 上网设置(可选)

  • 按照上述连接后, 上网请求全部经服务器连接, 此时打开国内的资源会很慢, 此时可以通过浏览器插件来实现分流. Chrome/Chromium/FireFox等推荐使用SwitchOmega, 具体使用方法可以百度.

  • 打开自动切换(AutoSwitch), 默认直接连接. 当不能连接时, 点击图标选择代理方式, 即可轻松实现上网操作.

七. 其他资源

  1. Putty 下载地址:
  2. Shadowsocks客户端 下载地址: