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

  • 2019 年 10 月 3 日
  • 筆記

作為一名以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是Google提供的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%以上異常。

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

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