对于一个程序员来说,科学上网应该是必须要掌握的技能,毕竟有的开源社区和网站在国内是无法访问的,即使是可以访问的速度也会很慢。

关于搭建 SS 的博客我在一年前就想写了,但是因为一些原因一直没有写。这里说的 SS 应该很多人都知道是什么软件。注意!是 SS,不是 SSR。

关于 VPS 的购买我这里就暂时不写了,只要是国外的 VPS 基本都可以。这里推荐一下 搬瓦工 和 Vultr,搬瓦工的价格相对便宜一些,Vultr 的数据中心更多一些、而且换IP比较方便。关于机房位置,首选亚洲机房,在购买之前可以 ping 一下 IP 测试延迟,建议最好选择延迟在 250 以下的机房。

下载和安装

我这里使用的 Linux 版本是 CentOS7,我用的脚本也只支持 CentOS。搭建 SS 的方法有很多种,这里写的是比较简单的,使用的是秋水逸冰 的一键安装脚本。

首先用远程工具连接到 VPS,关于远程工具的使用可以看: 使用 Xshell 远程登录 Linux 服务器,连接成功后输入下面的3条命令下载脚本执行。

下载脚本:

wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh

下载完成后添加可执行权限:

chmod +x shadowsocks.sh

执行脚本:

./shadowsocks.sh 2>&1 | tee shadowsocks.log

设置密码,这个密码是客户端连接 SS 用的,如下:

#############################################################
# One click Install Shadowsocks-Python server               #
# Intro: https://teddysun.com/342.html                      #
# Author: Teddysun <i@teddysun.com>                         #
# Github: https://github.com/shadowsocks/shadowsocks        #
#############################################################

SELINUX=enforcing
Please enter password for shadowsocks-python
(Default password: teddysun.com):

设置端口,可以输入一个数字,但不要用 80 或 21 或 22 端口:

---------------------------
password = machangbin
---------------------------

Please enter a port for shadowsocks-python [1-65535]
(Default port: 19153):6666

设置加密方式,建议先选择 aes-256-cfb,防止无法使用,有的加密方式需要安装相应的软件才能用,直接输入数字选择,不要输入 aes-256-cfb,:

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) chacha20-ietf-poly1305
14) chacha20-ietf
15) chacha20
16) rc4-md5
Which cipher you'd select(Default: aes-256-gcm):7

设置完加密方式后,按回车开始安装:

Press any key to start...or Press Ctrl+C to cancel

安装完成后会显示 IP、端口、密码、加密方式,可以记录下来,连接的时候需要用到:

SS安装完成

使用

到这里基本上服务端就已经部署完成了,接下来就是下载客户端。点此进入Github下载 ,下载完成后打开SS客户端,点击 服务器、打开 编辑服务器

进入服务器编辑

点击 添加,把安装完成时显示的信息填入到相应的输入框中,加密方式下拉菜单选择,插件程序、插件选项、插件参数 可以不用管,超时和代理端口不用改,填写完成后确定:

SS客户端填写

服务器设置完成后,打开 系统代理,把代理模式设置为 全局代理

设置SS代理

点击 PAC从 GFWList 更新本地 PAC

更新PAC

更新完成后 点击 使用本地 PAC,把代理模式设置为 PAC 模式,点击 启用系统代理,这样就可以访问被 ban 的网站了。

常见问题

如果按照上面的方法设置了还用不了的话:可能是下面的几种原因之一:

  • 没有打开端口:解决方法就是打开端口。比如在安装时设置了 666 端口就需要打开 666端 口,关于 Linux 的端口设置下面有写。
  • 相关信息填写错误:核对信息,确保和安装完成时显示的信息一致。
  • 服务端没有启动 SS 服务:启动服务端的 SS 服务,关于服务端的一些控制下面会有说明。
  • 设置的加密方式不支持:把加密方式改为 aes-256-cfb,在 SS 的配置文件可以更改,配置文件的位置下面会有说明。

如果要看 CentOS 打开端口的方法可以访问: CentOS开放、关闭和查看端口

服务端常用命令

下面是SS服务端的一些操作命令:

启动:

/etc/init.d/shadowsocks start

停止:

/etc/init.d/shadowsocks stop

重启:

/etc/init.d/shadowsocks restart

查看状态:

/etc/init.d/shadowsocks status

服务端配置

如果需要修改 SS 的端口或密码可以打开SS的配置文件,SS 的配置文件在 /etc/shadowsocks.json。配置文件是 JSON 的,注意!每次修改完 SS 的配置文件都需要重新启动 SS。SS 配置文件如下:

{
    "server":"0.0.0.0",
    "server_port":6666,
    "local_address":"127.0.0.1",
    "local_port":1080,
    "password":"hello",
    "timeout":300,
    "method":"chacha20",
    "fast_open":true
}

如果要设置多用户的话,端口和密码可以这样写:

{
    "server":"0.0.0.0",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
        "8989":"password0",
        "9001":"password1",
        "9002":"password2",
        "9003":"password3",
        "9004":"password4"
    }
    "timeout":300,
    "method":"chacha20",
    "fast_open":true
}

主要就是更改一下端口和密码的写法,加密方式还是一样的 可以自己设置。

其他平台

如果要在其他平台使用 SS 可以到这里下载对应的客户端:https://shadowsocks.org/en/download/clients.html 。使用方法和上面演示的 Windows 版差不多,填入相应的信息即可使用。之前 IOS 的国区 App Store 还有 SuperRocket 可以连 SS,不过最近下架了,所以目前国区的 App Store 没有任何软件能连 SS,如果没有越狱的话只能跨区下载。如果你的手机和电脑在同一局域网内也可以用 电脑版的 SS 客户端 分享网络给手机使用,这样手机不需要安装客户端也能实现科学上网。

Android的话直接在上面的网站下载安装即可。

安装 BBR

BBR 是 Google 开源的一个 TCP 拥塞控制算法,对于海外服务器来说启用 BBR 可以加快网络传输速度,降低延迟。

这里使用的还是 秋水逸冰 的一键安装脚本,脚本支持的 Linux 版本包括:CentOS6+、Debian7+、Ubuntu12+。

输入下面的命令下载运行脚本:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

等待一段时间,安装完成后脚本会询问是否重启,输入 y 确认重启,重启后输入以下命令查看是否安装完成:

sysctl net.ipv4.tcp_available_congestion_control

正常会返回 : net.ipv4.tcp_available_congestion_control = reno cubic bbr 或者 net.ipv4.tcp_available_congestion_control = bbr cubic reno

在输入:

sysctl net.ipv4.tcp_congestion_control

正常会返回: net.ipv4.tcp_congestion_control = bbr

在输入:

lsmod | grep bbr

正常会返回: tcp_bbr

相关文章:

版权声明:本文为原创文章,版权归 Mr. Ma's Blog 所有,转载请联系博主获得授权!
本文地址:https://www.misterma.com/archives/233/
如果您对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。
最后编辑:2019年12月15日 ©著作权归作者所有

发表评论

正在加载 Emoji
×