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.
- UDP forward on continuous random hop path change.
- Load balance, multiple next-hop servers.
- M to N port range forward.
- Customize path wrapper.
- No server-side installation for most UDP applications, including VPN.
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
Client:
wireguard wg0.conf: Endpoint=[::1]:12740
./udpdeminer -s wgip -p 51820
Server(optional, replace DNAT):
./udpdeminer -l 51821-51830 -s ::1 -p 51820
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"
[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
-l, --listen <LISTEN> Listen port. Can be range:12740-12741 [default: 12740-12741]
-b, --bind <BIND> Inbound listen IP [default: ::]
--outbound <OUTBOUND> Outbound IP. Can be ifname-index for dynamic IP. e.g. eth0-1 [default: ::]
-s, --server <SERVER> Next hop Domain or IP. multiple separate by comma. e.g. localhost,::1,127.0.0.1
--maxoffset <MAXOFFSET> Append hourly changing random offset to selected server. IPv6 only [default: 0]
-p, --port <PORT> Next hop Port number. Can be range: 12740-12741
-i, --idlehop <IDLEHOP> Seconds to hop when no data recieved [default: 28]
-f, --forcehop <FORCEHOP> Seconds to force hop. Can be range for randomization [default: 600-2400]
--hookpath <HOOKPATH> Path to external tools. To dynamically create wrapper servers, or handle hop events [default: ]
--hookip <HOOKIP> Redirect next hop to this IP, rewrite parameter $3 to hookip:port. (see more with '--help') [default: ]
--hookports <HOOKPORTS> Redirect next hop port to the one in this range, rewrite parameter $3 to hookip:port [default: 12850-12899]
--dummystr <DUMMYSTR> DIY a random endpoint stored in env UD_DUMMYENDPOINT every hop. can be used in hook scripts [default: ]
--loglevel <LOGLEVEL> Log level 0:no 1:error 2:warn 3:info 4:debug [default: 2]
Wireguard, OpenVPN, juicity, hysteria, tinyfecVPN, Cloudflare WARP.
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.