6 Linux 常用命令(五)常用网络命令
6.1 ifconfig命令
ifconfig命令最主要的作用就是查看IP地址的信息,直接输入ifconfig命令即可。在CentOS 7.x中ifconfig命令默认没有安装,如果需要使用,需要安装net-tools软件包。
-
命令名称:ifconfig。
-
英文原意:configure a network interface。
-
所在路径:/sbin/ifconfig。
-
执行权限:超级用户。
功能描述:配置网络接口。
[root@localhost ~]# ifconfig示例:
[root@localhost ~]# ifconfigeth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
#标志 最大传输单元
inet 172.17.32.17 netmask 255.255.240.0 broadcast 172.17.47.255
#IP地址 子网掩码 广播地址
inet6 fe80::5054:ff:fe87:22ab prefixlen 64 scopeid 0x20<link>
#IPv6地址(目前没有生效)
ether 52:54:00:87:22:ab txqueuelen 1000 (Ethernet)
#MAC地址
RX packets 181113 bytes 21611036 (20.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
#接收的数据包情况
TX packets 181670 bytes 32158693 (30.6 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 1000 (Local Loopback)
RX packets 34377459 bytes 7285224334 (6.7 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 34377459 bytes 7285224334 (6.7 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
6.2 ping命令
ping是常用的网络命令,主要通过ICMP协议进行网络探测,测试网络中主机的通信情况。其基本信息如下。
-
命令名称:ping。
-
英文原意:send ICMP ECHO_REQUEST to network hosts。
-
所在路径:/bin/ping。
-
执行权限:所有用户。
功能描述:向网络主机发送ICMP请求。
[root@localhost ~]# ping [选项] [ip地址或域名]选项:
-b: 后面加入广播地址,用于对整个网段进行探测
-c 次数: 用于指定ping的次数
-s 字节: 指定探测包的大小
示例:
[root@localhost ~]# ping -b -c 3 www.baidu.com6.3 netstat命令
netstat是网络状态查看命令,既可以查看到本机开启的端口,也可以查看有哪些客户端连接。在CentOS 7.x中netstat命令默认没有安装,如果需要使用,需要安装net-snmp和net-tools软件包。
-
命令名称:netstat。
-
英文原意:Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships。
-
所在路径:/bin/netstat。
-
执行权限:所有用户。
功能描述:输出网络连接、路由表、接口统计、伪装连接和组播成员。
[root@localhost ~]# netstat [选项]选项:
-a: 列出所有网络状态,包括Socket程序
-c 秒数: 指定每隔几秒刷新一次网络状态
-n: 使用IP地址和端口号显示,不使用域名与服务名
-p: 显示PID和程序名
-t: 显示使用TCP协议端口的连接状况
-u: 显示使用UDP协议端口的连接状况
-l: 仅显示监听状态的连接
-r: 显示路由表
示例:
[root@localhost ~]# netstat -anputActive Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
#协议 接收队列 发送队列 本机的IP地址及端口号 远程主机的IP地址及端口号 状态
tcp 0 0 127.0.0.1:19206 0.0.0.0:* LISTEN 4185/yudian_websvr
tcp 0 0 172.17.32.17:20006 0.0.0.0:* LISTEN 3399/SrvMgr
tcp 0 0 172.17.32.17:28070 0.0.0.0:* LISTEN 3048/conn_mgr
tcp 0 0 127.0.0.1:19207 0.0.0.0:* LISTEN 4264/yudian_websvr
tcp 0 0 127.0.0.1:19208 0.0.0.0:* LISTEN 4211/yudian_websvr
tcp 0 0 172.17.32.17:8008 0.0.0.0:* LISTEN 1161/python3
这个命令的输出较多。
-
Proto:网络连接的协议,一般就是TCP协议或者UDP协议。
-
Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。
-
Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,一般是不具备ACK标志的数据包。
-
Local Address:本机的IP地址和端口号。
-
Foreign Address:远程主机的IP地址和端口号。
-
State:状态。常见的状态主要有以下几种。
-
LISTEN:监听状态,只有TCP协议需要监听,而UDP协议不需要监听。
-
ESTABLISHED:已经建立连接的状态。如果使用“-l”选项,则看不到已经建立连接的状态。
-
SYN_SENT:SYN发起包,就是主动发起连接的数据包。
-
SYN_RECV:接收到主动连接的数据包。
-
FIN_WAIT1:正在中断的连接。
-
FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。
-
TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。
-
CLOSED:套接字没有被使用。
-
在这些状态中,我们最常用的就是LISTEN和ESTABLISHED状态,一种代表正在监听,另一种代表已经建立连接。
6.4 write命令
write命令用于给指定用户发送信息
-
命令名称:write。
-
英文原意:send a message to all user。
-
所在路径:/usr/bin/write。
-
执行权限:所有用户。
功能描述:向其他用户发送信息
[root@localhost ~]# write [用户名] [远程终端]# 消息内容
示例:
[root@localhost ~]#write user1 pts/1hello
I will be in 5 minutes to restart, please save your data
6.5 wall命令
wall命令用于给所有登录用户发送信息
-
命令名称:wall。
-
英文原意:send a message to another user。
-
所在路径:/usr/bin/wall。
-
执行权限:所有用户。
功能描述:向所有用户发送信息
[root@localhost ~]# wall [消息内容]示例:
[root@localhost ~]# wall "I will be in 5 minutes to restart, please save your data"6.6 telnet命令
telnet一般用于检测目标端口是否开放,在CentOS 7.x中netstat命令默认没有安装,如果需要使用,需要安装telnet软件包。
-
命令名称:telnet
-
英文原意:send a message to another user
-
所在路径:/usr/bin/telnet
-
执行权限:所有用户
功能描述:检测服务器端口是否开放
[root@localhost ~]# telnet [ip地址] [端口]示例:
[root@localhost ~]# telenet 192.168.5.5 56