Skip to content

Latest commit

 

History

History
56 lines (32 loc) · 1.51 KB

README.md

File metadata and controls

56 lines (32 loc) · 1.51 KB

UDP forwarder

A simple UNSAFE tool to encrypt / hide your UDP packets. Trying to trick The Great Firewall deep learning VPN detection model. The packet can be easily decrypted if attacker checks the source code.

This tool is usually used with OpenVPN, to avoid being deep-learned by the GFW. OpenVPN already encrypted the packets, so I needn't do it again.

NOTE

DO NOT USE MASTER BRANCH. It's still under debugging. (the connection migration is not stable)

Design

explain.png

Build

mkdir build && cd build
cmake .. && make
./udp_forwarder_ng [args ...]

Common Deployment

solu.png

Common mistake

If you run OpenVPN and udp_forwarder on the same PC, you won't access the Internet successfully. If you did it, please think again and you'll realize how stupid you are.

Naive performance test

Note: the connection setup procedure maybe a little slow, but it doesn't matter.

  • Latency

with proxy: (encrypted OpenVPN + encrypted&obfs udp_forwarder_ng) 70.386ms

without proxy: 0.475ms + 68.578ms = 69.053ms

overhead (OpenVPN+Forwarder): 1.333ms

Known bug

Every UDP Forwarder, will drop the first client2server packet. (Doesn't matter).

Every UDP Forwarder, will drop

I assume that every connection has a unique port. search for comment tag 1632