A telnet server that wraps any terminal application, exposing it to telnet clients with proper protocol support.
- Wraps any terminal application and exposes it via telnet
- Telnet protocol support using libtelnet-rs
- Window size negotiation (NAWS) - automatically resizes the PTY when the client window changes
- Character-by-character input (no line buffering)
- Supports multiple concurrent clients
- Configurable initial terminal size
- Configurable listening port
cargo install telnet_wrappergit clone https://github.com/justpresident/telnet_wrapper
cd telnet_wrapper
cargo build --releasetelnet_wrapper [OPTIONS] <APP_COMMAND> [APP_ARGS]...| Argument | Description |
|---|---|
<APP_COMMAND> |
The application command to run within the PTY |
[APP_ARGS]... |
Arguments to pass to the application command |
| Option | Default | Description |
|---|---|---|
--port <PORT> |
23 | Port to listen on |
--rows <ROWS> |
24 | Initial number of rows for the PTY |
--cols <COLS> |
80 | Initial number of columns for the PTY |
-h, --help |
Print help | |
-V, --version |
Print version |
telnet_wrapper --port 2323 /usr/bin/htopThen connect:
telnet localhost 2323telnet_wrapper --port 2323 /bin/bashtelnet_wrapper --port 2323 /usr/bin/vim /tmp/test.txttelnet_wrapper --port 2323 --rows 40 --cols 120 /usr/bin/htopThis wrapper implements the following telnet options:
| Option | Description |
|---|---|
| ECHO | Server-side echo (enables character mode) |
| SGA | Suppress Go Ahead (required for character mode) |
| NAWS | Negotiate About Window Size (dynamic terminal resizing) |
| LINEMODE | Disabled to ensure character-by-character input |
- To close a telnet connection, press
Ctrl+]and then typeqor pressCtrl+D - Ports below 1024 require root/administrator privileges. Use higher port numbers when possible
- Don't expose terminals/shells/file editors on publicly accessible addresses! This can be easily exploited to take control over your server. Only expose services within trusted local network or securely-designed applications that do not expose a risk of damaging your system.
- The
TERMenvironment variable is set toxterm-256colorfor the wrapped application
MIT License - see LICENSE for details.