Я могу перенаправить порт, используя следующие команды:
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.XXX --dport 80 -j DNAT --to 192.168.161.31:80
iptables -t nat -A POSTROUTING -d 192.168.161.31 -j MASQUERADE
Я хотел использовать возможность пересылки пакетов, направленных на доменное имя, а не на IP-адрес, например XXX.XXX.XXX.XXX.
Например, можно ли сделать что-то вроде следующего и заставить его работать? Моя не работает!
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.XXX --dport 80 -j DNAT --to 192.168.161.31:80
iptables -t nat -A PREROUTING -p tcp -d www.example.com --dport 80 -j DNAT --to 192.168.161.32:80
Обратите внимание, что предыдущие команды должны перенаправляться на разные машины.
Нет, это невозможно. Пакеты никогда не нацелены на доменные имена на уровне TCP / IP.
Вам нужно будет использовать какой-то балансировщик нагрузки (например, apache с ProxyPass), если вам нужно перенаправить запросы на другой хост / порт.
Нет, ты не можешь сделать что-то подобное. DNS-имена не разрешены в правилах netfilter. Они применяются только на уровнях TCP / IP и ICMP.