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

Перенаправление портов localhost: порт на lan: порт с использованием iptables - как?

Есть способ нанести карту 127.0.0.1:3389 к 192.168.1.2:3389 (с iptables? То есть все подключения к localhost:3389 будет перенаправлен на мою машину в локальной сети?

Причина в следующем: мое приложение RDP для iPhone может выполнять SSH-туннелирование, но не предоставляет возможности для настройки параметров SSH. Итак, он подключается к моему маршрутизатору через SSH, устанавливает туннель к 127.0.0.1:3389, а затем пытается подключиться к localhost:3389 на айфоне. Потерпеть поражение.

Я не хочу запускать SSH-сервер на моем компьютере в локальной сети и вместо этого хочу использовать SSH-сервер маршрутизатора (Asus RT-N16 с Tomato). Это выполнимо? Это не работает:

$ iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 3389 -j DNAT --to-destination 192.168.1.2

В вашей команде iptables есть несколько ошибок:

1) вы пытаетесь поймать это в таблице OUTPUT, но для такого перенаправления вам нужно сделать это в PREROUTING

2) вы тоже не перенаправляете на порт. вы просто указываете iptables отправлять эти пакеты на определенный IP без указания порта.

Итак, ваша команда должна выглядеть так:

iptables -t nat -A PREROUTING -d 127.0.0.1 -p tcp --dport 3389 -j DNAT --to 192.168.1.2:3389

Мой iptables-fu может быть немного ржавым, поэтому вы, если он не работает, попробуйте запустить ту же команду и в таблице INPUT (-A INPUT). Если ничего не работает, кричите сюда, и мы найдем решение.

Посмотри на Rinetd кажется, делает то, что вы хотите. Есть дополнительная информация по установке и использованию Вот.