網(wǎng)站首頁 編程語言 正文
1. 概述
在內(nèi)網(wǎng)一臺物理機(jī)部署了kvm虛擬化環(huán)境。為了避免虛擬機(jī)的IP地址和內(nèi)網(wǎng)網(wǎng)段沖突,kvm采用的是NAT模式,而非橋接模式。因此在本地訪問kvm虛擬機(jī)時,必須用物理機(jī)來實(shí)現(xiàn)轉(zhuǎn)發(fā),才能登錄到虛擬機(jī)。而kvm的轉(zhuǎn)發(fā),需要使用Linux的iptables工具來實(shí)現(xiàn)
2. iptables創(chuàng)建規(guī)則
先創(chuàng)建虛擬機(jī),比如創(chuàng)建一臺虛擬機(jī)node98,其ip地址是192.168.80.98,我想在本地訪問node98的22端口,是無法實(shí)現(xiàn)的。所以需要進(jì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配置了物理機(jī)192.168.212.93到其內(nèi)部kvm虛擬機(jī)node98的22端口轉(zhuǎn)發(fā)。需要注意的是:
iptables -D FORWARD 5 -t filter iptables -D FORWARD 4 -t filter
這兩條需要操作,否則轉(zhuǎn)發(fā)不成功,登錄失敗
3. 查看和清除
物理機(jī)創(chuàng)建的虛擬機(jī)多了,端口轉(zhuǎn)發(fā)規(guī)則多了起來。使用以下命令查看當(dāng)前的轉(zhuǎn)發(fā)規(guī)則
iptables -nL -v --line-numbers -t nat
會在Chain PREROUTING
和Chain POSTROUTING
看到對應(yīng)的條目。
清除當(dāng)前規(guī)則:
iptables -t nat -F PREROUTING iptables -t nat -F POSTROUTING
4. 一些別的問題
- 清理規(guī)則后,建議重啟libvirtd和虛擬機(jī),否則會存在虛擬機(jī)無法ping通外網(wǎng)的情況
- 每次添加轉(zhuǎn)發(fā)規(guī)則時,應(yīng)該都需要執(zhí)行iptables -D FORWARD的操作,否則無法登錄
- 如果在虛擬機(jī)部署了Java開發(fā)環(huán)境,使用vscode遠(yuǎn)程開發(fā)時,配置Tomcat的端口轉(zhuǎn)發(fā),不需要在物理機(jī)和虛擬機(jī)再操作,一切由vscode自行完成
原文鏈接:https://www.cnblogs.com/liwanliangblog/p/16399199.html
相關(guān)推薦
- 2024-01-12 JPA實(shí)現(xiàn)不等于查詢
- 2022-01-30 tortoisegit pull時報錯
- 2023-01-10 Oracle如何獲取數(shù)據(jù)庫系統(tǒng)的當(dāng)前時間_oracle
- 2022-04-23 Windows中將Nginx添加為服務(wù)的問題_nginx
- 2022-06-30 PyTorch詳解經(jīng)典網(wǎng)絡(luò)ResNet實(shí)現(xiàn)流程_python
- 2022-04-15 python尋找含有關(guān)鍵字文件和刪除文件夾方式_python
- 2022-02-12 uni-app 自定義導(dǎo)航欄 圖片按鈕
- 2023-04-06 C語言如何實(shí)現(xiàn)循環(huán)輸入_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支