# yarrick/iodine

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/yarrick-iodine).**

7,913 stars · 595 forks · C · ISC

## Links

- GitHub: https://github.com/yarrick/iodine
- Homepage: https://code.kryo.se/iodine
- awesome-repositories: https://awesome-repositories.com/repository/yarrick-iodine.md

## Topics

`dns` `dns-tunnel` `hacktoberfest` `iodine` `tunnel` `vpn`

## Description

Iodine is a DNS tunneling tool that encapsulates IPv4 traffic inside DNS queries and responses, enabling network connectivity through restrictive firewalls that only permit DNS traffic. It operates as a client-server system where the server listens for DNS queries on a delegated subdomain and creates virtual tunnel interfaces for clients, while the client establishes connections and routes traffic over the tunnel.

The project distinguishes itself through several key capabilities: it supports up to 16 simultaneous users on a single server with automatic IP assignment, secures tunnel connections using an MD5-based challenge-response authentication handshake, and optimizes downstream throughput up to 1 Mbit/s by using compressed payloads delivered via NULL-type DNS replies. It also includes automatic packet-size probing to maximize throughput without fragmentation, a raw UDP fallback mechanism when DNS queries are blocked, and the ability to change the client's default gateway to route all traffic through the tunnel.

The documentation covers server administration tasks such as verifying DNS delegation, hosting the server, and managing multi-user access, as well as client-side connection setup and throughput optimization.

## Tags

### Networking & Communication

- [DNS Tunnels](https://awesome-repositories.com/f/networking-communication/tunneling-proxies/dns-tunnels.md) — Encapsulates IPv4 packets inside DNS query and response messages to bypass restrictive firewalls.
- [DNS](https://awesome-repositories.com/f/networking-communication/network-tunnels/tunnel-managers/tunnel-server-hosting/dns.md) — Ships a server that listens for DNS queries and creates virtual tunnel interfaces for clients. ([source](https://cdn.jsdelivr.net/gh/yarrick/iodine@master/README.md))
- [DNS Tunnel Server Administrations](https://awesome-repositories.com/f/networking-communication/network-tunnels/tunnel-managers/tunnel-server-hosting/dns-tunnel-server-administrations.md) — Runs a server that accepts DNS queries on a delegated subdomain and creates virtual tunnel interfaces for clients.
- [DNS Tunnel Server Hostings](https://awesome-repositories.com/f/networking-communication/network-tunnels/tunnel-managers/tunnel-server-hosting/dns-tunnel-server-hostings.md) — Hosts a server that listens for DNS queries on a delegated subdomain and creates virtual tunnel interfaces for clients.
- [DNS Tunnel Client Connections](https://awesome-repositories.com/f/networking-communication/tunneling-proxies/dns-tunnels/dns-tunnel-client-connections.md) — Establishes a client connection to a remote DNS tunnel server, falling back to raw UDP when DNS queries are blocked. ([source](https://cdn.jsdelivr.net/gh/yarrick/iodine@master/README.md))
- [IPv4-over-DNS Encapsulations](https://awesome-repositories.com/f/networking-communication/tunneling-proxies/dns-tunnels/ipv4-over-dns-encapsulations.md) — Encapsulates IPv4 traffic inside DNS queries and responses to enable network access through restrictive firewalls. ([source](https://code.kryo.se/iodine))
- [IPv4-over-DNS Tunnels](https://awesome-repositories.com/f/networking-communication/tunneling-proxies/dns-tunnels/ipv4-over-dns-tunnels.md) — Encapsulates IPv4 traffic inside DNS queries and responses to bypass restrictive firewalls that only allow DNS traffic.
- [DNS Tunnel Throughput Optimizations](https://awesome-repositories.com/f/networking-communication/network-tunnels/high-throughput-tunnels/dns-tunnel-throughput-optimizations.md) — Maximizes downstream throughput up to 1 Mbit/s using compressed payloads, NULL-type replies, and packet-size probing.
- [Multi-User Tunnel Sharing](https://awesome-repositories.com/f/networking-communication/network-tunnels/tunnel-managers/tunnel-server-hosting/multi-user-tunnel-sharing.md) — Supports up to 16 simultaneous users on a single server with automatic IP assignment. ([source](https://code.kryo.se/iodine))
- [Automatic Packet-Size Probes](https://awesome-repositories.com/f/networking-communication/packet-size-limit-determination/automatic-packet-size-probes.md) — Implements automatic packet-size probing to maximize DNS tunnel throughput without fragmentation.
- [DNS Tunnel Full-Traffic Routers](https://awesome-repositories.com/f/networking-communication/traffic-routing-rules/selective-traffic-routing/full-tunnel-vpn-routers/dns-tunnel-full-traffic-routers.md) — Forwards all network traffic over the DNS tunnel by changing the default gateway and configuring NAT on the server. ([source](https://cdn.jsdelivr.net/gh/yarrick/iodine@master/README.md))
- [Challenge-Response Authentications](https://awesome-repositories.com/f/networking-communication/traffic-routing/secure-tunnels/tunnel-client-authentication/challenge-response-authentications.md) — Secures tunnel connections with an MD5-based challenge-response authentication handshake. ([source](https://code.kryo.se/iodine))
- [Default Gateway Redirectors](https://awesome-repositories.com/f/networking-communication/tunneling-gateways/default-gateway-redirectors.md) — Changes the client's default gateway to route all network traffic through the DNS tunnel interface.
- [Multi-User](https://awesome-repositories.com/f/networking-communication/tunneling-proxies/dns-tunnels/multi-user.md) — Allows up to 16 simultaneous users to connect to a single server with automatic IP assignment on each tunnel interface.
- [Multi-User DNS Tunnel Servers](https://awesome-repositories.com/f/networking-communication/tunneling-proxies/dns-tunnels/multi-user-dns-tunnel-servers.md) — Allows up to 16 simultaneous users to connect to a single DNS tunnel server with automatic IP assignment.
- [UDP Fallback Strategies](https://awesome-repositories.com/f/networking-communication/udp-protocol-routing/udp-fallback-strategies.md) — Falls back to raw UDP transport when DNS queries are blocked, maintaining tunnel connectivity.
- [Multi-Client Tunnel Interfaces](https://awesome-repositories.com/f/networking-communication/virtual-network-interfaces/multi-client-tunnel-interfaces.md) — Assigns unique IPs to up to 16 simultaneous users on a single server-side tunnel interface.

### Security & Cryptography

- [Challenge-Response Authenticators](https://awesome-repositories.com/f/security-cryptography/authentication-clients/challenge-response-authenticators.md) — Secures tunnel connections with an MD5-based challenge-response handshake to verify client identity.
- [Tunnel](https://awesome-repositories.com/f/security-cryptography/authentication-clients/challenge-response-authenticators/tunnel.md) — Secures tunnel setup with a challenge-response login hashed by MD5 and filters out packets from unauthorized IPs.
- [Authenticated Tunneling](https://awesome-repositories.com/f/security-cryptography/token-authentication/authenticated-tunneling.md) — Secures DNS tunnel setup with challenge-response login and filters unauthorized IPs.
- [NULL-Reply Payload Deliveries](https://awesome-repositories.com/f/security-cryptography/payload-encoders/dns-payload-delivery/null-reply-payload-deliveries.md) — Uses DNS NULL record type replies to carry compressed binary data for high downstream throughput.
