1 功能

我有一个本地服务器,想通过网络服务器端口映射的方式供其他主机连接。具体使用 SSH 端口映射的方式,并且希望在重新启动后,登录之前也能正常连接。

2 操作

2.1 配置服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ vi /etc/systemd/system/autossh.service

编辑如下:

[Unit]
Description=Autossh tunnel
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=xieyan
ExecStart=autossh -M 55556 -N -R 8222:192.168.10.168:22 ubuntu@tencent.xyan666.com -i /exports/shell/xieyan_tencent.pem
Restart=on-failure
RestartSec=20s

[Install]
WantedBy=multi-user.target

2.2 启动服务

1
2
3
$ systemctl daemon-reload
$ systemctl enable autossh
$ systemctl start autossh

2.3 注意

  • 设置中的 ExecStart 需要设置阻塞命令,否则无法正常运行。
  • 如遇到错误,可以使用以下命令进行调试:journalctl -u autossh.service。
  • 如果需要开启多个端口(如 55556),最好在它们之间空出一些号码,以免出现错误(设为 55556 时,会同时开启 55556 和 55557)。