1

У меня есть две машины, одна под управлением Windows, а другая под управлением Ubuntu, и приложение, работающее в Ubuntu, которое подключается к аналогу сервера, работающему локально или удаленно. Сервер работает в Windows удаленно, и я пытаюсь заставить клиентское приложение в Ubuntu полагать, что сервер фактически работает локально, перенаправив соответствующий порт (например, 5555) из Windows в Ubuntu. Затем я говорю клиентскому приложению подключиться локально к 127.0.0.1 через определенный порт, который я установил. Когда это происходит, я получаю следующую ошибку в моем терминале:

C:\>debug1: Connection to port 5555 forwarding to localhost port 5555 requested.
debug2: fd 9 setting TCP_NODELAY
debug2: fd 9 setting 0_NONBLOCK
debug3: fd 6 is 0_NONBLOCK
debug1: channel 3: new [direct-tcpip]
buffer_get_ret: trying to get more bytes 4 than in buffer 0
buffer_get_string_ret: cannot extract length
buffer_get_string: buffer error

В этот момент соединение SSH прерывается, возвращая меня к обычному терминалу. Мои знания SSH в значительной степени ограничены подключением к другому компьютеру для удаленного управления; Переадресация портов является новым для меня, поэтому любая оценка очень ценится!

Обновление: я решил проблему с помощью SSHing к машине Ubuntu с машины Windows с удаленной переадресацией портов. Это эффективно выполняет то же самое, что я пытался сделать ранее. Таким образом, при подключении клиентского приложения на компьютере с Ubuntu к серверному приложению, работающему в Windows, никаких ошибок и отключений не возникало.

Хотя это, конечно, делает меня счастливым, поскольку я достиг своей цели, теперь я хотел бы выяснить, почему этот второй способ работает (удаленная переадресация портов из Windows в Ubuntu, инициированный Windows), а первый - нет (переадресация локальных портов из Windows для Ubuntu, инициированная Ubuntu).

0