CentOS 7 在vmware中的網路設定詳細介紹_Linux

來源:互聯網
上載者:User

CentOS 7 在vmware中的網路設定

前言:由於工作中需要使用Linux,在虛擬機器中裝了CentOS7,以作實驗之用,安裝後使用過程中出現不少問題,主要是網路問題,安裝後出現下列幾種狀況:
(1)宿主機網路正常,在虛擬機器的centos中無法訪問外網。
(2)宿主機可以ping通,且可以使用SSH串連,但無法telnet虛擬機器centos的連接埠。
(3)centos 固定IP問題
(4)防火牆設定問題
經過查閱相關資料及實踐,才把網路問題解決,在此記錄一下。

一、環境說明

vmware workstation 10

Linunx系統:CentOS7,官網下載地址

二、centos在vmware中的安裝

CentOS7在vmware虛擬機器中安裝流程不複雜,網上已有很多教程(可參考其中一篇(百度經驗上的)),本文不重複,簡要作以下說明及注意地方。

使用典型安裝,安裝程式光碟片映像檔案

按機器實際情況選擇CPU、磁碟大小,本機是i7,8g記憶體,分配了2g,2核給CentOS7。

重點: 網路類型有三種可參考此文章,由於不想佔用當前已有的IP,選擇NAT,以宿主機為路由。

安裝軟體類型可選擇最小安裝,也可選擇檔案伺服器、基本網頁伺服器等。建議最小安裝,乾淨。

三、NAT網路設定

使用NAT網路設定,不佔用IP資源,設定方法可參考這篇文章,這裡作主要幾個重要設定點說明:
(1)設定虛擬機器為NAT網路,右擊虛擬機器->設定,如下圖:

(2)查看VMnet8的網路設定
控制台->網路和網際網路->網路連接,可見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動態分配的,每次重啟後,可能會變化,因此最好把它設定為固定IP。可以參考此文
以下幾點需要注意一下:

  1. VMware虛擬網路編輯器中取消“使用本地DHCP服務將IP地址分配給虛擬機器”的勾選。
  2. 修改/etc/sysconfig/network-scripts/中ifcfg開頭的對應的網卡配置。
  3. 修改/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
#設定為靜態
如下圖:

(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,但是發現在宿主機無法串連到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,還是串連不上,繼續進行iptables設定。

5.2 防火牆iptables設定

iptables檔案路徑在/etc/sysconfig/iptables,centos預設只開啟了22連接埠,因此,需要在檔案中添加需要訪問的連接埠,如telnet連接埠23,資料庫連接埠3306等。
如果不添加,串連資料庫時會報錯“Can't connect to MySQL server (10060)”。
(1)添加連接埠規則。
如下:

-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 鏈]
針對某的鏈進行規則的 “插入” 或 “累加”
-A :新增加一條規則,該規則增加在原本規則的最後面。
-I :插入一條規則。如果沒有指定此規則的順序,預設是插入變成第一條規則。
例如原本有四條規則,使用 -I 則該規則變成第一條,而原本四條變成 2~5 號鏈 :有 INPUT, OUTPUT, FORWARD 等
[-io 網路介面]
設定封包進出的介面規範
-i :封包所進入的那個網路介面,例如 eth0, lo 等介面。需與 INPUT 鏈配合;
-o :封包所傳出的那個網路介面,需與 OUTPUT 鏈配合;
[-p tcp,udp]
-p 協定:設定此規則適用於哪種封包格式
主要的封包格式有: tcp, udp, icmp 及 all 。
[ -m ]:一些 iptables 的外掛模組,主要常見的有:
state :狀態模組
mac :網路卡硬體地址 (hardware address)
[–state ]:一些封包的狀態,主要有:
INVALID :無效的封包,例如資料破損的封包狀態
ESTABLISHED:已經聯機成功的聯機狀態;
NEW :想要建立立聯機的封包狀態;
RELATED :這個最常用!表示這個封包是與我們主機發送出去的封包有關
[-s 來源IP/網域]
[–sport 連接埠範圍]
–sport 連接埠範圍:限制來源的連接埠號碼碼,連接埠號碼碼可以是連續的,例如 1024:65535
[–dport 連接埠範圍]
–dport 連接埠範圍:限制目標的連接埠號碼碼。
[-j ]:後面接動作,主要的動作有接受(ACCEPT)、丟棄(DROP)、拒絕(REJECT)及記錄(LOG)

如下圖所示:

特別提醒: 添加的連接埠規則語句必須放在REJECT的規則之前,否則不起作用。即若把上面添加的兩句連接埠規則放在-A FORWARD -j REECT….規則後面,則連接埠是不開放的,在外面telnet不進來。

(2)重啟iptables
service iptables restart
重啟後,再次使用telnet 192.168.31.128 3306,正常。
使用navicat串連資料庫,正常。

六 總結

(1)宿主機網路正常,在虛擬機器的centos中無法訪問外網。
解決方案:使用NAT串連模式,正確設定網卡配置,網域名稱解析配置。
(2)宿主機可以ping通,且可以使用SSH串連,但無法telnet虛擬機器centos的連接埠。
解決方案:安裝telnet,添加防火牆連接埠規則。
(3)centos 固定IP問題
解決方案:設定ifcfg網卡檔案,網域名稱解析配置。
(4)防火牆設定問題
解決方案:安裝iptables,添加連接埠規則,注意放在REJECT規則之前。

感謝閱讀,希望能協助到大家,謝謝大家對本站的支援!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.