Skip to content

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

udpdeminer-binary

A TDD(Time Division Delivery) software that continuously delivery UDP package to random paths or customizable tunnels (hook tools), and aggressive on final destination to maximize network IO performance.

Feature:

  1. UDP forward on continuous random hop path change.
  2. Load balance, multiple next-hop servers.
  3. M to N port range forward.
  4. Customize path wrapper.
  5. No server-side installation for most UDP applications, including VPN.

Network Topology Example

Bridge:

UDP client >> udpdeminer -->> Internet -->> UDP server

Wrapper hook:

                            > wrapper c1 --> ISP --> wrapper s1 >>
 VPN client --> udpdeminer >> raw UDP package ( TDD path hop )  >> (DNAT, or None) -> VPN server
                            > wrapper c2 --> ISP --> wrapper s2 >>

NAT Traversal, with Link2Lan hook:

 UDP client --> udpdeminer(NAT/Public IP) >><< NAT/Reverse punching >><< UDP Relay ----> UDP server

Expert: Remove down-stream relay-in-the-middle. complex setup with --hookpath, --dummystr, link2lan

                            <<<< DOWN, raw udp      <<<< UDP server  <----> example.com
 UDP client --> udpdeminer                                ^^^^
                            >>>> UP, via tunnel/CDN >>>> relay

Continues DNS updating (NOT onetime resolve on startup), version 1.5.2+:

./udpdeminer -l 12740 -s myip.iloveyou.null -p 51820 --dnsresolver 104.3.2.1:5353 --dnsinterval 300
On 104.3.2.1, dnsmasq --port=5353 --host-record=myip.iloveyou.null,2001:db8::123

hookpath heartbeat event, e.g. ddns update. version 1.5.2+:

./udpdeminer -s 1.2.3.4 -p 5678 --hookpath echo --hookheartbeat 2 --loglevel 4

Quick Start Sample:

./udpdeminer --help

Client:
wireguard wg0.conf: Endpoint=[::1]:12740
./udpdeminer -s wgip -p 51820
Server(optional, replace DNAT):
./udpdeminer -l 51821-51830 -s ::1 -p 51820

More Start Options:

Windows bat

chcp 65001
::WIN CR LF UTF-8
cd /d "%~dp0"

for /f "usebackq eol=# tokens=1,* delims==" %%A in ("env.ini") do (
    set "%%A=%%B"
)

taskkill /F /IM udpdeminer-x86_64-pc-windows-gnu.exe
start /min udpdeminer-x86_64-pc-windows-gnu.exe -b 0.0.0.0 -l 12740 -s %SRVIP% -p %SRVPORT% --outbound 0.0.0.0 -i 15 --hookpath "winhook.bat"

Linux supervisor

[program:udpdeminer]
environment=MYKEYA="myvalue_a",
        MYKEYB="myvalue_b"
command=/path/to/udpdeminer-x86_64-unknown-linux-musl -l 12740 -s 2001:db8::1000 --maxoffset 10000 -p 1234 --outbound :: -i 15 --hookpath /path/to/hook6.sh
autostart=true
autorestart=true

Compatibility:

Wireguard, OpenVPN, juicity, hysteria, tinyfecVPN, Cloudflare WARP.

Tips:

Idlehop, avoid UDP stream cutting out.

Force hop, avoid long-time connections being QoS.

Hook, wrap the raw UDP package.

Hookip, customize your next hop.

dummystr, print env in script to get UD_DUMMYENDPOINT instance value.

About

Maximize UDP network IO performance.

Resources

Stars

27 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors