Skip to content
This repository has been archived by the owner on May 11, 2020. It is now read-only.

快速入门之:使用 dragonite forwarder 加速 Shadowsocks 连接

Toby edited this page Nov 18, 2017 · 4 revisions

dragonite-forwarder 是一个可以用来加速任何 TCP 连接的双向转发加速工具。其可将原本通过 TCP 协议的程序通过端口转发的方式实际由 dragonite 协议在网络中传输。

对于中国用户,一个常见的用途是可以利用 dragonite-forwarder 加速 Shadowsocks 连接速度。

前提条件

  • 一台运行了 Shadowsocks 服务端的服务器 (A),且安装了 Java 8 或以上版本,能保证可用内存至少有大约 64 MB

  • 你的电脑 (B) 能够运行 Shadowsocks 客户端,且安装了 Java 8 或以上版本,能保证可用内存至少有大约 32 MB

    本文将使用 screen 命令将程序运行在后台,如果你已掌握或习惯使用其他方式如 supervisor,可忽略讲述 screen 命令的部分。

下载

前往 Release 下载最新版 dragonite-forwarder 程序。你也可以使用我们的 Docker 镜像,但本文不针对 Docker 方式的配置进行讲解。

服务端

将下载的压缩包在服务器 A 上解压后,得到文件夹 dragonite-forwarder-[版本号]

通过 cd dragonite-forwarder-[版本号]/bin 命令进入启动脚本所在目录。

使用 screen -S forwarder 命令新建一个屏幕(如果没有 screen 命令请先安装)。

假设你的 Shadowsocks 服务器开启在 2333 端口,运行命令 ./dragonite-forwarder -s -f 2333

如果程序运行成功,你可以看到类似提示(当然,版本号可能不同)

19:09:26(-07) INFO   Dragonite Forwarder Version: v0.3.3
19:09:26(-07) INFO   SDK Version: v0.3.3
19:09:26(-07) INFO   Mux Version: v0.3.0
19:09:26(-07) INFO   Checking for updates...
19:09:27(-07) INFO   You are already using the latest version.
19:09:27(-07) INFO   Using commandline arguments

由于本文演示的是转发 Shadowsocks,而 Shadowsocks 流量本身已经加密,因此未再启用加密功能。如果你希望对 dragonite-forwarder 协议本身也进行加密,可通过 -k 参数设置密码,如 ./dragonite-forwarder -s -f 2333 -k MotherfuckingStarboy

程序运行启动后,依次按 Ctrl+AD (无 Ctrl) 脱离该屏幕,此时程序仍运行在后台。如果希望查看日志或结束程序,你可以随时通过 screen -d -r forwarder 重新连接到该屏幕进行操作。你可以用 screen -ls 命令查看当前存在的所有屏幕。

客户端

假设你已经有了该 Shadowsocks 服务器的正确配置,服务器地址为 1.2.3.4(域名也可)。

假设你目前所拥有的网络连接带宽为 10 Mbps 下行,5 Mbps 上行。

在下载解压并进入 bin 目录后,使用命令 ./dragonite-forwarder -a 1.2.3.4 -f 2333 -d 10 -u 5 启动客户端模式(如果你在上一步为服务器设置了密码,请务必也加上 -k 密码)。

如果成功启动并连接,你会看到类似提示

19:23:48(-07) INFO   Dragonite Forwarder Version: v0.3.3
19:23:48(-07) INFO   SDK Version: v0.3.3
19:23:48(-07) INFO   Mux Version: v0.3.0
19:23:48(-07) INFO   Checking for updates...
19:23:49(-07) INFO   You are already using the latest version.
19:23:49(-07) INFO   Using commandline arguments
19:23:49(-07) INFO   Server welcome message: Welcome to 1234
19:23:49(-07) INFO   Connection established with example.com/1.2.3.4:5233

此时,你本地的 2333 端口已经相当于服务器的 2333 端口。在你连接本地 2333 端口后,数据会由 forwarder 客户端通过 dragonite 协议发送至 forwarder 服务端,再由 forwarder 服务端发给 Shadowsocks 服务端。在公网的传输过程由 Shadowsocks 原本的 TCP 替换为了 dragonite 协议。

因此,请在其他设置保持不变的情况下,修改你本地 Shadowsocks 客户端的配置,服务器地址改为 127.0.0.1 端口为 2333

Shadowsocks

在客户端尤其是 Windows 每次通过命令行带参数运行 forwarder 程序可能不太方便。你可以在同目录下新建一个 args.txt 文本文件,将启动的参数复制到其中。若目录下存在该文件,程序会自动从中加载参数,此后可以直接双击运行。

args.txt

至此基本配置已经全部完成。如出现问题,请首先确认前提条件是否已完成,且每步中的操作是否正确根据自己的情况进行了调整!

forwarder 有许多其他的可选参数,欢迎查看文档自行探索!

尽情享受高速吧~

Speed Test

关于共享给其他平台客户端 (Android / iOS ...)

目前 dragonite 还没有官方的移动端 app,但仍有方法可以间接使用。

如果你能够运行 dragonite-forwarder 的设备与你的移动设备在同一个局域网中,你可以在开启 dragonite-forwarder 的情况下让移动设备的 Shadowsocks 客户端连接到其转发端口。

例如,你的电脑局域网 IP 地址为 192.168.1.2,运行在其上面的 forwarder 转发端口为 2333,则将移动端 Shadowsocks 相应的服务器配置的远程地址改为 192.168.1.2 2333 端口。