常用的网络相关命令

ping

PING (Packet Internet Grope),因特网包探索器,用来查看网络上另一个主机系统的网络连接是否正常的一个工具。

ping命令向网络上的另一个主机系统发送ICMP报文,如果指定系统得到了报文,它将把报文一模一样地传回给发送者。ping命令执行后显示出被测试系统主机名和相应IP地址、返回给当前主机的ICMP报文顺序号、ttl生存时间和往返时间rtt(单位是毫秒,即千分之一秒)。
这里写图片描述

这里写图片描述

发ping命令到对方的第几个包。 icmp_seq=后面的数就是第多少条了
TTL全程Time to Live,意思就是生存周期。 首先要说明ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期。包在每经过一个节点,将这个值减1,在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死,防止它会一直循环/转发下去。 每个操作系统对TTL值得定义都不同,可以修改,不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。

ping其他参数

单独输入ping,直接回车,可以看到帮助。
-t 不间断发送请求数据包,直到按Ctrl+C终止,ctrl+Break统计一下,但不终止
-n (或-c) 决定发送回应请求的次数。默认值是4。
-l size 决定发送请求数据包的大小。默认是32字节。

ICMP协议

ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方。ICMP协议是IP层的一个协议(因此,ping命令工作在OSI参考模型的第三层-网络层),但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据报的数据发送前需要两级封装:首先添加ICMP报头形成ICMP报文,再添加IP报头形成IP数据报。由于IP层协议是一种点对点的协议,而非端对端的协议,它提供无连接的数据报服务,没有端口的概念。
ICMP 包发送是不可靠的,所以主机不能依靠接收 ICMP 包解决任何网络问题。
ICMP不象TCP或UDP有端口,但它确实含有两个域:类型(type)和代码(code)。而且这些域的作用和端口也完全不同。
Ping用到的是ICMP协议。不是端口。ping无法检查系统端口是否开放。

网络无法连接

使用 Ping 检查连通性有六个步骤:
1. 使用 ipconfig /all 观察本地网络设置是否正确;
2. Ping 127.0.0.1,127.0.0.1 回送地址 Ping 回送地址是为了检查本地的 TCP/IP 协议有没有设置好;
3. Ping 本机 IP 地址,这样是为了检查本机的 IP 地址是否设置有误;
4. Ping 本网网关(路由器)或本网 IP 地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)
5.Ping 本地 DNS 地址,DNS的目的是看你能不能解析出远端网站的IP地址,以访问该网站,这样做是为了检查DNS服务器是否正常,能否连接。
6.Ping 远程 IP 地址,这主要是检查本网或本机与外部的连接是否正常。

ping的简单过程

  1. 首先查本地arp cache信息,看是否有对方的mac地址和IP地址映射条目记录。
    1.1 如果有。。
    1.2 如果没有,则发起一个arp请求广播包,交换机会收到这个报文后,交换机有学习MAC地址的功能,所以他会检索自己有没有保存主机B的MAC,如果有,就返回给主机A,如果没有,就会向所有端口发送ARP广播,其它主机收到后,发现不是在找自己,就纷纷丢弃了该报文,不去理会。。直到主机B收到了报文后,就立即相应,我的MAC地址是多少,同时学到主机A的MAC地址,并按同样的ARP报文格式返回给主机A。(交换机、主机A、主机B均会缓存对方的MAC地址)
  2. 获得某个IP对应的具体mac地址,有了物理地址之后才可以开始通信了,将MAC封装到ICMP协议的二层报文中向主机B发送(icmp echo request包);
  3. 当主机B收到了这个报文后,发现是主机A 的ICPM回显请求,就按同样的格式,返回一个值给主机A,主机A收到icmp echo reply包。

other

传输层常用的是三元素和五元素
三元素指本机服务提供的三要求:
协议、本机地址、本机端口

五元素是指两个应用连接的五元素:
协议、本地地址、本地端口、远程地址、远程端口。

参考

Ping过程原理详解(图)
三层交换机ping原理(整理日记)
http://bbs.51cto.com/thread-821402-1-1.html
ping实现原理
PING 工作原理

telnet

Telnet(teletype network)是位于OSI模型的第7层—应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议,会建立一个TCP连接。这一协议需要通过用户名和口令进行认证,是Internet远程登陆服务的标准协议。应用Telnet协议能够把本地用户所使用的计算机变成远程主机系统的一个终端。它提供了三种基本服务: 
1)Telnet定义一个网络虚拟终端为远程系统提供一个标准接口。客户机程序不必详细了解远程系统,他们只需构造使用标准接口的程序;
2)Telnet包括一个允许客户机和服务器协商选项的机制,而且它还提供一组标准选项;
3)Telnet对称处理连接的两端,即Telnet不强迫客户机从键盘输入,也不强迫客户机在屏幕上显示输出。
telnet可以检查某个端口是否开放:telnet IP:Port(80、11211、6379),win7等默认telnet服务是关闭的,需手动配置打开。

ssh

安全外壳协议(secure shell )是建立在应用层和传输层基础上的安全协议,可以用来替代Telnet、FTP以及R命令,主要是用于解决口令在网上明文传输的问题,SSH的默认端口是22。用 Telnet 和 FTP 登录服务器时,密码以明文的形式发送给服务器,怀有恶意的人可以通过监听网络上传输的数据包,得到用户的登录信息。通过使用SSH,用户可以把所有传输的数据进行加密,而且还能够防止DNS和 IP欺骗,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。
从客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于口令的安全验证)
第二种级别(基于密匙的安全验证),不需要在网络上传送口令

SSH特征是:
(1)SSH可以为浏览器和服务器的联系提供透明的保护。
(2)所有的连接都可以自动地加密,并且不会受到损害。
(3)SSH加密整个传输过程。因此,能够防止任何在客户端和服务器之间的第三者看到传输内容。
(4)SSH 安装容易、使用简单,而且比较常见,一般的 UNIX 系统、Linux 系统、FreeBSD 系统都附带有支持SSH的应用程序包。

具体参考:
SSH原理与运用(一):远程登录
SSH原理与运用(二):远程操作与端口转发

netstat

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。常用参数如下:
-a (all)显示所有选项(默认不显示LISTEN相关)
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

netstat -lnp | grep 端口号 检查某个端口是否开放-Listen -at 所有tcp连接
-ant 所有tcp连接,均转化成数字、ip
-lt 监听的tcp端口

参考:
Linux netstat命令详解

netcat

nc -z -v -n 127.0.0.1 80 默认tcp模式,80端口是否开放 z zero I/O mode,v verbose

该命令功能强大,具体参见:
Linux Netcat 命令——网络工具中的瑞士军刀

参考:
几个简单的网络命令(ping、tennet、ssh、netstat)

展开阅读全文

没有更多推荐了,返回首页