Я могу перенаправить порт, используя следующие команды:
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
Обратите внимание, что предыдущие команды должны быть перенаправлены на разные машины.
решение1
Нет, это невозможно. Пакеты никогда не нацелены на доменные имена на уровне TCP/IP.
Вам понадобится использовать какой-либо балансировщик нагрузки (например, Apache с ProxyPass), если вам нужно перенаправить запросы на другой хост/порт.
решение2
Нет, вы не можете сделать что-то подобное. DNS-имена не допускаются в правилах netfilter. Они применяются только на уровнях TCP/IP и ICMP.