From 2fd536781fa29d53c422b0b1f2fc8c9e361f179d Mon Sep 17 00:00:00 2001
From: Vladimir Dubrovin <3proxy@3proxy.ru>
Date: Mon, 13 Apr 2026 11:54:24 +0300
Subject: [PATCH] Add unix sockets to man
---
doc/html/man3/3proxy.cfg.3.html | 31 +++++++++++++++++++++++++----
doc/html/man8/ftppr.8.html | 6 +++++-
doc/html/man8/pop3p.8.html | 6 +++++-
doc/html/man8/proxy.8.html | 6 +++++-
doc/html/man8/smtpp.8.html | 6 +++++-
doc/html/man8/socks.8.html | 6 +++++-
doc/html/man8/tcppm.8.html | 16 ++++++++++++---
doc/html/man8/tlspr.8.html | 6 +++++-
man/3proxy.cfg.3 | 35 +++++++++++++++++++++++++++++----
man/ftppr.8 | 5 +++++
man/pop3p.8 | 5 +++++
man/proxy.8 | 5 +++++
man/smtpp.8 | 5 +++++
man/socks.8 | 5 +++++
man/tcppm.8 | 17 ++++++++++++++--
man/tlspr.8 | 5 +++++
16 files changed, 146 insertions(+), 19 deletions(-)
diff --git a/doc/html/man3/3proxy.cfg.3.html b/doc/html/man3/3proxy.cfg.3.html
index 6cdd3dc..c8bca2b 100644
--- a/doc/html/man3/3proxy.cfg.3.html
+++ b/doc/html/man3/3proxy.cfg.3.html
@@ -101,7 +101,13 @@ smtpp SMTP proxy (default port 25)
ftppr FTP proxy (default port 21)
admin Web interface (default port 80)
dnspr caching DNS proxy (default port 53)
-tcppm TCP portmapper
+tcppm TCP portmapper. Destination address (DSTADDR) can
+be a Unix domain socket using the syntax
+unix:/path/to/socket (e.g., tcppm 8080
+unix:/var/run/app.sock 0). On Linux, abstract sockets use
+unix:@socketname syntax. When using Unix socket
+destination, the port number is ignored but must be
+specified for syntax compatibility.
udppm UDP portmapper
Options:
@@ -172,7 +178,9 @@ system will decide which address to use in accordance with
the routing table.
-i Internal address. IP address the proxy accepts
connections to. By default, connections to any interface are
-accepted.
+accepted. Unix domain sockets can be specified with
+-iunix:/path/to/socket syntax. On Linux, abstract
+sockets use -iunix:@socketname syntax.
-N (for socks) External NAT address 3proxy reports to
client for BIND and UDPASSOC By default external address is
reported. It’s only useful in the case of IP-IP NAT
@@ -447,7 +455,14 @@ connection.
sets ip address of internal interface. This IP address will
be used to bind gateways. Alternatively you can use -i
option for individual gateways. Since 0.8 version, IPv6
-address may be used.
+address may be used.
+Unix domain sockets are supported with the syntax
+unix:/path/to/socket (e.g., internal
+unix:/var/run/3proxy.sock). On Linux, abstract (fileless)
+Unix sockets are supported with the syntax
+unix:@socketname (e.g., internal unix:@3proxy). When
+using Unix sockets, the socket file is automatically created
+and removed on service start/stop.
external
<ipaddr>
@@ -699,7 +714,15 @@ special case of local redirection, it works only with
redirected to different service, ftp locally
redirects to ftppr pop3 locally redirects to pop3p
http locally redirects to proxy admin locally
-redirects to the admin -s service.
+redirects to the admin -s service.
+Unix domain sockets can be used instead of IP address with
+the syntax unix:/path/to/socket (e.g., parent 1000
+socks5 unix:/var/run/parent.sock 1080). On Linux, abstract
+(fileless) Unix sockets are supported with
+unix:@socketname syntax (e.g., parent 1000 http
+unix:@parent.proxy 3128). When using Unix sockets, the port
+number is ignored but must be specified for syntax
+compatibility.
Main purpose of
local redirections is to have the requested resource (URL or
diff --git a/doc/html/man8/ftppr.8.html b/doc/html/man8/ftppr.8.html
index 01b1d82..9485db6 100644
--- a/doc/html/man8/ftppr.8.html
+++ b/doc/html/man8/ftppr.8.html
@@ -128,7 +128,11 @@ accordance with the routing table.
Internal address. IP address the
proxy accepts connections to. By default, connections to any
-interface are accepted. It´s usually unsafe.
+interface are accepted. It´s usually unsafe. Unix
+domain sockets can be specified with
+-iunix:/path/to/socket syntax (e.g.,
+-iunix:/var/run/ftppr.sock). On Linux, abstract sockets use
+-iunix:@socketname syntax.
|
diff --git a/doc/html/man8/pop3p.8.html b/doc/html/man8/pop3p.8.html
index 8acfa7b..53d2963 100644
--- a/doc/html/man8/pop3p.8.html
+++ b/doc/html/man8/pop3p.8.html
@@ -128,7 +128,11 @@ accordance with the routing table. |
Internal address. IP address the
proxy accepts connections to. By default, connections to any
-interface are accepted. It´s usually unsafe.
+interface are accepted. It´s usually unsafe. Unix
+domain sockets can be specified with
+-iunix:/path/to/socket syntax (e.g.,
+-iunix:/var/run/pop3p.sock). On Linux, abstract sockets use
+-iunix:@socketname syntax.
|
diff --git a/doc/html/man8/proxy.8.html b/doc/html/man8/proxy.8.html
index c3ef3c9..3f9aa9f 100644
--- a/doc/html/man8/proxy.8.html
+++ b/doc/html/man8/proxy.8.html
@@ -127,7 +127,11 @@ accordance with the routing table. |
Internal address. IP address the
proxy accepts connections to. By default, connections to any
-interface are accepted. It´s usually unsafe.
+interface are accepted. It´s usually unsafe. Unix
+domain sockets can be specified with
+-iunix:/path/to/socket syntax (e.g.,
+-iunix:/var/run/proxy.sock). On Linux, abstract sockets use
+-iunix:@socketname syntax.
|
diff --git a/doc/html/man8/smtpp.8.html b/doc/html/man8/smtpp.8.html
index e2bc798..cb21849 100644
--- a/doc/html/man8/smtpp.8.html
+++ b/doc/html/man8/smtpp.8.html
@@ -128,7 +128,11 @@ accordance with the routing table. |
Internal address. IP address the
proxy accepts connections to. By default, connections to any
-interface are accepted. It´s usually unsafe.
+interface are accepted. It´s usually unsafe. Unix
+domain sockets can be specified with
+-iunix:/path/to/socket syntax (e.g.,
+-iunix:/var/run/smtpp.sock). On Linux, abstract sockets use
+-iunix:@socketname syntax.
|
diff --git a/doc/html/man8/socks.8.html b/doc/html/man8/socks.8.html
index 3a462df..4012e95 100644
--- a/doc/html/man8/socks.8.html
+++ b/doc/html/man8/socks.8.html
@@ -162,7 +162,11 @@ and does not work with port translation. |
Internal address. IP address the
proxy accepts connections to. By default, connections to any
-interface are accepted. It´s usually unsafe.
+interface are accepted. It´s usually unsafe. Unix
+domain sockets can be specified with
+-iunix:/path/to/socket syntax (e.g.,
+-iunix:/var/run/socks.sock). On Linux, abstract sockets use
+-iunix:@socketname syntax.
|
diff --git a/doc/html/man8/tcppm.8.html b/doc/html/man8/tcppm.8.html
index a9ec6e4..3d0bd10 100644
--- a/doc/html/man8/tcppm.8.html
+++ b/doc/html/man8/tcppm.8.html
@@ -116,7 +116,11 @@ accordance with the routing table. |
Internal address. IP address the
proxy accepts connections to. By default, connections to any
-interface are accepted. It´s usually unsafe.
+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.
|
@@ -160,12 +164,18 @@ connections on
remote_host
- IP address of the host the
-connection is forwarded to
+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
- remote port the connection is
-forwarded to
+forwarded to. Ignored when using Unix socket destination,
+but must be specified (use any positive value) for syntax
+compatibility.
CLIENTS
diff --git a/doc/html/man8/tlspr.8.html b/doc/html/man8/tlspr.8.html
index aead5cb..78e53e4 100644
--- a/doc/html/man8/tlspr.8.html
+++ b/doc/html/man8/tlspr.8.html
@@ -132,7 +132,11 @@ accordance with the routing table. |
Internal address. IP address the
proxy accepts connections to. By default, connections to any
-interface are accepted. It´s usually unsafe.
+interface are accepted. It´s usually unsafe. Unix
+domain sockets can be specified with
+-iunix:/path/to/socket syntax (e.g.,
+-iunix:/var/run/tlspr.sock). On Linux, abstract sockets use
+-iunix:@socketname syntax.
|
diff --git a/man/3proxy.cfg.3 b/man/3proxy.cfg.3
index 7c55c97..71be6cb 100644
--- a/man/3proxy.cfg.3
+++ b/man/3proxy.cfg.3
@@ -87,7 +87,7 @@ SOCKS 4/4.5/5 proxy (default port 1080)
SNI proxy (destination address is taken from TLS handshake), may be used to redirect any TLS-based traffic
.br
.B auto
-Proxy with protocol autoselection between proxy / socks / tlspr
+Proxy with protocol autoselection between proxy / socks / tlspr
.br
.B pop3p
POP3 proxy (default port 110)
@@ -105,7 +105,13 @@ Web interface (default port 80)
caching DNS proxy (default port 53)
.br
.B tcppm
-TCP portmapper
+TCP portmapper. Destination address (DSTADDR) can be a Unix domain socket
+using the syntax
+.I unix:/path/to/socket
+(e.g., tcppm 8080 unix:/var/run/app.sock 0). On Linux, abstract sockets use
+.I unix:@socketname
+syntax. When using Unix socket destination, the port number is ignored
+but must be specified for syntax compatibility.
.br
.B udppm
UDP portmapper
@@ -180,7 +186,12 @@ with the routing table.
.br
.B -i
Internal address. IP address the proxy accepts connections to.
-By default, connections to any interface are accepted.
+By default, connections to any interface are accepted.
+Unix domain sockets can be specified with
+.I -iunix:/path/to/socket
+syntax. On Linux, abstract sockets use
+.I -iunix:@socketname
+syntax.
.br
.B -N
(for socks) External NAT address 3proxy reports to client for BIND and UDPASSOC
@@ -513,6 +524,14 @@ http://dial.right.now/ from browser to set up connection.
sets ip address of internal interface. This IP address will be used
to bind gateways. Alternatively you can use -i option for individual
gateways. Since 0.8 version, IPv6 address may be used.
+.br
+Unix domain sockets are supported with the syntax
+.I unix:/path/to/socket
+(e.g., internal unix:/var/run/3proxy.sock). On Linux, abstract (fileless)
+Unix sockets are supported with the syntax
+.I unix:@socketname
+(e.g., internal unix:@3proxy). When using Unix sockets, the socket file
+is automatically created and removed on service start/stop.
.br
.B external
@@ -795,7 +814,7 @@ If port is zero, it\'s taken from original request, only IP is changed.
If both IP and port are zero - it\'s a special case of local redirection,
it works only with
.B socks
-proxy. In case of local redirection request is redirected to different service,
+proxy. In case of local redirection request is redirected to different service,
.B ftp
locally redirects to
.B ftppr
@@ -807,6 +826,14 @@ locally redirects to
.B proxy
.B admin
locally redirects to the admin -s service.
+.br
+Unix domain sockets can be used instead of IP address with the syntax
+.I unix:/path/to/socket
+(e.g., parent 1000 socks5 unix:/var/run/parent.sock 1080). On Linux,
+abstract (fileless) Unix sockets are supported with
+.I unix:@socketname
+syntax (e.g., parent 1000 http unix:@parent.proxy 3128). When using Unix
+sockets, the port number is ignored but must be specified for syntax compatibility.
.br
Main purpose of local redirections is to have the requested resource
diff --git a/man/ftppr.8 b/man/ftppr.8
index 216855a..6d30664 100644
--- a/man/ftppr.8
+++ b/man/ftppr.8
@@ -36,6 +36,11 @@ with the routing table.
.B -i
Internal address. 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
+.I -iunix:/path/to/socket
+syntax (e.g., -iunix:/var/run/ftppr.sock). On Linux, abstract sockets use
+.I -iunix:@socketname
+syntax.
.TP
.B -h
Default destination. It's used if the target address is not specified by the user.
diff --git a/man/pop3p.8 b/man/pop3p.8
index 254bd27..de011c0 100644
--- a/man/pop3p.8
+++ b/man/pop3p.8
@@ -36,6 +36,11 @@ with the routing table.
.B -i
Internal address. 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
+.I -iunix:/path/to/socket
+syntax (e.g., -iunix:/var/run/pop3p.sock). On Linux, abstract sockets use
+.I -iunix:@socketname
+syntax.
.TP
.B -p
Port. Port proxy listens for incoming connections. Default is 110.
diff --git a/man/proxy.8 b/man/proxy.8
index a009015..c7dbf73 100644
--- a/man/proxy.8
+++ b/man/proxy.8
@@ -34,6 +34,11 @@ with the routing table.
.B -i
Internal address. 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
+.I -iunix:/path/to/socket
+syntax (e.g., -iunix:/var/run/proxy.sock). On Linux, abstract sockets use
+.I -iunix:@socketname
+syntax.
.TP
.B -a
Anonymous. Hide information about client.
diff --git a/man/smtpp.8 b/man/smtpp.8
index 189029c..1afb3f7 100644
--- a/man/smtpp.8
+++ b/man/smtpp.8
@@ -36,6 +36,11 @@ with the routing table.
.B -i
Internal address. 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
+.I -iunix:/path/to/socket
+syntax (e.g., -iunix:/var/run/smtpp.sock). On Linux, abstract sockets use
+.I -iunix:@socketname
+syntax.
.TP
.B -p
Port. Port proxy listens for incoming connections. Default is 25.
diff --git a/man/socks.8 b/man/socks.8
index ccaaea8..2d50d4c 100644
--- a/man/socks.8
+++ b/man/socks.8
@@ -49,6 +49,11 @@ of IP-IP NAT and does not work with port translation.
.B -i
Internal address. 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
+.I -iunix:/path/to/socket
+syntax (e.g., -iunix:/var/run/socks.sock). On Linux, abstract sockets use
+.I -iunix:@socketname
+syntax.
.TP
.B -p
Port. Port proxy listens for incoming connections. Default is 1080.
diff --git a/man/tcppm.8 b/man/tcppm.8
index 842b63a..d42dc36 100644
--- a/man/tcppm.8
+++ b/man/tcppm.8
@@ -31,6 +31,11 @@ with the routing table.
.B -i
Internal address. 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
+.I -iunix:/path/to/socket
+syntax (e.g., -iunix:/var/run/tcppm.sock). On Linux, abstract sockets use
+.I -iunix:@socketname
+syntax.
.TP
.B -l
Log. By default logging is to stdout. If
@@ -50,10 +55,18 @@ crashes.
- port tcppm accepts connections on
.TP
.I remote_host
-- IP address of the host the connection is forwarded to
+- IP address of the host the connection is forwarded to. Unix domain sockets
+can be specified with the syntax
+.I unix:/path/to/socket
+(e.g., unix:/var/run/app.sock). On Linux, abstract (fileless) Unix sockets
+use the syntax
+.I unix:@socketname
+(e.g., unix:@app.socket).
.TP
.I remote_port
-- remote port the connection is forwarded to
+- remote port the connection is forwarded to. Ignored when using Unix socket
+destination, but must be specified (use any positive value) for syntax
+compatibility.
.SH CLIENTS
Any TCP-based application can be used as a client. Use
.I internal_ip
diff --git a/man/tlspr.8 b/man/tlspr.8
index 266191a..db1ab65 100644
--- a/man/tlspr.8
+++ b/man/tlspr.8
@@ -36,6 +36,11 @@ with the routing table.
.B -i
Internal address. 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
+.I -iunix:/path/to/socket
+syntax (e.g., -iunix:/var/run/tlspr.sock). On Linux, abstract sockets use
+.I -iunix:@socketname
+syntax.
.TP
.B -a
Anonymous. Hide information about client.
|