ifconfig命令
- 功能:可以手動啟動、查看和修改網絡接口的相關參數。
- 用法:
- ifconfig //查看默認顯示激活狀態的網卡信息
- ifconfig etho //顯示指定網卡的信息
- ifconfig -a //顯示所有網卡的信息
- ifconfig INTERFACE up|down] //禁用或者啟動某個網卡
- ifconfig INTERFACE IP //設定IP
- eg:
# 查看所有網卡信息
# 查看指定網卡信息
[li@centos7 ~]$ ifconfig ens33 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.22.12.233 netmask 255.255.0.0 broadcast 172.22.255.255 inet6 fe80::7bf5:16a7:f734:b7c4 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:0f:5d:ea txqueuelen 1000 (Ethernet) RX packets 287788 bytes 20207460 (19.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 993 bytes 197981 (193.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# 給出指定的IP地址並激活
1、方式一:#ifconfig IFACE IP/MASK [up]
[root@localhost~]# ifconfig eno16777736 192.168.10.100/24 up [root@localhost~]# ifconfig # 發現地址已經激活 eno16777736:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.100 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::20c:29ff:fee5:2d6a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:e5:2d:6a txqueuelen 1000 (Ethernet) RX packets 126 bytes 44856 (43.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 341 bytes 63010 (61.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost~]# ping 192.168.10.100 # 查看是否能用這個地址
2、方式二:#ifconfig IFACEIP netmask NETMASK
[root@localhost~]# ifconfig eno16777736 192.168.10.101 netmask 255.255.255.0 [root@localhost~]# ifconfig eno16777736:flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.10.101 netmask 255.255.255.0 broadcast 192.168.10.255 inet6 fe80::20c:29ff:fee5:2d6a prefixlen 64 scopeid 0x20<link> ether 00:0c:29:e5:2d:6a txqueuelen 1000 (Ethernet) RX packets 126 bytes 44856 (43.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 343 bytes 63150 (61.6 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
注意:ifconfig命令的網絡配置只對當前系統有效
在遠程ssh時最好不要使用,可能網絡環境不同,一旦不生效,可能要跑到機房重新設置
- 為同一個網絡接口配置多個網絡IP地址:給接口名起別名的方式
-
- 動態方式:
ifconfig eth0:# IP netmask MASK
如ifconfig eth0:0 192.168.1.177 netmask 255.255.255.0
-
- 靜態方式
創建/etc/sysconfig/network-scripts/ifcfg-eth0:0文件,並配置即可。注意,文件中的DEVICE=eth0:0,且該接口處的IP地址不能動態的獲取,需要手動設定。
注意:當一塊網卡上配置多個IP地址時,如eth0、eth0:0,如果禁掉eth0:0,eth0上的網卡依然生效。但直接禁掉物理網卡時(即eth0),其后面的配置(eth0:0)等都將被刪除掉。
- 網卡的混雜模式
功能:將來實現網絡監控的的重要一步,每個主機如果不是發送給自己的報文數據就會拒絕接受,啟用混雜模式后不是自己的也可以接受
-
- 實現:# ifconfig eth0 promisc
- 取消:# ifconfig eth0 -promisc
配置網關:route命令
- 網關/路由:
為了使主機能夠訪問到另一個子網,需要在設備里增加路由到子網絡。兩部主機之間一定要有路由才能互通TCP/IP的協定,否則就無法連線。
- route功能:
用來查看、修改路由的信息
- 路由條目類型
- 主機路由 :路由用來連接某台主機
- 網絡路由 :路由用來連接某個網絡
- 默認路由:匹配所有的包,但IP地址和子網掩碼全部是零
- 主機路由 :路由用來連接某台主機
- 補充:
- 主機的路由表:本主機與外部其他主機通信
- 路由的路由表:網絡報文的轉發
- 查看
# route -n :表示以數字格式顯示路由信息
[li@centos7 ~]$ route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.22.18.1 0.0.0.0 UG 100 0 0 ens33 172.22.0.0 0.0.0.0 255.255.0.0 U 100 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
顯示信息:
-
-
- destination,genmask:分別是network和netmask,也就是ip和子網掩碼,組合成一個完整的網域
- gateway:該網域是通過哪個gateway連接出去?如果顯示0.0.0.0表示該路由是直接由本機傳送,亦即可以透過區域網路的 MAC 直接傳訊;如果有顯示 IP 的話,表示該路由需要經過路由器 (通訊閘) 的幫忙才能夠傳送出去。
-
Flags:總共有多個旗標,代表的意義如下:
U (route is up):該路由是啟動的
-
G (use gateway):需要透過外部的主機 (gateway) 來轉遞封包
- 添加
# route add [-net|-host] target [netmask Nm] [gw GW] [[dev] if]
- 刪除
# route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
eg:如何使用route命令添加路由:
# 主機路由
目標:192.168.1.3 經由的網關:172.16.0.1
[root@localhost ~]# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
# dev:存在多個網卡時,表示經由哪個網
# 網絡路由
目標:192.168.0.0 網關:172.16.0.1
[root@localhost ~]# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.0 dev eth0
# 默認路由
網關:172.16.0.1
[root@localhost ~]# route add -net 0.0.0.0 netmask 255.255.255.0 gv 172.16.0.1
或者
[root@localhost ~]# route add default gw 172.16.0.1
eg:刪除
# 網絡路由
目標:192.168.0.0 網關:172.16.0.1
[root@localhost ~]# route del -net 192.168.0.0 gw 172.16.0.1
# 默認路由
[root@localhost ~]# route del default
netstat命令
- 用於顯示網絡相關信息,如網絡連接,路由表,接口狀態等
- 顯示路由信息
# netstat -rn
-r :顯示路由表
-n :數字格式顯示
eg:
[root@centos7 ~]# netstat -rn Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 0.0.0.0 172.22.18.1 0.0.0.0 UG 0 0 0 ens33 172.22.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
解釋:ens33這個網絡接口的默認網關(即路由)是172.22.18.1。gateway為0.0.0.0表示本地網絡,不需要任何網關。
- 顯示網絡連接:
格式:
# netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
選項:
-t:TCP協議的相關連接,連接均有其狀態;FSM(Finate State Machine);
-u:UDP相關的連接
-w:raw socket相關的連接
-l:處於監聽狀態的連接
-a:所有狀態
-n:以數字格式顯示IP和Port;
-e:擴展格式
-p:顯示相關的進程及PID;
常用組合:
-tan, -uan, -tnl, -unl, -tunlp
傳輸層協議:
tcp:面向連接的協議;通信開始之前,要建立一個虛鏈路;通信完成后還要拆除連接;
udp:無連接的協議;直接發送數據報文;
eg:
# 以數字格式顯示所有的tcp連接
[root@centos7 ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 172.22.12.233:22 172.22.10.22:50118 ESTABLISHED
tcp 0 52 172.22.12.233:22 172.22.10.22:50119 ESTABLISHED
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
[root@centos7 ~]#
- 顯示接口的統計數據
格式:
# netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]
eg:
# 顯示所有接口
[root@centos7 ~]# netstat -i Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg ens33 1500 158566 0 0 0 383 0 0 0 BMRU lo 65536 0 0 0 0 0 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 BMU
# 顯示指定接口 netstat -I<IFACE>
[root@centos7 ~]# netstat -Iens33 Kernel Interface table Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg ens33 1500 159509 0 0 0 409 0 0 0 BMRU
配置主機名
給自己的當前主機設置一個名字
方式:
1、指定命令
2、配置文件:/etc/sysconfig/network
-
-
- 指定命令
-
1、hostname
查看:# hostnam
-
-
-
- 配置:# hostname HOSTNAME
-
-
注意:只對當前系統有效,重啟后無效
-
-
-
- 2、在CentOS7上的配置主機名的命令 : hostnamectl命令
- 查看 : #hostnamectl status:顯示當前主機信息;
- 2、在CentOS7上的配置主機名的命令 : hostnamectl命令
-
-
-
-
-
-
-
配置:# hostnamectl set-hostname:設定主機名,永久有效
-
-
-
-
eg:
# 在CentOS7上顯示主機信息
[root@centos7 ~]# hostnamectl status Static hostname: centos7 Icon name: computer-vm Chassis: vm Machine ID: 8e1320e3a6294bc3bc7fac06de8008a0 Boot ID: f77ed060007342c3a8df8df3564ba596 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-514.el7.x86_64 Architecture: x86-64 [root@centos7 ~]#
-
-
- 配置文件:重啟后永久有效
-
# 可以手動編輯/etc/sysconfig/network里面的信息
[root@centos7 sysconfig]# cat /etc/sysconfig/network # Created by anaconda HOSTNAME=CENTOS7 [root@centos7 sysconfig]#
配置DNS服務器指向
- 配置文件:
- /etc/resolv.conf
-
- 因為可以有3個DNS,所以可以編輯3個
nameserve DNS_SERVER_IP1
nameserve DNS_SERVER_IP2
nameserve DNS_SERVER_IP3
eg:
# 可以手動編輯DNS,前提是DNS服務器可用
[root@centos7 ~]# cat /etc/resolv.conf # Generated by NetworkManager search corp.longshine.com nameserver 172.22.1.10 [root@centos7 ~]#
如何測試:
命令:host ,nslookup ,dig
如果系統沒有安裝,則使用# yum -y install bind-utils即可
1、# dig -t A FQDN(域名)
正向解析:將域名解析為IP地址
2、 # dig -x IP
反向解析:將ip地址解析為域名
eg:
# 使用dig和nslookup解析百度域名
[root@centos7 ~]# dig -t A www.baidu.com ; <<>> DiG 9.9.4-RedHat-9.9.4-37.el7 <<>> -t A www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42115 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4000 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 713 IN CNAME www.a.shifen.com. www.a.shifen.com. 209 IN A 61.135.169.125 www.a.shifen.com. 209 IN A 61.135.169.121 ;; Query time: 3 msec ;; SERVER: 172.22.1.10#53(172.22.1.10) ;; WHEN: 五 6月 16 20:14:19 AST 2017 ;; MSG SIZE rcvd: 101 [root@centos7 ~]#
[root@centos7 ~]# nslookup www.baidu.com Server: 172.22.1.10 Address: 172.22.1.10#53 Non-authoritative answer: www.baidu.com canonical name = www.a.shifen.com. Name: www.a.shifen.com Address: 61.135.169.121 Name: www.a.shifen.com Address: 61.135.169.125 [root@centos7 ~]#
一些補充:
eg:
# 查詢升級`ip命令的程序包在哪里`(注意是反引號)
[root@localhost ~]# rpm -qf `which ip` iproute-3.10.0-74.el7.x86_64
# 顯示ip及其有關命令在哪個文件下
[root@localhost ~]# rpm -ql iproute /etc/iproute2 /etc/iproute2/ematch_map /etc/iproute2/group /etc/iproute2/nl_protos /etc/iproute2/rt_dsfield /etc/iproute2/rt_protos /etc/iproute2/rt_realms /etc/iproute2/rt_scopes /etc/iproute2/rt_tables /etc/sysconfig/cbq /etc/sysconfig/cbq/avpkt /etc/sysconfig/cbq/cbq-0000.example /usr/lib64/tc ......