CentOS7在vmware中的網絡設置的介紹
VMware虛擬機因其良好的用戶體驗及便捷的功能,被廣泛應用于云計算平臺搭建、惡意代碼分析等技術領域。接下來是小編為大家收集的CentOS 7 在vmware中的網絡設置的介紹,希望能幫到大家。
CentOS 7 在vmware中的網絡設置的介紹
前言:由于工作中需要使用Linux,在虛擬機中裝了CentOS7,以作實驗之用,安裝后使用過程中出現不少問題,主要是網絡問題,安裝后出現下列幾種狀況:
(1)宿主機網絡正常,在虛擬機的centos中無法訪問外網。
(2)宿主機可以ping通,且可以使用SSH連接,但無法telnet虛擬機centos的端口。
(3)centos 固定IP問題
(4)防火墻設置問題
經過查閱相關資料及實踐,才把網絡問題解決,在此記錄一下。
一、環(huán)境說明
vmware workstation 10
Linunx系統(tǒng):CentOS7,官網下載地址
二、centos在vmware中的安裝
CentOS7在vmware虛擬機中安裝流程不復雜,網上已有很多教程(可參考其中一篇(百度經驗上的)),本文不重復,簡要作以下說明及注意地方。
使用典型安裝,安裝程序光盤映像文件
按機器實際情況選擇CPU、磁盤大小,本機是i7,8g內存,分配了2g,2核給CentOS7。
重點: 網絡類型有三種可參考此文章,由于不想占用當前已有的IP,選擇NAT,以宿主機為路由。
安裝軟件類型可選擇最小安裝,也可選擇文件服務器、基本網頁服務器等。建議最小安裝,干凈。
三、NAT網絡設置
使用NAT網絡設置,不占用IP資源,設置方法可參考這篇文章,這里作主要幾個重要設置點說明:
(1)設置虛擬機為NAT網絡,右擊虛擬機->設置,如下圖:
(2)查看VMnet8的網絡設置
控制面板->網絡和 Internet->網絡連接,可見vmnet1和vmnet8兩個虛擬網卡,查看vmnet8,右擊->屬性,查看ipv4地址,可見vmware已自動分配了一個地址。如下:
(3)共享網絡
實際網卡->右擊->共享,如下
(3)設置虛擬網絡編輯器,編輯->虛擬網絡編輯器,如下:
此處的子網IP與vmnet8網段一致,vmnet8是192.168.31.1,則此處設置為192.168.31.0即可。掩碼與vmnet8一致。
另外,“使用本地dhcp服務將IP地址分配給虛擬機”可以先勾選,后面固定IP的時候再取消。
(4)NAT設置
設置后,進入虛擬機,如無意外,是可以正常連接網絡了。
(5)查看IP并測試
使用ifconfig進行測試,此處可查看到虛擬的IP,它的IP是dhcp自動分配的。
[root@localhost sysconfig]# ifconfig
在虛擬機ping宿主機IP,測試是否連通:
[root@localhost sysconfig]# ping 192.168.31.1 ``
在宿主機ping虛擬機IP,測試是否連通:
[root@localhost sysconfig]# ping 192.168.31.128 “
若能連通,即證明網絡設置完成,可以使用SSH連接虛擬機centos了。
四、設置固定IP
按上述方法,雖然可以連通,但由于是使用dhcp動態(tài)分配的,每次重啟后,可能會變化,因此最好把它設置為固定IP??梢詤⒖即宋?/p>
以下幾點需要注意一下:
VMware虛擬網絡編輯器中取消“使用本地DHCP服務將IP地址分配給虛擬機”的勾選。
修改/etc/sysconfig/network-scripts/中ifcfg開頭的對應的網卡配置。
修改/etc/resolv.conf ,添加域名解析。
(1)修改網卡配置說明
注意當前網卡的名稱,使用ifconfig可查看到,本機安裝后網卡名稱是:ifcfg-eno16777736;
打開此文件,主要配置以下幾項(無則添加上去):
ONBOOT=yes 設置為開機后啟動
IPADDR=192.168.31.128 #此處設置固定的IP
NETMASK=255.255.255.0 #此處設置掩碼
GATEWAY=192.168.31.2 #此處設置網關IP
BOOTPROTO=static #設置為靜態(tài)
如下圖:
(2)修改/etc/resolv.conf 實現域名解析
未做此設置前,在虛擬機中ping外網域名,會報unknown host錯誤,如ping www.baidu.com,則報ping: unknown host www.baidu.com。
在/etc/resolv.conf中添加以下設置:
nameserver 192.168.31.2
如下圖:
這樣,虛擬機可以使用ping測試外網域名,正常。
五、設置防火墻iptables
CentOS7默認的防火墻不是iptables,而是firewall,要使用iptables,需要先安裝。完整安裝過程網上已有很多教程,參考此篇,安裝完成后,即可使用iptables了。
由于在虛擬機上安裝了mysql,并正常啟動mysql,但是發(fā)現在宿主機無法連接到mysql,但是ping虛擬機是連通的,可想而知一定是端口問題。嘗試在宿主機使用telnet 此端口,也是無法連接,可以ping能,端口卻無法telnet,兩種可能:
(1)centos沒有開啟telnet;
(2)防火墻沒有開啟3306端口。(主要是這個問題)
下面逐一解決。
5.1 centos安裝telnet
(1)先檢查是否已經安裝以下兩個安裝包:telnet-server、xinetd。命令如下:
rpm -qa |grep telnet-server
rpm -qa |grep xinetd
如果沒有安裝,則先安裝。
(2)查看可安裝的包及安裝
yum list |grep telnet
yum install telnet-server.x86_64
yum install telnet.x86_64
yum list |grep xinetd
yum install xinetd.x86_64
(3)加入開機啟動
systemctl enable xinetd.service
systemctl enable telnet.socket
(4)開機啟動
systemctl start telnet.socket
systemctl start xinetd(或service xinetd start)
telnet啟動后,在宿主機telnet,還是連接不上,繼續(xù)進行iptables設置。
5.2 防火墻iptables設置
iptables文件路徑在/etc/sysconfig/iptables,centos默認只開啟了22端口,因此,需要在文件中添加需要訪問的端口,如telnet端口23,數據庫端口3306等。
如果不添加,連接數據庫時會報錯“Can't connect to MySQL server (10060)”。
(1)添加端口規(guī)則。
如下:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 23 -j ACCEPT
說明:
[-AI 鏈]
針對某的鏈進行規(guī)則的 “插入” 或 “累加”
-A :新增加一條規(guī)則,該規(guī)則增加在原本規(guī)則的最后面。
-I :插入一條規(guī)則。如果沒有指定此規(guī)則的順序,默認是插入變成第一條規(guī)則。
例如原本有四條規(guī)則,使用 -I 則該規(guī)則變成第一條,而原本四條變成 2~5 號鏈 :有 INPUT, OUTPUT, FORWARD 等
[-io 網絡接口]
設定封包進出的接口規(guī)范
-i :封包所進入的那個網絡接口,例如 eth0, lo 等接口。需與 INPUT 鏈配合;
-o :封包所傳出的那個網絡接口,需與 OUTPUT 鏈配合;
[-p tcp,udp]
-p 協(xié)定:設定此規(guī)則適用于哪種封包格式
主要的封包格式有: tcp, udp, icmp 及 all 。
[ -m ]:一些 iptables 的外掛模塊,主要常見的有:
state :狀態(tài)模塊
mac :網絡卡硬件地址 (hardware address)
[–state ]:一些封包的狀態(tài),主要有:
INVALID :無效的封包,例如數據破損的封包狀態(tài)
ESTABLISHED:已經聯(lián)機成功的聯(lián)機狀態(tài);
NEW :想要新建立聯(lián)機的封包狀態(tài);
RELATED :這個最常用!表示這個封包是與我們主機發(fā)送出去的封包有關
[-s 來源IP/網域]
[–sport 端口范圍]
–sport 端口范圍:限制來源的端口號碼,端口號碼可以是連續(xù)的,例如 1024:65535
[–dport 端口范圍]
–dport 端口范圍:限制目標的端口號碼。
[-j ]:后面接動作,主要的動作有接受(ACCEPT)、丟棄(DROP)、拒絕(REJECT)及記錄(LOG)
如下圖所示:
特別提醒: 添加的端口規(guī)則語句必須放在REJECT的規(guī)則之前,否則不起作用。即若把上面添加的兩句端口規(guī)則放在-A FORWARD -j REECT….規(guī)則后面,則端口是不開放的,在外面telnet不進來。
(2)重啟iptables
service iptables restart
重啟后,再次使用telnet 192.168.31.128 3306,正常。
使用navicat連接數據庫,正常。
六 總結
(1)宿主機網絡正常,在虛擬機的centos中無法訪問外網。
解決方法:使用NAT連接模式,正確設置網卡配置,域名解析配置。
(2)宿主機可以ping通,且可以使用SSH連接,但無法telnet虛擬機centos的端口。
解決方法:安裝telnet,添加防火墻端口規(guī)則。
(3)centos 固定IP問題
解決方法:設置ifcfg網卡文件,域名解析配置。
(4)防火墻設置問題
解決方法:安裝iptables,添加端口規(guī)則,注意放在REJECT規(guī)則之前。
看了“CentOS 7 在vmware中的網絡設置的介紹”還想看: