cli*_*ime 3 ssh-tunneling init
我已经设置了 ssh 隧道,以便能够连接 NAT 后面的目标计算机。我已将以下内容放入计算机上的 /etc/inittab 中:
tu:2345:respawn:/usr/bin/autossh -M 20000 -f -n -N -T -R 6790:localhost:22 me@servername.cz
Run Code Online (Sandbox Code Playgroud)
它有效,即我可以通过发出 ssh -p 6790 me@localhost 进行连接。但是时不时我会在目标计算机上收到以下消息:
INIT: Id "tu" respawning too fast, disabled for 5 minutes
Run Code Online (Sandbox Code Playgroud)
在服务器上的 /var/log/secure 中,我可以看到以下内容:
Oct 29 03:11:15 vm sshd[19725]: Accepted publickey for me from 90.179.155.74 port 37416 ssh2
Oct 29 03:11:15 vm sshd[19727]: Received disconnect from 90.179.155.74: 11: disconnected by user
Oct 29 03:17:04 vm sshd[20892]: Accepted publickey for me from 90.179.155.74 port 40116 ssh2
Oct 29 03:17:15 vm sshd[20896]: error: bind: Address already in use
Oct 29 03:17:19 vm sshd[20896]: error: channel_setup_fwd_listener: cannot listen to port: 20000
Run Code Online (Sandbox Code Playgroud)
这种情况还在继续。知道有什么问题吗?
好的,找到答案了。如果使用 -f 选项调用 autossh,它会将自己派生为守护进程并且父进程退出。因此 init 再次重生它......一次又一次......
我想我不应该使用 autossh 但只是 ssh 因为重生是由 init 完成的,我想,不需要由 autossh 再次自动重生。我把这条线改成了
tu:2345:respawn:/usr/bin/ssh -n -N -T -R 6791:localhost:22 me@servername.cz
我还加了
ServerAliveInterval 15
ServerAliveCountMax 2
Run Code Online (Sandbox Code Playgroud)
进入 /etc/ssh/ssh_config 以保持连接有效。
我认为这种设置可能效果很好。
| 归档时间: |
|
| 查看次数: |
3478 次 |
| 最近记录: |