場景:最近遇到一個問題,當通過SecureCRT或Xshell等工具連接虛擬機的時候,往往過了一兩天的時間之后就突然連不上了,於是直接通過虛擬機查看IP發現IP地址不是當初設置的IP了,原來我的網卡設置的是DHCP分配的IP地址,IP地址不固定。於是我通過新的IP地址重新連接,終於連上了,但是沒過幾天又連不上了。這種情況比較苦惱,畢竟我不能總是一直換IP吧。於是我把IP地址設置成靜態IP,但之后又遇到了新的坑。
注意:環境基於Centos7
問題一:設置靜態IP之后出現無法上網的情況
需要知道在設置靜態IP之前是否能夠上網,一般只要主機能夠上網並且沒有改過虛機的配置,基本上都能上網的。除非你用的不是原生鏡像,而是別人改過的你直接拷貝過來的,可能出現無法直接ping通外網的情況。但一般都是配置的問題。
1.設置靜態IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33
把通過DHCP方式分配IP改為靜態IP,也就是
將BOOTPROTO=dhcp改為BOOTPROTO=static
ONBOOT=yes表明開機自啟動
設置為靜態IP之后就需要指定IP
IPADDR為IP地址
NETMASK為子網掩碼
GATEWAY為網關,注意,網關必須和虛機的網關地址一樣,否則無法上網,畢竟我們只有這一條路走,對吧,網關可以在虛擬網絡編輯器中找到
DNS就是DNS咯,隨便哪個DNS服務器都可以,你也可以自己搭建一個,開心就好。但是要保證必須有DNS服務,並且是正常工作的。一般出現無法ping通外網的情況都是DNS的問題,DNS相當於導航,如果導航出了問題那就只能迷路了。
注意:設置完網卡信息后需要重啟網卡服務
service network restart
查看IP信息
ifconfig或者hostname –I,可以看到,IP信息改了,並且已經可以通過工具連接了。
2.設置靜態IP之后無法上網
每次改完IP之后我都出現了這種情況。和網上的一比設置的都一樣,可以ping通網關和主機和同一網段的機器,但就是ping不通外網。
於是我直接ping百度的IP地址,可以ping通。。。
什么問題?網絡是通的!
URL不同但是IP地址通,那不就是DNS出問題了嗎
但是我已經設置了DNS了
於是繼續pingDNS服務器
通的。。。但還是ping不通外網
再加一個DNS試試
發現竟然通了,是什么原因,把第一個DNS刪了試試
把第一個DNS改成DNS1試試,結果還是通的。OK。
問題二:設置靜態IP后出現兩個IP地址
檢查BOOTPROTO是否設置成static,,如果還是默認的DHCP,主機會繼續為你分配IP地址,並且你設置的IP地址同樣生效,所以會出現兩個IP地址。如果改為static之后還有的話,在網卡配置信息后面加上NM_CONTROLLED=no
然后service network restart重啟網絡,就沒有了。