我是 NAT 和 iptables 的新手,我的實體伺服器運行 CentOS 6,安裝了 KVM,另外 2 個 Linux 盒子作為 VM 啟動 - VM2 和 VM3,它們的 ip 分別是 192.168.122.2 和 192.168.122.3。由於我只有一個真實IP,因此NAT用於將外部請求連接埠轉送到VM的應用程序,例如連接埠30022到VM3的ssh(連接埠22)。設定後一切正常,它已經運行了一個月,但在我完成 RAM 升級和伺服器重新啟動後,NAT/連接埠轉送不再工作。
更多資訊:
- Iptables 在主機作業系統上運行,但不在來賓作業系統上運行。
- 主機作業系統 iptables 設定 NAT 如下:
目標 prot 選擇來源目的地 DNAT tcp -- 任何地方 tcp dpt:30022 到:192.168.122.3:22 DNAT tcp -- 任何地方 tcp dpt:20022 至:192.168.122.2:22(22)
- 指令 iptables -t nat -L -v -n 的結果:
pkts 位元組目標 prot 選擇輸出來源目標 6 304 LOG tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:30022 LOG 標誌 0 等級 4 前綴 ROUTE APP3 6 304 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:30022 到:192.168.122.3:22 3 152 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:20022 到:192.168.122.2:22
- 這意味著當我嘗試從本機 PC(獨立網路)遠端登入 30022 時,套件由 NAT 規則處理
已經掙扎了幾天了..有什麼幫助嗎?
答案1
您應該使用 檢查您的主機上是否啟用了 IP 轉送cat /proc/sys/net/ipv4/ip_forward
。該命令應該打印1
.如果未啟用,您應該使用 來啟用它 echo 1 > /proc/sys/net/ipv4/ip_forward
。