Linux上查看主機的IP地址命令是啥?ifconfig,如果只知道這個話面試時就完蛋了西雀,說明只會Linux簡單的命令,而且是慢慢要過時的命令歉摧。首先要了解Linux的TCP/IP的兩大網(wǎng)絡(luò)工具:net-tools和iproute2.
net-tools和iproute2歷史
如今很多系統(tǒng)管理員依然通過組合使用諸如ifconfig艇肴、route腔呜、arp和netstat等命令行工具(統(tǒng)稱為net-tools)來配置網(wǎng)絡(luò)功能,解決網(wǎng)絡(luò)故障再悼。net-tools起源于BSD的TCP/IP工具箱核畴,后來成為老版本Linux內(nèi)核中配置網(wǎng)絡(luò)功能的工具。但自2001年起冲九,Linux社區(qū)已經(jīng)對其停止維護谤草。同時,一些Linux發(fā)行版比如Arch Linux和CentOS/RHEL 7則已經(jīng)完全拋棄了net-tools娘侍,只支持iproute2咖刃。
作為網(wǎng)絡(luò)配置工具的一份子,iproute2的出現(xiàn)旨在從功能上取代net-tools憾筏。net-tools通過procfs(/proc)和ioctl系統(tǒng)調(diào)用去訪問和改變內(nèi)核網(wǎng)絡(luò)配置,而iproute2則通過netlink套接字接口與內(nèi)核通訊花鹅。拋開性能而言氧腰,iproute2的用戶接口比net-tools顯得更加直觀。比如刨肃,各種網(wǎng)絡(luò)資源(如link古拴、IP地址、路由和隧道等)均使用合適的對象抽象去定義真友,使得用戶可使用一致的語法去管理不同的對象黄痪。更重要的是,到目前為止盔然,iproute2仍處在持續(xù)開發(fā)中桅打。
如果你仍在使用net-tools,而且尤其需要跟上新版Linux內(nèi)核中的最新最重要的網(wǎng)絡(luò)特性的話愈案,那么是時候轉(zhuǎn)到iproute2的陣營了挺尾。原因就在于使用iproute2可以做很多net-tools無法做到的事情。
當(dāng)然這兩個工具在大部分Linux系統(tǒng)中自帶的站绪,下面通過iproute2的 ip addr show 指令看看返回了哪些內(nèi)容遭铺。
ip addr show
root@test:~# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 0a:35:3e:c7:79:60 brd ff:ff:ff:ff:ff:ff
inet 192.168.17.128/24 brd 192.168.17.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::e21b:33b0:68b2:6f05/64 scope link
valid_lft forever preferred_lft forever
- 在 IP 地址的后面有個scope读慎,對于 eth0 這張網(wǎng)卡來講抓谴,是 global,說明這張網(wǎng)卡是可以對外 的慧邮,可以接收來自各個地方的包馁筐。對于 lo 來講涂召,是 host,說明這張網(wǎng)卡僅僅可以供本機相互通信眯漩。
- lo 全稱是loopback芹扭,又稱環(huán)回接口麻顶,往往會被分配到 127.0.0.1 這個地址。這個地址用于本機 通信舱卡,經(jīng)過內(nèi)核處理后直接返回辅肾,不會在任何網(wǎng)絡(luò)中出現(xiàn)。
- link/ether 0a:35:3e:c7:79:60 brd ff:ff:ff:ff:ff:ff 這個指的是就是MAC地址轮锥,MAC地址比較形象的比喻:MAC地址好比人的身份證號矫钓,全球唯一,ip好比你的住宿地址舍杜,經(jīng)常發(fā)生變化新娜,我只有拿著這個人的MAC地址和ip地址才能找到這個人并確定是不是他。MAC地址不理解的可以去看這篇文章:你真的了解[網(wǎng)卡][路由器]嗎既绩?
-
< BROADCAST,MULTICAST,UP,LOWER_UP > 是干什么 的?這個叫作net_device flags概龄,網(wǎng)絡(luò)設(shè)備的狀態(tài)標(biāo)識。
BROADCAST 表示這個網(wǎng)卡有廣播地址饲握,可以發(fā)送廣播包;
MULTICAST 表示網(wǎng)卡可以發(fā)送多播包;
UP 表示網(wǎng)卡處于啟動的狀態(tài);
LOWER_UP 表示 L1 是啟動的私杜,也即網(wǎng)線插著呢。
MTU1500 ? MTU 是二層 MAC 層的概念救欧。MAC 層有 MAC 的 頭衰粹,以太網(wǎng)規(guī)定連 MAC 頭帶正文合起來,不允許超過 1500 個字節(jié)笆怠,這是以太網(wǎng)的默認(rèn)值铝耻。正文里面有 IP 的頭、 TCP 的頭蹬刷、HTTP 的頭瓢捉。如果放不下,就需要分片來傳輸箍铭。 -
qdisc pfifo_fast 是什么意思呢? qdisc 全稱是queueing discipline泊柬,中文叫排隊規(guī)則。內(nèi)核如果需要通過某個網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包诈火,它都需要按照為這個接口配置的 qdisc(排隊規(guī)則)把數(shù)據(jù)包加入隊列兽赁。
最簡單的 qdisc 是 pfifo,它不對進入的數(shù)據(jù)包做任何的處理冷守,數(shù)據(jù)包采用先入先出的方式通過 隊列刀崖。pfifo_fast 稍微復(fù)雜一些,它的隊列包括三個波段(band)拍摇。在每個波段里面亮钦,使用先進先出規(guī)則。
三個波段(band)的優(yōu)先級也不相同充活。band 0 的優(yōu)先級最高蜂莉,band 2 的最低蜡娶。如果 band 0 里面有數(shù)據(jù)包,系統(tǒng)就不會處理 band 1 里面的數(shù)據(jù)包映穗,band 1 和 band 2 之間也是一樣窖张。
數(shù)據(jù)包是按照服務(wù)類型(Type of Service,TOS)被分配多三個波段(band)里面的蚁滋。TOS 是 IP 頭里面的一個字段宿接,代表了當(dāng)前的包是高優(yōu)先級的,還是低優(yōu)先級的辕录。