Linux 网络客户端工具
ping命令
发送ICMP协议的echo request给目标主机
常用选项:
从指定的本机接口发送ICMP:-I INTERFACE
本机有多个接口(网卡),可以选择从哪个接口发:-I(大写i)
接口enp0s3是本地内网ip;接口enp0s8是nat的ip地址,enp0s8是可以访问外网的,enp0s3不可以。下面有ping验证。
# ifconfig enp0s3enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.56.107 netmask 255.255.255.0 broadcast 192.168.56.255# ifconfig enp0s8enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.3.15 netmask 255.255.255.0 broadcast 10.0.3.255# ping -I enp0s8 tuna.tsinghua.edu.cnPING tuna.tsinghua.edu.cn (101.6.6.172) from 10.0.3.15 enp0s8: 56(84) bytes of data.64 bytes from 101.6.6.172 (101.6.6.172): icmp_seq=1 ttl=45 time=68.3 ms64 bytes from 101.6.6.172 (101.6.6.172): icmp_seq=2 ttl=45 time=79.2 ms^C--- tuna.tsinghua.edu.cn ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1005msrtt min/avg/max/mdev = 68.379/73.811/79.244/5.439 ms# ping -I enp0s3 tuna.tsinghua.edu.cnPING tuna.tsinghua.edu.cn (101.6.6.172) from 192.168.56.107 enp0s3: 56(84) bytes of data.
指定发送包的个数:-c #
指定包的大小:-s #
# ping -s 9999 www.baidu.comPING www.a.shifen.com (61.135.169.121) 9999(10027) bytes of data.
指定ping运行的时长:-w
指定一次ping操作,等待对方响应的最长时长:-W
# ping -I enp0s8 -c 3 tuna.tsinghua.edu.cnPING tuna.tsinghua.edu.cn (101.6.6.172) from 10.0.3.15 enp0s8: 56(84) bytes of data.64 bytes from 101.6.6.172 (101.6.6.172): icmp_seq=1 ttl=45 time=63.0 ms64 bytes from 101.6.6.172 (101.6.6.172): icmp_seq=2 ttl=45 time=62.9 ms64 bytes from 101.6.6.172 (101.6.6.172): icmp_seq=3 ttl=45 time=60.6 ms--- tuna.tsinghua.edu.cn ping statistics ---3 packets transmitted, 3 received, 0% packet loss, time 2002msrtt min/avg/max/mdev = 60.663/62.218/63.037/1.100 ms# ping -I enp0s8 -w 2 tuna.tsinghua.edu.cnPING tuna.tsinghua.edu.cn (101.6.6.172) from 10.0.3.15 enp0s8: 56(84) bytes of data.64 bytes from 101.6.6.172 (101.6.6.172): icmp_seq=1 ttl=45 time=58.0 ms64 bytes from 101.6.6.172 (101.6.6.172): icmp_seq=2 ttl=45 time=66.1 ms# ping -I enp0s8 -W 2 tuna.tsinghua.edu.cn
hping命令
发送TCP/IP数据包给目标主机
# yum list all | grep hpinghping3.x86_64 0.0.20051105-24.el7 epelpcp-pmda-shping.x86_64 4.3.2-4.el7_7 updates# yum install hping3# man hping3
常用选项:
快速发送:--fast
# hping --fast www.baidu.comHPING www.baidu.com (enp0s8 61.135.169.125): NO FLAGS are set, 40 headers + 0 data byteslen=46 ip=61.135.169.125 ttl=255 id=12411 sport=0 flags=RA seq=0 win=0 rtt=0.2 mslen=46 ip=61.135.169.125 ttl=255 id=12412 sport=0 flags=RA seq=1 win=0 rtt=0.8 mslen=46 ip=61.135.169.125 ttl=255 id=12413 sport=0 flags=RA seq=2 win=0 rtt=0.4 mslen=46 ip=61.135.169.125 ttl=255 id=12414 sport=0 flags=RA seq=3 win=0 rtt=0.9 mslen=46 ip=61.135.169.125 ttl=255 id=12415 sport=0 flags=RA seq=4 win=0 rtt=0.7 mslen=46 ip=61.135.169.125 ttl=255 id=12416 sport=0 flags=RA seq=5 win=0 rtt=0.6 mslen=46 ip=61.135.169.125 ttl=255 id=12417 sport=0 flags=RA seq=6 win=0 rtt=0.8 mslen=46 ip=61.135.169.125 ttl=255 id=12418 sport=0 flags=RA seq=7 win=0 rtt=0.6 mslen=46 ip=61.135.169.125 ttl=255 id=12419 sport=0 flags=RA seq=8 win=0 rtt=0.7 ms^C--- www.baidu.com hping statistic ---10 packets transmitted, 9 packets received, 10% packet lossround-trip min/avg/max = 0.2/0.6/0.9 ms
发的很快,有10%的丢失
更快速发送:--faster
# hping --fast www.baidu.com--- www.baidu.com hping statistic ---21862 packets transmitted, 958 packets received, 96% packet lossround-trip min/avg/max = 0.1/3.9/19.9 ms
有96%的丢失
能有多快就发多块:--flood
# hping --flood www.baidu.comHPING www.baidu.com (enp0s8 61.135.169.125): NO FLAGS are set, 40 headers + 0 data byteshping in flood mode, no replies will be shown^C--- www.baidu.com hping statistic ---11883 packets transmitted, 0 packets received, 100% packet lossround-trip min/avg/max = 0.0/0.0/0.0 ms
100%丢失
由于ping命令能发大包,就浪费了目标主机的带宽;而hping命令能快速发包,占用目标主机的cpu,有的服务器就关闭了响应它们请求的功能。其实这就是攻击服务器的简单方式。
traceroute命令
探测到目标主机经过的网关,大部分路由器都关闭了这个功能,防止被攻击。
# traceroute www.baidu.comtraceroute to www.baidu.com (61.135.169.121), 30 hops max, 60 byte packets 1 gateway (10.0.3.2) 0.249 ms 0.246 ms 0.247 ms 2 gateway (10.0.3.2) 4.780 ms 4.627 ms 4.487 ms
ftp
古老的file transfer protocol,ftp服务器使用21号端口
# ftp 192.168.4.22然后提示输入fpt的用户名,可以匿名访问,匿名的话输入:anonymous或者ftp然后提示输入密码,匿名用户就随便输入一个密码然后就进入了ftp服务器了。在里面可以使用ls,cd等命令输入help,获取命令帮助。get:下载一个文件mget:下载多个文件put/mput:上传一个/多个文件rm/mrm:删除一个/多个文件
lftp命令
代替ftp命令,支持命令补全。
输入help,获取命令帮助
指定用户名和密码:lftp -u USERNAME,PASSWD 192.168.45.4
不指定用户名和密码(匿名访问):lftp 192.168.45.4
匿名访问时,不需要输入anonymous或者ftp
get:下载一个文件
mget:下载多个文件
put/mput:上传一个/多个文件
rm/mrm:删除一个/多个文件
lftpget命令
不登录到ftp服务器,直接下载。但只能下载文件,不能下载目录。
使用的应用层协议是http
lftpget -c http://192.168.56.22/dir/file
断点续传:-c
wget命令
只能下载文件,不能下载目录。
在后台执行下载:-b
一般在脚本中使用此选项
不显示下载进度:-q
断点续传:-c
指定文件下载后,存放到本地的哪里:-O file
指定下载速率(不指定可能就是最大速率): --limit-rate=amount
# c/c++ 学习互助QQ群:877684253![](https://img2018.cnblogs.com/blog/1414315/201811/1414315-20181106214320230-961379709.jpg)# 本人微信:xiaoshitou5854