NAT Внешний IP-адрес на локальном сервере с использованием iptables

У меня есть соединение adsl со статическим IP (скажем, 1.1.1.1). Мой дебианский брандмауэр соединяет Интернет с ppp и IP напрямую привязан к брандмауэру; ppp0 Link encap:Point-to-Point Protocol inet addr:1.1.1.1 PtP:<IP-DOES-NOT-MATTER> Mask:255.255.255.255

Я использую debian в качестве брандмауэра / маршрутизатора, а NAT – своих локальных клиентов в Интернете, используя базовый скрипт iptables; iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE iptables --append FORWARD --in-interface eth1 -j ACCEPT echo 1 > /proc/sys/net/ipv4/ip_forward

Я создал субдоменную запись для моего внешнего размещенного домена: sub.example.com IN A 1.1.1.1

Я могу подключить DNAT http из Интернета к моему локальному серверу с помощью iptables: iptables --table nat --append PREROUTING -i ppp0 --dest 1.1.1.1 -p tcp --dport 80 -j DNAT --to 192.168.1.101:80

Я также хочу, чтобы мои местные клиенты достигли sub.example.com без какой-либо дополнительной настройки.

Команды iptables, которые я пытался использовать в брандмауэре (это не сработало): iptables --table nat --append PREROUTING --in-interface eth1 --dest 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.101:80 и iptables -t nat --append OUTPUT --dest 1.1.1.1 -p tcp --dport 80 -j DNAT --to-dest 192.168.1.101

Первая команда маршрутизировала пакеты на сервер, но я не получил ответа (1.1.1.1 не настроен на сервере). Второй ничего не сделал.

Есть ли способ сделать это с помощью iptables?

  • Как настроить QoS на IP-основу?
  • Перенаправление на услуги в NAT или Bridged Network только с одним поддоменом
  • Не удается связаться с локальным DNS-сервером для подзонов локального домена, поскольку брандмауэр возвращает IP-адрес шлюза
  • linux nat разные правила
  • Переписать исходный IP-адрес в протоколах TCP с помощью iptables
  • Порт прямого хоста LXC NAT для контейнера
  • NAT не работает должным образом в Linux 2.6.30
  • Изменить порт DST на мостовой трафик
  • One Solution collect form web for “NAT Внешний IP-адрес на локальном сервере с использованием iptables”

    После ответа @ wurtel я использовал DNAT и SNAT вместе, и это сработало. Спасибо за это 🙂

    Команды: iptables --table nat --append PREROUTING --in-interface eth1 --dest 1.1.1.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.101:80 iptables --table nat --append POSTROUTING --out-interface eth1 -source 192.168.1.0/24 --dest 192.168.1.101 -p tcp --dport 80 -j SNAT --to-source 192.168.1.1

    Interesting Posts

    Дерево каталогов файлового менеджера cPanel не отображается

    tmux: обмен переменных между сеансами

    Ошибка при запуске на Ubuntu 14.04 после обновления системы безопасности – отсутствует libXfont.so.1

    дедупликация строк в большом файле

    Почему старый двоичный файл все еще работает?

    Найдите шаблон в файле и переместите его в новые файлы по одному

    Как настроить lynx для передачи изображений в xloadimage, xv или zvg?

    bash scripts – удалять повторяющиеся строки с меньшим значением

    Chroot debian сжимает доступ к оболочке

    Как скопировать файлы с удаленного сервера unix в локальные окна?

    Как найти появление имен в файле?

    Как перенаправить список человеческих читаемых путей на другую команду?

    Как я могу удалить весь текст между вложенными фигурными скобками в многострочном текстовом файле?

    Как отображать числа только в конце переменной в bash?

    Как повторить команду с добавленным параметром

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