警告
本文最后更新于 2022-04-16,文中内容可能已过时。
基于 Linux
守护进程服务 systemd
实现了端口转发功能,这里有一个小坑,为了保证系统监控到 ssh
,需要程序驻留在主进程,也就是不能添加 -f
这个参数选项。
配置 service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
## CentOS
cd /usr/lib/systemd/system
## Ubuntu
cd /etc/systemd/system
## 创建服务
vim port_forwarding.service
[Unit]
Description=PordForwaring-Daemon
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
## 使用用户执行命令
User=william
Restart=on-failure
RestartSec=5s
## 注意不能添加 -f 的选项
#ExecStartPre=
ExecStart=/usr/bin/ssh -NC -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 100" -o "ExitOnForwardFailure=True" -R *:10088:localhost:22 lfang@192.168.1.178
#ExecStartPost=
[Install]
WantedBy=multi-user.target
|
启动服务
1
2
3
4
5
6
7
|
systemctl daemon-reload
systemctl enable port_forwarding.service
systemctl start port_forwarding.service
systemctl status port_forwarding.service
## 查看运行日志
journalctl -u port_forwarding.service
|