Я видел вопрос "туннель Windows HTTP через 2 хоста Linux?" и попытка узнать что-то об ответах. Я учился. Я начну давать свою проблему и затем говорить немного о моих тестах с ответами того вопроса.
Я пытаюсь соединить свой хост окон хоста Linux, с помощью среднего Linux (единственный с внешним IP).
Мой windows host
не имеет портов, которые я хочу открытый (игра и порты трафика).
У меня есть a linux host
это имеет порты, которые я хочу открытый.
Так, проблема была бы решена, если я мог бы сделать a ssh tunnel
через мой windows host
к моему linux host
. Проблема состоит в том, что оба из затем только имеют внутренний IP (каждый находится на моей компании, другой находится на моем университете).
Спасение: у Меня есть доступ к моей компании linux server
, это имеет внешний IP (200. X.X.X).
Так, я хотел бы использовать это linux server
как промежуточное звено, хотя мой windows host
и мой linux host
.
The complicating:
Мой linux server
только имеет порт 110 открытых. Я могу только соединиться через ssh с ним с помощью 110 портов.
Другими словами: мне нужен пример, таким образом, что я могу сделать:
windows host's
Firefox, proxified для использования localhost:9999
перенаправляет его доступ к linux server
,
это перенаправляет его доступ к моему linux host
.
Один (но не единственный) идея является обратным туннелированием мой linux host
к моему linux server
, и затем прямое туннелирование мой windows host
к моему linux server
, создание этого linux server
перенаправьте мой windows host
доступ к моему linux host
.
Но я не знаю, что команды пробуют это.
Я попробовал, но без успеха:
хост Linux: ssh -R 20000:localhost:22 middle_user@200.X.X.X -p110
хост окон: ssh -L 9999:localhost:20000 middle_user@200.X.X.X -p110
Как я могу сделать это?
Windows host
(внутренний IP == 10. X.X.X; все открытые порты)
прохождение через
Linux Server
(внешний IP == 200. X.X.X; может только подключить использование ssh к нему на порте 110, порт 110 является единственным открытым),
перенаправление окон размещает трафик к
Linux Host
(внутренний IP == 192. X.X.X; открытые порты, может соединить использование ssh на порте 22),
Это работало бы если на моем linux server
, Я мог (в идеальном мире), получают доступ к моему linux host
(что невозможно, учитывая, что у меня есть внутренний IP на моем linux host
)
хост окон: ssh -L 9999:localhost:9999 -D 9999 -p 110 middle_user@200.X.X.X
сервер Linux: ssh -D 9999 linux_host_user@linux_host_ip
Адаптированный из ответа, Как к ssh к недостижимой удаленной машине путем туннелирования через сервер, которого все могут достигнуть?
"Решение", которое работало:
на linux-user
, Я сделал ssh -R 1234:localhost:22 server_user@200.X.X.X -p110
на windows-user
, Я сделал ssh -L 1235:localhost:1234 server_user@200.X.X.X -p110
затем,
windows-user
, Я сделал ssh -D 9999 -p 1235 linux-user@localhost
и затем, на windows-user
, Я мог настроить Firefox для использования носков прокси localhost:9999 и мог получить доступ к серверу, работающему на моей машине пользователя Linux.
P.S.: Для ssh на окнах я использовал cygwin, чтобы установить openssh, упростить вещи.