linux之網絡問題

網絡的理解

hostnamectl:查詢系統的主機名以及其他的相關配置

這裏寫圖片描述

  • 在虛擬機中以圖形化方式設置以太網
nm-connection-editor

這裏寫圖片描述
選擇以太網
這裏寫圖片描述
設置虛擬機的ip、子網掩碼以及真機的ip
這裏寫圖片描述

  • 然後ping自己的真機看是否可以成功,如果失敗,則返回上面步驟,重新添加測試
    這裏寫圖片描述

在我們瞭解網絡之前,需要搞清楚兩個問題:

1. 什麼是網關以及什麼是路由器?
這裏寫圖片描述
從圖中可以看出二者含義,瞭解了網卡以及路由器的含義後,那麼我們接下來了解一下在linux中如何讓虛擬機可以連接網絡:
大體思路可以瞭解一下,虛擬機相當於上圖的電腦,路由器就是我們的主機,這樣我們就可以通過主機去實現網絡連接
1)首先我們應該在真機中進行操作,而不是在虛擬機中操作,因爲這裏的步驟是爲了實現將真機轉換成路由器
2) 進入超級用戶,執行以下指令:

關閉虛擬機的libvirtd服務:因爲防火牆與虛擬機服務有衝突

systemctl stop libvirtd.service

啓動防火牆

systemctl restart firewalld

重啓虛擬機libvirtd

systemctl start libvirtd.service

開啓真機的路由器功能

firewall-cmd --add-masquerade

顯示真機的路由器列表,查看是否配置成功:

firewall-cmd --list-all

點擊後會出現以下內容:

這裏寫圖片描述
提示:當我們看到上述內容時,masquerade:yes,yes表示的我們將真機的路由器功能配置成功,但是如果是no的話,就是沒有配置成功,繼續上面的步驟繼續
**這裏的masquerde:地址僞裝功能,也就是我們之前說的NAT**

3)讓虛擬機可以去訪問一些網站
a.先獲取自己的主機ip:ip addr show br0
這裏寫圖片描述
b.在虛擬機的shell界面中執行vim /etc/sysconfig/network,進入寫入GATEWAY=自己的主機ip,然後wq退出
這裏寫圖片描述
c.執行systemctl restart network,然後route -n是否添加成功,從第一行可以看出我們是否添加成功
這裏寫圖片描述
d.添加成功後,我們在主機中的shell中執行ping www.baidu.com,我們會看到一個百度的ip地址,然後在虛擬機中繼續ping 這個ip地址
這裏寫圖片描述
e.如果ping成功的話,就可以打開瀏覽器在網址欄中輸入IP地址去訪問百度的網站
這裏寫圖片描述

總結:上面的操作是將真機作爲路由器,而虛擬機將真機的本地ip作爲網關,然後通過訪問真機的ip通過真機去訪問網絡。

4)當我們能安裝了新的虛擬機後要想像上述操作一樣實現上網功能需要配置ip和DNS服務器纔可以:
a.啓動虛擬機管理器,打開我們剛纔新安裝的虛擬機

virt-manager

b.爲了防止ifcfg-ens3中有其他的文件我,我們先cd進入/etc/sysconfig/network-scripts/ 該目錄,然後刪除ifcfg-ens3這個目錄

c.然後vim ifcfg-ens3,這裏的vim 時,將不存在的目錄會自動創建的
d.然後我們接下來輸入以下代碼:

DEVICE=網卡名  //設備名稱,這個網卡必須是`ifconfig`中查看到的一個事實存在的網卡
ONBOOT=yes  //網絡服務啓動是否啓動網卡配置
BOOTPROTO=none      //網卡工作方式:獲取ip的方式,none爲靜態手動指定,dhcp爲自動設置
IPADDR0=172.25.7.107        //虛擬機的ip地址
PREFIX0=24  //子網掩碼也可以寫爲NETNASK0=255.255.255.0
GATEWAY0=172.25.254.7       //設置網關,設爲真機的本地ip(在真機中用ip addr show br0可以查看)
DNS1=114.114.114.114        //設置DNS服務器,最多設置兩個

wq退出
什麼是DNS?
 DNS全名是Domain Name System,翻譯成中文就是域名系統,它主要的作用就是將人們容易記憶的域名和不方便記憶的ip地址做轉換,比如,當我們訪問百度的時候,我們知道www.baidu.com就可以直接訪問,但是卻不知道它的ip地址,DNS就是將我們不容易記憶的ip地址轉換成域名的方式

e.重啓network:systemctl restart network
f.就可以通過域名的方式去訪問網站了

中途可能出現的問題總結:

問題1:

當你的虛擬機ping不上你的網絡時,如果前面的步驟都沒有問題,依舊ping失敗的話,有可能是你的路由器網卡的問題,需要去更換網卡:
先刪除網卡:
這裏寫圖片描述
再點擊左下角的Add Hardware添加新網卡:
這裏寫圖片描述
最後點擊由下角的finish就可以了

問題2:

查看內核是否開啓路由功能:

sysctl -a|grep ip_forward

如果顯示的內容是:

net.ipv4.ip_forward = 0
net.ipv4.ip_forward_use_pmtu = 0

net.ipv4.ip_forward爲0表示沒有開啓,需要我們進行以下步驟:

步驟1:vim /etc/sysctl.conf進入後在文件的末尾net.ipv4.ip_forward = 1
步驟2:再執行sysctl -p

然後執行sysctl -a|grep ip_forward出現以下內容爲成功開啓內核功能:
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章