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

подключиться с ssh-сервера к удаленному компьютеру, используя локальный IP-адрес

У меня есть удаленный компьютер Linux, подключающийся к локальному ssh-серверу, создающий обратный ssh-туннель на порту 5051. На самом ssh-сервере я запускаю следующие две команды, чтобы дать удаленному компьютеру локальный IP-адрес.

ip addr add 192.168.1.51/24 dev eth0
iptables -t nat -A PREROUTING -d 192.168.1.51 -p tcp --dport 22 -j REDIRECT --to-port 5051

На ssh сервере я также настроил GatewayPorts да в sshd_conf.

С третьего компьютера в моей сети, если я использую ssh на 192.168.1.51, я подключаюсь напрямую к удаленному компьютеру Linux.

Но с сервера ssh, если я использую ssh 192.168.1.51, я снова подключаюсь к серверу ssh. Я не подключаюсь к удаленному компьютеру. Единственный способ подключиться к удаленному компьютеру с ssh-сервера - использовать корень ssh @ localhost -p 5051

Но я не хочу этого делать. Я хочу иметь возможность использовать ssh 192.168.1.51 с ssh-сервера и подключаться к удаленному компьютеру.

Правила цепочки PREROUTING таблицы IPTables применяются только к IP-пакетам, поступающим из других систем через сетевой адаптер, подключенный к сети.

Если вы хотите применить правило к локально сгенерированным пакетам, вам необходимо добавить правило в цепочку OUTPUT.

Итак, вам нужно сделать это:

iptables -t nat -A OUTPUT -d 192.168.1.51 -p tcp --dport 22 -j REDIRECT --to-port 5051