Перенаправление локального хоста: порт на внешнийIP: NewPort

У нас есть приложение, работающее на нашем Linux-сервере. Из этого приложения, когда мы пытаемся получить доступ к localhost (127.0.0.1): localport, он должен быть перенаправлен на внешний IP-адрес. Пользователи будут только пытаться получить доступ к локальному хосту на определенном порту, который будет автоматически перенаправлен. Я прочитал таблицу iptables nat, но PREROUTING и POSTROUTING не будут применяться, если я прав, поскольку я обращаюсь к порту на локальном хосте от самого локального хоста, который вообще не касается сетевого интерфейса. Удивление таблицы OUTPUT может оказаться полезным, но когда я попытался использовать некоторые комбинации, это не сработало. Правильно ли я использую или вообще не могу это сделать?

Может ли кто-нибудь указать мне в правильном направлении?

2 Solutions collect form web for “Перенаправление локального хоста: порт на внешнийIP: NewPort”

Я решил сделать это сам.

2, и для достижения этого должен быть установлен флаг.

Пример, используемый здесь для «telnet localhost XXXX», должен пересылать пакеты в Ext.er.nal.IP: YYYY.

sysctl -w net.ipv4.conf.all.route_localnet = 1

Этот флаг, к сожалению, существует только на самых последних ядрах Linux и недоступен на старом ядре (в старом ядре нет никакого альтернативного флага). Я не совсем уверен, какое точное ядро ​​- это флаг, доступный от этого. Я считаю, что он доступен в версиях ядра 3.XX. Этот флаг должен учитывать адреса loopback как правильный адрес источника или получателя. Источник: https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

iptables -t nat -A OUTPUT -p tcp -dport XXXX -j DNAT -to-destination Ext.er.nal.IP: YYYY

Вышеупомянутая команда изменит пакеты, которые относятся к localhost: XXXX с IP-адресом назначения: Ext.er.nal.IP: YYYY

iptables -t nat -A POSTROUTING -j MASQUERADE

Команда будет изменять IP-адрес источника как общедоступный ip вашего компьютера.

Вы можете сделать свои правила более строгими, добавив соответствующие исходные и целевые IP-адреса и интерфейсы, используя -s, -d, -i и -o. См. «Man iptables».

Благодаря Джону У. Смиту и Вуртелю. Предложения были очень полезными.

Самый простой способ выполнить это – установить netcat и inetd (Debian имеет это в openbsd-inetd ).

Добавьте строку в /etc/inetd.conf :

 127.0.0.1:1234 stream tcp nowait root /bin/nc nc ex.ter.nal.ip 1234 

Замените 1234 номером реального порта и ex.ter.nal.ip реальным внешним IP-адресом. Вам может потребоваться добавить .1000 или некоторое большее число в параметр nowait если необходимо сделать более 128 подключений в минуту; это означает, что вы не сможете выполнить безусловную перезагрузку вашей системы.

У меня также есть -q 4 -w 10 как опции nc , так как это помогает в моей ситуации, но вам может и не понадобиться.

Перезагрузите inetd после изменения файла inetd.conf .

В этом случае nc запускается inetd как ретрансляционный процесс, который работает достаточно хорошо.

  • Разрешать входящие соединения только из Google Translate
  • Правила iptables для того, чтобы клиент мог загружать tftp с любого сервера
  • Локальный порт недоступен с открытым IP-адресом
  • Исходящий трафик через фиктивный интерфейс к интерфейсу ppp
  • контейнер lxc <-> внешний интернет, что я пропустил?
  • Разрешить доступ к конкретному приложению в iptables с помощью guid
  • Какие сетевые службы зависят от правила iptables «accept related input»?
  • Fedora 25: настройки firewalld не вступят в силу
  • Как передать пакет в беспроводной сети ad hoc?
  • RHEL 6.5 не загружается после загрузки APF-брандмауэра
  • Как разрешить SSH и SMTP использовать только IPTables?
  • Interesting Posts

    Gnome shell – alt-tab назначает текущее рабочее пространство

    Отслеживание использования Интернета

    Как включить файлы данных (изображения, текстовые файлы, …) в пакет debian

    Как эта команда делает пользователя sudoer?

    Не могу понять, как вернуться к резервному файлу профиля

    LFSH … для чего / lib / init?

    Почему временные метки на моем съемном носителе считаются временем UTC?

    Как прекратить зарядку аккумулятора до 100% в OpenBSD?

    vsftp не поддерживает настройку chmod при загрузке вне моей локальной сети

    Изменение настроек темы и кнопок мыши KDE из сценария оболочки

    Vim: замените всю строку, начинающуюся с строки строкой

    Объедините дублированные строки и добавьте «N / A» в конце

    Создайте 2 файла с похожим именем с содержимым из 2-строчного вывода команды

    Прерывание MSI в последовательном драйвере

    Получить список разделенных запятыми списков объектов в каталоге?

    Linux и Unix - лучшая ОС в мире.