Назад | Перейти на главную страницу

Почему SSH позволяет мне создавать несколько локальных туннелей на одном порту?

Как видите, я получаю сообщение об ошибке, когда пытаюсь создать другой туннель, прослушивающий локальный порт, который уже используется, но туннель создан. Могу ли я заставить ssh не создавать туннель на данном порту, когда есть другой процесс, использующий данный порт?

┌─[wakatana@~] [79 files, 89Mb]
└──> ps -elf | grep 'ssh -fN'
1 S wakatana     4263     1  0  80   0 - 10660 -      May02 ?        00:00:00 ssh -fN -L 5901:localhost:5901 root@MY.PUB.IP.ADDR
0 S wakatana     6340  4754  0  80   0 -  1959 -      00:22 pts/7    00:00:00 grep --color=auto ssh -fN

┌─[wakatana@~] [79 files, 89Mb]
└──> ssh -fN -L 5900:192.168.1.1:3389 root@MY.PUB.IP.ADDR
┌─[wakatana@~] [79 files, 89Mb]
└──> ps -elf | grep 'ssh -fN'
1 S wakatana     4263     1  0  80   0 - 10660 -      May02 ?        00:00:00 ssh -fN -L 5901:localhost:5901 root@MY.PUB.IP.ADDR
1 S wakatana     6371     1  0  80   0 - 10355 -      00:22 ?        00:00:00 ssh -fN -L 5900:192.168.1.1:3389 root@MY.PUB.IP.ADDR
0 S wakatana     6381  4754  0  80   0 -  1959 -      00:22 pts/7    00:00:00 grep --color=auto ssh -fN

┌─[wakatana@~] [79 files, 89Mb]
└──> ssh -fN -L 5900:192.168.1.3:3389 root@MY.PUB.IP.ADDR
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 5900
Could not request local forwarding.
┌─[wakatana@~] [79 files, 89Mb]
└──> ps -elf | grep 'ssh -fN'
1 S wakatana     4263     1  0  80   0 - 10660 -      May02 ?        00:00:00 ssh -fN -L 5901:localhost:5901 root@MY.PUB.IP.ADDR
1 S wakatana     6371     1  0  80   0 - 10355 -      00:22 ?        00:00:00 ssh -fN -L 5900:192.168.1.1:3389 root@MY.PUB.IP.ADDR
1 S wakatana     6391     1  0  80   0 - 10355 -      00:23 ?        00:00:00 ssh -fN -L 5900:192.168.1.3:3389 root@MY.PUB.IP.ADDR
0 R wakatana     6401  4754  0  80   0 -  1958 -      00:23 pts/7    00:00:00 grep --color=auto ssh -fN

Я пытался подумать, как привести в порядок ваш вопрос, но не успел. Я могу ответить за вас: вам нужно установить для параметра ExitOnForwardFailure значение yes.

$ ssh -fN -o ExitOnForwardFailure=yes -L 5900:192.168.1.1:3389 root@MY.PUB.IP.ADDR
$ ssh -fN -o ExitOnForwardFailure=yes -L 5900:192.168.1.3:3389 root@MY.PUB.IP.ADDR 
bind: Address already in use
channel_setup_fwd_listener: cannot listen to port: 5900
Could not request local forwarding.
$ ps auwwx | grep ssh | grep 1111
daniel          94948   0.0  0.0  2461204    520   ??  Ss    2:56pm   0:00.00 ssh -Nf -o ExitOnForwardFailure=yes -L 5900:192.168.1.1:3389 MY.PUB.IP.ADDR