Linux命令ping,nc的学习

简介: 今天看了下《Linux大棚命令百篇》网络和系统篇,发现了几个很不错的命令,我是看着目录然后根据自己的需要选了3个命令,没想到3个命令都让人眼前一亮,刷新了我原本的认知。 首先第一个命令还是老生常谈的ping 传统的ping就是下面的样子,这个也是我们熟悉的ping # ping 10.
今天看了下《Linux大棚命令百篇》网络和系统篇,发现了几个很不错的命令,我是看着目录然后根据自己的需要选了3个命令,没想到3个命令都让人眼前一亮,刷新了我原本的认知。
首先第一个命令还是老生常谈的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 -
    
目录
相关文章
|
21天前
|
Linux 应用服务中间件 Shell
二、Linux文本处理与文件操作核心命令
熟悉了Linux的基本“行走”后,就该拿起真正的“工具”干活了。用grep这个“放大镜”在文件里搜索内容,用find这个“探测器”在系统中寻找文件,再用tar把东西打包带走。最关键的是要学会使用管道符|,它像一条流水线,能把这些命令串联起来,让简单工具组合出强大的功能,比如 ps -ef | grep 'nginx' 就能快速找出nginx进程。
248 1
二、Linux文本处理与文件操作核心命令
|
6天前
|
存储 安全 Linux
Linux卡在emergency mode怎么办?xfs_repair 命令轻松解决
Linux虚拟机遇紧急模式?别慌!多因磁盘挂载失败。本文教你通过日志定位问题,用`xfs_repair`等工具修复文件系统,三步快速恢复。掌握查日志、修磁盘、验重启,轻松应对紧急模式,保障系统稳定运行。
90 2
|
16天前
|
缓存 监控 Linux
Linux内存问题排查命令详解
Linux服务器卡顿?可能是内存问题。掌握free、vmstat、sar三大命令,快速排查内存使用情况。free查看实时内存,vmstat诊断系统整体性能瓶颈,sar实现长期监控,三者结合,高效定位并解决内存问题。
58 0
Linux内存问题排查命令详解
|
21天前
|
安全 Ubuntu Unix
一、初识 Linux 与基本命令
玩转Linux命令行,就像探索一座新城市。首先要熟悉它的“地图”,也就是/根目录下/etc(放配置)、/home(住家)这些核心区域。然后掌握几个“生存口令”:用ls看周围,cd去别处,mkdir建新房,cp/mv搬东西,再用cat或tail看文件内容。最后,别忘了随时按Tab键,它能帮你自动补全命令和路径,是提高效率的第一神器。
465 2
|
1月前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
118 16
|
28天前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
|
Linux 开发工具 Shell
|
Shell Linux 数据安全/隐私保护