
我有一台具有多個與其關聯的 IP 位址的伺服器。我正在嘗試運行一個node.js Web伺服器(我不想以root身份運行),僅使用這些IP位址之一(如果來自所有IP位址的流量都被轉發,那將是非常糟糕的)。
透過搜尋超級用戶,看起來這可以透過 iptables 實現:
如何設定 iptables 以在連接埠 80 上轉送來自特定來源的流量
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 --source 212.333.111.222 -j REDIRECT --to-port 9020
但是,我不明白為什麼需要 eth0。
根據:
http://blog.softlayer.com/2011/iptables-tips-and-tricks-port-redirection/
這可以透過以下方式完成:
iptables -t nat -A PREROUTING -p tcp --dport 2525 -j REDIRECT --to-ports 25
將連接埠 80 上的單一 IP(例如 111.111.111.111:80)的流量轉送到同一伺服器上的另一個連接埠(例如 111.111.111.111:8765)的正確方法是什麼?
感謝您的幫忙!
答案1
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8765
eth0
我的意思是,您可以使用您想要的接口,而不是使用 IP 位址,而使用接口名稱。
iptables 這條規則說:
- 在 PreRouting 上執行
- 多納特
- 在介面 eth0 上
- 協議是TCP
- 要匹配的目標連接埠是 80
- 重定向到連接埠 8765