SSH: переадресация порта на промежуточном компьютере в локальную сеть

У меня есть мастер, доступный извне по статическому IP (1.2.3.4). От мастера я могу подключиться к ведомому устройству, которое находится в локальной сети (10.0.0.1). В настоящее время мой .ssh / config выглядит так:

Host master
  Hostname 1.2.3.4
  User pi
  IdentityFile ~/.ssh/id_rsa

Host slave
  Hostname 10.0.0.1
  User pi
  IdentityFile ~/.ssh/id_rsa
  ProxyJump master

С вышесказанным я могу удобно подключиться к ведомому устройству, используя ведомое устройство ssh . К сожалению, это не работает с Filezilla, который позволяет мне указать только имя хоста и порт. Вот почему я хочу перенаправить порт 2201 ведущего устройства на ведомый SSH. Другими словами, я хочу, чтобы ssh (скрытый) -p 2201 был эквивалентен запуску подчиненного ssh . Есть предложения, как это сделать?

Изменить:

Добавление флага -t nat Я выполнил команды, предложенные @timmeyh. iptables -t nat -L --line-numbers теперь дает

Chain PREROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    DNAT       tcp  --  anywhere             anywhere             tcp dpt:2201 to:10.0.0.1:22

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    SNAT       tcp  --  anywhere             10.0.0.1             tcp dpt:ssh to:10.0.0.0

, где 10.0.0.0 - это главный адрес. Но ssh (скрытый) -p 2201 отклоняет соединение. Я также убедился, что / proc / sys / net / ipv4 / ip_forward включен.

0
задан 25 June 2019 в 18:29
1 ответ

Вы можете решить эту проблему с помощью iptables:

iptables -A PREROUTING -p tcp -m tcp --dport 2201 -j DNAT --to-destination 10.0.0.1:22
iptables -A POSTROUTING -d 10.0.0.1/32 -p tcp -m tcp --dport 22 -j SNAT --to-source <10.xxx IP master>

Первая команда скажет серверу перенаправить трафик, поступающий через порт 2201 к порту 22 ip 10.0.0.1

Второй сообщит, что весь трафик, идущий на порт 22 10.0.0.1, должен иметь правильный IP-адрес источника (в данном случае адрес 10.xxx вашего 1.2.3.4 сервер), чтобы пункт назначения (10.0.0.1) знал, куда его направить обратно.

Надеюсь, это поможет

0
ответ дан 23 November 2019 в 23:17

Теги

Похожие вопросы