【實踐總結】給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%以上異常。
-
重啟服務甚至重啟系統來使配置生效。
-
如果配到後面怎麼都不行,把網路編輯器恢復到默認設置然後重新開始。