View on GitHub

An OpenVPN TCP connector

Connect OpenVPN TCP clients to an UDP server

openvpn-tcp-connector

Adapter between an UDP OpenVPN server and TCP OpenVPN clients

The program ovpn_tcp.pl accepts clients on a TCP port and splits the incoming data stream into chunks that are forwarded as UDP packets to the OpenVPN server. Response packets from the server are streamed back to the client. See perldoc for details.

This is mostly a proof-of-concept and an exercise in using the POE framework. Almost all of the code is taken from examples in the perldoc of the used modules.

The conversion between the TCP stream and the UDP packets is based on the protocol description in ssl.h.

Also provided is a systemd unit description ovpn_tcp.service that enables ovpn_tcp.pl as a systemd service.

back