tcppm(8)

πŸ“¦ version 1.0.2, in nixos 26.05, nixpkgs unstable

πŸ’… tcppm(8) β€” like, the TCP port mapper era

okay so real talk, this is a page from the Universal proxy server manual set, and the star of the show is tcppm β€” the TCP port mapper. she's simple, she's iconic, she forwards your connections. let's go πŸŽ€


✨ NAME ✨

tcppm β€” TCP port mapper. that's it, that's her whole job, and she does it flawlessly πŸ’…


🌸 SYNOPSIS 🌸

tcppm [-d] [-l[[@]logfile]] [-iinternal_ip] [-eexternal_ip] local_port
remote_host remote_port

no cap, that's the whole vibe. three positional args, a handful of flags, done πŸ¦‹


πŸ’– DESCRIPTION πŸ’–

tcppm forwards connections from local to remote TCP port. bestie it's literally in the name β€” she takes a connection knocking on your local port and walks it over to the remote side. main character energy, zero drama ✨


πŸ‘‘ OPTIONS πŸ‘‘

  • -I β€” Inetd mode. Standalone service only. (yes, inetd, we love a vintage queen πŸŽ€)
  • -d β€” Daemonize. Detaches the service from the console and runs it in the background, so she's out there living her life without you watching 😌
  • -t β€” Be silenT. Do not log start/stop/accept error records. quiet luxury fr fr πŸ™ˆ
  • -e β€” External address. the IP address of the interface the proxy should initiate connections from. by default, the system decides which address to use, in accordance with the routing table. she lets the routing table choose her outfit 🌈
  • -niPATH β€” (Linux only 🐧) switch to the network namespace identified by PATH before opening the listening socket. the current namespace gets saved and restored immediately after binding, so outgoing connections run in the original namespace β€” unless -ne is also given. so specific, so intentional ✨
  • -nePATH β€” (Linux only 🐧) switch to the network namespace identified by PATH after the listening socket has been bound (and after restoring from -ni if applicable). Both options accept any namespace file path (e.g. /var/run/netns/myns or /proc/PID/ns/net) and require CAP_SYS_ADMIN. yes you need the capability, no you can't skip it, periodt πŸ’€
  • -i β€” Internal address. the IP address the proxy accepts connections to. by default, connections to any interface are accepted. it's usually unsafe ⚠️ (like, genuinely β€” listen up). Unix domain sockets can be specified with -iunix:/path/to/socket syntax (e.g., -iunix:/var/run/tcppm.sock). on Linux, abstract sockets use -iunix:@socketname syntax 🐧
  • -l β€” Log. by default logging goes to stdout. if logfile is specified, logging goes to that file. under Unix, if @ precedes logfile, syslog is used for logging. fancy ✨
  • -S β€” Increase or decrease stack size. you may want to try something like -S8192 if you experience 3proxy crashes. mama's little stability hack 🫢

πŸ¦‹ ARGUMENTS πŸ¦‹

  • local_port β€” the port tcppm accepts connections on. this is the front door πŸ’–
  • remote_host β€” the IP address of the host the connection is forwarded to. Unix domain sockets can be specified with the syntax unix:/path/to/socket (e.g., unix:/var/run/app.sock). on Linux, abstract (fileless) Unix sockets use the syntax unix:@socketname (e.g., unix:@app.socket) 🐧
  • remote_port β€” the remote port the connection is forwarded to. ignored when using a Unix socket destination, but must still be specified (use any positive value) for syntax compatibility. yeah you have to type a number that does nothing. she's quirky like that 😭

πŸ”₯ CLIENTS πŸ”₯

Any TCP-based application can be used as a client. use internal_ip and local_port as the destination in the client application. the connection is then forwarded to remote_host:remote_port. that's the whole flow, iykyk ⭐


πŸ’€ BUGS πŸ’€

Report all bugs to 3proxy@3proxy.org. be nice about it, she's trying πŸ₯Ί


🌈 SEE ALSO 🌈

3proxy(8), proxy(8), ftppr(8), socks(8), pop3p(8), udppm(8), syslogd(8), and https://3proxy.org/ β€” go read the whole family, they're all serving πŸ‘‘


πŸ’œ AUTHORS πŸ’œ

3proxy is designed by Vladimir Dubrovin <vlad@3proxy.org> β€” thank you for your service, king 🫢


ngl, the safest move is to always pin down your internal address with -i. "accepts connections to any interface" is usually unsafe and that's straight from the page, not me being dramatic πŸ’…

k bye bestie πŸŽ€ this was tcppm from 3proxy 0.9, dated May 2026, section 8 of the manual β€” slay, go forward some ports ✨

πŸ“¦ where this page comes from