This program hides UDP traffic as TCP traffic in order to bypass certain firewalls.
C Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
src
.gitignore
COPYING
LICENSE
Makefile
README
test.sh

README

[This project is abandoned, see the end of this README for more information.]

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.