systemd-socket-proxydsystemdDeveloperDavidStraussdavid@davidstrauss.netsystemd-socket-proxyd1systemd-socket-proxydBidirectionally proxy local sockets to another (possibly remote) socket.systemd-socket-proxydOPTIONSHOST:PORTsystemd-socket-proxydOPTIONSUNIX-DOMAIN-SOCKET-PATHDescriptionsystemd-socket-proxyd is a generic
socket-activated network socket forwarder proxy daemon
for IPV4, IPv6 and UNIX stream sockets. It may be used
to bi-directionally forward traffic from a local listening socket to a
local or remote destination socket.One use of this tool is to provide
socket-activation support for services that do not
natively support socket activation. On behalf of the
service to activate, the proxy inherits the socket
from systemd, accepts each client connection, opens a
connection to a configured server for each client, and
then bidirectionally forwards data between the
two.This utility's behavior is similar to
socat1.
The main differences for systemd-socket-proxyd
are support for socket activation with
Accept=false and an event-driven
design that scales better with the number of
connections.OptionsThe following options are understood:Prints a short help
text and exits.Prints a version
string and exits.Exit statusOn success, 0 is returned, a non-zero failure
code otherwise.ExamplesDirect-Use ExampleUse two services with a dependency
and no namespace isolation./etc/systemd/system/proxy-to-nginx.socket/etc/systemd/system/proxy-to-nginx.service/etc/nginx/nginx.confIndirect-Use ExampleUse a shell script to isolate the
service and proxy into the same namespace.
This is particularly useful for running
TCP-only daemons without the daemon
affecting ports on regular
interfaces.
/etc/systemd/system/proxy-with-nginx.socket
/etc/systemd/system/proxy-with-nginx.service
/usr/bin/socket-proxyd-nginx.sh
/etc/nginx/nginx.confSee Alsosystemd1,
systemd.socket5,
systemd.service5,
systemctl1,
socat1