1 查看网络配置
1.1 ifconfig——查看网络接口信息
ifconfig命令来自于net-tools包 (图形化界面已安装,而最小化界面是没有的。需要自己安装) :
[root@localhost ~]# rpm -qi net-tools Name : net-tools Version : 2.0 Release : 0.22.20131004git.el7 Architecture: x86_64 Install Date: 2022年01月18日 星期二 17时31分40秒 Group : System Environment/Base Size : 938986 License : GPLv2+ Signature : RSA/SHA256, 2017年08月11日 星期五 02时30分02秒, Key ID 24c6a8a7f4a80eb5 Source RPM : net-tools-2.0-0.22.20131004git.el7.src.rpm Build Date : 2017年08月03日 星期四 17时17分34秒 Build Host : c1bm.rdu2.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://sourceforge.net/projects/net-tools/ Summary : Basic networking tools Description : The net-tools package contains basic networking tools, including ifconfig, netstat, route, and others. Most of them are obsolete. For replacement check iproute package. 复制代码
基本用法:
格式 | 含义 |
ifconfig | 显示当前主机中已启用(活动)的网络接口信息。 |
ifconfig -a | 显示所有网络接口(包括没有启动的网卡) |
ifconfig 具体网卡名称 | 只显示具体网卡的详细信息(无论是否启用) |
ifconfig 网卡名称 up/down | 表示开启或关闭指定网卡 |
ifconfig 网络接口 IP地址[/子网掩码长度] | 新建临时IP地址(添加一块虚拟网卡) |
ifconfig -s | 查看通讯情况 |
1.1.1 查看所有启用的网络接口信息
在不带任何选项和参数执行ifconfig命令时,将显示当前主机中已启用(活动)的网络接口信息。
网卡名称详解:
ens33:第一块以太网的名称详解。
“ens33”中的:
- “en"是”EtherNet"的缩写,表示网卡类型为以太网;
- “s"表示热插拔插槽上的设备(hot-plug Slot);
- 数字“33”表示插槽编号。
[root@localhost ~]# ifconfig ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.72.10 netmask 255.255.255.0 broadcast 192.168.72.255 inet6 fe80::a5da:ff58:2c32:2b5f prefixlen 64 scopeid 0x20<link> ether 00:0c:29:18:b5:ff txqueuelen 1000 (Ethernet) RX packets 54379 bytes 4648603 (4.4 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 102028 bytes 28282331 (26.9 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1 (Local Loopback) RX packets 106 bytes 9256 (9.0 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 106 bytes 9256 (9.0 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255 ether 52:54:00:e6:f6:65 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 复制代码
ens33网卡信息每行详细解释:
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 #ens33:网卡名称 #UP:该接口已启用 #BROADCAST:支持广播 #RUNNING:正在允许 #MULTICAST:支持组播 #mtu 1500:网络传输时的最大传输单元,单位字节。这里为1500字节。 inet 192.168.72.10 netmask 255.255.255.0 broadcast 192.168.72.255 #这一行是网络接口的IP地址、子网掩码、广播地址 inet6 fe80::a5da:ff58:2c32:2b5f prefixlen 64 scopeid 0x20<link> #这一行是IPV6地址、子网长度、作用域(link小时仅该接口有效) ether 00:0c:29:18:b5:ff txqueuelen 1000 (Ethernet) #这一行是mac地址、传输队列长度(传输缓存大小)、接口类型 RX packets 54379 bytes 4648603 (4.4 MiB) #接收报文个数、总字节数 RX errors 0 dropped 0 overruns 0 frame 0 #接收错误个数、丢弃个数、溢出个数、冲突帧数 TX packets 102028 bytes 28282331 (26.9 MiB) #发送报文个数、总字节数 TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 #发送错误个数、丢弃个数、溢出个数、载荷数、冲突数 复制代码
1.1.2 查看/开启/关闭/设置指定网卡
ifconfig 网卡名称 [up|down]
1)查看ens33网卡
[root@localhost ~]# ifconfig ens33 ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.72.10 netmask 255.255.255.0 broadcast 192.168.72.255 inet6 fe80::a5da:ff58:2c32:2b5f prefixlen 64 scopeid 0x20<link> ether 00:0c:29:18:b5:ff txqueuelen 1000 (Ethernet) RX packets 97597 bytes 8390076 (8.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 187394 bytes 51899032 (49.4 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 复制代码
2)关闭、开启ens33网卡:
[root@localhost ~]# ifconfig ens33 down //关闭 [root@localhost ~]# ifconfig ens33 up //开启 复制代码
3)设置临时虚拟网卡:
[root@localhost ~]# ifconfig ens33:0 192.168.72.20 //设置虚拟网卡ens33:0 [root@localhost ~]# ifconfig ens33:0 ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.72.20 netmask 255.255.255.0 broadcast 192.168.72.255 ether 00:0c:29:18:b5:ff txqueuelen 1000 (Ethernet) 复制代码
4)查看通讯情况
[root@localhost ~]# ifconfig -s //查看通讯情况 Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg ens33 1500 104223 0 0 0 201081 0 0 0 BMRU ens33:0 1500 - no statistics available - BMRU lo 65536 142 0 0 0 142 0 0 0 LRU virbr0 1500 0 0 0 0 0 0 0 0 BMU 复制代码
5)增加临时网卡
[root@localhost ~]# ifconfig ens37 192.168.72.37/24 复制代码
增加临时网卡也可使用 ip address实现:
ip address add 192.168.72.37/24 dev ens37 ip address del 192.168.72.37/24 dev ens37 复制代码
1.2 hostname——查看主机名称
查看或设置当前主机名
hostname [主机名] 复制代码
示例:
1)查看主机名称
[root@localhost ~]# hostname localhost.localdomain 复制代码
2)临时修改主机名称
[root@localhost ~]# hostname yuji [root@localhost ~]# su [root@yuji ~]# hostname yuji 复制代码
永久修改主机名称,修改后重启生效:
- 法一:编辑配置文件/etc/hostname,该文件只对第一行生效。
- 法二:使用 “hostnamectl set-hostname 新主机名” 命令,该命令实际是修改了配置文件。
1.3 route——查看路由表条目
服务器可以当路由使用。
命令格式:
route //打印路由表 route -n //以数字形式显示路由信息 route add -net 网段地址 gw IP地址 //添加指定网段的路由记录 route del -net 网段地址 //删除指定网段的路由记录 route add default gw IP地址 //向路由表中添加默认网关记录 route del default gw IP地址 //删除路由表中默认的网关记录 复制代码
示例:
[root@yuji ~]# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 ens33 192.168.72.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 [root@yuji ~]# route -n //以数字形式展示,不允许显示别名 Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.72.2 0.0.0.0 UG 100 0 0 ens33 192.168.72.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0 复制代码
1.4 netstat——查看网络连接情况
netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。
命令格式:
netstat [选项] 复制代码
常用选项
选项 | 作用 |
-a | 显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。 |
-n | 拒绝显示别名,以数字的形式显示相关的主机地址、端口等信息。 |
-t | 查看TCP协议相关的信息。 |
-u | 显示UDP协议相关的信息。 |
-p | 显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限) |
-r | 显示路由表信息。 |
-l | 显示处于监听状态(Listen)的网络连接及端口信息。 |
常用搭配:
netstat -a //列出所有端口 netstat -at //列出所有TCP端口 netstat -au //列出所有UDP端口 netstat -ax //列出所有unix端口 netstat -lt //列出处于监听状态的TCP端口 netstat -tnlp //直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名 复制代码
示例:
1)netstat -lt,列出处于监听状态的TCP端口。
[root@localhost ~]# netstat -lt //列出处于监听状态的TCP端口 Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN tcp 0 0 localhost.locald:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:shell 0.0.0.0:* LISTEN tcp6 0 0 [::]:sunrpc [::]:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN tcp6 0 0 localhost:smtp [::]:* LISTEN tcp6 0 0 [::]:shell [::]:* LISTEN 复制代码
2)netstat -tnlp,直接使用ip地址列出所有处于监听状态的TCP端口,且加上程序名。
[root@localhost ~]# netstat -tnlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1462/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1113/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1111/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1394/master tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN 798/rsyslogd tcp6 0 0 :::111 :::* LISTEN 1/systemd tcp6 0 0 :::22 :::* LISTEN 1113/sshd tcp6 0 0 ::1:631 :::* LISTEN 1111/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1394/master tcp6 0 0 :::514 :::* LISTEN 798/rsyslogd 复制代码
1.5 ss(socket statistics)——查看网络连接情况
ss 命令:也可以查看网络连接情况,主要用于获取 socket 统计信息,它可以显示和 netstat 命令类似的输出内容。
但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。
当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢。
ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效 ss命令是Linux CentOS 7中iproute软件包的一部分,默认已经安装。
选项 | 含义 |
-t | tcp协议相关 |
-u | udp协议相关 |
-w | 套接字相关 |
-x | unix sock相关 |
-l | listen状态的连接 |
-a | 所有 |
-n | 数字格式 |
-p | 相关的程序及PID |
-e | 扩展的信息 |
-m | 内存用量 |
-o | 计时器信息 |
-r | --resolve 把 IP 解释为域名,把端口号解释为协议名称 |
示例:
查看TCP协议下的21端口是否开启
[root@localhost ~]# ss -ntap |grep 21 //查看TCP协议下的21端口 LISTEN 0 32 :::21 :::* users:(("vsftpd",pid=84913,fd=3)) 复制代码