kvm虛擬機配置NAT端口轉(zhuǎn)發(fā)的實現(xiàn)方法
1. 概述
在內(nèi)網(wǎng)一臺物理機部署了kvm虛擬化環(huán)境。為了避免虛擬機的IP地址和內(nèi)網(wǎng)網(wǎng)段沖突,kvm采用的是NAT模式,而非橋接模式。因此在本地訪問kvm虛擬機時,必須用物理機來實現(xiàn)轉(zhuǎn)發(fā),才能登錄到虛擬機。而kvm的轉(zhuǎn)發(fā),需要使用Linux的iptables工具來實現(xiàn)
2. iptables創(chuàng)建規(guī)則
先創(chuàng)建虛擬機,比如創(chuàng)建一臺虛擬機node98,其ip地址是192.168.80.98,我想在本地訪問node98的22端口,是無法實現(xiàn)的。所以需要進行以下操作:
iptables -t nat -A PREROUTING -p tcp --destination 192.168.212.93 --dport 2298 -j DNAT --to-destination 192.168.80.98:22 iptables -t nat -A POSTROUTING -p tcp --dport 22 -d 192.168.80.98 -j SNAT --to 192.168.212.93 iptables -D FORWARD 5 -t filter iptables -D FORWARD 4 -t filter
上述使用iptables配置了物理機192.168.212.93到其內(nèi)部kvm虛擬機node98的22端口轉(zhuǎn)發(fā)。需要注意的是:
iptables -D FORWARD 5 -t filter iptables -D FORWARD 4 -t filter
這兩條需要操作,否則轉(zhuǎn)發(fā)不成功,登錄失敗
3. 查看和清除
物理機創(chuàng)建的虛擬機多了,端口轉(zhuǎn)發(fā)規(guī)則多了起來。使用以下命令查看當前的轉(zhuǎn)發(fā)規(guī)則
iptables -nL -v --line-numbers -t nat
會在Chain PREROUTING
和Chain POSTROUTING
看到對應的條目。
清除當前規(guī)則:
iptables -t nat -F PREROUTING iptables -t nat -F POSTROUTING
4. 一些別的問題
- 清理規(guī)則后,建議重啟libvirtd和虛擬機,否則會存在虛擬機無法ping通外網(wǎng)的情況
- 每次添加轉(zhuǎn)發(fā)規(guī)則時,應該都需要執(zhí)行iptables -D FORWARD的操作,否則無法登錄
- 如果在虛擬機部署了Java開發(fā)環(huán)境,使用vscode遠程開發(fā)時,配置Tomcat的端口轉(zhuǎn)發(fā),不需要在物理機和虛擬機再操作,一切由vscode自行完成
到此這篇關于kvm虛擬機配置NAT端口轉(zhuǎn)發(fā)的文章就介紹到這了,更多相關kvm NAT端口轉(zhuǎn)發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳細介紹kvm虛擬機靜態(tài)和動態(tài)遷移(圖文介紹)
本篇文章主要詳細介紹kvm虛擬機靜態(tài)和動態(tài)遷移,具有一定的參考價值,有需要的可以了解一下。2016-11-11KVM虛擬化Linux Bridge環(huán)境部署的方法步驟
本文主要介紹了KVM虛擬化Linux Bridge環(huán)境部署的方法步驟,使虛擬機連接到網(wǎng)絡,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05kvm虛擬機配置NAT端口轉(zhuǎn)發(fā)的實現(xiàn)方法
為了避免虛擬機的IP地址和內(nèi)網(wǎng)網(wǎng)段沖突,kvm采用的是NAT模式,而非橋接模式,而kvm的轉(zhuǎn)發(fā),需要使用Linux的iptables工具來實現(xiàn),下面通過本文給大家介紹kvm虛擬機配置NAT端口轉(zhuǎn)發(fā)的實現(xiàn)方法,感興趣的朋友一起看看吧2022-06-06