更新

更新

我已经设置了远程/反向隧道cloud server <- in-house server并且可以http://cloudserver.com:8001成功访问。

在内部服务器中,我手动执行以下命令,它成功运行

/usr/bin/ssh -N -vvv -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -R 8001:127.0.0.1:80  [email protected]

当我将其设置为系统服务时(带 GUI 的 Ubuntu 服务器)服务似乎正在运行,但隧道尚未建立。

我的parking-tunnels.service

[Unit]
Description=Parking Tunnels
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=15
ExecStart=/usr/bin/ssh -N -vvv -i /home/some-user/.ssh/mykey -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -R 8001:127.0.0.1:80 [email protected]
User=some-user
Group=some-group
StandardInput=tty-force

[Install]
WantedBy=multi-user.target
journalctl -u parking-tunnels.service

Apr 21 18:05:06 dcs2 systemd[1]: Stopping Parking Tunnels...
Apr 21 18:05:06 dcs2 systemd[1]: parking-tunnels.service: Succeeded.
Apr 21 18:05:06 dcs2 systemd[1]: Stopped Parking Tunnels.
Apr 21 18:05:06 dcs2 systemd[1]: Started Parking Tunnels.
Apr 21 18:06:13 dcs2 systemd[1]: Stopping Parking Tunnels...
Apr 21 18:06:13 dcs2 systemd[1]: parking-tunnels.service: Succeeded.
Apr 21 18:06:13 dcs2 systemd[1]: Stopped Parking Tunnels.
Apr 21 18:06:13 dcs2 systemd[1]: Started Parking Tunnels.
  • 我还尝试过使用User=Group=不使用 ssh 选项-f -t -T -g
  • 我发现这StandardInput=tty-force是必需的,否则服务无法启动。
  • 也尝试过ssh -fType=forking但服务甚至无法加载。
  • 我没有忘记奔跑sudo systemctl daemon-reload
  • 云服务器有GatewayPorts yes.我在云服务器中有防火墙,但在修复此问题之前我已禁用它。
  • ssh 到云服务器不需要凭据,因为我已经共享了密钥。当询问手动执行密码时,我不知道服务是否有问题。

当服务运行时,我可以看到它,ps aux | grep ssh但隧道尚未建立。甚至从 ps 复制/粘贴命令也可以成功运行。

作为服务运行时出现什么问题?

更新

StandardInput=tty-force正在将所有日志从ssh -vvv另一个 tty 传输,这就是没有显示日志的原因。

也仅ssh -N是必需的。

我可以验证隧道,因为客户端(我的本地电脑)的防火墙已启用。

抱歉这个帖子。 感谢大家的帮助。

相关内容