SSH 反向隧道第二次被阻止

SSH 反向隧道第二次被阻止

我有一台带有 umts 棒的 orangepi zero。现在我想建立一个到我的 vhost 的反向隧道。

[Unit]
Description=UMTS Reverse SSH Service
ConditionPathExists=|/usr/bin
After=network.target

[Service]
ExecStart=/usr/bin/ssh -NTC -o ServerAliveInterval=60 -o ExitOnForwardFailure=yes -o StrictHostKeyChecking=no -i %h/.ssh/orangepi -R 7878:localhost:3000 root@xxx

# Restart every >2 seconds to avoid StartLimitInterval failure
RestartSec=3
Restart=always

[Install]
WantedBy=multi-user.target

这项服务正在运行。但是,如果我关闭 orangepi 并重新启动它,隧道就不会出现,因为端口仍然被我的 vhost 上的最后一个 ssh 连接阻止!?杀死那个 pid 可以解决问题,但是为什么如果隧道消失,进程不会终止?

答案1

我想说你的问题在于:

之后=网络.目标

您应该将其更改为:

之后=网络在线.目标

network.target并不意味着网络已启动并且您至少在一个接口上处于在线状态。请参阅:https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

过早启动的服务可能正在等待超时并阻止连接。通过在systemctl start your.service启动后手动启动服务(而不是自动启动)来验证这一点。

相关内容