1-Linux 网络操作 ping telnet curl netstat(netstat -ntlp),查看外网ip
Linux 网络操作
一,ping
ping是Linux系统下的一个命令,ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。
ping命令本身处于应用层,相当于一个应用程序,它直接使用网络层的ICMP协议。Ping(Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping命令是第一个必须掌握的DOS命令,它所利用的原理是这样的:利用网络上机器IP地址的唯一性,给目标IP地址发送一个ICMP数据包,再要求对方返回一个同样大小的ICMP数据包来确定两台网络机器是否连接相通,时延是多少。
一般的ping指令为:
ping www.baidu.com
ping指的是端对端连通,通常用来作为可用性的检查,
二,telnet
telnet是用来探测指定ip是否开放指定端口。
telnet协议是TCP/IP协议族的其中之一,是Internet远端登录服务的标准协议和主要方式,常用于网页服务器的远端控制,可供使用者在本地主机执行远端主机上的工作。使用者首先在电脑执行telnet程序,连线至目的地服务器,然后输入帐号和密码以验证身份。使用者可以在本地主机输入命令,然后让已连接的远端主机执行,就像直接在对方的控制台上输入一样。传统telnet会话所传输的资料并未加密,帐号和密码等敏感资料容易会被窃听,因此很多服务器都会封锁telnet服务,改用更安全的ssh。
一般的telnet指令为:
telnet www.baidu.com 80
简单的说,ping命令是用来检测网络是否畅通的,而telnet命令则用来远程登陆。 但telnet不通并不一定代表网络不通。ping是基于ICMP协议的命令,就是你发出去一个数据包,对方收到后返给你一个!就好比声纳。这个协议是可以禁止的!禁止后,如果你ping对方,对方收到后就不回馈给你,这样你就显示无法ping通,但实际你们还是连着的!telnet是登陆服务器的!服务没禁止就能登陆。
三,curl
在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。这个工具可以帮助我们在服务器上很好的模拟http的行为。
curl url 返回整个网页的内容
curl -I url 返回这个网页的header
curl -i url 返回网页header + 内容
四,netstat
这是重点,下面会详细一点,
mpstat
mpstat 是Multiprocessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。
在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。
Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
常见用法:
netstat –npl 可以查看你要打开的端口是否已经打开。
列出所有端口
netstat -ntlp
-bash: netstat: command not found
yum install net-tools
4.1 netstat常见参数
-a (all) 显示所有选项,默认不显示LISTEN相关。
-t (tcp) 仅显示tcp相关选项。
-u (udp) 仅显示udp相关选项。
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态。
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
LISTEN和LISTENING的状态只有用-a或者-l才能看到。
4.2 返回参数解释
Active UNIX domain sockets 有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
列名解释:
Proto:显示连接使用的协议。
RefCnt:表示连接到本套接口上的进程号。
Types:显示套接口的类型。
State:显示套接口当前的状态。
Path:表示连接到套接口的其它进程使用的路径名。
4.3 常用netstat相关命令
1、列出所有端口
netstat -a
2、列出所有 tcp 端口
netstat -at
3、列出所有 udp 端口
netstat -au
4、只显示监听端口
netstat -l
这个l就是listening,监听状态
只列出所有监听 tcp 端口 #netstat -lt
只列出所有监听 udp 端口 #netstat -lu
列出所有监听 UNIX 端口 #netstat -lx
5、显示所有端口的统计信息
netstat -s
显示 TCP 或 UDP 端口的统计信息#netstat -st 或 -su
6、 输出中显示 PID 和进程名称 #netstat -p
p就是PID/Program name,这样你执行就会增加一列,
比如netstat -atp 这就是查看全部的tcp的信息,展示pid那一列
7、以数字形式,显示地址和端口
netstat -n。将会使用数字代替那些名称。
同样可以加速输出,因为不用进行比对查询。
netstat -an
8、持续输出 netstat 信息 #netstat -c
netstat -at -c 5
9、找出程序运行的端口
netstat -ap | grep ':80'
10、查看连接某服务端口最多的的IP地址(前20个)
netstat -nat | grep "10.1.62.23:443" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
11、TCP各种状态列表
netstat -nat |awk '{print $6}' # 6是第六列
统计数量
netstat -nat |awk '{print $6}'|sort|uniq -c
排序
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
12、直接统计tcp数量监听的数量
netstat -ant | wc -l
linux 查看外网ip命令
curl ifconfig.me