注意:本文已经过时,点击查看文章更新(2022)
dragonite(快龙)的作者可能是个神奇宝贝的死忠粉……
什么是dragonite
Dragonite 是一个基于 UDP 的可靠传输协议,能针对高丢包与不稳定的网络极大提高传输速度。本项目有一系列基于 Dragonite 协议的应用,例如 TCP 双边加速流量转发工具与加密 SOCKS5 代理。
说明
由于工作需要,开始正式学习使用Linux,所以【 探索Ubuntu: XXX 】系列会一直更新下去~
现在,从一台全新的Ubuntu 17.04开始吧!
操作概览
- 安装SS服务,并成功连上远程服务器
- 安装JAVA运行环境(JRE)
- 安装Dragonite,加速SS(Ubuntu / MacOS / Windows)
- 自定义alias
安装shadowsocks
服务器端
安装
1 | (sudo) apt-get install python-pip |
创建配置文件
1 | (sudo) touch ~/ss_config |
按下 i 进入编辑模式,输入
1 | { |
按 :wq! 保存,并退出。
开启服务
1 | (sudo) ssserver -c ~/ss_config # 前台开启 |
客户端 (Linux on Ubuntu / Unix on MacOS)
安装
1 | (sudo) apt-get install python-pip |
创建配置文件
1 | (sudo) touch ~/ss_config |
按下 i 进入编辑模式,输入
1 | { |
按 :wq! 保存,并退出。
开启服务
1 | (sudo) sslocal -c ~/ss_config # 前台开启 |
不出意外的话,你现在能够正确的连接到你远程服务端的SS。
如果你希望全局(所有程序)走SS流量的话,可以通过 [系统设置]-[网络]-[网络代理] 更改你的设置
别忘了点 【应用到整个系统】哟~!
如果你只希望让Chrome走SS的话,需要进入Chrome商店下载SwitchyOmega的代理插件,配置和这个类似。
Windows客户端
Win7客户端:百度云盘 提取码:7ghm
Win10客户端:百度云盘 提取码: nqba
Windows下的客户端拥有GUI,参数和服务器上以上所配置的参数并无二致,这里就不再赘述。
请确保你能正确地连接到远程服务器后,再继续下面的内容。
打开 Google 试试吧!
配置JRE环境
dragonite 需要JAVA环境,鉴于网络上已经有很多Windows下安装JAVA环境的优秀分享,这里着重讲下Ubuntu下的JAVA环境安装(也是相当简单了……)。
通过页面 https://java.com/zh_CN/download/linux_manual.jsp 下载合适的JRE压缩包,这里,我下载的是jre-8u151-linux-x64.tar.gz这个文件。
解压tar包
1 | tar -zvxf jre-8u151-linux-x64.tar.gz |
你得到了一个叫做 jre1.8.0_151 的文件夹,移动它到/usr/java
1 | mkdir /usr/java |
写入系统变量
1 | cd /etc |
按 i 进入编辑模式,在文档的最后面添加
1 | export JAVA_HOME=/usr/java |
按下 esc :wq! 保存文件,如果无法保存,请检查你是否使用了超级管理员(sudo)
更新文件,使其立刻生效
1 | source /etc/profile |
查看JAVA版本
1 | java -version |
若出现以上的版本提示,说明JAVA环境配置成功
安装Dragonite
下载 Dragonite-forwarder Release
解压tar文件
1 | tar -zvxf dragonite-forwarder-0.3.3.tar |
你得到了一个 dragonite-forwarder-0.3.3/ 文件夹
1 | cd dragonite-forwarder-0.3.3/bin |
服务器端
安装screen
1 | (sudo) apt-get install screen |
确保你在 dragonite-forwarder-0.3.3/bin/ 目录下执行以下操作
1 | screen -S forwarder |
如果你成功了,你会看到类似下面的提示
1 | 19:09:26(-07) INFO Dragonite Forwarder Version: v0.3.3 |
按下 ctrl + a, 松开, 按 d. 就能正确地离开当前屏幕
你可以随时通过
1 | screen -d -r forwarder |
回到forwarder屏幕
你还可以使用下面的命令,查看当前所有使用中的屏幕
1 | screen -ls |
客户端 (Linux on Ubuntu / Unix on MacOS)
确保你在 dragonite-forwarder-0.3.3/bin/ 目录下执行以下操作
连接到远程dragonite服务
1 | ./dragonite-forwarder -a 1.2.3.4 -f 10800 -d 10 -u 5 |
如果能够正确连接到远程Dragonite,将会有下面的类似提示
1 | 19:23:48(-07) INFO Dragonite Forwarder Version: v0.3.3 |
还记得ss_config这个文件吗?
它是sslocal的配置文件,现在我们要稍微修改一下它,让它通过Dragonite来传输我们的代理数据
1 | vi ~/ss_config |
按下 i 进入编辑模式,修改
1 | { |
按 :wq! 保存,并退出。
Windows SS客户端 配置和这个类似
Dragonite-forwarder for Windows客户端
进入 dragonite-forwarder-0.3.3/bin/ 目录,双击打开 args.txt 文件,填入
1 | -a 1.2.3.4 -f 10800 -d 10 -u 5 |
保存,双击 dragonite-forwarder.bat
成功后会看到类似下面的信息
1 | 19:23:48(-07) INFO Dragonite Forwarder Version: v0.3.3 |
最后一步
停止当前运行的sslocal服务,重新运行新配置下的sslocal服务
1 | (sudo) sslocal -c ss_config -d start |
现在,打开 Google 试试吧!
程序“昵称”
看到这里,你一定会觉得很麻烦。
为啥每次都要干这么多事呢,还有这些参数乱七八糟的,一不留神就记混了。
所以引入了alias,妈妈再也不用担心我忘记命令啦~
创建bash文件
1 | cd dragonite-forwarder-0.3.3/bin/ |
按下 i 进入编辑模式,输入
1 | # 注意,这里填入的是绝对路径 |
按下 :wq! 保存文件并且退出vim
使其变为可执行文件
1 | sudo chmod 777 run.sh |
现在,你可以使用 ./run.sh 来一键运行Dragonite和ShadowSocks了
更进一步
虽然run.sh很方便,但是每次都要进入目录,然后
1 | ./run.sh |
还是觉得不爽,这个时候,我们就可以使用alias啦!
1 | vi ~/.bashrc |
在文档的最后追加
1 | alias dragon='sh ~/dragonite-forwarder-0.3.3/bin/run.sh' |
按下 esc :wq! 保存!
大功告成
使用source让它立刻生效
1 | source ~/.bashrc |
现在试试吧,直接在终端中输入 dragon, 一键开启 SS+Dragonite
2022年更新
- 对于ubuntu18.04以上的用户来说,需要关闭系统的端口防火以使外部流量进入
1 | $ sudo ufw disable |
或者将目标端口加入
1 | $ sudo ufw allow $your_target_port |
使用
chacha20-ietf-poly1305 /aes-256-gcm 进行加密使用随机密码
1 | $ openssl rand -base64 16 |
不要使用
fast_open ,或将它的值设为false 如果愿意,使用 Trojan-Go 代替 ss (需要自备域名)
1 | $ source <(curl -sL https://git.io/trojan-install) |