我可以使用以下命令進行連接埠轉送:
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
我想使用是否可以轉送針對網域名稱而不是像 XXX.XXX.XXX.XXX 這樣的 IP 位址的封包。
例如,人們可以做類似以下的事情並使其發揮作用嗎?我的不行!
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 等級的網域。
如果您需要將請求重新導向到另一個主機/端口,您將需要使用某種負載平衡器(例如帶有 ProxyPass 的 apache)。
答案2
不,你不能做那樣的事情。 netfilter 規則中不允許使用 DNS 名稱。它們僅適用於 TCP/IP 和 ICMP 等級。