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

dragonite proxy 中文介绍

Toby edited this page Feb 20, 2018 · 12 revisions

一个基于 dragonite 协议,带有强大规则系统的加密SOCKS5代理。

usage: dragonite-proxy
 -a,--address <address>                     Remote server address for
                                            client / Bind address for
                                            server
    --allow-loopback                        Allow clients to access the
                                            local loopback address of
                                            server
 -c,--config <path>                         JSON config file
 -d,--download-mbps <mbps>                  Download Mbps for client
    --debug                                 Set the logging level to DEBUG
    --dscp <value>                          Set DSCP value in the IP
                                            headers
 -h,--help                                  Help message
 -k,--password <xxx>                        Encryption password for both
                                            client and server
 -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,--acl <path>                            ACL file for client
 -s,--server-mode                           Enable server mode
    --skip-update                           Skip the update check
 -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)
 -x,--socks5-port <port>                    Local SOCKS5 proxy port for
                                            client

从Release页下载

配置样例

你也可以使用我们的 Docker 镜像部署服务端

注意: 使用命令行参数作为配置 不方便保存与分享!建议查看 JSON 方式

假设你有一台服务器 example.com,可以使用如下命令

./dragonite-proxy -s -k uMadBro -p 27000 -l 100

将服务端开在 UDP 27000 端口,限制每个客户端最大速度为 100 Mbps,用密码 uMadBro 加密。

对于客户端,

./dragonite-proxy -a example.com -p 27000 -k uMadBro -d 100 -u 20 -r acl.txt

会连接到 example.com:27000,设置本地网络连接速度为 100 Mbps 下行,20 Mbps 上行。使用密码 uMadBro,加载分流规则文件 acl.txt

程序在没有用 -p 参数指定端口的情况下默认使用 UDP 5234 端口。请根据具体情况调整你的防火墙规则。

如何编写规则文件

客户端会默认在 1080 端口提供一个完整的支持 TCP 与 UDP 转发的 SOCKS5 代理

你也可以在目录下建立一个 args.txt 文件,存放启动的命令行参数。如果存在该文件,程序会优先从文件中读取命令参数。此特性可以用来简化启动流程,如在 Windows 下就可直接双击 bat 启动而无需反复通过命令提示符输入参数。

JSON

你可以用 JSON 配置文件代替参数,

./dragonite-proxy -c Japan1.json

许多字段是可选的,详情见下面

服务端 JSON 配置

最简单的服务端配置只需要两个字段:

{
  "server": true,
  "password": "blahblah"
}

所有支持的字段:

{
  "server": true,
  "addr": "example.com",
  "port": 9299,
  "password": "blahblah",
  "limit": 100,
  "welcome": "GTFO of my server!",
  "loopback": false,
  "mtu": 1300,
  "multiplier": 4,
  "webpanel": true,
  "paneladdr": "127.0.0.1",
  "panelport": 8088
}

客户端 JSON 配置

最简单的客户端配置只需要四个字段:

{
  "addr": "example.com",
  "password": "blahblah",
  "up": 20,
  "down": 100
}

所有支持的字段:

{
  "server": false,
  "addr": "example.com",
  "port": 9299,
  "socks5port": 1081,
  "password": "blahblah",
  "up": 20,
  "down": 100,
  "acl": "chn.txt",
  "mtu": 1300,
  "multiplier": 4,
  "webpanel": true,
  "paneladdr": "127.0.0.1",
  "panelport": 8088
}

关于加密

所有流量都用 AES-128-CBC 加密,密钥从 PBKDF2WithHmacSHA1 生成。协议本身也进行了加密,因此错误的密码会生成无法解密的无效数据包,被静默丢弃。因此密码错误通常只能看到类似“无法连接”的错误提示。

注意事项

正确的带宽数值对 Dragonite 的运行至关重要。如果你不确定,请先进行几次网速测试获得准确的信息。

Dragonite Proxy 默认的 MTU (即每个 UDP 包的最大大小) 是 1300。如果你需要进行修改(请先确认你了解这是什么),请保证客户端与服务端的数值一致。

window size multiplier 选项类似于发送方的“激进程度”。如果 Proxy 由于自动 window 大小过小限制了速度,可以尝试逐步提高这个倍数。

Clone this wiki locally