Iptables
需要 Nat 配置的基本幫助
我有一個 IP 為 1.0.0.5/24 的伺服器。這是伺服器的主 IP 地址,現在我還有另外兩個伺服器 IP 地址,它們是 1.0.2.30/24 和 1.0.2.31/24。我想讓一個執行另一個作業系統的 VirtualBox 可以通過 Internet 訪問,並且只允許指定的 IP 訪問虛擬盒子。
我是 iptables 的新手,因此我需要一些基本幫助和有關此的入門資訊。
託管服務提供商不允許超過每個交換機埠的 MAC 地址,這意味著據我所知,我無法建立網橋。
此外,我希望主機拒絕額外的 IP,因此它只有在額外的 IPS 上接受請求的 VirtualBox / 虛擬機。
我沒有測試過這個,但這是我會嘗試的。
- 在主機上創建一個新網橋
brctl
brctl addbr br0
- 使用連接到此網橋的橋接網路配置 VM
- 為網橋分配一個私有子網並在其上為主機分配一個 IP
ip addr add 192.168.1.1/24 dev br0 ip route add 192.168.1.0/24 dev br0
- 要麼用這個範圍內的 IP 靜態配置 VM(例如 192.168.1.2),要麼在主機上設置 DHCP 伺服器(例如dnsmasq或 VirtualBox 的dhcpserver)。
- 檢查主機是否可以在私有 IP 上訪問虛擬機,反之亦然
- 將靜態 IP 附加到主機上的 eth0
ip addr add 1.0.2.30/24 dev eth0
- 檢查您是否可以從外部連接到附加 IP 上的主機
- 在主機上啟用 IP 轉發
echo 1 > /proc/sys/net/ipv4/ip_forward
- 將 iptables 配置為對來自 VM 的 SNAT 傳出數據包
iptables --table nat --append POSTROUTING --source 192.168.1.0/24 --jump SNAT --to 1.0.2.30 iptables --append FORWARD --source 192.168.1.0/24 --jump ACCEPT
- 檢查 VM 是否已連接到 Internet
- 將 iptables 配置為 DNAT 數據包到 VM 的附加 IP
iptables --table nat --append PREROUTING --destination 1.0.2.30 --to-destination 192.168.1.2 iptables --append FORWARD --destination 192.168.1.2 --jump ACCEPT
- 檢查您是否可以從外部連接到附加 IP 上的 VM