HTS(1)

πŸ“¦
version 3.3 Β· 3 versions
, in debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– HTS(1) β€” General Commands Manual πŸ’–

okay bestie, welcome to the HTS(1) page, the one and only manual for hts, the httptunnel server. grab a snack, this is gonna be quick but cute.


✨ NAME ✨

hts β€” the httptunnel server. she serves. literally. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

hts [options] [host:][port]

🌸 DESCRIPTION 🌸

okay so real talk, this manual page is the brief rundown of the hts command. not the whole novel, just the vibe. πŸ’…

hts listens for incoming httptunnel connections at PORT β€” and heads up, the default port is 8888 β€” and if you want, she'll optionally bind to the ip address HOST. main character behavior honestly.

the moment a connection is made? the I/O gets redirected to wherever you pointed her with the --device, --forward-port or --stdin-stdout switch. that's the whole plot twist. ✨


πŸ’… OPTIONS πŸ’…

she follows the usual GNU command line syntax, meaning the long options start with two dashes (-). a summary of options is right down here, no gatekeeping. 🫢

  • -h, --help β€” show the summary of options. your lil cheat sheet. πŸ’–
  • -c, --content-length BYTES β€” use HTTP PUT requests of BYTES size. and yes, k, M, and G postfixes are recognized, so go off with the units. πŸ“
  • -d, --device DEVICE β€” use DEVICE for input and output. she's talking to a device now, iconic.
  • -F, --forward-port HOST:PORT β€” connect to PORT at HOST and use it for input and output. the classic move.
  • -k, --keep-alive SECONDS β€” send keepalive bytes every SECONDS seconds. the default is 5, no cap. πŸ’Œ
  • -M, --max-connection-age SEC β€” the maximum time a connection will stay open is SEC seconds. default is 300, so five whole minutes of commitment. ⏳
  • -s, --stdin-stdout β€” use stdin/stdout for communication. note that this implies --no-daemon, bestie, keep that in mind. πŸ™ˆ
  • -S, --strict-content-length β€” always write Content-Length bytes in requests. always. no skipping. πŸŽ€
  • -V, --version β€” output version information and exit. quick lil flex then bye. πŸ‘‹
  • -w, --no-daemon β€” don't fork into the background. she stays right here with you. πŸ«‚
  • -p, --pid-file LOCATION β€” write a PID file to LOCATION. receipts, but for processes. 🧾
  • -C, --chroot LOCATION β€” chroot to LOCATION before serving clients. locking it down before the party starts. πŸ”’
  • -u, --user USER β€” change user and group identities before serving clients. glow-up via privilege drop, we love to see it. 🌈

πŸ”₯ EXAMPLES πŸ”₯

Start httptunnel server

hts -F localhost:22 8888

so at host REMOTE, you set up the httptunnel server to listen on port 8888 and forward to localhost:22. chef's kiss. πŸ’‹

Start httptunnel client

htc -F 2222 -P PROXY_ADDRESS:8000 REMOTE_IP:8888

at host LOCAL, you set up the httptunnel client to forward localhost:2222 to REMOTE_IP:8888 via a local proxy at PROXY_ADDRESS:8000. the way that just works?? 😭

Or, if using a buffering HTTP proxy

htc -F 2222 -P PROXY_ADDRESS:8000 -B 48K REMOTE_IP:8888

Now you can connect through the tunnel on host LOCAL

ssh ssh://localhost:2222

go forth and tunnel, bestie. πŸ¦‹


πŸ‘‘ AUTHOR πŸ‘‘

this manual page was contributed by Teemu Hukkanen <tjhukkan@iki.fi>, and it was originally written for the Debian GNU/Linux system. respect the origin story. πŸ™Œ


🌈 SEE ALSO 🌈


and that's the whole HTS(1) page from the General Commands Manual, periodt. πŸ’–βœ¨ go forth, tunnel responsibly, and remember: she's the server, she's serving. bye bestie!! πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from