2019/10/23, Hyper-V CentOS7
摘要:Hyper-V中的虛擬機CentOS7能固定IP並且連接外網
保證宿主機的Xshell始終只用同一個IP連接到該虛擬機
新建內部網絡虛擬交換機
修改虛擬網卡IP地址
經過第一步后,網絡連接中會出現剛剛新建的虛擬網卡"InternalNat"
1.打開 控制面板-網絡和Internet-網絡連接
2.找到剛剛新建出來的虛擬網卡
3.右擊該網卡,屬性-網絡-Internet協議版本4(TCP/IPv4)
4.填寫固定IP地址,我這里填寫的是192.168.137.1,子網掩碼255.255.255.0
備注:192.168.137.1這個IP地址恰巧也是Windows網絡適配器共享網絡所使用的默認IP地址(注冊表可修改)
應用到虛擬機的網卡上
修改虛擬機網絡設置
定位到network-scripts目錄,找到並編輯自己的網卡(一般叫ifcfg-eth0)
cd /etc/sysconfig/network-scripts/ sudo vi ifcfg-eth0
主要需要修改以下鍵值
#dhcp動態獲取改為static靜態IP BOOTPROTO=static #自動啟動no改為yes ONBOOT=yes #新增以下字段 IPADDR=192.168.137.10 GATEWAY=192.168.137.1 DNS1=192.168.137.1 NETMASK=255.255.255.0 BROADCAST=192.168.137.255
修改完如下圖
重啟網絡服務
sudo service network restart ip a #查看IP
可以看到修改的配置已經生效
到這一步為止,虛擬機已經使用InternalNat網卡(192.168.137.1)設置了自己的IP(192.168.137.10)
在宿主機上,使用 ping 192.168.137.10,發現能ping通
解決ssh連接虛擬機慢的問題
網絡上找到的教程大多數到此為止,但是我自己在實際嘗試過程中還發現別的問題:
使用Xshell連接虛擬機,建立連接的過程很慢,大概需要等待半分鍾至一分鍾左右
讓我一度以為我沒配置成功或者配置出錯或者防火牆阻礙了連接,但是連上之后輸入命令一切正常
經搜索后發現,可能是由於虛擬機ssh嘗試反向解析客戶端的IP地址,如果DNS中沒有這個IP的域名解析,則會等到DNS查詢超時才會進行下一步,消耗很長時間。
解決辦法如下:
繼續在虛擬機中
sudo vi /etc/ssh/sshd_config
將 #UseDNS yes 改成 UseDNS no(注意去掉#符號),修改后如下圖所示(文件內容有些長,找不到這句話可以使用/UseDNS進行搜索)
保存修改后,重啟sshd
sudo service sshd restart
重新使用Xshell連接虛擬機,發現連接速度正常了
此時宿主機能隨時隨地使用192.168.137.10連接虛擬機,但是虛擬機是無法訪問到外網
內部網絡-虛擬機訪問外網
1.打開 控制面板-網絡和Internet-網絡連接
2.找到宿主機正常聯網使用的網卡
3.右擊該網卡,屬性-共享
4.勾選“允許其他網絡用戶通過此計算機的Internet連接來連接”,然后下拉菜單中選擇新建出來的InternalNat虛擬網卡
5.確定的時候會提示虛擬網卡的IP地址將被設置成192.168.137.1,這個就是前文提到的他是默認的共享網絡IP地址,由於之前我本身就設置的137,所以此處點我們不再需要做任何修改
(如果不想用137網段,需要修改注冊表默認的共享網絡IP地址)
點擊“是”后,會短暫失去連接,重新使用Xshell連接虛擬機,此時虛擬機已經可以連接外網
到這里,Hyper-V虛擬機配置內部網絡固定IP地址,並且能夠連接外網
(更換了網絡環境,例如無線網絡連接切換WiFi,虛擬機就連不上網了,需要重新再設置一下)