失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Linux之网络相关命令——ping tranceroute netstat ftp lftp wget ssh scp sftp

Linux之网络相关命令——ping tranceroute netstat ftp lftp wget ssh scp sftp

时间:2019-03-17 00:28:43

相关推荐

Linux之网络相关命令——ping tranceroute netstat ftp lftp wget ssh scp sftp

网络连接方面,Linux可以说是万能的. Linux工具可以建立各种网络系统及应用,包括防火墙、路由器、域名服务器、NAS(网络附加存储)盒等。

这里主要讲一些经常用到的命令,涉及网络检测以及文件传输等方面。所涉及的命令包括:

ping: 向网络主机发送 ICMP ECHO_REQUEST数据包traceroute: 显示数据包到网络主机的路由路径netstat: 显示网络连接、路由表、网络接口数据、伪连接以及多点传送成员等信息ftp:文件传输命令lftp:改善后的文件传输命令wget:非交互式网络下载器ssh: OpenSSH(SSH协议的免费开源实现)版的SSH客户端(远程系统登录命令)。scp: srcure copy的缩写,是远程复制文件命令。sftp: secure file transfer program的缩写,安全文件传输程序。

0.参考书籍

《Linux命令行大全》 [美] William E. Shotts. Jr 著 郭光伟 郝记生 译, 人民邮电出版社

如有侵权,可联系博主删除。

1. 检查、检测网络

1.1 ping—向网络主机发送特殊数据包

ping命令会向指定的网络户籍发送特殊网络数据包IMCP ECHO_REQUEST.多数网络设备收到该数据包后会做出回应,通过此法即可验证网络连接是否正常,

$ ping PING (39.156.69.79) 56(84) bytes of data.64 bytes from 39.156.69.79: icmp_seq=1 ttl=44 time=27.7 ms64 bytes from 39.156.69.79: icmp_seq=2 ttl=44 time=27.1 ms64 bytes from 39.156.69.79: icmp_seq=3 ttl=44 time=27.2 ms64 bytes from 39.156.69.79: icmp_seq=4 ttl=44 time=27.0 ms...^C--- ping statistics ---32 packets transmitted, 32 received, 0% packet loss, time 31129ms

一旦程序启动,ping命令便以既定的时间间隔(默认1s)传送数据包直到该命令被打断。按下Ctrl+C结束。

数据包丢失0%说明网络运行正常。

1.2 traceroute—跟踪网络数据包的传输路径

traceroute程序会显示文件通过网络从本地系统传输到指定主机过程中所有停靠点的列表。

例如

$ traceroute 1 10.20.3.1 (10.20.3.1) 5.509 ms 5.782 ms 6.082 ms2 10.250.1.1 (10.250.1.1) 0.206 ms 0.198 ms 0.179 ms3 * * *4 224. (202.120.224.3) 1.518 ms 2.661 ms 2.050 ms5 * * *6 10.255.19.1 (10.255.19.1) 3.072 ms 2.929 ms 2.983 ms7 10.255.249.45 (10.255.249.45) 1.623 ms 1.311 ms 1.216 ms8 10.255.38.250 (10.255.38.250) 1.414 ms 1.532 ms 1.719 ms9 202.112.27.1 (202.112.27.1) 2.414 ms 2.153 ms 3.080 ms10 101.4.115.105 (101.4.115.105) 2.367 ms 2.299 ms 2.217 ms11 101.4.117.30 (101.4.117.30) 21.143 ms 23.262 ms 22.130 ms12 101.4.116.118 (101.4.116.118) 29.939 ms 29.975 ms 30.451 ms13 101.4.112.69 (101.4.112.69) 27.647 ms 27.083 ms 27.551 ms14 101.4.113.110 (101.4.113.110) 30.981 ms 31.284 ms 31.169 ms15 101.4.116.66 (101.4.116.66) 30.915 ms 28.574 ms 28.971 ms16 101.4.117.110 (101.4.117.110) 31.936 ms 32.072 ms 32.223 ms17 202.97.57.173 (202.97.57.173) 29.062 ms 202.97.88.233 (202.97.88.233) 27.312 ms 27.359 ms18 * 180.149.159.10 (180.149.159.10) 27.638 ms *19 36.110.244.94 (36.110.244.94) 65.536 ms * *20 * * *21 220.181.182.34 (220.181.182.34) 28.894 ms 220.181.17.90 (220.181.17.90) 29.379 ms *22 * * *23 * * *24 * * *25 * * *26 * * *27 * * *28 * * *29 * * *30 * * *

说明从测试系统到/网站的连接需要经过30个路由器,对于提供身份信息的路由器,列表列出了主机名、IP地址以及运行状态信息。信息包含了从本地系统到路由器3次往返时间。

而对于那些因为路由器配置、网络堵塞或是防火墙等等原因不提供身份信息的路由器,则直接用星号行表示。

1.3 netstat—检查网络设置及相关统计数据

netstat使用-ie选项,可以检查系统中的网络接口信息。

$ netstat -ieenp13s0f1 Link encap:Ethernet HWaddr a0:42:3f:37:59:55inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0inet6 addr: 2001:da8:8001:263:a242:3fff:fe37:5955/64 Scope:Globalinet6 addr: fe80::a242:3fff:fe37:5955/64 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:526542080 errors:0 dropped:1452651 overruns:703 frame:0TX packets:332330448 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:618633150746 (618.6 GB) TX bytes:217758725891 (217.7 GB)Memory:c7200000-c721fffflo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:HostUP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:155800939 errors:0 dropped:0 overruns:0 frame:0TX packets:155800939 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1RX bytes:221954702938 (221.9 GB) TX bytes:221954702938 (221.9 GB)

以上输出信息显示,测试系统有两个网络端口:第一个称为enp13s0f1,是以太网端口;第二个称为lo,是系统用来自己访问自己的回环虚拟接口。

对于网络接口进行日常诊断,关键是看能否在每个接口信息第四行的开头找到UP这个词以及能否在第二行的inet addr字段找到有效的IP地址。第四行的UP代表着该网络接口已启动,而对于使用动态主机配置协议的系统(DHCP),inter addr字段里边的有效IP地址则说明了DHCP正在工作。

使用-r选项将显示内核的网络路由表,显示了网络之间传送数据包时网络的配置情况。

$ netstat -rKernel IP routing tableDestinationGateway Genmask Flags MSS Window irtt Iface192.168.1.0 *255.255.255.0 U 0 00 enp13s0f1192.168.1.10.0.0.0 UG0 0 0 eth0

2.通过网络传输文件

2.1 ftp—采用FTP(文件传输协议)传输文件

ftp是Linux比较经典的命令之一,由File Transfer Protocol协议缩写而来.

FTP原来的表现形式并不安全,因为它以明文的方式传送账户名以及密码。这意味着这些信息并没有加密,任何一个接触网络的人都能看到它们。鉴于此,几乎所有使用FTP协议进行的网络文件传输都是由匿名FTP服务器处理的。匿名服务器允许任何人使用anonymous登录名以及无意义的密码登录。

2.2 lftp—更好的ftp(文件传输协议)

lftp与传统的ftp程序功能类似,但有很多其它便利的功能,包括多协议支持(HTTP)、下载失败时自动重新尝试、后台进程支持、Tab键完成文件名输入等许多其他功能。

2.3 wget—非交互式网络下载工具

wget既可以用于从网站上下载内容,也可以从FTP站点下载,单个文件、多个文件甚至整个网址都可以被下载。

$ wget /index.php---06-12 20:02:13-- /index.phpResolving ()... 216.105.38.10Connecting to ()|216.105.38.10|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 4005 (3.9K) [text/html]Saving to: ‘index.php’index.php 100%[======================================================>] 3.91K --.-KB/s in 0s-06-12 20:02:15 (305 MB/s) - ‘index.php’ saved [4005/4005]

从下载了第一页。

3. 与远程主机的安全通信

3.1 ssh—安全登录远程计算机

SSH(Secure Shell)协议是为了解决明文传送的问题。SSH协议包括两个部分:一个是运行在远程主机上的SSH服务端,用来监听端口22上可能过来的连接请求;另一个是本地系统上SSH客户端,用来与远程服务器进行通信。

多数Linux发行版都采用BSD项目的openSSH(SSH的免费开源实现)方法实现SSH。一些版本如Red Hat会默认包含客户端包和服务端包,而像Ubuntu则仅仅提供客户端包,系统要接受远程连击,必须安装、配置以及运行OpenSSH-server软件包,并且必须允许TCP端口22上进来的网络连接。

例如使用ssh客户端程序来建立与远程主机romote-sys的连接的例子

$ ssh remote-sys

第一次尝试连接的时候,由于ssh程序从来没有接触过此远程主机,所以会跳出一条“不能确定远程主机真实性”的消息。需要输入yes来接受远程主机的身份,一旦建立了连接,会提示用户盲输密码。

输入正确密码后,远程系统的shell提示符便出现了。

远程shell对话将一直开启,直到用户在该对话框中输入exit命令断开与远程系统的连接。连接一旦断开后,本地shell会话恢复,本地shell提示符又重新出现。

以下一段是博主个人经验

我们常用的的实际上是ssh username@192.168.20.55(IP地址) 这样形式的,有些端口不是默认的22,需要加参数 -p11524(端口号)

ssh命令除了能开启远程系统上的shell会话外,还能在远程系统上执行单个简单的命令.

$ ssh romote-sys free

3.2 scp和sftp—安全传输文件

OpenSSH软件包含了两个使用SSH加密隧道进行网络间文件复制的程序,scp(secure copy)便是其中之一。例如从remote-sys远程系统的home目录中将doc.txt的文件复制到本地系统。

$ scp remote-sys:doc.txt .

如果不是本地系统的用户名登录远程系统,那么需要在远程主机名前添加将要登录的远程系统的账户名

$ scp bob@remote-sys:doc.txt

如果是文件夹的话,需要加参数-r

另外一个SSH文件复制程序是sftp。顾名思义,它是ftp程序的安全版本。sftp与ftp很相似,只是sftp采用SSH加密隧道传输信息而不是以明文方式传输。另外一个优点是不需要远程服务器运行FTP服务器,仅仅需要SSH服务器。

如果觉得《Linux之网络相关命令——ping tranceroute netstat ftp lftp wget ssh scp sftp》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。