1. 程式人生 > >【實踐總結】給Centos和Ubuntu設定靜態網路IP以及配置ssh功能

【實踐總結】給Centos和Ubuntu設定靜態網路IP以及配置ssh功能

作為一名以Windows平臺為主的開發者,在接觸和使用Linux系統的過程中總會遇到一系列的問題。每當這時候,我相信大部分人是和我一樣的處理辦法,就是網上各種搜尋嘗試直到問題解決為止,而有些問題,前後不止會遇到一次 ,每次遇到每次搜尋。因為在Linux上基本都是使用命令列操作,各種命令、工具、配置、路徑等等不可能完全記得住,藉助搜尋引擎也是可以理解,但是網上的東西雜亂無章,開放性的問題(例如網路不通)通常難以匹配到完美的解決辦法,總結一套自己的辦法就顯得尤為重要了。網路配置和ssh服務是Linux非常基礎的功能,很多時候這2個東西搞不起來後面的事情都進行不下去,趁著最近又重新把這部分實踐了一次,中間也遇到了一些問題,這裡記錄一下過程以防日後再次掉坑。

以下步驟的環境均是在win10系統中使用VMware Workstation搭建的虛擬機器,實測通過。

1、準備工作

VMware安裝好後會在本地建立2個虛擬網路介面卡VMnet1和VMnet8,本文介紹的配置方法是使用NAT模式,所以虛擬機器要選擇使用VMnet8這個網絡卡:

除此之外,還要配置VMnet8所在的網段(劃重點,要考的):

這裡設定的子網ip和閘道器和宿主機沒有關係,可以自己隨意設定。

##這裡我的配置給自己挖了一個坑。。。後面說到

 

2、Ubuntu

開啟虛擬機器登入到系統中。

ubuntu的網路配置檔案地址是/etc/network/interfaces,所以我們編輯這個檔案:

sudo vim /etc/network/interfaces

然後按insert鍵進入編輯模式,在檔案中輸入:

iface lo inet loopback
auto ens33
iface ens33 inet static
address 192.168.174.1
netmask 255.255.255.0
gateway 192.168.174.2

這裡的ens33是虛擬機器的網絡卡名稱,如果不知道自己的網絡卡名稱,可以輸入命令ifconfig來檢視。第3行中的static即表示使用靜態ip配置,相對應的是dhcp(動態配置),address是要設定的ip地址,必須是在前面VMnet8所設定的網段中,剩下的閘道器和子網掩碼和VMnet8的一致。

編輯完之後,按ECS退出編輯,再輸入:wq回車儲存檔案退出,輸入sudo  /etc/init.d/networking restart或者sudo service networking restart重啟網絡卡(不行就reboot重啟機器),ifconfig查一下ip是否已經生效。

試一下網路通了沒:

ping www.baidu.com

  

提示unkown host,原因是沒有配置DNS地址,檢視一下DNS配置檔案:

cat /etc/resolv.conf

這裡面空空如也,但是卻不能直接在這個檔案裡配置,因為註釋裡面寫了:該檔案是resolvconf程式動態建立的,如果手動編輯的話將會配覆蓋。那麼如何設定DNS呢,有2種辦法。

第一種是在interfaces中設定一個dns-nameservers引數:

dns-nameservers 8.8.8.8

第二種是設定dns的配置檔案:

sudo vim /etc/resolvconf/resolv.conf.d/base

在這個檔案中加入:

nameserver 8.8.8.8

退出儲存後重啟網絡卡,重新ping一下百度域名,連網成功了。

重新檢視resolv.conf,DNS已經設定成功。

這裡的8.8.8.8是谷歌提供的DNS服務,其他的供應商地址可以參考以下圖片(來自於網路):

再ping一下宿主機地址,也沒問題:

於是開始安裝ssh:

sudo apt-get install openssh-server

啟動ssh:

sudo service ssh start

檢視是否啟動成功:

一切準備就緒,滿心歡喜地開啟xshell準備連線虛擬機器,卻發現怎麼都連不上:

Connecting to 192.168.174.1:22...
Could not connect to '192.168.174.1' (port 22): Connection failed.

檢查22埠也已經開啟,其他配置也都正常。

嘗試ping一下虛擬機器,發現請求超時:

網上各種搜尋,最後懷疑是虛擬網絡卡的ip設定問題,ipconfig檢視網絡卡資訊確實有問題:

檢視VMnet8的ip配置,發現是DHCP自動獲取的,於是手動指定一個IP和閘道器,與前面VMware網路編輯器中的一致(劃重點,要考的):

  

再重新ping一下虛擬機器地址192.168.174.1,終於正常了。再次使用xshell連線,發現還是不行,懷疑是機器本身環境的問題,於是新開一臺虛擬機器,ip設定為192.168.174.3,其他全部和前面的一致,xshell連線成功。回頭再次折騰第一臺機器,修改ip為192.168.174.4,問題解決。

那麼問題來了,閘道器是174.2,174.3和174.4都可以,偏就174.1不行,啥原因?

 

3、Centos

由於都是基於Linux核心,所以centos的配置也大同小異。在centos中,每個閘道器對應了自己的配置檔案,所以第一步先檢視網絡卡名稱找到需求修改的配置檔案:

ip addr

或者

ifconfig

配置檔案的存放路徑是/etc/sysconfig/network-scripts,我這裡的網絡卡名稱是ens33,所以對應的配置檔案是ifcfg-ens33,開始修改檔案:

sudo vim /etc/sysconfig/network-scripts/ifcfg-ens33

新增或替換以下配置項:

BOOTPROTO="static" 
ONBOOT="yes" #開機啟用
IPADDR=192.168.174.5 
GATEWAY=192.168.174.2
NETMASK=255.255.255.0 
DNS1=8.8.8.8 

各項引數的意義和ubuntu中的一致。然後重啟網路服務:

sudo systemctl restart network

或者

sudo service network restart

再次ip addr,發現ip已經生效。然後ping宿主機和ping百度,一切都正常:

開始安裝ssh服務:

sudo yum install openssh-server

修改配置檔案:

sudo vim /etc/ssh/sshd_config

把Port=22的註釋去掉,如果要使用root使用者登入,就把PermitRootLogin設定為yes,:wq儲存退出。啟動ssh:

sudo systemctl start sshd.service

加入開機自啟動:

sudo systemctl enable sshd.service

開啟xshell連線,OK。

 

4、總結

經歷了前面基礎工作的鋪墊,centos配置起來非常順利,總結一下主要有以下幾個重點:

  • 虛擬網絡卡VMnet8、VMware網路配置、虛擬機器網路配置這幾處的網段和閘道器要一致,基本能避免90%以上異常。

  • 重啟服務甚至重啟系統來使配置生效。

  • 如果配到後面怎麼都不行,把網路編輯器恢復到預設設定然後重新開始。

&n