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+A 与 D (无 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。

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

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

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

尽情享受高速吧~

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

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

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

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

网络加速 java_快速入门之:使用 dragonite forwarder 加速 Shadowsocks 连接相关推荐

  1. unformat方法java_快速入门介绍Java中强大的String.format()

    快速入门介绍Java中强大的String.format() 发布于 2020-12-12| 复制链接 摘记: 前言从 Java 5.0 开始,String 类新增了一个强大的字符串格式化方法 form ...

  2. python3 爬虫实例_【实战练习】Python3网络爬虫快速入门实战解析(上)

    原标题:[实战练习]Python3网络爬虫快速入门实战解析(上) 摘要 使用python3学习网络爬虫,快速入门静态网站爬取和动态网站爬取 [ 前言 ] 强烈建议:请在电脑的陪同下,阅读本文.本文以实 ...

  3. pytorch快速入门与实战——三、Unet实现

    专栏目录:pytorch(图像分割UNet)快速入门与实战--零.前言 pytorch快速入门与实战--一.知识准备(要素简介) pytorch快速入门与实战--二.深度学习经典网络发展 pytorc ...

  4. Turtlebot4快速入门教程-A1激光雷达检测

     系列文章目录: Turtlebot4快速入门教程-目录 TurtleBot4快速入门教程-硬件介绍 Turtlebot4快速入门教程-软件综述 TurtleBot4快速入门教程-远程PC安装 Tur ...

  5. TurtleBot4快速入门教程-软件综述

     系列文章目录: Turtlebot4快速入门教程-目录 TurtleBot4快速入门教程-硬件介绍 Turtlebot4快速入门教程-软件综述 TurtleBot4快速入门教程-远程PC安装 Tur ...

  6. TurtleBot4快速入门教程-PS4手柄控制

     系列文章目录: Turtlebot4快速入门教程-目录 TurtleBot4快速入门教程-硬件介绍 Turtlebot4快速入门教程-软件综述 TurtleBot4快速入门教程-远程PC安装 Tur ...

  7. 存储快速入门——【1】网络存储主要技术(NAS、SAN、SCSI、CIFS、zone)

    存储快速入门--[1]网络存储主要技术 1 NAS简介(网络) 在20世纪80年代初,英国纽卡斯尔大学布赖恩.兰德尔教授 ( Brian Randell)和同事通过"纽卡斯尔连接" ...

  8. Python3网络爬虫快速入门实战解析(一小时入门 Python 3 网络爬虫)

    Python3网络爬虫快速入门实战解析(一小时入门 Python 3 网络爬虫) https://blog.csdn.net/u012662731/article/details/78537432 出 ...

  9. 网络编程懒人入门(三):快速理解TCP协议一篇就够

    1.前言 本系列文章的前两篇<网络编程懒人入门(一):快速理解网络通信协议(上篇)>.<网络编程懒人入门(二):快速理解网络通信协议(下篇)>快速介绍了网络基本通信协议及理论基 ...

最新文章

  1. Mozilla Firefox 54 今起支持开启e10s多进程功能
  2. Maven搭建springMVC+spring+hibernate环境
  3. 成功解决VirtualBox is not installed. Please re-run the Toolbox Installer and try again.
  4. Boost:基于Boost的管道pipeline通信
  5. c语言 变量 定义 使用,C语言为什么要规定对所用到的变量要“先定义,后使用”...
  6. sharding-jdbc学习
  7. 《敏捷软件开发-原则、方法与实践》-Robert C. Martin
  8. 蓝桥杯单片机篇:NE555 频率测量
  9. 检查电脑链接的网络是否支持ipv6
  10. Magoshare Data Recovery使用教程:在mac上恢复找回删除的丢失文件
  11. .NET中栈和堆的比较
  12. Terminal终端命令(全)
  13. dnf服务器维护充钱能到账吗,DNF付费服务器故障!上百万点券充值石沉大海,程序员别睡觉啦!...
  14. word之中快速插入已有公式的几种方法
  15. CentOS 8 修改DNS地址
  16. 【大数据】Linkis是什么呢
  17. bzoj2101:[USACO2010 DEC]TREASURE CHEST 藏宝箱
  18. Python实现一键生成微信好友头像墙
  19. 斜线“\”与反斜线“/”应用场景的整理
  20. 为什么在马云成功前就有那么多影像留下来?

热门文章

  1. ABP官方文档翻译 1.2 N层架构
  2. Android 缓存处理和图片处理
  3. Android Studio 初探
  4. 让电脑替你说:"I IOVE YOU"
  5. springboot jar包运行中获取资源文件
  6. 未能找到文件“\bin\roslyn\csc.exe”
  7. arm-linux-gcc 命令未找到问题
  8. 稳定土厂拌设备控制系统-基本介绍(图)
  9. linux vim编辑
  10. 使用 ConnectionStringBuilder 对象创建精确连接字符串