Iptables
使用 iptables 將除一個埠之外的所有內容重新路由到其他伺服器
我已移至新的網路伺服器,現在我將所有流量重定向到新伺服器
echo "1" > /proc/sys/net/ipv4/ip_forward #clear old rules: iptables -F iptables -t nat -F #masquerade and redirect everything: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -i eth0 -d 1.1.1.1 -j DNAT --to-destination 2.2.2.2
這工作正常,直到所有 DNS 條目都普遍存在。但是現在我不能再登錄舊的機器了。
如何在舊伺服器 1.1.1.1 上保持打開 SSH 埠?
在 iptables 中,第一個匹配的規則獲勝。所以規則的正確排序很重要。
在這種情況下,說明如何處理埠 22 的流量的規則必須位於說明如何處理“其他所有內容”的規則*之前。*雖然如果鏈的策略與預設值相比,RETURN 會起作用,但更明確的是,只需使用 ACCEPT 作為“正常處理”的同義詞可能會更清楚:
echo "1" > /proc/sys/net/ipv4/ip_forward iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE iptables -t nat -A PREROUTING -i eth0 -m tcp -p tcp --dport 22 -j ACCEPT iptables -t nat -A PREROUTING -i eth0 -d 1.1.1.1 -j DNAT --to-destination 2.2.2.2