本文引自:https://www.cnblogs.com/toov5/p/10340395.html,特此鳴謝
最近想測試消息中間件等各類web集群相關技術,這就需要解決linux主機之間互聯互通的若干問題,特此折騰
友情提示:在ubuntu19上用vmware15 搭建centos7 操作系統(gnome桌面)重啟后失效,但在開機狀態可以用 #修改當前網絡連接對應的DNS服務器,這里的網絡連接可以用名稱或者UUID來標識 #nmcli con mod eno1 ipv4.dns "114.114.114.114 8.8.8.8" #將dns配置生效 #nmcli con up eno1 讓你的網卡配置生效
這篇博文,可能對初學linux的小伙伴或對網卡配置不太熟悉linux用戶有所幫助, 如果你是老司機呢, 可以多多指正, 如果說這篇博文你看過之后學不會配置linux下的靜態IP, 那真是沒有好的辦法了, 你可能真的不太適合做技術!
CentOS7最小化安裝后是沒有
ifconfig
命令的, 所以說你是沒有辦法通過ifconfig
查看網卡相關配置信息的, 不好意思說了一句廢話, 那么CentOS這個那么有情懷的社區linux發行版本怎么可以在通過最小化安裝后不能查看網卡配置信息, 這個必須有它就是ip
命令
[root@localhost~]# ip addr
通過
ip
命令加參數addr
則是查看當前網卡的配置信息, 從下圖中可以看出, 當前系統的ens33
網卡並沒有ipv4
及ipv6
, 沒有ip地址
則只能說明一個問題, 當前linux系統是沒有辦法上網的,lo
這塊網卡每一個系統中都會有, 這個稱之為回環網卡
當前系統只能通過
ping
命令ping
通回環網卡
也就是127.0.0.1
這個ip地址
[root@localhost ~]# ping 127.0.0.1
CentOS7默認網卡配置信息
CentOS7默認網卡設備文件存放於
/etc/sysconfig/network-scripts/
目錄下, 有於CentOS的發行及系統升級或許可能會存在網卡設備名稱與之前版本不一致的情況, 這也很容易理解, 網卡設備名稱在linux系統中它只是一個標志, 它並不能說明什么問題, 關鍵是這個設備文件的配置參數, 我當前CentOS7的網卡設備名稱是
ifcfg-ens33
如果你看到你的linux發行版本中的網卡設備名稱與我的不一致, 這太正常了, 不要問為什么, 改變嘛, 改變就是希望! (^-^), 這里只是說的linux的發行版本CentOS, 我可沒說過是Ubuntu, 為什么說是CentOS呢?我們都知道在企業應用中linux的發行版本用的最多的還是
RedHat
, 不過RedHat
要收費了哈, 為什么呢?這是人家服務做的好嘛!再小一點的公司可能最多的用的是CentOS
, 為什么要用CentOS
呢?這是因為RedHat
把CentOS
給收購了,CentOS
現在叫社區版本,RedHat
在做服務方面, 是先將服務放到社區版本CentOS
上, 通過社區反饋, 當技術足夠成熟時, 就會將新技術或者服務添加到RedHat
中去, 所以用CentOS
其實也就是間接的在使用RadHat
啦!就是這個樣子了, 當然你可以去百度一下去了解了解, 就不說讓你Google了,在天國真是上網都有些力不從心呢,你懂就好!哈哈...
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
通過
cat
查看CentOS7最小化安裝默認網卡設備配置信息, 如下:
TYPE=Ethernet # 網卡類型:為以太網 PROXY_METHOD=none # 代理方式:關閉狀態 BROWSER_ONLY=no # 只是瀏覽器:否 BOOTPROTO=dhcp # 網卡的引導協議:DHCP[中文名稱: 動態主機配置協議] DEFROUTE=yes # 默認路由:是, 不明白的可以百度關鍵詞 `默認路由` IPV4_FAILURE_FATAL=no # 是不開啟IPV4致命錯誤檢測:否 IPV6INIT=yes # IPV6是否自動初始化: 是[不會有任何影響, 現在還沒用到IPV6] IPV6_AUTOCONF=yes # IPV6是否自動配置:是[不會有任何影響, 現在還沒用到IPV6] IPV6_DEFROUTE=yes # IPV6是否可以為默認路由:是[不會有任何影響, 現在還沒用到IPV6] IPV6_FAILURE_FATAL=no # 是不開啟IPV6致命錯誤檢測:否 IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [這只一種生成IPV6的策略] NAME=ens33 # 網卡物理設備名稱 UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一識別碼, 每一個網卡都會有, 不能重復, 否兩台linux只有一台網卡可用 DEVICE=ens33 # 網卡設備名稱, 必須和 `NAME` 值一樣 ONBOOT=no # 是否開機啟動, 要想網卡開機就啟動或通過 `systemctl restart network`控制網卡,必須設置為 `yes`
CentOS7配置網卡為靜態IP
上面說了那么多就是為了下面配置網卡一哆嗦!以下操作是通過
vi
編輯器所做修改, 老司機會說了, 你怎么不用vim
, 這個比vi
更個性, 你呀也別叨叨了, 你是沒看到怎么的, 咱這可是最小化安裝方式, 啥也沒有, 嗯不對, 是最基礎的有, 想玩花樣, 那可得安裝, 要安裝那不得先連網, 現在不就是架橋鋪路的嗎?都到這個地步了, 你可別跟我說你不會用vi
, 別鬧哈洗洗睡吧!
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
使用
vi
文本編輯器打開網卡設備文件,vi
linux 下的神器, 不多說誰用誰知道, 沒用過的別叨叨哈, 進入插入模式, 這個知道吧, 就是你的小手指按i
, 修改具體配置項為以下內容:
BOOTPROTO=static
設置網卡引導協議為
靜態
ONBOOT=yes
設置網卡啟動方式為
開機啟動
並且可以通過系統服務管理器systemctl
控制網卡
IPADDR=192.168.1.111 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
上面是最主要的3個配置項[IP/子網掩碼/網關], 配置完成這些參數先保存退出, 按
esc
進入到命令模式
, 按住shift + :
輸入:
, 接着再輸入wq
,w
是保存
,q
就是告退嘍, 你可能會說, 你輸入的:wq
多麻煩呢, 直接來一個:x
命令多好啊, 其實吧說實話我從來就不用這個指令, 為什么呢? 原因很很簡單, 那就是這個指令它不夠見名知意, 要記住它你得跟wq
聯想到一塊吧,這在無形中就會增加你學習的成本, 我們要學習的東西很多, 你要這么學你得累死, 這是個人見解,w
就是write
, 那么q
就是quit
, 這些單詞你都學過吧, 學過就不用額外記其它的嘍, so...
[root@localhost ~]# systemctl restart network
重啟網卡, 說明一點, 在
CentOS7
下已全面使用systemctl
作為服務管理器, 它用來替代service 和 chkconfig
, 現在RadHat
、Ubuntu
、fedora
等主流的linux
發行版本都以全面支持systemctl
服務管理器, 這可是一個好事情!皆大歡喜
獲取設置具體IP/子網掩碼/網關地址說明
設置這3個參數你要知道你當前所處的網絡環境, 比如公司內網, 家庭局域網, 餐廳, 咖啡廳等, 知道它們的網段,子網及網關, 就比如說我在家里上網有台小路由器吧, 同時可以有多台設備上網iPhone,MAC,MI,ThinkPad等等, 現在誰家還沒有路由器, 你可別說你開了一寬帶就直接往電腦上一插, 然后開熱點, 你可真會過, 我真沒見過你這樣式的,一個字
摳門
, 沒有路由器的小伙伴可以閉嘴了哈, 開個玩笑而已, 你可真要當真了哈, 哈哈...
上圖是我的Mac無線網卡的配置信息, 這個配置信息, 你不用操心太多, 這是Mac通過DHCP協議從無線路由器上獲取到的, 你可能會說我用的是Windows, 怎么和你的顯示不太一樣, 不太一樣是吧, 這也一點問題都沒有, 沒毛病, 要不然Mac也成了Windows操作系統了, 這Mac可真是買虧了, 說一下上面紅線圈住的具體含義
inet 192.168.1.100
就是局域網IP地址啦!Mac是
192.168.1.100
那么上面的CentOS
就不能是這個地址了, 記住了哈, IP是唯一的, 就像你的身份證ID一樣, 每個人只有一個, 你跑到國外也不會有人跟你一樣, 要不然那還得了, 別人犯事了, 來抓你了, 你能願意? 呵呵....我不信!
netmask 0xffffff00
這個是子網掩碼, 它是用
16
進制表示的, 這可能與我們常常使用的Windows有些不一樣, 並且還略顯怪異, 我們都知道, IP地址是用32
位表示的, 分為4
段, 每段8
位, 這8
位呢!是0
或1
二進制組合來表示的, 那么轉化為10
進制, 它每段的取值就是0-255
所示每段最小是0
最大是255
, 這種表示方法在Windows上就是使用的10
進制, 在Mac
下如果存在最小0
或 最大255
它就會轉化為16
進制, 如果說當前的子網掩碼是255.255.255.0
, 這是Windows下的10
進制表示, 那到了Mac
下Mac
系統的研發工程師覺得老板發薪資了, 也不能閑着的時候沒事干, 非得將10
進制轉換成16
進制就成了我們現在看到的這個樣子了0xffffff00
, 你就可勁轉吧, 我們又不是轉不回來, 小樣, 哈哈, 博主是猴子請來的...
broadcast 192.168.1.255
這個呢是
廣播地址
, 主要的網絡設備有路由器
、防火牆
,具有三層交換功能的網絡交換機
及以通過軟件開啟了路由功能的主機
, 這個地址呢!可能會與IP不是一個網段, 這個要看局域網網絡設備多少, 公司內部一般是不會跟IP地址網段一樣, 還是那句話, 具體情況具體分析, 你可別較真哈, 像我在家里上網肯定就是一台無線路由器就搞定的事情, 那么這個廣播地址
, 肯定是跟IP地址在一個網段, 最大10
進制值表示這個廣播地址
也就是192.168.1.255
, 網卡中設置的是網關地址, 那么這個IP網段的第一個就是網關地址, 也就是192.168.1.1
這個地址
配置以上網卡信息后當前網卡狀態
[root@localhost ~]# ip addr
可以看到
ens33
這塊網卡, IP/網關, 還有ipv6這個現階段還暫時用不到, 甭操心! 但是你會發現你看不到子網掩碼
設置具體值, 這個安裝上net-tools
工具包, 就可以通過ifconfig
來查看網卡配置信息了, 來接着往下看
到目前為止, 上面配置的網卡信息也只能是在內網里得瑟, 上不了網, 為什么這么說呢, 要不你試試看, 因為還有一個知識點要說, 先來試試看是不是像我說的那樣, 下面做一個測試就一目了然了
PING內網其它主機
[root@localhost ~]# ping 192.168.1.100
這個
ping
的是我的Mac, 可以ping
通, 沒有任何問題!
PING外網其它主機
[root@localhost ~]# ping baidu.com
這個
ping
的是位於西二旗的在百度
, 出現未知域名或服務
!shit!
允許網卡訪問外網主機(修改dns)----這里eno1 要提換成你要設置的那塊網卡
#顯示當前網絡連接 #nmcli connection show NAME UUID TYPE DEVICE eno1 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 802-3-ethernet eno1 #修改當前網絡連接對應的DNS服務器,這里的網絡連接可以用名稱或者UUID來標識 #nmcli con mod eno1 ipv4.dns "114.114.114.114 8.8.8.8" #將dns配置生效 #nmcli con up eno1