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

dragonite forwarder

Toby edited this page Oct 25, 2017 · 10 revisions

A TCP (over Dragonite) relay program that can be used to accelerate any TCP connection between your clients and servers.

Diagram

usage: dragonite-forwarder
 -a,--address <address>                     Remote server address for
                                            client / Bind address for
                                            server
 -d,--download-mbps <mbps>                  Download Mbps for client
    --debug                                 Set the logging level to DEBUG
 -f,--forwarding-port <port>                Local port for client /
                                            Forwarding port for server
 -h,--help                                  Help message
 -l,--limit-mbps <mbps>                     Max Mbps per client for server
 -m,--mtu <size>                            MTU of underlying Dragonite
                                            sockets
 -p,--port <port>                           Remote server port for client
                                            / Bind port for server
 -r,--forwarding-address <address>          Forwarding address for server
 -s,--server-mode                           Enable server mode
 -u,--upload-mbps <mbps>                    Upload Mbps for client
 -w,--welcome <msg>                         Welcome message of server
    --web-panel                             Enable Web Panel of underlying
                                            Dragonite sockets (Bind to
                                            loopback interface)
    --web-panel-public                      Enable Web Panel of underlying
                                            Dragonite sockets (Bind to all
                                            interfaces)
    --window-size-multiplier <multiplier>   Send window size multiplier of
                                            underlying Dragonite sockets
                                            (1-10)

Download from Release

Sample configuration

Assume that we have a proxy server running on TCP port 8080, we could use command

./dragonite-forwarder -s -f 8080

For clients,

./dragonite-forwarder -a example.com -f 8080 -d 100 -u 10

will connect to Dragonite Forwarder server at example.com, telling the server our maximum download speed is 100 Mbps, upload speed is 10 Mbps. If all goes well, your local TCP port 8080 will now act as TCP port 8080 of that server. Let your local applications connect to the proxy server localhost:8080 to use the proxy server at example.com:8080 (and enjoy faster connection speeds)

You can also forward the connections to another server, like

./dragonite-forwarder -s -r www.google.com -f 443

Dragonite Forwarder uses UDP port 5233 by default (if there's no -p argument). Configure your firewall settings if necessary.

See the usage section above for more optional settings.

You can also create a text file stored in the directory args.txt to save your command line arguments. The application will load arguments from that file instead of using real command line arguments. This can be used to simplify the launch process.

Precautions

Correct bandwidth information is very important for Dragonite to operating at peak performance. If you are not sure, run several speed tests first.

Dragonite Forwarder has a default MTU (maximum transmission unit, sets an upper bound on the size of UDP packets) of 1300. The receiver's buffer size is also based on the value of this option. If you need to modify this value, make sure that the clients and servers have the same MTU value.

The window size multiplier option is like the "aggressiveness" of the sender. If Dragonite Forwarder is not fully utilizing the bandwidth, try to increase this value step by step.