【网络应用与安全】第一次作业

news2024/11/25 21:31:43

文章目录

  • 一、熟悉实验室运行环境
    • 1 - 登录
    • 2 - 熟悉Linux环境
    • 3 - 远程登录
    • 4 - 使用Git
  • 二、网络延迟
  • 三、网络应用
  • 四、HTTP
  • 五、Network Port
  • 六、TCP Protocol
  • 七、实验室系统
    • 1 - LDAP
    • 2 - Kerberos
    • 3 - Ansible
  • 八、Linux运行环境和Nginx
    • 1 - 安装Ubuntu22.04.3LTS版本
    • 2 - 安装Nginx
    • 3 - 访问nginx默认页面
    • 4 - 挂载个人主页

一、熟悉实验室运行环境

1 - 登录

登录账号

登录个人账号,可以通过图形界面和命令两种方式。

  • 图形界面:当前用户 logout,切换用户,如果备选用户中没有自己的用户名,点击 not listed ,之后输入用户名和密码登录即可。
  • 命令:使用 su your_username 方式,回车输入密码即可切换。

修改密码

  • 操作步骤

输入kpasswd命令,之后输入old password,回车后输入两次相同的new password,即可改密成功。

  • 心得体会

Linux中修改密码的其他命令还有 passwd

Kpasswd和passwd的区别:

  1. kpasswd是Kerberos提供的口令,passwd是Linux系统口令。
  2. 使用passwd可以同时更改Linux口令和Kerberos口令(具体取决于 PAM 模块的配置方式),kpasswd只修改Kerberos口令。

2 - 熟悉Linux环境

Linux中提供给用户许多命令,大致可以分为以下几类,我整理了一份思维导图,如下。

此外,还可以去往菜鸟教程—Linux命令大全查看更多Linux命令!

3 - 远程登录

使用格式 ssh username@ip 可以以 username 远程登录到所在主机上。

如果使用 ssh 连接不上,那么可能的原因有很多,以下是我猜测发生了IP对应主机可能的原因:

  • 无网络(使用 ping 命令可以查看)
  • ssh 服务未在运行
  • ssh 端口(22)未开放

4 - 使用Git

Git是一款分布式版本控制工具,用于敏捷高效的管理项目,协同开发。下面我将介绍一下 Git 的简单使用流程。

添加文件到本地暂存区
添加文件到本地仓库
查看当前状态
查看提交历史
提交到远程仓库
初始化本地仓库
git init
git add filename
git commit filename
git status
git log
git push filename

.gitignore 文件用于定义哪些文件不需要交给 Git 管理,文件名是固定的,不可修改。

二、网络延迟

总时延 = 发送时延 + 传播时延 + 处理时延 + 排队时延。

  • <1> 发送时延

是主机或路由器发送数据帧所需要的时间,也就是从发送数据帧的第一个比特算起,到该帧的最后一个比特发送完毕所需的时间,发送时延 = 数据帧长度(b) / 信道带宽(b/s)

  • <2> 传播时延

是电磁波在信道中传播一定的距离需要花费的时间,传播时延 = 信道长度(m) / 电磁波在信道上的传播速率(m/s)

  • <3> 处理时延

主机或路由器在收到分组时要花费一定的时间进行处理,例如分析分组的首部、从分组中提取数据部分、进行差错或查找适当的路由等等。

  • <4> 排队时延

分组在经过网络传输时,要经过许多的路由器。但分组在进入路由器后要现在输入队列中排队等待处理。在路由器确定了转发接口后,还要在输出队列中排队等待转发。

D p r o p = ( 1000 ∗ 8 ) / ( 1 ∗ 1024 ∗ 1024 ) ≈ 0.0076 s = 7.6 m s D_{prop} = (1000*8) /( 1*1024*1024) \approx 0.0076s = 7.6ms Dprop=(10008)/(110241024)0.0076s=7.6ms
D p r o c = 1 m s D_{proc} = 1ms Dproc=1ms
D q u e u e = 5 m s D_{queue} = 5ms Dqueue=5ms
D t r a n s = ( 2000 ∗ 1 0 3 ) / ( 2 ∗ 1 0 8 ) = 0.01 s = 10 m s D_{trans} = (2000*10^3)/(2*10^8) = 0.01s = 10ms Dtrans=(2000103)/(2108)=0.01s=10ms
D n o d a l = 2 ∗ ( D p r o p + D p r o c + D q u e u e + D t r a n s ) = 47.2 m s D_{nodal} = 2*(D_{prop}+D_{proc} +D_{queue}+D_{trans} )=47.2ms Dnodal=2(Dprop+Dproc+Dqueue+Dtrans)=47.2ms

三、网络应用

Web(C / S 模式):edge 浏览器、Chrome 浏览器
聊天软件:QQ、Wechat
视频软件:Tencent Video,iQiYi
游戏:Honor of Kings

四、HTTP

  1. Yes.Response Time: Tue, 07 Mar 2008 12:39:45.
  2. Last-Modified: Sat, 10 Dec2005 18:27:46
  3. Accept-Bytes: 3874B
  4. <!doc
  5. Yes.According to the keyword Connection:Keep-Alive.

五、Network Port

HTTP:80
HTTPS: 443
SSH: 22
TELNET: 23
FTP: 21
DNS: 53

六、TCP Protocol

GBN和SR的主要区别

区别GBNSR
缓冲区丢弃了接收端窗口内所有无序的数据包,所以不需要有一个缓冲区来存储接收端窗口内的无序数据包。由于避免了重传许多不必要的数据包,所以接收端需要对无序的数据包进行缓冲。
实现的复杂性GBN协议采用累积确认的方法。因为接收方是按顺序接收数据包的,所以任何错误到达的数据包都将被接收方丢弃。SR协议避免了GBN协议以同时设置发送方窗口和接收方窗口大小相同为代价,重传到达接收方的正确数据包。
网络效率当窗口大小和带宽的乘积延迟很大,一个数据包在错误可能导致GBN重新发送大量的数据包许多正确的数据包的顺序在这个过程中不需要重传。

七、实验室系统

1 - LDAP

LDAP(Lightweight Directory Access Protocol 轻量级目录访问协议)是一种定义如何访问目录服务(directory service)的通信协议[5]。

客户端通过 TCP/IP 或其他面向连接的传输服务,连接到服务器并向其提问;服务器提供答案或客户端可以获取更多信息的位置(可以是另一个 LDAP 服务器)的指针。

2 - Kerberos

Kerberos 是由麻省理工(MIT)开发的一套基于加密票据(Ticket)的身份认证系统[6]。它主要由三个部分组成:KDC(Key Distribution Center,钥匙发布中心)、客户端和服务端,其中,KDC 又包括三个部分:数据库、验证服务器(AS:Authentication Server)和票据发放服务器(TGS:Ticket Granting Server)。

3 - Ansible

Ansible 是一款高效的机群管理工具[7]。它采用 ssh 的机制,不必在被控主机上安装任何特殊的软件,只需将控制主机设置好,便能远程对被控机群做统一配置和管理,使用简便,功能强大,易于扩展。

以我个人的理解,Ansible 与分发工具 rsync 有些像,可以实现在多台集群之间分发文件。

八、Linux运行环境和Nginx

1 - 安装Ubuntu22.04.3LTS版本

首先到Ubuntu官网点击我去往Ubuntu官网,下载该版本的 iso 映像文件。

之后,使用VMware创建使用该镜像的虚拟机。


安装成功后,需要注意的是设置root用户的初始密码,执行如下命令:

sudo passwd

输入当前用户的密码,之后再输入并确认新密码即可。

2 - 安装Nginx

Nginx 是是一个开源的,支持高性能、高并发的 Web 服务和代理服务软件。

在传统的Web项目中,并发量小,用户使用的少。所以在低并发的情况下,用户可以直接访问tomcat服务器,然后tomcat服务器返回消息给用户。

nginx特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

下面介绍如何在Ubuntu22.0.4中安装NGINX。

  • 1.官网下载 nginx 并通过XFTP上传到Linux中

这是nginx官网,可以点击这里去下载nginx安装包:nginx官方下载地址,下载成功后得到这样一个压缩包。

通过xshell加XFTP上压缩包上传到 /opt/software 目录下:

  • 2.解压

执行解压命令,将nginx解压到 /opt/module 目录下,并将文件重命名为nginx:

tar -xzvf nginx-1.20.2.tar.gz -C /opt/module/
  • 3.安装需要的软件(gcc、openssl等)

因为编译nginx需要使用 gcc 编译器,所以我们需要安装 gcc 和一些其他相关软件,那么到底需要哪些软件?

首先我们进入到刚刚 nginx 解压的目录:

cd /home/jhguo/opt/module/nginx-1.20.2/

之后我们可以通过下面的命令来检测:

./configure

之后安装下面所需要的依赖:

sudo apt-get install gcc  -y
sudo apt-get install libpcre3-dev -y
sudo apt-get install zlib1g zlib1g-dev -y
sudo apt-get install openssl libssl-dev -y
  • 4.安装nginx

进入到nginx安装目录下,并执行编译和安装命令

cd /opt/module/nginx
./configure # Check needed module again.
make
make install

至此,我们的nginx就安装好了,注意,安装成功后,我们的nginx并不是在解压后的目录,而是默认在 /usr/local/nginx 目录下,接下来就是启动和停止nginx服务器。

3 - 访问nginx默认页面

进入到nginx目录:

cd /usr/local/nginx/

启动nginx:

sudo sbin/nginx

nginx默认端口是80,因此要将这个端口开放。

访问IP来查看 nginx 是否启动成功。

在 Windows 访问成功!

停止nginx:

sudo sbin/nginx -s stop

4 - 挂载个人主页

  • 1.上传dist目录

上传个人主页文件 index.html(已在写文章前编写),上传到Linux系统中的一个目录即可,这里我是放在了 /home/jhguo/opt/files/network_app_sec/hw/hw1 目录下:

  • 2.修改nginx的配置文件 nginx.conf

首先还是进入到nginx目录下的conf目录:

cd /usr/local/nginx/conf/

编辑nginx.conf文件,将dist目录路径放在root后面即可:

sudo vim nginx.conf


因为监听 1024 以下的端口需要 root 权限,因此我后面将80改为了8080.

启动nginx:

sudo /usr/local/nginx/sbin/nginx

现在,我们就可以通过 主机ip+nginx端口访问我们的个人主页了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1023941.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux:基础开发工具之yum,vim,gcc的使用

文章目录 yumvimgcc 本篇主要总结的是Linux下开发工具 yumvimgcc/g yum 什么是yum&#xff1f; 不管是在手机移动端还是pc端&#xff0c;不管是什么操作系统&#xff0c;当用户想要下载一些内容或者工具的时候&#xff0c;都需要到一个特定的位置进行下载&#xff0c;例如在…

图片格式大全

青春不能回头&#xff0c;青春也没有终点。 大全介绍 图片格式有多种&#xff0c;每种格式都有其独特的特性和用途。以下是一些常见的图片格式以及它们的介绍&#xff1a; JPEG&#xff08;Joint Photographic Experts Group&#xff09;&#xff1a; 文件扩展名&#xff1a;…

Whisper + NemoASR + ChatGPT 实现语言转文字、说话人识别、内容总结等功能

引言 2023年&#xff0c;IT领域的焦点无疑是ChatGPT&#xff0c;然而&#xff0c;同属OpenAI的开源产品Whisper似乎鲜少引起足够的注意。 Whisper是一款自动语音识别系统&#xff0c;可以识别来自99种不同语言的语音并将其转录为文字。 如果说ChatGPT为计算机赋予了大脑&…

解决flutter不识别yaml里面配置的git项目

解决办法找到相应的 git路径&#xff0c;然后手动 git pull 暂时先用这个笨方法&#xff0c;后面有更好的解决办法了再说 studio 自己拉取的项目里面没有ios 和lib包

知识付费平台开发技术实践:构建数字学习的未来

引言 知识付费平台的兴起正在塑造着数字学习的未来。本文将介绍一些关键的技术实践&#xff0c;帮助开发者构建强大的知识付费平台&#xff0c;提供出色的数字学习体验。 1. 选择适当的技术栈 在开始知识付费平台的开发之前&#xff0c;首要任务是选择适当的技术栈。这包括…

App测试中iOS和Android的差异

1、系统版本&#xff1a; iOS和Android系统版本的更新速度、使用人数比例以及功能的不同都可能导致应用程序在不同操作系统版本上的表现和兼容性存在区别。 例如&#xff0c;在iOS平台上&#xff0c;很多用户会更快地升级到最新版本的iOS系统&#xff0c;而在Android平台上&a…

如何用C语言实现 IoT Core

涂鸦 IoT Core SDK 使用 C 语言实现&#xff0c;支持涂鸦设备模型协议&#xff0c;适用于开发者自主开发硬件设备逻辑业务接入涂鸦。 功能概述 涂鸦 IoT Core SDK 提供设备激活、发送上下行 DP 和固件 OTA 升级等基础业务接口封装。SDK 不依赖具体设备平台及操作系统环境&…

Java毕业设计-基于SpringBoot的租房网站的设计与实现

大家好&#xff0c;今天为大家打来的是基于SpringBoot的租房网站的设计与实现 博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 一、前言介绍二、主…

如何理解高效IO

目录 前言 1.如何理解高效的IO 2.五种IO模型 3.非阻塞IO 4.非阻塞代码编写 总结 前言 哈喽&#xff0c;很高兴和大家见面&#xff01;今天我们要介绍的关于IO的话题&#xff0c;在计算机中IO是非常常规的操作&#xff0c;例如将数据显示到外设&#xff0c;或者将数据从主…

将本地前端工程中的npm依赖上传到Nexus

【问题背景】 用Nexus搭建了内网的依赖仓库&#xff0c;需要将前端工程中node_modules中的依赖上传到Nexus上&#xff0c;但是node_modules中的依赖已经是解压后的状态&#xff0c;如果直接机械地将其简单地打包上传到Nexus&#xff0c;那么无法通过npm install下载使用。故有…

安防监控系统/视频云存储/监控平台EasyCVR服务器解释器出现变更该如何修改?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快&#xff0c;可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等&#xff0c;以及支持厂家私有协议与SDK接入&#xff0c;包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安…

软件测试/测试开发丨利用人工智能ChatGPT批量生成测试数据

点此获取更多相关资料 简介 测试数据是指一组专注于为测试服务的数据&#xff0c;既可以作为功能的输入去验证输出&#xff0c;也可以去触发各类异常场景。 测试数据的设计尤为重要&#xff0c;等价类、边界值、正交法等测试用例设计方法都是为了更全面地设计对应的测试数据…

Immutable.js API 简介

Immutable-js 这个库的实现是深拷贝还是浅拷贝&#xff1f;immutable 来源immutable.js三大特性&#xff1a; 持久化数据结构结构共享惰性操作 Immutable.js 的几种数据类型 immutable 使用 使用 npm 安装 immutable&#xff1a; 常用API介绍 MapListList.isList() 和 Map.isMa…

【Linux】页表讲解(一级、二级) 和 vm_area_struct ## 对于我前面博客内容的补充

对于前5篇进程相关知识的补充 前言正式开始页表讲解缺页中断页表是如何映射的页表的真正面目 vm_area_structmm_structvm_area_stuct 前言 前面我的博客中讲了很多关于进程的知识&#xff0c;但是有一些内容需要做一点补充&#xff0c;补充完后我的下一篇博客就开始讲线程相关…

云原生Kubernetes:pod亲和性与反亲和性

目录 一、理论 1.调度策略 2.亲和性与反亲和性案例 二、实验 1.亲和性与反亲和性 三、问题 1.节点批次打标签错误 2.for循环批量创建pod报错 四、总结 一、理论 1.调度策略 &#xff08;1&#xff09;对比 2.Pod 拓扑分布约束 &#xff08;1&#xff09;概念 使用 …

游戏ip多开安全指南:保障多重账号操作安全性

游戏多开是许多游戏玩家们常用的操作方式&#xff0c;而使用游戏ip进行游戏多开则能够进一步拓展多重账号的应用。然而&#xff0c;对于游戏多开使用游戏ip的安全性&#xff0c;我们也需要保持一定的警惕和注意事项。本文将为您分享有关游戏ip多开的安全指南&#xff0c;助您保…

C++中operator关键字(重载操作符)

转载地址&#xff1a; https://www.cnblogs.com/ZY-Dream/p/10068993.html operator是C的关键字&#xff0c;它和运算符一起使用&#xff0c;表示一个运算符函数&#xff0c;理解时应将operator整体上视为一个函数名。 这是C 扩展运算符功能的方法&#xff0c;虽然样子古怪&a…

vs2022 创建一个同时支持.net480和.net6.0的WPF项目

新建WPF项目&#xff0c;不要选.NET Framework框架的。如下图所示&#xff0c;选择第一个。&#xff08;选择.NET Framework框架改成.net6.0会报错&#xff09; 用记事本打开项目的csproj文件&#xff0c;修改TargetFrameworks标签&#xff0c;如下所示&#xff1a; <Pro…

C++之容器std::stack类empty、size、top、push、emplace、pop、swap应用总结(二百二十三)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

Bootstrap 框架学习笔记(基础)

来自于 Twitter&#xff0c;基于 HTML、CSS、JavaScript。 有关网站&#xff1a;Bootstrap中文网Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发&#xff0c;是一个CSS/HTML框架。目前&#xff0c;Bootstrap最…