Назад | Перейти на главную страницу

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 slave. К сожалению, это не работает с Filezilla, который позволяет мне указать только имя хоста и порт. Вот почему я хочу перенаправить порт 2201 ведущего устройства на ведомый SSH. Другими словами, я хочу ssh pi@1.2.3.4 -p 2201 быть эквивалентным бегу ssh slave. Любые предложения о том, как это сделать?

Редактировать:

Добавление -t nat flag Я выполнил команды, предложенные @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 pi@1.2.3.4 -p 2201 отказывается от связи. Я также убедился, что /proc/sys/net/ipv4/ip_forward включен.

Вы можете решить эту проблему с помощью 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.x.x.x IP of master>

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

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

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