Переадресация SSH работает локально, но не работает на удаленном компьютере

Переадресация SSH работает локально, но не работает на удаленном компьютере

Я сделал локальную переадресацию порта SSH на удаленной машине:

ssh -N -L 127.0.0.1:3388:127.0.0.1:22 localhost

это работает на самой удаленной машине:

telnet localhost 3388

возвращается

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4

Однако, когда я использую эту переадресацию с локальной машины:

telnet remote.ip 3388

это не удается:

Trying remote.ip...
telnet: Unable to connect to remote host: Connection refused

Можно подумать, что порт 3388 удаленной машины заблокирован брандмауэром или чем-то в сети, поэтому я отключил переадресацию SSH и протестировал http-сервер, прослушивающий порт 3388 на удаленной машине:

python3 -m http.server 3388

затем я подключаюсь к этому порту со своей локальной машины:

telnet remote.ip 3388

Результат дает

Trying remote.ip...
Connected to remote.ip.
Escape character is '^]'.
quit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
        <title>Error response</title>
    </head>
    <body>
        <h1>Error response</h1>
        <p>Error code: 400</p>
        <p>Message: Bad request syntax ('quit ').</p>
        <p>Error code explanation: HTTPStatus.BAD_REQUEST - Bad request syntax or unsupported method.</p>
    </body>
</html>
Connection closed by foreign host.

что означает, что порт 3388 на удаленной машине доступен для моей локальной машины. Так почему же и переадресация SSH, и сеть работают нормально по отдельности, но не работают, когда они объединены? Кто-нибудь знает, как это исправить? Спасибо.

решение1

Вы настроили локальную переадресацию SSH таким образом, что она прослушивает только порт localhost 3388. Localhost недоступен с других устройств в сети, поэтому вам не удалось удаленно установить соединение.

Чтобы открыть порт переадресации для других машин в сети, необходимо привязать его к достижимому адресу, например 192.168.1.5 или 0.0.0.0 (все интерфейсы).

напримерssh -N -L 0.0.0.0:3388:127.0.0.1:22 localhost

Связанный контент