telnet(1) on Solnix vs Linux and the BSDs
On Solnix, telnet is the illumos telnet at /usr/bin/telnet, an interactive client with Kerberos-style authentication and encryption options and loose/strict source-route host syntax. It has no -4/-6, and its option letters differ from Linux (GNU inetutils), FreeBSD, OpenBSD and NetBSD in several places (-e, -x, -l, -a, -b, -V, -N).
The manual pages
What Solnix runs
A default Solnix system runs the illumos telnet at /usr/bin/telnet. A variant, /usr/ucb/telnet, is also shipped, but the bundle does not describe it. The page is published in pkgs.solnix.illumos-world-man.
Differences
| Compared with | Topic | What differs |
|---|---|---|
| all four | no -4 / -6 | The Solnix SYNOPSIS has no -4 or -6 to force IPv4 or IPv6. Linux, FreeBSD, OpenBSD and NetBSD all document both. A script that passes them to Solnix telnet will fail.Source: Solnix telnet(1) SYNOPSIS and OPTIONS; Linux telnet(1) -4, -6; FreeBSD telnet(1) -4, -6; OpenBSD telnet(1) -4, -6; NetBSD telnet(1) -4, -6 |
| Linux, OpenBSD | -b meaning and absence on Solnix | Solnix has no -b. Linux -b ADDRESS binds to a local address. OpenBSD -b hostalias binds the socket to an aliased address or another interface's address.Source: Linux telnet(1) -b, --bind; OpenBSD telnet(1) -b; Solnix telnet(1) SYNOPSIS |
| Linux, OpenBSD | -V meaning | Solnix has no -V. On Linux -V prints the program version. On OpenBSD -V rtable selects the routing table. The same flag does unrelated things on those two systems.Source: Linux telnet(1) -V, --version; OpenBSD telnet(1) -V; Solnix telnet(1) SYNOPSIS |
| FreeBSD, OpenBSD, NetBSD | -e with no argument | On FreeBSD, OpenBSD and NetBSD, omitting the -e argument means no escape character. On Solnix, -e '' is the same as -e '^@' (Control-@), and -E is the only way to disable the escape character. Solnix -e also accepts ^X notation, with ^? meaning DEL.Source: Solnix telnet(1) -e, -E; FreeBSD telnet(1) -e; OpenBSD telnet(1) -e; NetBSD telnet(1) -e |
| FreeBSD, OpenBSD, NetBSD | -l and automatic login | On FreeBSD, OpenBSD and NetBSD, -l user implies -a. The Solnix page only says -l sends user as the ENVIRON variable USER, and does not say it implies -a.Source: Solnix telnet(1) -l, -a; FreeBSD telnet(1) -l; OpenBSD telnet(1) -l; NetBSD telnet(1) -l |
| FreeBSD | -a and -x defaults | FreeBSD says -a is now the default and the option is ignored, and that -x is now the default and ignored. -y turns encryption off. The Solnix page documents no such defaults and has no -y.Source: FreeBSD telnet(1) -a, -x, -y; Solnix telnet(1) -a, -x |
| Linux, OpenBSD | -x and Kerberos options missing | Solnix -x turns on data-stream encryption and makes telnet exit with an error if authentication or encryption cannot be set up. Linux and OpenBSD have no -x. They also have none of the Solnix -f, -F, -k or -X options.Source: Solnix telnet(1) -x, -f, -F, -k, -X; Linux telnet(1) options; OpenBSD telnet(1) SYNOPSIS |
| FreeBSD, NetBSD | -x wording | On FreeBSD and NetBSD, -x turns on encryption 'if possible'. Solnix -x makes telnet exit with an error if authentication cannot be negotiated or encryption cannot be turned on.Source: Solnix telnet(1) -x; FreeBSD telnet(1) -x; NetBSD telnet(1) -x |
| all four | source-routed host syntax | Only Solnix documents @hop1@hop2@host (loose source route) and a leading ! (strict) in the host argument. With IPv6 the route is always loose and ! is ignored. The other pages show only host [port] in their synopses. Source: Solnix telnet(1) SYNOPSIS and DESCRIPTION; Linux telnet(1) SYNOPSIS; FreeBSD telnet(1) SYNOPSIS; OpenBSD telnet(1) SYNOPSIS; NetBSD telnet(1) SYNOPSIS |
| OpenBSD | 7-bit/8-bit data path | OpenBSD says -8 is the default and provides -7 for a 7-bit path. Solnix has no -7, and its page does not say 8-bit is the default.Source: OpenBSD telnet(1) -7, -8; Solnix telnet(1) -8 |
| OpenBSD | close command | Solnix 'close' closes the TELNET session and exits telnet, and an EOF in command mode does the same. OpenBSD 'close' closes the session and returns to command mode. Source: Solnix telnet(1) USAGE, close; OpenBSD telnet(1) close |
| FreeBSD, NetBSD | options Solnix lacks | Solnix has none of the FreeBSD/NetBSD options -N (no name lookup), -S tos (type of service) or -P policy (IPsec). FreeBSD also has -B, -Q, -s src_addr, -u (AF_UNIX) and -y. OpenBSD also has -D (DISPLAY rewriting).Source: FreeBSD telnet(1) -B, -N, -P, -Q, -S, -s, -u, -y; NetBSD telnet(1) -N, -P, -S; OpenBSD telnet(1) -D; Solnix telnet(1) SYNOPSIS |
| Linux | GNU long options | Linux telnet (GNU inetutils 2.7) accepts long options such as --login, --no-rc, --binary and --trace. Solnix telnet has only the short options listed in its SYNOPSIS. The Linux page also does not list the interactive commands that Solnix documents under USAGE.Source: Linux telnet(1) option list; Solnix telnet(1) SYNOPSIS, USAGE |
| FreeBSD, NetBSD | Kerberos realm lookup | For -k realm, Solnix says the default realm is determined in krb5.conf(5). FreeBSD refers to krb_realmofhost(3). The NetBSD page says only 'the remote host's realm'.Source: Solnix telnet(1) -k; FreeBSD telnet(1) -k; NetBSD telnet(1) -k |
Standards
- POSIX: telnet is not a POSIX.1-2024 utility.
- Solnix: The Solnix page describes the
-r(rlogin-like interface) option as an uncommitted interface that may change in the future.
Writing portable scripts
- Use only the options common to all five systems:
-8,-E,-K,-L,-c,-e,-l,-nand-r. Do not use-4,-6,-b,-V,-xor-ain portable scripts: they are missing on Solnix or mean different things elsewhere. - Do not rely on
-limplying automatic login, or on-ewith an empty argument meaning 'no escape character'. Use-Ewhen you need no escape character.
Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.