linux ping

首先第一个命令还是老生常谈的ping
传统的ping就是下面的样子,这个也是我们熟悉的ping

ping 10.127.133.96

PING 10.127.133.96 (10.127.133.96) 56(84) bytes of data.
64 bytes from 10.127.133.96: icmp_seq=1 ttl=63 time=0.230 ms
64 bytes from 10.127.133.96: icmp_seq=2 ttl=63 time=0.216 ms
...
当然Linux下的ping必须制定次数,我们可以指定次数,使用-c选项,然后会得到一个统计结果,可能对于很多人来说,需要关注的就是最后的统计结果,那么ping也可以实现。

ping -c 3 10.127.133.96

PING 10.127.133.96 (10.127.133.96) 56(84) bytes of data.
64 bytes from 10.127.133.96: icmp_seq=1 ttl=63 time=0.205 ms
64 bytes from 10.127.133.96: icmp_seq=2 ttl=63 time=0.233 ms
64 bytes from 10.127.133.96: icmp_seq=3 ttl=63 time=0.240 ms

--- 10.127.133.96 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.205/0.226/0.240/0.015 ms
我们使用-q选项来就可以直接得到统计结果。

ping -c 3 -q 10.127.133.96

PING 10.127.133.96 (10.127.133.96) 56(84) bytes of data.

--- 10.127.133.96 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.208/0.219/0.237/0.017 ms
如果想根据数据包的大小来测试网络情况,ping也可以支持,那就是-s选项

ping -c 3 -q -s 65507 10.127.133.96

PING 10.127.133.96 (10.127.133.96) 65507(65535) bytes of data.

--- 10.127.133.96 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2005ms
rtt min/avg/max/mdev = 1.424/1.468/1.501/0.032 ms
当然此处我指定为65507也是有一定的意味,最大的数据包是65507

ping -c 3 -q -s 65535 10.127.133.96

Error: packet size 65535 is too large. Maximum is 65507
而对于发送间隔,可以指定频度,也就意味着可以使用-i的选项显式的指定发送间隔或者使用-f选项尽可能快的发送数据包。
比如我们显式指定发送间隔为2秒,则可以使用下面的方式:

ping -c 3 -q -s 65507 -i 2 10.127.133.96

PING 10.127.133.96 (10.127.133.96) 65507(65535) bytes of data.

--- 10.127.133.96 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 1.404/1.443/1.468/0.041 ms
如果希望尽可能快的发送,也就是知名的flood ping

ping -c 3 -q -s 65507 -f 10.127.133.96

PING 10.127.133.96 (10.127.133.96) 65507(65535) bytes of data.

--- 10.127.133.96 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 4ms
rtt min/avg/max/mdev = 1.368/1.400/1.445/0.044 ms, ipg/ewma 2.380/1.429 ms
然后是轻巧的nc命令
这个命令在我解决tnsping超时的场景中收益良多,没想到自己虽然发现它很有意思,但是没有发现它的功能竟然还有很多,一定要好好掌握。
首先第一个就是可以简单模拟一个聊天窗口,
可以开启两个窗口,就是两个聊天窗口了,很类似Java编程中的socket通信。
服务器端开通端口,客户端连接指定的服务器IP和端口,就可以互相通信了。
服务器端开启服务,开通端口12345
nc -l 12345
然后客户端发起连接请求。
nc 10.127.133.86 12345
然后两端发送的消息就可以正常接收了。当然我测试了一下,如果是两个窗口之间的数据通信是没有问题的,如果是3个,最新的那个就会被忽略了。
当然nc的特长就是探测网络,一个亮点就是可以指定端口范围来扫描。
比如探测10.127.133.96的端口20-25的情况,可以使用如下的命令, -n是指定使用IP的方式,-w是指定超时时间,-z是建立连接后立即断开,不发送数据包

nc -z -v -n -w 2 10.127.133.96 20-25

nc: connect to 10.127.133.96 port 20 (tcp) failed: Connection refused
nc: connect to 10.127.133.96 port 21 (tcp) failed: Connection refused
Connection to 10.127.133.96 22 port [tcp/*] succeeded!
nc: connect to 10.127.133.96 port 23 (tcp) failed: Connection refused
nc: connect to 10.127.133.96 port 24 (tcp) failed: Connection refused
nc: connect to 10.127.133.96 port 25 (tcp) failed: Connection refused
最让我感觉nc强大的地方就是文件传输了,和scp,ftp等的亮点在于,nc传输文件竟然不需要输入用户名密码
一个简单的文件传输的例子如下,比如我们要传输的文件为test.sh,服务端IP为10.127.133.86,客户端IP为10.127.133.96
服务端的test.sh文件需要传送到客户端10.127.133.96去。
服务端这样设置:

nc -v -l 12345 < test.sh

客户端接受test.sh文件,则使用如下的方式接收。

nc -v -n 10.127.133.86 12345 > test.sh

命令运行之后,服务端开始推送,生成的日志如下:

nc -v -l 12345 < test.sh

Connection from 10.127.133.96 port 12345 [tcp/italk] accepted
当然反过来可以,服务端接收客户端的文件test.sh,服务端设置为: nc -v -l 12345 > test.sh,客户端设置为:nc -n 10.127.133.86 12345 <test.sh
如果发送文件夹,nc借助管道也可以实现
服务器端发送文件夹 dbm_lite,压缩

tar -cvPf - /U01/yangjr/test/dbm_lite |nc -l 12345

/U01/yangjr/test/dbm_lite/
/U01/yangjr/test/dbm_lite/bpm.sql
/U01/yangjr/test/dbm_lite/showgraph/

客户端接收文件夹,解压
$ nc -n 10.127.133.86 12345|tar -xvPf -

时间: 2024-10-26 20:56:03

linux ping的相关文章

双系统-虚拟机中为什么linux ping不通

问题描述 虚拟机中为什么linux ping不通 为什么在windows下能够ping通linux,在linux下却ping不通,而且网关也ping不通 解决方案 看看iptables关闭了没啊孩子,如果没放行规则的话需要加入的. 解决方案二: 检查一下网络防火墙规则等,是否禁用ping

Linux ping命令详解 Linux ping命令怎么用

执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常. 语法 ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>] [-s<数据包大小>][-t<存活数值>][主机名称或IP地址] 参数说明: -d 使用Socket的SO_DEBUG功能. -c<完成次数>

php模拟ping命令的方法

本篇文章主要说下如何使用php模拟我们常用的DOS命令ping命令的方法,这里主要用到的是php的内置函数exec来调用系统的ping命令,从而实现ping命令功能的. <?php $to_ping='www.Alixixi.com'; $count=2; $psize=66; echo "正在执行php ping命令,请等待...\n<br><br>"; flush(); while(1){ echo "<pre>"; e

使用 Linux tracepoints, perf以及eBPF跟踪网络数据包的流程

本文讲的是使用 Linux tracepoints, perf以及eBPF跟踪网络数据包的流程,我寻找一个低级Linux网络调试工具已经有一段时间了, Linux允许使用虚拟接口和网络命名空间的组合在主机上直接运行复杂网络.当出现问题时,排除故障相当耗时.如果这是L3路由器的问题,可以使用mtr命令进行路由分析.但是,如果这是一个较低级别的问题,我通常会手动检查每个接口.桥接.网络命名空间以及防火墙,并启动几个tcpdump,以便了解发生了什么.这个过程是如此复杂,以至于我想要找到一个可以直接发

vmware-putty控制Linux时,出现Network error:connection refused

问题描述 putty控制Linux时,出现Network error:connection refused 环境:vmware redhat6.2 配置ssd putty控制 1.linux上的ssh server端程序已经安装,并且服务已经启动 2.防火墙已经关闭 3.ping linux的iP可以通,但是linux ping windows 不通 输入sudo iptables -L时,出现,而不是 tcp dpt:ssh 解决方案 http://www.5yun.org/154.html

网络配置之Linux

网络配置之Linux ping命令,测试网络连接是否正常. traceout命令,追踪网络数据包的路由途径. 如:traceout -n sina.com.cn 主机名.网关配置文件:/etc/susconfig/network IP地址配置文件:/etc/susconfig/network-scipts/ifcfg-eth0  配置第一块以太网卡 DNS配置文件,/etc/resolv.conf    域名静态解析,/etc/hosts samba服务:类似于Windows的网上邻居,支持wi

宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法

首先虚拟机的网络连接设置为"Host-only": 然后在 cmd 窗口中查看 VMnet1 的 ip 地址,这里是 192.168.254.1 接下来在 Linux 中设置网卡地址,和 VMnet1 一个网段,这里设置的是 192.168.254.100   然而此时在 cmd 窗口 ping 刚才设置的虚拟机网卡地址时却出现: === 解决的方法是: 1.首先关闭宿主机的防火墙(控制面板中) 2.关闭虚拟机的防火墙:chkconfig iptables off    此时再次 pi

html-本人菜鸟一枚,请教大神一个关于CSS中ID和类选择器不能用,而标签选择器能用的问题

问题描述 本人菜鸟一枚,请教大神一个关于CSS中ID和类选择器不能用,而标签选择器能用的问题 FIREFOX浏览器,代码如下: HTML代码片段: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @import url(template/default/styl

《UNIX网络编程 卷1:套接字联网API(第3版)》——1.9 测试用网络及主机

1.9 测试用网络及主机 图1-16展示了本书示例所用的各个网络和主机.对于每个主机,我们都标出了它的操作系统和硬件类型(因为有些操作系统可运行在不止一种硬件上).各个框内的名字就是出现在本书中的各个主机名. 图1-16所示的拓扑适合本书的例子,不过机器大范围地散布在因特网上,物理拓扑实际上变得不太重要.事实上虚拟专用网络(virtual private network,VPN)或安全shell(secure shell,SSH)连接提供这些机器之间的连通性,而无需顾及这些主机的物理位置. 图中