IODINE-CLIENT-START(8)

πŸ’– iodine-client-start(8) β€” the girlies' guide to starting an iodine IPv4-over-DNS tunnel πŸ’–

okay so bestie, this page lives in the System Administration Utilities section of the manual, and it's literally about getting an iodine IP-over-DNS tunnel up and running. no cap. πŸ¦‹


✨ NAME ✨

iodine-client-start β€” start an iodine IPv4-over-DNS tunnel 🌈


✨ SYNOPSIS ✨

iodine-client-start [option]

✨ DESCRIPTION ✨

iodine-client-start starts an iodine IP-over-DNS tunnel. that's the whole vibe, and honestly? iconic. πŸ‘‘

  • -h, --help β€” prints help and dips. πŸ’…
  • -v, --version β€” prints version info and dips. πŸŽ€

so if you invoke the program with no options at all, it will try to set up and configure an iodine IP-over-DNS tunnel for you, using the config in the file /etc/default/iodine-client, or by just straight up asking you. it tries to figure out the right way to set things up by observing the network, and if all else fails... it guesses. πŸ™ˆ not me relying on vibes but here we are.


🌸 QUICK CONFIGURATION 🌸

put two lines in the file /etc/default/iodine-client:

subdomain=your.tunnel.sub.domain

passwd=password_for_that_tunnel

or invoke the script with those environment variables set:

env subdomain=xxx passwd=xxx iodine-client-start

if these are not set, the script will query the user for them. so like, it'll just ask you. be ready bestie. 🫢


πŸ¦‹ DETAILS πŸ¦‹

the configuration file is made of lines which are either comments starting with #, or settings of the form VAR="val". valid VARs are, in order, and yes we're listing all of them:

  • subdomain β€” sample value: your.tunnel.sub.domain. there is no default, it must be set. no subdomain, no tunnel, periodt. πŸ’€
  • passwd β€” sample value: password_for_that_tunnel. also no default, also must be set. πŸ“
  • testhost β€” hostname to ping when testing if network is working. default: slashdot.org. 🌐
  • bounce_localnet β€” take the local network down and then up again before starting the tunnel. default: false. ✨
  • test_ping_localnet β€” test if the local network is working by pinging the gateway. default: true. πŸ’–
  • test_ping_tunnel β€” test if the iodine tunnel is working after it has been set up, by pinging the host at the other end. default: true. πŸŽ€
  • test_ping_final β€” test if the tunnel is working after everything is ostensibly set up, by trying to ping an external host. default: true. ⭐
  • default_router β€” IP address of the router on the local network. it should be found automatically, but set this if that fails and the program guesses wrong. 😭
  • interface β€” interface to use (e.g., eth1, eth0, etc) for connection to the DNS server used for the iodine tunnel. again, should be found automatically, set this if that fails and the program guesses wrong. 🧚
  • mtu β€” set if the tunnel MTU needs to be manually changed (lowered). it should not be necessary anymore, since recent versions of iodine negotiate an appropriate MTU during tunnel setup. but if that negotiation does not happen, or if you are using an older version of iodine, the default tunnel MTU is 1024, and if the local DNS server restricts to 512 byte packets you might need to use an MTU of 220. πŸ”₯
  • skip_raw_udp_mode β€” sets the "-r" option in the iodine command line. with this option, iodine does not try to establish a direct UDP socket to the iodine server on port 53. default: true. πŸ’œ
  • continue_on_error β€” set if the script should continue even if a command fails. use it to test the script when running as non-root. defaults to false if running as root, true otherwise. πŸ‘‘

lowkey important reminder: those "should be found automatically" ones? if the guessing goes wrong, that's your moment to step in and set them yourself. main character energy only. πŸ’…

and that's the whole page bestie, you ate. this was iodine-client-start version 1.0.6, from September 2020, straight out of the System Administration Utilities manual β€” slay, go start that tunnel. 🌈✨🫢

πŸ“¦ where this page comes from