proxy-manager/pmgr.1

127 lines
2.1 KiB
Groff

.\" vim: set filetype=groff:
.TH PMGR 1 "2023-04-25" "pmgr 0.0.2"
.SH NAME
pmgr - proxy manager based on systemd user units.
.SH SYNOPSYS
.SY pmrg
.OP \-ledrsjoRaAhv
[\fIservice\fR]
.YS
.SH DESCRIPTION
.PP
pmgr is wrapper utility for systemd to manage user services for proxies.
See example for SSH SOCKS-proxy in EXAMPLES section below.
.SH OPTIONS
.TP
.B \-l
list proxies
.TP
.B \-e \fIservice\fR
enable (start) proxy
.TP
.B \-d \fIservice\fR
disable (stop) proxy
.TP
.B \-r \fIservice\fR
restart proxy
.TP
.B \-s \fIservice\fR
show proxy status
.TP
.B \-j \fIservice\fR
view proxy logs
.TP
.B \-o
print PMGR_ENV_DIR
.TP
.B \-R
run systemctl --user daemon-reload
.TP
.B \-a \fIservice\fR
add to autostart
.TP
.B \-A \fIservice\fR
remove from autostart
.TP
.B \-h
print this help message and exit
.TP
.B \-v
print version and exit
.SH ENVIRONMENT
.TP
.B PMGR_WORKDIR
Working directory. Deafult is ~/.config/pmgr
.TP
.B PMGR_ENV_DIR
Directory for systemd environment files, depends on PMGR_WORKDIR by default.
Default is $PMGR_WORKDIR/environment
.SH EXAMPLES
.PP
For SSH SOCKS-proxy create template user unit
~/.config/systemd/user/ssh-proxy@.service with contents:
.PP
.in +4n
.EX
[Unit]
Description=SSH tunnel to %I
After=network.target
[Service]
Environment="LOCAL_ADDR=localhost"
EnvironmentFile=%h/.config/pmgr/ssh-proxy@%i
ExecStart=/usr/bin/ssh -NT \\
-o ServerAliveInterval=60 \\
-o ExitOnForwardFailure=yes \\
-D ${LOCAL_ADDR}:${LOCAL_PORT} ${TARGET}
RestartSec=5
Restart=always
[Install]
WantedBy=default.target
.EE
.in
.PP
Create environment file
~/.config/pmgr/environment/ssh-proxy@myserver with contents:
.PP
.in +4n
.EX
TARGET=user@myserver
LOCAL_ADDR=127.0.0.1
LOCAL_PORT=1080
.EE
.in
.PP
\fImyserver\fR may be a domain name, SSH Hostname (set in ~/.ssh/config)
or IP address of remote server.
Now you can enable your proxy with systemctl:
.PP
.in +4n
.EX
systemctl --user start ssh-proxy@myserver
.EE
.in
.PP
With pmgr:
.PP
.in +4n
.EX
pmgr -e ssh-proxy@myserver
.EE
.in
.SH SEE ALSO
.PP
.BR systemctl (1),
.BR journalctl (1),
.BR systemd.special (7),
.PP
https://wiki.archlinux.org/title/systemd/User