文章目录
- 一、熟悉实验室运行环境
-
- [1 - 登录](#1 - 登录)
- [2 - 熟悉Linux环境](#2 - 熟悉Linux环境)
- [3 - 远程登录](#3 - 远程登录)
- [4 - 使用Git](#4 - 使用Git)
- 二、网络延迟
- 三、网络应用
- 四、HTTP
- [五、Network Port](#五、Network Port)
- [六、TCP Protocol](#六、TCP Protocol)
- 七、实验室系统
-
- [1 - LDAP](#1 - LDAP)
- [2 - Kerberos](#2 - Kerberos)
- [3 - Ansible](#3 - Ansible)
- 八、Linux运行环境和Nginx
-
- [1 - 安装Ubuntu22.04.3LTS版本](#1 - 安装Ubuntu22.04.3LTS版本)
- [2 - 安装Nginx](#2 - 安装Nginx)
- [3 - 访问nginx默认页面](#3 - 访问nginx默认页面)
- [4 - 挂载个人主页](#4 - 挂载个人主页)
一、熟悉实验室运行环境
1 - 登录
登录账号
登录个人账号,可以通过图形界面和命令两种方式。
- 图形界面:当前用户
logout
,切换用户,如果备选用户中没有自己的用户名,点击not listed
,之后输入用户名和密码登录即可。 - 命令:使用
su your_username
方式,回车输入密码即可切换。
修改密码
- 操作步骤
输入kpasswd
命令,之后输入old password
,回车后输入两次相同的new password
,即可改密成功。
- 心得体会
Linux中修改密码的其他命令还有 passwd
。
Kpasswd和passwd的区别:
- kpasswd是Kerberos提供的口令,passwd是Linux系统口令。
- 使用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=(1000∗8)/(1∗1024∗1024)≈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=(2000∗103)/(2∗108)=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
- Yes.Response Time: Tue, 07 Mar 2008 12:39:45.
- Last-Modified: Sat, 10 Dec2005 18:27:46
- Accept-Bytes: 3874B
<!doc
- 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的主要区别
区别 | GBN | SR |
---|---|---|
缓冲区 | 丢弃了接收端窗口内所有无序的数据包,所以不需要有一个缓冲区来存储接收端窗口内的无序数据包。 | 由于避免了重传许多不必要的数据包,所以接收端需要对无序的数据包进行缓冲。 |
实现的复杂性 | 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
用户的初始密码,执行如下命令:
powershell
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:
powershell
tar -xzvf nginx-1.20.2.tar.gz -C /opt/module/
- 3.安装需要的软件(gcc、openssl等)
因为编译nginx需要使用 gcc 编译器,所以我们需要安装 gcc 和一些其他相关软件,那么到底需要哪些软件?
首先我们进入到刚刚 nginx 解压的目录:
powershell
cd /home/jhguo/opt/module/nginx-1.20.2/
之后我们可以通过下面的命令来检测:
powershell
./configure
之后安装下面所需要的依赖:
powershell
sudo apt-get install gcc -y
powershell
sudo apt-get install libpcre3-dev -y
powershell
sudo apt-get install zlib1g zlib1g-dev -y
powershell
sudo apt-get install openssl libssl-dev -y
- 4.安装nginx
进入到nginx安装目录下,并执行编译和安装命令
powershell
cd /opt/module/nginx
powershell
./configure # Check needed module again.
powershell
make
powershell
make install
至此,我们的nginx就安装好了,注意,安装成功后,我们的nginx并不是在解压后的目录,而是默认在 /usr/local/nginx 目录下
,接下来就是启动和停止nginx服务器。
3 - 访问nginx默认页面
进入到nginx目录:
powershell
cd /usr/local/nginx/
启动nginx:
powershell
sudo sbin/nginx
nginx默认端口是80,因此要将这个端口开放。
访问IP
来查看 nginx 是否启动成功。
在 Windows 访问成功!
停止nginx:
powershell
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目录:
powershell
cd /usr/local/nginx/conf/
编辑nginx.conf文件,将dist目录路径放在root后面即可:
powershell
sudo vim nginx.conf
因为监听 1024 以下的端口需要 root 权限,因此我后面将80改为了8080.
启动nginx:
powershell
sudo /usr/local/nginx/sbin/nginx
现在,我们就可以通过 主机ip+nginx端口访问我们的个人主页了!