IPv6 is the way of the future, available right now (for most of us) via tunneling. It's neat to play with, but some deamons don't support it. That's where 6translator comes in.

6translator listens for connections over IPv6, creates connections on IPv4, then shuffles data between the two. It makes legacy IPv4-only daemons available to the IPv6 internet.


$ 6translator -6 [hostname,]port -4 [hostname,]port [-f]

-6 , Specifies the (IPv6) host and port to listen on.

-4 , Specifies the (IPv4) host and port to connect to.

-f Stay in foreground (handy for debugging).

-6 and -4 must specify at least a port. If no hostnames are specified, it listens on any (IPv6) address and connects to localhost.

If -f is specified, 6translator runs in the foreground and logs to stderr. Otherwise, it daemonizes and logs to syslog.


To allow IPv6 clients to connect to your IPv4 IRC server on port 6668, use:

$ 6translator -6 6668 -4 6667

If your ircd only listens on the IPv4 addresses, you can use the same port by specifying the IPv6 address to listen on:

$ 6translator -6 host6name,6667 -4 6667

If you want to forward IPv6 connections to an IPv4 daemon on another server, you can specify the IPv4 hostname:

$ 6translator -6 6667 -4 irc.example.org,6667


All clients that connect through your 6translator daemon will look like they're connecting from the host where 6translator runs. This might confuse your logging.


Licensed under the MIT License. Use it as you will.


Source on GitHub.