一、telnet登录SMTP服务和pop服务收发邮件(QQ邮箱)
了解Email涉及的SMTP、POP3、IMAP协议。采用telnet客户端手工命令方式,登录自己的163/QQ的SMTP服务,在舍友之间相互发送一封简单文本邮件;同理,手工命令登录POP服务,阅读新收到的邮件。
1.1 SMTP、POP3、IMAP协议
1.1.1 SMTP
- SMTP协议简介
SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务,主要用于系统之间的邮件信息传递,并提供有关来信的通知。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。
1.1.2 POP3
- POP3协议简介
POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S。
POP 协议支持“离线”邮件处理。其具体过程是:邮件发送到服务器上,电子邮件客户端调用邮件客户机程序以连接服务器,并下载所有未阅读的电子邮件。这种离线访问模式是一种存储转发服务,将邮件从邮件服务器端送到个人终端机器上,一般是PC机或 MAC。一旦邮件发送到 PC 机或MAC上,邮件服务器上的邮件将会被删除。但POP3邮件服务器大都可以“只下载邮件,服务器端并不删除”,也就是改进的POP3协议。
1.1.3 IMAP
- IMAP协议简介
IMAP(Internet Message Access Protocol)以前称作交互邮件访问协议(Interactive Mail Access Protocol),是一个应用层协议。IMAP是斯坦福大学在1986年开发的一种邮件获取协议。它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。当前的权威定义是RFC3501。IMAP协议运行在TCP/IP协议之上,使用的端口是143。它与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作。
1.2 在邮箱中开启SMTP和POP服务
- 在电脑端登录QQ进入网页端邮箱,之后点击 设置->账户,下滑可以看到以下图片
- 找到图片所示内容,点击开启,同时会给你一个授权码,记得保存
- 将邮箱地址和获得的授权码在 这个网址:https://base64.us/ 转换为Base64形式。
1.3 SMTP发送邮件
- 按 Win+R 打开,输入cmd ,回车打开命令行界面
- 输入
telnet smtp.qq.com 25
( smtp.qq.com是服务器域名 25是端口号),进入服务器,如下图
- 输入
helo qq.com
(打招呼),表明自己的身份,返回如下
- 之后验证身份:
auth login
- 输入auth login登录账户,返回
334 VXNlcm5hbWU6
- 输入邮箱的base编码,要把后面的域名加上,base64转码网站,成功后返回如下
334 VXNlcm5hbWU6
- 输入刚刚授权码的base64编码,没有中间的空格,这个可能要多试几次,返回如下
235 Authentication successful
- 如下:
- 之后配置发件人和收件人:
mail from:<你的发件邮箱>
rcpt to:<接收邮箱>
- 之后发送内容:
data
subject:填写邮件主题
//这里空一行
//填写邮件内容
.//这里以.结束
- 可以在邮箱里 已发送-查询发信投递状态 中看到:
1.4 POP查看邮件
- 在命令行界面输入
telnet pop.qq.com 110
登录服务器
- 输入user (qq账户)登录,不需要加后面的域名,会返回ok
user ****@qq.com
- 输入pass 授权码进行验证
pass your_authorization_code
- 输入stat统计所有邮件信息
- 输入list显示列表信息
- 然后选择用 retr (序号)选择邮件查看内容,看完之后用quit退出
- 如下:
二、FTP文件传输和Ubuntu分割合并文件
了解FTP协议和HTTP1.1协议,理解FTP、HTTP协议支持常用下载工具高速的多线程文件分块下载、 断点续传的背后原理。
实践:在Ubuntu系统上安装一个Ftpd服务(搭建FTP服务)。用telnet 手工方式 登录ftp服务,上传一个图片文件或压缩包文件;然后,再手工用分片下载的方式,将此文件分片下载到本地(多个小文件),再将这几个小文件合并为1个大文件(无须编程,用copy命令即可实现),看是否与原文件一样大小,是否能正常打开。
2.1 FTP、HTTP1.1 协议简介
- FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下FTP协议使用TCP端口中的 20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。 - HTTP1.1协议简介
HTTP1.1(Hypertext Transfer Protocol Version 1.1)超文本传输协议-版本1.1
它是用来在Internet上传送超文本的传送协议。它是运行在TCP/IP协议簇之上的HTTP应用协议,它可以使浏览器更加高效,使网络传输减少。任何服务器除了包括HTML文件以外,还有一个HTTP驻留程序,用于响应用用户请求。您的浏览器是HTTP客户,向服务器发送请求,当浏览器中输入了一个开始文件或点击了一个超级链接时,浏览器就向服务器发送了HTTP请求,此请求被送往由URL指定的IP地址。驻留程序接收到请求,在进行必要的操作后回送所要求的文件。
2.2 上传文件
2.2.1 安装VSFTPD
- 在ubuntu下安装VSFTPD:
以命令:
sudo apt-get install vsftpd
- 如图:
- 可能会出现以下错误,但是可按图示操作即可顺利进行,也可参考博客:https://blog.csdn.net/qq_36910634/article/details/90512126 去解决
2.2.2 一系列配置
- 安装完成后,启动服务,以命令:
service vsftpd start
- 之后新建一个目录,以命令:
sudo mkdir /home/uftp
- 可以查看到home目录下有uftp:
ls /home
出现连接超时的时候,多试几次,是可以的。
- 新建用户uftp,制定用户主目录和所用shell
sudo useradd -d /home/uftp -s /bin/bash uftp
- 然后将目录/home/uftp的所属者和所属组都改为uftp:
sudo chown uftp:uftp /home/uftp
- 然后,新建文件/etc/vsftpd.user_list,用于存放允许访问ftp的用户:
sudo vi /etc/vsftpd.user_list
注意:进去后,需要enter,然后按下A,才能进行输入。之后在里面输入 uftp ,即自己新建的用户名,然后按ESC键,最后输入
:wq
,即可保存退出。
- 编辑VSFTPD配置文件
VSFTPD配置文件为/etc/vsftpd.conf,执行命令:
sudo vi /etc/vsftpd.conf
- 之后需要更改:
local_enable=YES //去掉该句前面的#
#设置文件上传
write_enable=YES //去掉该句前面的#
#使用utf8(centos默认没有这个设置也不需要添加)
utf8_filesystem=YES //去掉该句前面的#
- 并在vsftpd.conf中末尾添加:
userlist_file=/etc/vsftpd.user_list
userlist_enable=YES
userlist_deny=NO
- 如下
完成后 输入
:wq
退出
2.2.3 上传文件
- 登录服务器
service vsftpd start
(输入用户名和自己的密码)
sudo ftp 127.0.0.1
- 前面漏掉一步,给 uftp 设置密码:
sudo passwd uftp
如下:
- 然后使用
lcd
命令找到自己要上传的文件的路径,~代表home,已在home的hoping(这里的hoping是自己的虚拟机名,每人的不同)文件下新建了一个名为 text 的文件夹,并在 text 文件下新建名为 1.txt 的文件,最后用put
命令上传。
- 用
ls
命令可以看见上传的文件:
2.3 上传图片并分片下载合成
2.3.1 上传下载图片
put
为上传,get
为下载
2.3.2 分割图片
- 在图片文件目录下(图片与上文1.txt在同一目录下)打开终端,以命令(1k是指分割后的文件大小):
split -b 1k -d 1.png pic
- 文件中结果如下:
2.3.3 粘合图片
- 用命令:
cat pic00 pic01>t1
cat t1 pic02>t2
cat t2 pic03>t3
....//不断覆盖所有分割出来的文件
cat t(n-1) pic(n)>2.png
- 如下:
- 文件中:
- 粘合成功,且可以打开图片
2.3.4 查看两张图片
- 可见分割前与粘合后图片大小一样
三、VLC保存视频流到本地
了解RTSP、MMS等多媒体流协议。下载 VLC软件,用其“打开网络流”功能,去访问互联网上公开的直播视频源(一些公共IP监控摄像头也使用RTSP协议),并将播放的视频流 保存到本地。
3.1 RTSP、MMS协议
- RTSP协议简介
RTSP协议以客户服务器方式工作,,如:暂停/继续、后退、前进等。它是一个多媒体播放控制协议,用来使用户在播放从因特网下载的实时数据时能够进行控制, 因此 RTSP 又称为“因特网录像机遥控协议”。 - MMS协议简介
MMS(Microsoft Media Server Protocol),中文“微软媒体服务器协议”,用来访问并流式接收 Windows Media 服务器中 .asf 文件的一种协议。MMS 协议用于访问 Windows Media 发布点上的单播内容。
3.2 访问并保存视频流到本地
3.2.1 下载VLC
- 然后点击图示
3.2.2 访问网络流
点击后等几秒就可以开始下载了。
- 下载安装好后,打开VLC,点击左上角的媒体并点击打开网络串流:
- 输入URL地址:
动画片 rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov
景点摄像头 https://hd-auth.skylinewebcams.com/live.m3u8?a=ou48nrnnkriljs5q5sqrpe2pf0
3.2.3 下载网络流
- 要下载的话,就点击 媒体-流,网络-串流:
- 直接点击下一个
- 之后添加---->浏览,选择路径,并输入文件名(自己带一个.mp4的后缀)
- 按图示进行配置:
- 点击流即开始保存:
- 它并不会马上保存好,在播放界面会黑屏但是时间条在动,这就是在保存,等待时间条走完或者点击停止播放,关闭软件,保存的视频就可以打开了。
四、fiddler下载视频保存本地
学习使用fiddler 去分析视频网站(如B站、抖音/快手网站、大学MOOC网、学习通等)在线视频播放的网络流协议,将在线视频下载到本地保存。
- 在浏览器用bilibili打开一个视频,在Fiddler中可以看到蓝白色图标:
2863343-4380720表示这个数据包包含的内容,而22370529表示完整视频的内容。
- 利用Composer下载完整内容
选中一个数据包
点击右上方Composer
左键点击第一个数据包拖动到GET下的框中
- 修改bytes数据为0-xxx:
- 然后点击execute
- 之后会新生成一个数据流,右键新数据流–>save–>response–>Response Body,即可保存更改文件后缀为.m4s。
下载之后有两个.m4s文件,是因为视频和音频是分开的,可以通过下载ffmpeg工具进行合成。在cmd命令端完成合成,以命令:
ffmpeg -i 1.m4s -i 2.m4s -vcodec copy -acodec copy -f mp4 finish.mp4
- 具体 利用ffmpeg将m4s文件合成为mp4的请参考:https://www.cnblogs.com/northwest332/p/13917479.html
小小的总结
- 整个博客有四部分,其中最繁琐的就是FTP文件传输和Ubuntu分割合并文件,其实这个就是配置的时候要注意细节,出现问题了可以多在网上搜搜,一般都有解决教程。在配置过程中出现问题解决不了的时候,建议直接重装再来。卸载命令直接网上搜索,这里笔主给出:
sudo apt-get remove --purge vsftpd
。 - 其他的按步骤进行即可,不会出现什么问题的。
参考文献
- Email-FTP-RTSP协议实践研究:https://blog.csdn.net/qq_46359931/article/details/122186843
- Email-FTP-RTSP协议实践研究:https://blog.csdn.net/qq_45659777/article/details/122084550
- telnet登录SMTP和pop收发邮件(QQ邮箱):https://blog.csdn.net/junseven164/article/details/122177150
- FTP文件传输和Linux分割粘合文件:https://blog.csdn.net/junseven164/article/details/122179770
- VLC保存网络流到软件和fiddler下载视频:https://blog.csdn.net/junseven164/article/details/122178256