Lightweight UDP forwarder and UDP over ICMP software
Mostly used it to combat DPI when using popular VPN protocols such as Wireguard and OpenVPN
Simply forwarding single local port to another:
forwarder -l 0.0.0.0:1001 -r 127.0.0.1:1002
Forwarding UDP and encrypting packets via XOR encryption
(i'm using forwarder on top of other protocols such as Wireguard that already has strong encryption so the xor is only for confusing DPI):
forwarder -l 0.0.0.0:1001 -r 127.0.0.1:1050 -p some_secret
now, packets delivered to port 1050
are also encrypted via a secret so you need also another forwarder to decrypt packets and forward it to the actual port (1002):
forwarder -l 127.0.0.1:1050 -r 127.0.0.1:1002 -p some_secret
Forwarding UDP packets over ICMP:
forwarder -l 0.0.0.0:1001/udp -r 127.0.0.1:1050/icmp
forwarder -l 127.0.0.1:1050/icmp -r 127.0.0.1:1002/udp
Warning
UDP over ICMP currently may not work behind NAT or NAPT, because forwarder doesn't try to simulate real icmp handshake (request, reply) and only sends echo request and also the sequence and id of icmp packet is used as source and destination port to avoid further MTU issues, also i'm using forwarder only on servers so the main reason for this behavior is that.