Я пытаюсь использовать SSH-туннель с несколькими переходами, который должен маршрутизировать трафик в обоих направлениях. Моя сеть конфигурации является:
ssh remoteforward over multiple hops
Мой личный снаряд на machineâ
machineâ может SSH в MachineB
MachineB может SSH в machineC
machineC локально подключен через Ethernet к Machined
Существует беговая обслуживание на machineD, где machineC отправляет UDP-пакеты в portD устройства machineD, а machineD отправляет свои ответы через UDP на portY машиныC.
я успешно сделал следующее:
(от machineâ)
SSH MachineB
(из оболочки в результате)
SSH machineC
(от полученной оболочки)
эхо "моя команда" | NC -u команда Machined PortX #send к службе Machined в
н.д. -ul Porty # Чтение результатов на порт machineC в
Я хотел бы сделать все это через туннели, так что я могу запустить пользовательские сценарии непосредственно на машине A, чтобы сформулировать служебные команды и проанализировать результаты. Я попытался следующие в моем конфигурационном файле .ssh:
host machineB
hostname x.x.x.x
user username_machineB
localforward 1234 machineC:22
host machineC
hostname localhost
user username_machineC
port 1234
localforward 1235 machineD:portX
remoteforward 1236 localhost:portY
Я думал, что я мог бы сделать следующее:
(от machineâ)
SSH MachineB
(от machineâ снова)
SSH machineC
(от machineA снова)
echo "моя команда" | nc -u localhost 1235
nc -ul 1236
Но ... он, похоже, не работает. Я не вижу ожидаемых ответов на 1236. Я не совсем уверен, как отлаживать это. Я также не совсем уверен в формате этих строк «localforward» и «remoteforward» в конфигурации MachineC. Я не знаю, кто будет интерпретироваться как «localhost» при оценке этих строк. Я подозреваю, что дистанционное управление может быть отключено на machineC, но я хочу убедиться, что сначала правильно настроил все остальное. Я делаю это неправильно?
В качестве альтернативы, существует ли другой способ достижения моей конечной цели без изменения любой конфигурации на машинах B, C или D? То, что я хотел бы сделать, это использовать machineA для программной сборки сложных команд, предназначенных для machineD, и анализировать результаты, используя скрипты на machineA.