作为互联网开发人员,上网查找资料是一项必备技能。国内资料已经非常丰富,但大多数情况下,都是二手资料。为了获得一手的资料,我们可能必须利用 google
这样的搜索引擎来查找英文资料。
但是由于众所周知的原因,我们无法直接连接这些网站,因此,我们需要通过一些手段来实现科学上网。
免费的各种服务倒是常见,但是很不稳定。如果你和我一样需要稳定的科学上网,那么我是不建议使用各种免费的工具的。
所以,我今天来说一下如何利用美国的服务器来配置 shadowsocks + kcptun
实现科学上网。
阅读本文请确保你拥有
linux
服务器的基本操作知识,并且具备一般的互联网协议概念。能够比较熟练的操作命令行,否则,你看逑不懂本文。 本文命令均是在CentOS 7
上用root
用户执行的。如果你用普通用户执行,一些命令会没有权限执行。需要在命令前面加上sudo
。
我们无法直接连接我们的目标网站。但是我们可以连接我们在美国的私有服务器,而在美国的私有服务器,可以访问我们想要访问的网站。因此,科学上网的概念就是利用美国的私有服务器,对我们想要访问的网站进行代理中转,我们就间接的可以访问我们需要访问的这些网站了。
shadowsocks
工具是用于实现我上述描述的功能的。一般情况下,我们只需要配置这个,就可以实现我们的需求了。但是,由于 tcp/ip
的三次握手的原因,导致传输速率比较慢。因此,我们可以使用 kcptun
工具,对我们的 shadowsocks
进行加速,这样可以让我们更快的访问我们需要访问的网站。
也就是说:
shadowsocks
是代理工具
kcptun
是加速工具
OK
下载 shadowsocks
首先,我们到 github
去下载我们需要的软件。shadowsocks
有很多的版本,这里,我们选择比较简单可靠的 rust
版本。
其 github
版本发布地址是 https://github.com/shadowsocks/shadowsocks-rust/releases
好,由于我们的服务器是 centos 7
所以,我们在服务器上下载对应的 linux
版本
# 跳转到家目录
cd ~
# 创建下载目录(如果有,则跳过)
mkdir Downloads
# 进入下载目录
cd Downloads
# 下载软件
wget https://github.com/shadowsocks/shadowsocks-rust/releases/download/v1.6.10/shadowsocks-v1.6.10-release.x86_64-unknown-linux-musl.tar.xz
# 解压软件
tar xf shadowsocks-v1.6.10-release.x86_64-unknown-linux-musl.tar.xz
# 查看解压出来的文件
ls
好,我们通过 ls
命令,可以看到我们解压出来了三个文件 sslocal\ssurl\ssserver
我们只需要使用到 ssserver
这一个文件即可。
配置 shadowsocks
# 将 shadowsocks 服务端复制到系统程序目录
cp ssserver /usr/local/bin/
# 创建配置文件
touch /etc/shadowsocks.json
# 编辑配置文件
vim /etc/shadowsocks.json
好,我们已经创建了配置文件并且打开了编辑模式了,下面,我们在配置文件中输入下面的内容:
{
"server":"0.0.0.0",
// 这里需要你自行设置一个端口,请确保端口没有被占用
"server_port":9988,
"local_address": "127.0.0.1",
"local_port":1080,
// 这里设置你的服务密码
"password":"aaaaaaa",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1
}
以上内容中,除了我注释的两个地方根据需要进行修改,其他可以保持不变。如果你确定要修改,请一定清楚自己在做什么。
编辑完成后,保存退出。
创建 shadowsocks 服务
通过上面的配置之后,我们其实已经可以启动我们的代理服务了。但是当我们关闭终端之后,服务就会停止,这很明显不是我们想要的。
我们需要一次配置,终身使用。那么久必须把 shadowsocks
添加到系统服务中了。
# 创建服务文件
touch /usr/lib/systemd/system/ss-server.service
# 编辑服务文件
vim /usr/lib/systemd/system/ss-server.service
好,我们已经进入这个文件的编辑了。我们写入以下内容:
[Unit]
Description=shadowsocks server daemon
After=syslog.target network.target
[Service]
Type=simple
User=nobody
Group=nobody
# 关键就是这行,确定我们的程序文件,以及配置文件的路径
ExecStart=/usr/local/bin/ssserver -c /etc/shadowsocks.json
[Install]
WantedBy=multi-user.target
编辑好之后,我们保存退出。
添加到服务之后,服务并没有立即启动,因此,我们需要启动服务。
# 启动服务
systemctl start ss-server
# 将服务设置为开机启动
systemctl enable ss-server
好,到这里,我们的 shadowsocks
代理就已经配置完成了。我们可以在自己的电脑上配置纸飞机进行科学上网了。
客户端下载
windows
用户下载:https://github.com/shadowsocks/shadowsocks-windows/releases
mac
用户下载:https://github.com/shadowsocks/shadowsocks-iOS/releases
linux
用户下载:https://github.com/shadowsocks/shadowsocks-qt5/releases
linux 用户可以在自己的包管理里面搜索
shadowsocks-qt5
,用命令行安装会比较爽。 MAC 用户不推荐使用这个版本。接着往下看教程。
虽然上面配置完 shadowsocks
之后,就可以进行科学上网了,但是速度还是可以更加快的。这里我们再进行 kcptun
加速服务的配置。
下载 kcptun
首先一样,我们到 github
进行软件的下载。下载地址是:https://github.com/xtaci/kcptun/releases
版本比较多,centos 7
需要的是 amd64
版本。
# 跳转到家目录
cd ~
# 创建下载目录(如果有,则跳过)
mkdir Downloads
# 进入下载目录
cd Downloads
# 下载 kcptun
wget https://github.com/xtaci/kcptun/releases/download/v20171201/kcptun-linux-amd64-20171201.tar.gz
# 解压压缩文件
tar xf kcptun-linux-amd64-20171201.tar.gz
# 查看解压文件
ls
好,我们可以看到解压出来俩文件 client_linux_amd64\server_linux_amd64
,我们只需要用到 server_linux_amd64
这个文件。
# 将服务文件复制到系统目录并重命名为 kcptun
cp ./server_linux_amd64 /usr/local/bin/kcptun
然后就好了。
配置 kcptun 服务
安装好之后,我们需要进行配置,将 kcptun
配置为系统服务,这样可以更加方便的便于我们的使用。
# 创建 kcptun 服务文件
touch /usr/lib/systemd/system/kcptun.service
# 编辑 kcptun 服务文件
vim /usr/lib/systemd/system/kcptun.service
进入编辑模式之后,我们输入以下内容
[Unit]
Description=kcptun-server Service
After=network.target
Wants=network.target
[Service]
Type=simple
PIDFile=/var/run/kcp-server.pid
# 重要的就是下面的这句话
ExecStart=/usr/local/bin/kcptun -t "127.0.0.1:9988" -l ":9999" -mode fast2 -key 11122233
Restart=on-abnormal
[Install]
WantedBy=multi-user.target
如上,其他代码一律复制,需要配置的就是 /usr/local/bin/kcptun -t "127.0.0.1:9988" -l ":9999" -mode fast2 -key 11122233
这段内容。
"127.0.0.1:9988"
这是你的 shadowsocks
的服务地址。后面的端口号需要改成你上面配置 shadowsocks
时设置的。
":9999"
是你设置的 kcptun
的服务端口,请确保端口没有被占用。
-mode fast2
这个是规定了模式为 fast2
保持默认即可。
-key 11122233
是确定你的 kcptun
的密码。请尽量复杂一些。
编辑完成之后,保存退出。
然后执行下面两条命令:
# 启动服务
systemctl start kcptun
# 将服务设置为开机启动
systemctl enable kcptun
OK,到此为止,我们的 kcptun
加速配置就已经完成了。
但是我们的客户端需要使用支持 kcptun
的客户端才可以实现对应的支持。linux
下面可以用命令行工具来进行支持,不过设置比较复杂,我没有深入研究。由于我手上没有 windows
系统,所以,我也不清楚具体怎么设置。
这里我就只说一下 mac
是如何设置的。其他系统请自行搜索解决方案。
下载支持 kcptun
的 shadowsocks
客户端
mac
版本的下载地址: https://github.com/shadowsocks/ShadowsocksX-NG/releases
下载安装完成之后运行,菜单栏右侧应该出现一个纸飞机。
如上图所示,我们点击纸飞机,就会出现这个菜单,由于最近 mac
升级之后中文变得比较怪,为了不吓着自己,就把系统设置为英文的了。。。就这个位置,就这么设置即可。
进入服务器配置页面,在里面填写上你自己设置的各项参数,最后点击 OK ,就可以科学上网了。
本文由 FungLeo 原创,允许转载,但转载必须保留首发链接。