Мне нужно, чтобы remote forwarding биндился к внешнему IP или хотя бы просто к 0.0.0.0, делаю так:
ssh -NfR '*':7887:localhost:80 mylogin@remotehost
Получаю в итоге, что на удалённой стороне сокет открывается на локалхост вообще вне зависимости от того, ставлю я *, 0.0.0.0 или внешний IP в качестве первого параметра в последовательности '*':7887:localhost:80. Я бы с радостью сделал чёртов проброс портов iptables'ом, но на удалённой стороне - OpenVZ контейнер, а в OpenVZ, как известно, работа с модулями ядра - это геморрой, которого врагу не пожелаешь. Ну и есть ещё интересный момент: у меня нет доступа к хост-машине, вообще
Да и вообще интересно, почему в документации ssh написано одно,а на деле оно не работает?
>Я бы с радостью сделал чёртов проброс портов iptables'ом, но на удалённой стороне - OpenVZ контейнер
Я не очень понимаю, что тебе мешает сделать проброс портов на шлюза на контейнер.
Да, man ssh конечно мог бы и упомянуть об этом вскользь в описании параметра -R. А то как-то очень уж нетривиально приходится узнавать о том, что описание -R неверно для абсолютного большинства дистрибутивов (мне кажется, для 100%, но не стану утверждать наверняка).
ext_ip - это адрес хоста, на котором открывается tcp-сокет. А пробрасываться соединение может как на тот хост, с которого была выполнена команда ssh -R, так и ещё куда угодно. У меня задача - просто сделать проброс порта внутрь NAT'а, при этом не трогая ничего по пути.
Ещё возник вопрос, вдруг кто-нибудь это увидит и ответит :) В общем, как сделать так, чтобы SSH на удалённом хосте повис на одном из привилегированных портов? Почему-то он не даёт этого сделать даже если коннектишься к удалённому хосту рутом.
Сорри, я ступил, оказывается, нельзя вообще на удалённой стороне биндиться в определённому IP-адресу: можно либо к localhost, либо ко всем подряд адресам