tcppm(8)

πŸ“¦
version 1.0.1 Β· 2 versions
, in epel 10, epel 9, fedora 43, fedora 44

πŸ’– tcppm β€” TCP port mapper πŸ’–

okay bestie, welcome to tcppm, which lives in the Universal proxy server section of the manual (section 8, for the sysadmin girlies ✨). It's a port mapper. It's giving "I just move your TCP connections from here to there and I do it flawlessly." No cap. πŸ’…


✨ SYNOPSIS ✨

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

🌸 DESCRIPTION 🌸

so like. tcppm forwards connections from a local TCP port to a remote TCP port. That's the whole vibe. Local in, remote out, connection forwarded, everyone slays. πŸ¦‹


πŸŽ€ OPTIONS πŸŽ€

  • -I β€” Inetd mode. Standalone service only, bestie. That's the rule. πŸ™ˆ
  • -d β€” Daemonize. It detaches the service from the console and runs it in the background, like a girl who doesn't need an audience. πŸ‘‘
  • -t β€” Be silenT. Do not log start/stop/accept error records. Silence is golden, fr fr. 🀫
  • -e β€” External address. The IP address of the interface the proxy should initiate connections from. By default, the system will decide which address to use in accordance with the routing table. Let the system cook. πŸ“
  • -niPATH β€” (Linux only) Switch to the network namespace identified by PATH before opening the listening socket. The current namespace is saved and restored immediately after binding, so outgoing connections run in the original namespace unless -ne is also given. It's giving "borrow the namespace, give it right back." πŸ’«
  • -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. Yeah, you need the privileges. No shortcuts, periodt. πŸ”
  • -i β€” Internal address. The IP address the proxy accepts connections to. By default, connections to any interface are accepted. ItΒ΄s usually unsafe. 😭 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. Choose wisely, bestie. 🫢
  • -l β€” Log. By default logging is to stdout. If logfile is specified, logging is to file. Under Unix, if Β΄@Β΄ precedes logfile, syslog is used for logging. Three modes, one icon. 🌈
  • -S β€” Increase or decrease stack size. You may want to try something like -S8192 if you experience 3proxy crashes. If it's crashing, this is your moment. πŸ”₯

πŸ¦‹ ARGUMENTS πŸ¦‹

  • local_port
    • the port tcppm accepts connections on. That's your 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). She contains multitudes. πŸ’œ
  • remote_port
    • the remote port the connection is forwarded to. Ignored when using Unix socket destination, but it must be specified (use any positive value) for syntax compatibility. Yeah it's ignored but you still have to show up. Relatable. πŸ’€

πŸ‘‘ 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 forwarded to remote_host:remote_port. Simple as that, bestie. Slay. ✨


πŸ’€ BUGS πŸ’€

Report all bugs to 3proxy@3proxy.org. Tell them everything, don't hold back. πŸ›


🌟 SEE ALSO 🌟

3proxy(8), htproxy(8), ftppr(8), socks(8), pop3p(8), udppm(8), syslogd(8), https://3proxy.org/


🫢 AUTHORS 🫢

3proxy is designed by Vladimir Dubrovin <vlad@3proxy.org>. Iconic behaviour, honestly. πŸ’–


okay so that's the whole page! this is 3proxy 0.9, dated May 2026, and it's the tcppm(8) manual β€” so go forth and map those ports, bestie. iykyk πŸŒΈβœ¨πŸŽ€
πŸ“¦ where this page comes from