接下来通过一些网络命令来加深对网络的理解。计算机网络是由负责传输数据的网络传输介质和网络设备、使用网络的计算机终端设备和服务器、以及网络操作系统所组成。Internet 是全球规模最大、应用最广的计算机网络。它是由院校、企业、政府的局域网自发地加入而发展壮大起来的超级网络,连接有数千万的计算机、服务器。通过在 Internet 上发布商业、学术、政府、企业的信息,以及新闻和娱乐的内容和节目,极大地改变了人们的工作和生活方式。
计算机网络的组成
计算机网络是由负责传输数据的 网络传输介质和网络设备、使用网络的计算机终端设备和服务器、以及网络操作系统所组成。
①网络传输介质
有四种主要的网络传输介质: 双绞线电缆、光纤、微波、同轴电缆。
在局域网中的主要传输介质是双绞线,这是一种不同于电话线的 8 芯电缆,具有传输 1000Mbps 的能力。光纤在局域网中多承担干线部分的数据传输。使用微波的无线局域网由于其灵活性而逐渐普及。早期的局域网中使用网络同轴电缆,从 1995 年开始,网络同轴电缆被逐渐淘汰,已经不在局域网中使用了。
②网络交换设备
网络交换设备是把计算机连接在一起的基本网络设备。计算机之间的数据报通过交换机转发。因此,计算机要连接到局域网络中,必须首先连接到交换机上。不同种类的网络使用不同的交换机。常见的有:以太网交换机、ATM 交换机、帧中继网的帧中继交换机、令牌网交换机、FDDI 交换机等。可以使用称为 Hub 的网络集线器替代交换机。Hub 的价格低廉,但会消耗大量的网络带宽资源。由于局域网交换机的价格已经下降到低于 PC 计算机的价格,所以正式的网络已经不再使用 Hub。
交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。
③网络互连设备
网络互联设备主要是指路由器。路由器是连接网络的必须设备,在网络之间转发数据报。
路由器不仅提供同类网络之间的互相连接,还提供不同网络之间的通讯。比如:局域网与广域网的连接、以太网与帧中继网络的连接等等。
④网络终端与网络服务器
网络终端也称网络工作站,是使用网络的计算机、网络打印机等。在客户/服务器网络中,客户机指网络终端。
网络服务器是被网络终端访问的计算机系统,通常是一台高性能的计算机,例如大型机、小型机、UNIX工作站和服务器 PC 机,安装上服务器软件后构成网络服务器,被分别称为大型机服务器、小型机服务器、UNIX 工作站服务器和 PC 机服务器。网络服务器是计算机网络的核心设备,网络中可共享的资源,如数据库、大容量磁盘、外部设备和多媒体节目等,通过服务器提供给网络终端。服务器按照可提供的服务可分为文件服务器、数据库服务器、打印服务器、Web 服务器、电子邮件服务器、代理服务器等。
⑤网络操作系统
网络操作系统是安装在网络终端和服务器上的软件。网络操作系统完成数据发送和接收所需要的数据分组、报文封装、建立连接、流量控制、出错重发等工作。现代的网络操作系统都是随计算机操作系统一同开发的,网络操作系统是现代计算机操作系统的一个重要组成部分。
![7bd43edf0bb70a84026af654676acf73.png](https://i-blog.csdnimg.cn/blog_migrate/3483ee85fbc1ec4e3698e141f1397d0f.png)
计算机网络学习的核心内容就是网络协议的学习。网络协议是为计算机网络中进行数据交换而建立的规则、标准或者说是约定的集合。目前TCP/IP协议是Internet中的“通用语言”,不同计算机群之间可以利用TCP/IP进行通信。
![59562d4901d931703cc7262ea0ef624a.png](https://i-blog.csdnimg.cn/blog_migrate/6322f2d9081b6fec544d3cf2326ce7f3.jpeg)
为了使不同计算机厂家生产的计算机能够相互通信,以便在更大的范围内建立计算机网络,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层,自下而上依次为:物理层(Physics Layer)、数据链路层(Data Link Layer)、网络层(Network Layer)、传输层(Transport Layer)、会话层(Session Layer)、表示层(Presentation Layer)、应用层(Application Layer)。其中第四层完成数据传送服务,上面三层面向用户。
除了标准的OSI七层模型以外,常见的网络层次划分还有TCP/IP四层协议以及TCP/IP五层协议,它们之间的对应关系如下图所示:
![60fdd0c5776397157290dac3ca152a4c.png](https://i-blog.csdnimg.cn/blog_migrate/5cd061cff7fb4c88e8303640ac8574b1.jpeg)
TCP/IP协议毫无疑问是互联网的基础协议,任何和互联网有关的操作都离不开TCP/IP协议。不管是OSI七层模型还是TCP/IP的四层、五层模型,每一层中都要自己的专属协议,完成自己相应的工作以及与上下层级之间进行沟通。
![3aafbf320e2f4a014770f2040ae381e3.png](https://i-blog.csdnimg.cn/blog_migrate/3134cb04dc14aaaeec038538cfec19a9.jpeg)
1)物理层(Physical Layer)
激活、维持、关闭通信端点之间的机械特性、电气特性、功能特性以及过程特性。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。物理层记住两个重要的设备名称,中继器(Repeater,也叫放大器)和集线器。2)数据链路层(Data Link Layer)
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。为达到这一目的,数据链路必须具备一系列相应的功能,主要有:如何将数据组合成数据块,在数据链路层中称这种数据块为帧(frame),帧是数据链路层的传送单位;如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送速率以使与接收方相匹配;以及在两个网络实体之间提供数据链路通路的建立、维持和释放的管理。数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
有关数据链路层的重要知识点:1> 数据链路层为网络层提供可靠的数据传输; 2> 基本数据单位为帧; 3> 主要的协议:以太网协议; 4> 两个重要设备名称:网桥和交换机。3)网络层(Network Layer)
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是“路径选择、路由及逻辑寻址”。
网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。具体的协议我们会在接下来的部分进行总结,有关网络层的重点为: 1> 网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能; 2> 基本数据单位为IP数据报; 3> 包含的主要协议: IP协议(Internet Protocol,因特网互联协议);ICMP协议(Internet Control Message Protocol,因特网控制报文协议);ARP协议(Address Resolution Protocol,地址解析协议); RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)。 4> 重要的设备:路由器。4)传输层(Transport Layer)
第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。
传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。在这一层,信息传送的协议数据单元称为段或报文。
网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
有关网络层的重点: 1> 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题; 2> 包含的主要协议:TCP协议(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol,用户数据报协议); 3> 重要设备:网关。5)会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。6)表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。7)应用层
为操作系统或网络应用程序提供访问网络服务的接口。
会话层、表示层和应用层重点:1> 数据传输基本单位为报文; 2> 包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3协议(邮局协议),HTTP协议(Hyper Text Transfer Protocol)。
目前主要讨论下,主机,也就是电脑终端上的一些命令操作。计算机上网需要基本的硬件,对于主机而言就是网卡。ifconfig是Linux系统中最常用的一个用来显示和设置网络设备的工具。其中“if”是“interface”的缩写。它可以用来设备网卡的状态,或是显示当前的设置。
![e39bb4aa597b5b1e8aa8fe31bab3ec93.png](https://i-blog.csdnimg.cn/blog_migrate/0700355dddaf89b3f36fad6ab5aeb767.jpeg)
直接输入 ifconfig 就会列出目前已经被启动的网卡,如果指定了网卡,则只显示相关网卡的信息。
至于上表出现的各项数据是这样的(数据排列由上而下、由左而右):
- ens33:就是网络卡的代号,也有 lo 这个 loopback ;
- HWaddr:就是网络卡的硬件地址,俗称的 MAC 是也;
- inet addr:IPv4 的 IP 地址,后续的 Bcast, Mask 分别代表的是 Broadcast 与 netmask
- inet6 addr:是 IPv6 的版本的 IP ,我们没有使用,所以略过;
- MTU:最大传输单元
- RX:那一行代表的是网络由启动到目前为止的封包接收情况, packets 代表封包数、errors 代表封包发生错误的数量、 dropped 代表封包由于有问题而遭丢弃的数量等等
- TX:与 RX 相反,为网络由启动到目前为止的传送情况;
- collisions:代表封包碰撞的情况,如果发生太多次, 表示网络状况不太好;
- txqueuelen:代表用来传输数据的缓冲区的储存长度;
- RX bytes, TX bytes:总传送、接收的字节总量
- Interrupt, Memory:网络卡硬件的数据, 内存地址;
使用Ifconfig可以容易地配置网卡。试一下简单粗暴的命令。
![d9e31eb6b3695723e427c4f2d8ad707a.png](https://i-blog.csdnimg.cn/blog_migrate/f061eeb34a90dbb10cf155daf15a1319.jpeg)
除了使用上面的命令外,关闭和启动网卡还有两个专门的命令ifup和ifdown。
接下来看一下route命令。route就是路由,路由器一般需要维护一张比较复杂的路由表才能知道应该将接收到的数据包发往什么地方;主机的路由表比较简单,一般都是标明自己所在网络的网关。
![69f47db4a4b1f6357a5b2c1af1555f58.png](https://i-blog.csdnimg.cn/blog_migrate/b6112df780f42f688a2fb2411d8428b7.png)
命令中各项的含义如下:
- Destination, Genmask:分别是 network 与 netmask,所以这两个信息组合起来合成为一个完整的网段
- Gateway:该网段是通过那个 gateway 连接出去的, 如果显示 0.0.0.0 表示该路由是直接由本机传送,亦即可以透过局域网络的 MAC 直接通信; 如果有显示 IP 的话,表示该路由需要经过路由器的帮忙才能够传送出去。
- Flags:总共有多个标志,代表的意义如下:
- U (route is up):该路由是启动的;
- H (target is a host):目标是一部主机 (IP) 而非网段;
- G (use gateway):需要透过外部的主机 (gateway) 来转递封包;
- R (reinstate route for dynamic routing):使用动态路由时,恢复路由信息的标志;
- D (dynamically installed by daemon or redirect):已经由服务或转 port 功能配置为动态路由
- M (modified from routing daemon or redirect):路由已经被修改了;
- ! (reject route):这个路由将不会被接受(用来抵挡不安全的网域)
- Iface:这个路由传递封包的接口。
可以试一下下面的命令:
![16f35f2dbba2c2650fee1269d120f388.png](https://i-blog.csdnimg.cn/blog_migrate/29cc7ec4958c0d81527ef43f289d6f8a.png)
ip
ip命令整合了 ifconfig 与 route 这两个命令的功能,而且实现了更多的功能。
使用 ip link show 可以显示出整个设备接口的硬件相关信息。
![f759688893aada60cd25f5fa230d5ca9.png](https://i-blog.csdnimg.cn/blog_migrate/9d22bd40ecd04b12241054ddbe4b4a29.jpeg)
可以开启和关闭接口:
![a7339b0a3df85a984aa5697067bb4f42.png](https://i-blog.csdnimg.cn/blog_migrate/c6e777a7058a9456afc2fa740dd3af40.jpeg)
也可以处理ip地址和路由:
![a7dd4879c570db84543b38544cece20b.png](https://i-blog.csdnimg.cn/blog_migrate/daf03083551eb797e19b370e3ada346b.jpeg)
ping 是很重要的命令,ping 主要通过icmp包来进行整个网络的状况报告,分别是要求icmp request与icmp echo来判断网络状态。需要注意的是, ping 还是需要ip包来传送 ICMP数据包。
ping的基本用法就是发送 ICMP封包去要求对方主机回应从而判断对方主机是否运行正常, 上面的响应消息当中,几个重要的项目是这样的:
![ee55a925ef3516ec8af23acb80d93211.png](https://i-blog.csdnimg.cn/blog_migrate/ce950f9a1b58c8fa0ea40d0fdbe511e8.png)
- 64 bytes:表示这次传送的 ICMP 封包大小为 64 bytes 这么大,这是默认值, 在某些特殊场合中,例如要搜索整个网络内最大的 MTU 时,可以使用 -s 2000 之类的数值来取代;
- icmp_seq=0:ICMP 所侦测进行的次数,第一次编号为 0 ;
- ttl=243:TTL 与 IP 封包内的 TTL 是相同的,每经过一个带有 MAC 的节点 (node) 时,例如 router, bridge 时, TTL 就会减少一,默认的 TTL 为 255 , 你可以通过 -t 150 之类的方法来重新配置默认 TTL 数值;
- time=9.16 ms:响应时间,单位有 ms(0.001秒)及 us(0.000001秒), 一般来说,越小的响应时间,表示两部主机之间的网络联机越良好。
通过traceroute可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中,我们称之为traceroute,在MS Windows中为tracert。 traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其IP地址。
在大多数情况下,我们会在linux主机系统下,直接执行命令行:
traceroute hostname
而在Windows系统下是执行tracert的命令:
tracert hostname
![abe567f0d92472b6468d624b95dd6891.png](https://i-blog.csdnimg.cn/blog_migrate/b32588a113d70fef61161dac83789a30.jpeg)
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 http://www.58.com ,表示向每个网关发送4个数据包。
有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。
如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交网络服务商,也有助于解决问题。
Traceroute的工作原理:
Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得知目的地到达了呢?
Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程式。
Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时间。
netstat
如果要检查本机上某个网络服务是否开启,是否有可疑的连接,此时就需要使用netstat命令。
![8a19dc0c859168d9c7890557620fe2c1.png](https://i-blog.csdnimg.cn/blog_migrate/f17d2000d44d5659b06e006874e735db.jpeg)
在输出的信息当中, 主要是分为一下几项:
- Proto:该联机的封包协议,主要为 TCP/UDP 等封包;
- Recv-Q:非由用户程序连接所复制而来的总 bytes 数;
- Send-Q:由远程主机所传送而来,但不具有 ACK 标志的总 bytes 数, 意指主动联机 SYN 或其他标志的封包所占的 bytes 数;
- Local Address:本地端的地址,可以是 IP (-n 参数存在时), 也可以是完整的主机名。如上表我们看到的 IP 格式有两种,一种是 IPv4 的标准, 亦即是四组十进制的数字后面加上冒号『:』后,接着 port number 。一种是 IPv6 , 前面的 IP 加上很多冒号『:』的格式。我们可以由这个显示的数据看出这个服务是开放在哪一个接口, 例如上表当中, port 22 是开放在 0.0.0.0 ,亦即是所有接口都可以连到 port 22 , 至于 port 53 则仅开放在本机的 127.0.0.1 这个接口而已,所以是不对外部接口开放的意思。
- Foreign Address:远程的主机 IP 与 port number
- stat:状态栏,主要的状态含有:
- ESTABLISED:已创建联机的状态;
- SYN_SENT:发出主动联机 (SYN 标志) 的联机封包;
- SYN_RECV:接收到一个要求联机的主动联机封包;
- FIN_WAIT1:该插槽服务(socket)已中断,该联机正在断线当中;
- FIN_WAIT2:该联机已挂断,但正在等待对方主机响应断线确认的封包;
- TIME_WAIT:该联机已挂断,但 socket 还在网络上等待结束;
- LISTEN:通常用在服务的监听 port !可使用『 -l 』参数查阅。
其他的一些常见用法还有:
- netstat -i 显示网络接口信息
- netstat -s 显示所有网络协议栈信息
- netstat -r 显示路由表信息
- netstat -at 列出所有 TCP 端口
- netstat -au 列出所有 UDP 端口
- netstat -lt 列出所有监听 TCP 端口的 socket
- netstat -lu 列出所有监听 UDP 端口的 socket
- netstat -lx 列出所有监听 UNIX 端口的 socket
- netstat -ap | grep ssh 找出程序运行的端口
- netstat -an | grep ':80' 找出运行在指定端口的进程
host和nslookup
命令可以用来查出某个主机名的 IP,譬如
![69053f911721247caa1fe03f972f70ef.png](https://i-blog.csdnimg.cn/blog_migrate/9ab545a87b916b38b28c0a515f0674e8.png)
也可以指定向哪个DNS服务器进行查询:
![b8253c8edb05fa8babd8541e7ea1169d.png](https://i-blog.csdnimg.cn/blog_migrate/af698da75b1fa3d6ab02968938ff017d.jpeg)
nslookup除了可以根据域名查找IP之外,还可以根据IP查找域名。
![e286caf830a582e687defcddaed6b9d2.png](https://i-blog.csdnimg.cn/blog_migrate/4f0605ab859864278c417bb2c06e5f07.png)
远程联机命令,就是在不同的计算机之间进行登录,可以通过telnet, ssh 或者是 ftp 等协议来进行远程主机的登录。
telnet 是早期在个人计算机上面要连接到服务器主机上工作时,非常重要的一个软件。但是因为安全问题,现在的系统上已经很少自动带上telnet。如果想体会一下telnet的使用,需要自己来安装:
![25a9984d214eb9b589e2cf55994c4a8a.png](https://i-blog.csdnimg.cn/blog_migrate/3d758065d7927ed4f174a55a6a7eda9b.png)
安装telnet之前要先安装xinetd,因为telnet要依靠xinetd服务启动,所以要先安装它。
然后需要修改配置文件
vi /etc/xinetd.d/telnet
一般是这样子的:
# default: yes
# description: The telnet server servestelnet sessions; it uses
# unencrypted username/password pairs for authentication.
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server =/usr/sbin/in.telnetd
log_on_failure += USERID
disable = yes
}
这里需要将”disable= yes”改成” disable=no” ,否则默认不启动telnet。
然后重新启动xinetd。
![337370bb82e7b4257635609053e2faab.png](https://i-blog.csdnimg.cn/blog_migrate/888719e825fb37e95834c9f74c778022.png)
接下来查看一下系统开着的端口:
![ed1b8440551cd0040413017c22d107b4.png](https://i-blog.csdnimg.cn/blog_migrate/5586ff102cf8b284c5bb49131701b5d2.png)
然后就可以尝试telnet localhost了。
![5fa9a2b1f61604ad2ab15bfc31015cb3.png](https://i-blog.csdnimg.cn/blog_migrate/d1706e3c35670275d9a8d2f62aeeef27.png)
ftp
安装ftp
sudo apt-get install vsftpd
一般来说,安装好就可以使用了。
配置vsftpd.conf
sudo vi /etc/vsftpd.conf
#禁止匿名访问
anonymous_enable=NO
#接受本地用户
local_enable=YES
#允许上传
write_enable=YES
#用户只能访问限制的目录
chroot_local_user=YES
#设置固定目录,在结尾添加。如果不添加这一行,各用户对应自己的目录,当然这个文件夹自己建
local_root=/home/ftp
如果希望向local_root上传文件,还需要修改local_root的权限。
修改了配置文件之后,ftp服务需要重新启动。
![df9d1751d8e12067aff7c35076cf7a81.png](https://i-blog.csdnimg.cn/blog_migrate/64e0920f49bd3a4417f55862cb95c3d9.png)
然后
![73c2d723ae5076db2d30ae2a58b49350.png](https://i-blog.csdnimg.cn/blog_migrate/811ed7b08933e179648ea59bf338171f.jpeg)
可以尝试其他的一些命令
![c74ffffc1ae4a6bfd006619477c57241.png](https://i-blog.csdnimg.cn/blog_migrate/00af87b7f3ccc06dc34d0267e895695a.png)
查看服务器目录
![931d6a6f3e2f3513e76e4c3abfdf6b13.png](https://i-blog.csdnimg.cn/blog_migrate/f2d733025725e0caa6ceeeae43d2540a.png)
使用Help命令
![5836276ab293cbc1c1b1345befb9c064.png](https://i-blog.csdnimg.cn/blog_migrate/8b178bb6b36167faed436427808832f7.jpeg)
下载
![831101872e9cf44c52990888ff15eb33.png](https://i-blog.csdnimg.cn/blog_migrate/e78dd4ec29a6b6b5cf9b88f045d37b88.png)
ftp默认不给上传,需要修改配置文件
![44491f3731b371a683047bd49f14b0e5.png](https://i-blog.csdnimg.cn/blog_migrate/24e872ffb77579b0d79e2a002e1d0259.png)
然后可以实现上传
![cc36fb7ebe623ee36a9ae9e29c8487a6.png](https://i-blog.csdnimg.cn/blog_migrate/2285551610c95e8f83eecda9b8fa4328.png)
还可以针对ftp服务添加用户:
sudo useradd -d /home/ftp -M ftpuser
sudo passwd ftpuser
![2c92fea694d70f24d0242ab4d216846d.png](https://i-blog.csdnimg.cn/blog_migrate/a5dbcc42c897b6b1de20929b59b7c0c8.png)
这里失败主要是因为安全认证模块pam_shell的问题,可以修改
sudo vi /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so
此时新用户可以登录成功。
![904702a0bcef5818001f5db3a93dd15c.png](https://i-blog.csdnimg.cn/blog_migrate/89b6b4962059eef1a98fe552b6592be9.png)
tcpdump
默认启动
tcpdump
普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包。
监视指定网络接口的数据包
tcpdump -i eth1
如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0。
1、抓取回环网口的包:tcpdump -i lo
2、防止包截断:tcpdump -s0
3、以数字显示主机及端口:tcpdump -n
如键入命令: tcpdump –i eth0 ‘port 1111’ -X -c 3
![18766ca88acd36c8f91bf27ca2012473.png](https://i-blog.csdnimg.cn/blog_migrate/08c64a3121c1f7eda3aaa60a503d3cf0.jpeg)
wireshark
Wireshark是非常流行的网络封包分析软件,功能很强大,也算是tcpdump的图形化版本。可以截取各种网络封包,显示网络封包的详细信息。
如果是明文传输的数据,那么包括用户名和密码都有可能被窃听。
![54fd89593e3527b62d7b2402458978a4.png](https://i-blog.csdnimg.cn/blog_migrate/a88076d308aa49b9ca4d80252f78015f.png)
参考文献:
- 网络历史:https://baijiahao.baidu.com/s?id=1607436658585000967&wfr=spider&for=pc
- https://blog.csdn.net/zhaomengszu/article/details/77602633
- https://www.cnblogs.com/maybe2030/p/4781555.html