Linux網路——配置網路之ifconfig家族命令 摘要:本文主要學習了ifconfig家族用來配置網路的命令。 ifconfig命令 ifconfig命令用來顯示或設置網路介面信息,設置只是臨時生效,永久生效需要更改配置文件。 在最新版的CentOS 7上已經沒有了這個命令,需要使用 yum i ...
Linux網路——配置網路之ifconfig家族命令
摘要:本文主要學習了ifconfig家族用來配置網路的命令。
ifconfig命令
ifconfig命令用來顯示或設置網路介面信息,設置只是臨時生效,永久生效需要更改配置文件。
在最新版的CentOS 7上已經沒有了這個命令,需要使用 yum install -y net-tools 命令安裝。
基本語法
1 ifconfig [選項]
選項說明
1 網卡:顯示指定網卡介面信息。 2 -a:顯示全部介面信息。 3 -s:顯示摘要信息。 4 網卡 up:啟動指定網卡。 5 網卡 down:關閉指定網卡。 6 網卡 reload:重啟指定網卡。 7 網卡 IP地址:修改網卡的IP地址。 8 網卡 IP地址/子網掩碼位數:修改網卡的IP地址和子網掩碼。 9 網卡 netmask 子網掩碼:修改網卡的子網掩碼。 10 網卡 broadcast 地址:修改網卡的廣播地址。 11 網卡 mtu 值:修改網卡的最大傳輸單元。 12 網卡 hw 地址:修改網卡的MAC地址。 13 arp:啟用ARP協議。 14 arp:關閉ARP協議。 15 add:給指定網卡配置IPv6地址。 16 del:刪除指定網卡的IPv6地址。
使用舉例
1 [root@localhost ~]# ifconfig eno16777736 2 eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 3 inet 192.168.35.128 netmask 255.255.255.0 broadcast 192.168.35.255 4 inet6 fe80::20c:29ff:fee3:52a0 prefixlen 64 scopeid 0x20<link> 5 ether 00:0c:29:e3:52:a0 txqueuelen 1000 (Ethernet) 6 RX packets 11957 bytes 7976839 (7.6 MiB) 7 RX errors 0 dropped 0 overruns 0 frame 0 8 TX packets 4216 bytes 1518092 (1.4 MiB) 9 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 10 11 [root@localhost ~]#
結果說明
1 eno16777736:表示網卡名稱。從flags可知該介面已啟用,支持廣播、組播。mtu表示最大傳輸單元為1500。 2 inet:表示IPv4地址。netmask表示子網掩碼。broadcast表示廣播地址。 3 inet6:表示IPv6地址。prefixlen表示掩碼長度。scopeid表示作用域,link表示僅該介面有效。 4 ether:表示網卡介面的MAC地址。txqueuelen表示傳輸隊列長度。Ethernet表示介面類型為Ethernet。 5 RX:表示接收的報文情況,TX表示發送的報文情況。 6 packets:表示接收報文數,bytes表示接收總位元組數,errors表示錯誤報文數,dropped表示丟棄報文數,overruns表示溢出報文數,carrier表示載荷報文數,collisions表示衝突報文數。
route命令
route命令用於顯示和操作IP路由表,設置只是臨時生效,永久生效需要更改配置文件。
基本語法
查看路由信息:
1 route [-nee]
設置路由信息:
1 route [add|del] [-net|-host] [netmask] [reject|dev|gw]
選項說明
查看路由信息:
1 -n:不解析主機名稱,使用IP地址和埠號。 2 -ee:使用更詳細的資訊來顯示。
設置路由信息:
1 -net IP地址:表示後面連接的是到一個網路的路由表。 2 -host 主機:表示後面連接的是到一個主機的路由表。 3 netmask 子網掩碼:指定路由表的子網掩碼。 4 reject:設置指定路由不可達。 5 dev 網卡名稱:指定由那個網路卡連線出去。 6 gw IP地址 網卡名稱:指定由那個網關連接出去。
使用舉例
查看路由信息:
1 [root@localhost ~]# route 2 Kernel IP routing table 3 Destination Gateway Genmask Flags Metric Ref Use Iface 4 default 192.168.35.2 0.0.0.0 UG 100 0 0 eno16777736 5 192.168.35.0 0.0.0.0 255.255.255.0 U 100 0 0 eno16777736 6 [root@localhost ~]#
設置路由信息:
1 [root@localhost ~]# route add -net 192.168.35.0 netmask 255.255.255.0 dev eth0 2 [root@localhost ~]# route add -net 10.0.0.0 netmask 255.0.0.0 reject 3 [root@localhost ~]# route del -net 192.168.35.0 netmask 255.255.255.0 dev eth0 4 [root@localhost ~]# route del -net 10.0.0.0 netmask 255.0.0.0 reject
欄位說明
路由信息欄位說明:
1 Destination:表示目標網路或目標主機。 2 Gateway:表示網關地址,如果沒有就顯示星號。 3 Genmask:表示網路掩碼,目標是主機時需要設為255.255.255.255,目標是預設路由時會設置為0.0.0.0。 4 Flags:表示旗標,總共有多個旗標。 5 常用的值如下: 6 U (route is up):該路由是啟動(up)的。 7 H (target is a host):該路由是到一個主機(host)而非網域。 8 G (use gateway):該路由是到一個網關(gateway)。 9 R (reinstate route for dynamic routing):恢復動態路由產生的表項。 10 D (dynamically installed by daemon or redirect):該路由是由服務或者重定向創建的動態(dynamically)路由。 11 M (modified from routing daemon or redirect):該路由已經被修改(modified)了。 12 ! (reject route):這個路由將不會被接受,用來抵擋不安全的網域。 13 Metric:表示路由距離,到達指定網路所需的中轉數,是大型區域網和廣域網設置所必需的。 14 Ref:表示路由引用次數。 15 Use:表示該路由被使用的次數,可以粗略估計通向指定網路地址的網路流量。 16 MSS:表示路由TCP連接的預設最大分段大小。 17 Window:表示路由TCP連接的預設視窗大小。 18 irtt:表示初始往返時間(rtt)。內核使用它來猜測最佳的TCP協議參數,而無需等待(可能是緩慢的)答案。 19 HH:表示引用緩存路由的硬體頭緩存的ARP條目和緩存路由的數量。如果緩存路由的介面不需要硬體地址,則為-1。 20 Arp:表示緩存路由的硬體地址是否最新。 21 Iface:表示網路介面名。
netstat命令
netstat命令用於顯示網路相關信息,如網路連接,路由表,介面狀態等。
基本語法
1 netstat [選項]
選項說明
1 -t:顯示tcp協議相關的連接,tcp連接均有其連接狀態,而所有連接狀態在FSM(Finate State Machine,有限狀態機)內進行轉換。 2 -u:顯示udp協議相關的連接,udp連接沒有狀態。 3 -w:顯示raw協議相關的連接。 4 -a:顯示所有狀態的連接。 5 -x:顯示UNIX網路連接。 6 --ip:顯示Internet網路連接,包含tcp、udp、raw類型的連接。 7 -l:顯示處於監聽狀態的連接。 8 -e:以擴展格式顯示。 9 -n:以數字格式顯示IP和Port。 10 -p:顯示相關進程和PID。 11 -s:顯示網路協議的統計。 12 -i:顯示介面信息。 13 -r:顯示路由表信息。
使用舉例
顯示Internet網路連接:
1 [root@localhost ~]# netstat -tanpe 2 Active Internet connections (servers and established) 3 Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name 4 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 18972 1472/sshd 5 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 19596 1568/master 6 tcp 0 52 192.168.35.128:22 192.168.35.1:9341 ESTABLISHED 0 40660 4792/sshd: root@pts 7 tcp6 0 0 :::22 :::* LISTEN 0 18974 1472/sshd 8 tcp6 0 0 ::1:25 :::* LISTEN 0 19597 1568/master 9 [root@localhost ~]#
顯示Unix域套接字:
1 [root@localhost ~]# netstat -xanp 2 Active UNIX domain sockets (servers and established) 3 Proto RefCnt Flags Type State I-Node PID/Program name Path 4 unix 2 [ ACC ] STREAM LISTENING 15887 1/systemd /var/run/dbus/system_bus_socket 5 unix 2 [ ] DGRAM 8216 1/systemd /run/systemd/notify 6 unix 2 [ ACC ] STREAM LISTENING 8224 1/systemd /run/systemd/journal/stdout 7 unix 5 [ ] DGRAM 8227 1/systemd /run/systemd/journal/socket 8 unix 12 [ ] DGRAM 8229 1/systemd /dev/log 9 ... 10 [root@localhost ~]#
顯示路由信息,欄位含義參考route命令:
1 [root@localhost ~]# netstat -rn 2 Kernel IP routing table 3 Destination Gateway Genmask Flags MSS Window irtt Iface 4 0.0.0.0 192.168.35.2 0.0.0.0 UG 0 0 0 eno16777736 5 192.168.35.0 0.0.0.0 255.255.255.0 U 0 0 0 eno16777736 6 [root@localhost ~]#
顯示介面概要信息:
1 [root@localhost ~]# netstat -i 2 Kernel Interface table 3 Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg 4 eno16777736 1500 18667 0 0 0 6293 0 0 0 BMRU 5 lo 65536 76 0 0 0 76 0 0 0 LRU 6 [root@localhost ~]#
顯示介面詳細信息,欄位含義參考ifconfig命令:
1 [root@localhost ~]# netstat -ie 2 Kernel Interface table 3 eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 4 inet 192.168.35.128 netmask 255.255.255.0 broadcast 192.168.35.255 5 inet6 fe80::20c:29ff:fee3:52a0 prefixlen 64 scopeid 0x20<link> 6 ether 00:0c:29:e3:52:a0 txqueuelen 1000 (Ethernet) 7 RX packets 18488 bytes 8457307 (8.0 MiB) 8 RX errors 0 dropped 0 overruns 0 frame 0 9 TX packets 6212 bytes 1926454 (1.8 MiB) 10 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 11 12 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 13 inet 127.0.0.1 netmask 255.0.0.0 14 inet6 ::1 prefixlen 128 scopeid 0x10<host> 15 loop txqueuelen 0 (Local Loopback) 16 RX packets 76 bytes 6612 (6.4 KiB) 17 RX errors 0 dropped 0 overruns 0 frame 0 18 TX packets 76 bytes 6612 (6.4 KiB) 19 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 20 21 [root@localhost ~]#
欄位說明
查看Internet網路連接(tcp,udp,raw),結果欄位含義如下:
1 Proto:表示套接字使用的協議。 2 Recv-Q:表示等待接收的隊列長度。 3 Send-Q:表示等待發送的隊列長度。 4 Local Address:表示本地主機地址。 5 Foreign Address:表示遠程連接地址。 6 State:表示所處的狀態。 7 常用的值如下: 8 ESTABLISHED:套接字有一個有效連接。 9 SYN_SENT:套接字嘗試建立一個連接。 10 SYN_RECV:從網路上收到一個連接請求。 11 FIN_WAIT1:套接字已關閉,連接正在斷開。 12 FIN_WAIT2:連接已關閉,套接字等待遠程方中止。 13 TIME_WAIT:在關閉之後,套接字等待處理仍然在網路中的分組。 14 CLOSED:套接字未用。 15 CLOSE_WAIT:遠程方已關閉,等待套接字關閉。 16 LAST_ACK:遠程方中止,套接字已關閉。等待確認。 17 LISTEN:套接字監聽進來的連接。如果不設置-l或者-a選項,將不顯示出來這些連接。 18 CLOSING:套接字都已關閉,而還未把所有輸出發出。 19 UNKNOWN:套接字狀態未知。 20 User:表示啟動此進程的用戶,擴展欄位。 21 Inode:表示對應的套接字文件的inode號,擴展欄位。 22 PID/Program name:表示處理此套接字的程式進程名和PID。
查看Unix域套接字,結果欄位含義如下:
1 Proto:表示套接字使用的協議,通常是unix。 2 RefCnt:表示使用數量,也就是通過此套接字連接的進程數。 3 Flags:表示的套接字的標誌。通常為SO_ACCEPTON(顯示為ACC),SO_WAITDATA(W)或SO_NOSPACE(N)。 4 Type:表示套接字使用的類型。 5 常用的值如下: 6 SOCK_DGRAM:此套接字用於數據報(無連接)模式。 7 SOCK_STREAM:流模式(連接)套接字。 8 SOCK_RAW:此套接字用於RAW模式。 9 SOCK_RDM:一種服務可靠性傳遞信息。 10 SOCK_SEQPACKET:連續分組套接字。 11 SOCK_PACKET:RAW介面使用套接字。 12 UNKNOWN:未知。 13 State:表示狀態。 14 常用的值如下: 15 FREE:套接字未分配。 16 LISTENING:套接字正在監聽一個連接請求。除非設置-l或者-a選項,否則不顯示。 17 CONNECTING :套接字正要建立連接。 18 CONNECTED:套接字已連接。 19 DISCONNECTING:套接字已斷開。 20 UNKNOWN:套接字狀態未知。 21 空:套接字未連。 22 I-Node:表示對應的套接字文件的inode號,擴展欄位。 23 PID/Program name:表示處理此套接字的程式進程名和PID。 24 Path:表示當相應進程連入套接字時顯示的路徑名。
查看介面信息,結果欄位含義如下:
1 Iface:表示網卡介面名稱。 2 MTU:表示介面的最大傳輸單元。 3 RX:表示接收的數據包情況,RX-OK表示準確接收的包數,RX-ERR表示產生錯誤的包數,RX-DRP表示丟棄的包數,RX-OVR表示溢出的包數。 4 TX:表示發送的數據包情況,TX-OK表示準確發送的包數,TX-ERR表示產生錯誤的包數,TX-DRP表示丟棄的包數,TX-OVR表示溢出的包數。 5 Flg:表示介面設置的標記,在利用ifconfig顯示介面配置時,這些標記都採用一個字母。 6 常用的值如下: 7 B:已經設置了一個廣播地址。 8 L:該介面是一個回送設備。 9 M:接收所有數據包(混亂模式)。 10 N:避免跟蹤。 11 O:在該介面上,禁用ARP。 12 P:這是一個點到點鏈接。 13 R:介面正在運行。 14 U:介面處於活動狀態。