環境:
宿主機:WIN 10 --192.168.9.87
虛擬機:CentOS ---192.168.255.129
聯通模式:NAT模式
一、VM做端口映射
1.為了方便管理,設置虛擬機為靜態IP
2.配置端口
3.測試ssh -p 5555 192.168.9.87 是否能轉到 192.168.255.129
發現無法訪問。【192.168.9.87與192.168.255.129 防火牆都已經關閉】
二、問題排查
1.127.0.0.1:5555 可以順利訪問 192.168.9.87:5555 無法訪問
因此可以推斷數據包到127.0.0.1 卻沒有到達192.168.9.87
換句話說 數據包到達本地的VM8網卡 沒有到達本地連接 在192.168.255.129上檢查與192.168.9.87的連通性,果然不通
2.連通性問題稍后解決。先解決目前的問題,此時有兩種辦法
第一種:
①宿主機進行再次端口轉發 將192.168.9.87的數據轉發到127.0.0.1:5555,此時宿主機需要再開通一個端口,比如8888【不能選擇同一端口】
②確認宿主機ip helper服務是不是在運行
③然后cmd 運行命令
netsh interface portproxy add v4tov4 listenport=8888 connectaddress=127.0.0.1 connectport=5557 【添加轉發端口】
添加成功后,可以訪問 。實際上路由 外部->192.168.9.87:8888->127.0.0.1:5557->192.168.255.129
第二種:
將VM8網卡與本地連接打通 互聯,開通本機路由功能【后續研究】
三、其他問題
1.在192.168.255.129 無法ping通 宿主機 192.168.9.87,可以ping通網關 192.168.255.2
2.靜態IP無法訪問,DHCP可以,推測是網絡配置問題
3.ping VM8的網卡無法ping通
4.netstat -rn檢查linux本機路由信息
發現沒有0.0.0.0的路由
5.檢查/etc/sysconfig/network-scripts 下的網卡配置文件后發現是里面網關配置問題,更正后重啟network后正常
6.192.168.9.87:5555 這個可以訪問了 192.168.9.87:8888 可以刪除此條轉發
netsh interface portproxy delete v4tov4 listenport=8888
四、補充
上述整個網絡拓撲如下圖
因此,當VM8不生效時,宿主機可以通過特定端口進行虛擬機訪問,虛擬機能正常返回數據包
當NAT網關不生效時,或者虛擬機未設置網關,宿主機可以正常訪問虛擬機,但是虛擬機的返回數據包將丟失
虛擬機連接外網,如果是靜態IP ,則通過NAT網關到達宿主機,再通過DNS服務器進行域名解析就可以正常訪問外部域名網絡。
----------------------------------------------------------------------------------------------------------------------------
另外十分感謝一位大神的熱心幫助,解決了困擾了半天的問題。