科学上网


一. 概述

  1. 本文参考jasper文章,自己尝试过程中修改重写,能帮助他人,也能方便自己 参考文章
  2. ​ 脚本来源 @秋水逸冰 使用脚本路径
    https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
    也可使用秋水大神四合一版本,最后更新日期  :2017 年 10 月 22 日
  3. 使用系统版本:Debian 7 x64

二. 常用命令

1
2
3
4
重启ssr /etc/init.d/shadowsocks restart
卸载SSR ./shadowsocksR.sh uninstall
编辑配置文件 nano /etc/shadowsocks.json
查看log日志 tailf /var/log/shadowsocks.log

三. SSR安装、配置、卸载

  • 服务器中复制执行以下命令进行安装:

    1
    2
    3
    wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocksR.sh
    chmod +x shadowsocksR.sh
    ./shadowsocksR.sh 2>&1 | tee shadowsocksR.log
  • 默认配置

    1
    2
    3
    4
    5
    6
    服务器端口:自己设定(如不设定,默认为 8989)
    密码:自己设定(如不设定,默认为 teddysun.com)
    加密方式:自己设定(如不设定,Python 和 libev 版默认为 aes-256-gcm,R 和 Go 版默认为 aes-256-cfb)
    协议(protocol):自己设定(如不设定,默认为 origin)(仅限 ShadowsocksR 版)
    混淆(obfs):自己设定(如不设定,默认为 plain)(仅限 ShadowsocksR 版)
    备注:脚本默认创建单用户配置文件,如需配置多用户,请手动修改相应的配置文件后重启即可。
  • shadowsocks.json配置文件
    默认在/root文件夹下,要进入/etc文件夹下找到shadowsocks.json

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    {
    "server":"0.0.0.0",
    "server_ipv6":"::",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
    #纯 SS 不带混淆 端口25 密码为123456.
    "25":"123456",
    #端口443,密码123456 ,protocol选择auth_chain_a。obfs选择tls1.2_ticket_auth,具体插件的介绍如下参考资料中
    "443":{"protocol":"auth_chain_a", "password":"123456", "obfs":"tls1.2_ticket_auth", "obfs_param":""},
    #注意无论怎么变化,最后一个端口设置,不带逗号!
    "3389":{"protocol":"auth_aes128_md5", "password":"123456", "obfs":"tls1.2_ticket_auth", "obfs_param":""}#此处没有逗号!
    },
    "timeout":400,
    #默认全局的加密方式,即上边各个端口的默认加密方式。一般为aes-256-cfb, 此处,选择为chacha20,移动设备性能较好。
    "method":"chacha20",
    #protocol.协议定义插件的默认值,origin即使用原版SS协议,不混淆。即上面端口配置中,你没有设置 protocol 和 obfs 情况下,使用的默认值。
    "protocol": "origin",
    "protocol_param": "",
    #protocol.协议定义插件的默认值,plain即使用原协议,不混淆。
    "obfs": "plain",
    "obfs_param": "",
    "redirect": "",
    "dns_ipv6": true,
    #TCP FAST OPEN ,打开
    "fast_open": true,
    "workers": 1
    }
  • 重启SSR
    每次修改配置后,需重启ssr
    root用户下执行/etc/init.d/shadowsocks restart

  • 卸载SSR

    1
    ./shadowsocksR.sh uninstall

四. 加速工具TCP-BBR(推荐)安装

  • 脚本来自于@秋水逸冰
  • 运行下面的命令:

    1
    2
    3
    wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
    chmod +x bbr.sh
    ./bbr.sh
  • 验证

    uname -r 有4.9.0 以上就 表示 更新成功
    lsmod | grep bbr 返回值有 tcpbbr 即bbr已启动。

  • 优化修改sysctl.conf 输入命令nano /etc/sysctl.conf ,输入完成保存([Ctrl + X] —> y —> Enter)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #TCP配置优化(不然你自己根本不知道你在干什么)
    fs.file-max = 51200
    #提高整个系统的文件限制
    net.core.rmem_max = 67108864
    net.core.wmem_max = 67108864
    net.core.netdev_max_backlog = 250000
    net.core.somaxconn = 4096
    net.ipv4.tcp_syncookies = 1
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 0
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_keepalive_time = 1200
    net.ipv4.ip_local_port_range = 10000 65000
    net.ipv4.tcp_max_syn_backlog = 8192
    net.ipv4.tcp_max_tw_buckets = 5000
    net.ipv4.tcp_fastopen = 3
    net.ipv4.tcp_mem = 25600 51200 102400
    net.ipv4.tcp_rmem = 4096 87380 67108864
    net.ipv4.tcp_wmem = 4096 65536 67108864
    net.ipv4.tcp_mtu_probing = 1
    net.ipv4.tcp_congestion_control = bbr
    #END OF LINE
  • 应用 sysctl -p

  • 重启ssr /etc/init.d/shadowsocks restart

五. 安全登录ssh

修改账号密码登录为SSH密钥登录

  • 生成公钥和私钥,在Linux远程服务器生成密钥:ssh-keygen -t rsa

    1
    2
    3
    4
    5
    6
    Enter file in which to save the key (/root/.ssh/id_rsa): //直接回车
    Created directory '/root/.ssh'.
    Enter passphrase (empty for no passphrase): //输入密钥密码
    Enter same passphrase again: //重复密钥密码
    Your identification has been saved in /root/.ssh/id_rsa. //提示公钥和私钥已经存放在/root/.ssh/目录下
    Your public key has been saved in /root/.ssh/id_rsa.pub.
  • 服务器配置私钥

    1
    2
    执行以下命令:`mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys` 把vps上生成的id_rsa.pub文件改名为authorized_keys
    修改下这个文件的权限为600 `chmod 600 /root/.ssh/authorized_keys ` 防止被误删除
  • 配置Xshell使用密钥登陆(可使用搜索引擎搜索如何配置)

  • 验证完成修改远程服务器SSHD配置,关闭用户名、密码登录

    1
    2
    修改/etc/ssh/sshd_config 文件中找到PasswordAuthentication后面的yes改成no
    重启ssh `/etc/init.d/ssh restart`
  • 提示ssh找不到的话,可尝试换成sshd

修改登录默认端口

1
2
3
登陆SSH,然后通过 `nano /etc/ssh/sshd_config` 命令打开文件
修改其中的port后面的数字为你自己想要设置的端口
重启SSH:`service ssh restart `

六. 编译shadowsocksR Windows客户端

  • github下载最新版代码地址
  • 使用visual studio 2015 双击shadowsocks-csharp.sln ,编译,即可获取到应用客户端

七. chorme搭配SwitchyOmega使用

八. ssr Android版本(未处理)

九. 建站(未处理)