Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
GitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
This project is incomplete, abandoned, and obsolete. Use https://github.com/wangyu-/udp2raw-tunnel instead. --- This program hides UDP traffic as TCP traffic in order to bypass certain firewalls. It is not designed to bypass rigorous deep packet inspection; for example, there is no window scaling; all data received as UDP will be immediately transmitted as TCP with a fixed window size. There is also no retransmission, although that could be implemented (at a detriment to the overall network health). This program is intended to be C99 and POSIX compatible, and requires only libev. If desired, it should be easily portable to use libevent instead, as it uses only basic event-based programming concepts. Example usage: # gmake [ ... ] # ./test.sh IPv4 test succeeded. IPv6 test succeeded. server# openvpn --config ... --proto udp6 --local ::1 server# udpintcp server server 11940 ::1 1194 client# udpintcp client ::1 1194 server 11940 client# openvpn --config ... --proto udp6 --remote ::1 11940 I've abandoned this project because I don't think it's that useful in practice, since meddling middleboxes tend to screw with the oddities required by UDP in TCP (no retransmissions, for one). For tunneling, SOCKS seems like a better solution, especially since QUIC is dead.