##1.yum私有仓库的实现 服务端IP192.168.1.12 客户端192.168.1.2
##服务端操作
#安装httpd服务设置开机启动
yum -y install httpd
systemctl enable --now httpd
#挂载本地硬盘复制到/var/www/html
mount /dev/sr0 /mnt
mkdir /var/www/html/centos8
cp -r /mnt/* /var/www/html/centos8
本机测试
##客户端操作
mkdir /etc/yum.repos.d/bak && mv /etc/yum.repos.d/C* /etc/yum.repos.d/bak
cat > /etc/yum.repos.d/wsb.repo <<EOF
[wsb]
name=wsb
baseurl=http://192.168.1.12/centos7/
enabled=1
gpgcheck=0
EOF
yum clean all
yum makecache
yumrepolist
##TCP三次握手
第一次握手:客户端将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给服务器端,客户端进入SYN_SENT状态,等待服务器端确认。
第二次握手:服务器端收到数据包后由标志位SYN=1知道客户端请求建立连接,服务器端将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给客户端以确认连接请求,服务器端进入SYN_RCVD状态。
第三次握手:客户端收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给服务器端,服务器端检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,客户端和服务器端进入ESTABLISHED状态,完成三次握手,随后客户端与服务器端之间可以开始传输数据了。
##TCP四次挥手
中断连接端可以是客户端,也可以是服务器端。
第一次挥手:客户端发送一个FIN=M,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。意思是说"我客户端没有数据要发给你了",但是如果你服务器端还有数据没有发送完成,则不必急着关闭连接,可以继续发送数据。
第二次挥手:服务器端收到FIN后,先发送ack=M+1,告诉客户端,你的请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客户端就进入FIN_WAIT_2 状态,继续等待服务器端的FIN报文。
第三次挥手:当服务器端确定数据已发送完成,则向客户端发送FIN=N报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服务器端进入LAST_ACK状态。
第四次挥手:客户端收到FIN=N报文后,就知道可以关闭连接了,但是他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N+1后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。最终完成了四次握手。
##配置静态网卡
#centos
cat > /etc/sysconfig/network-scripts/ifcfg-ens33 <<EOF
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.2
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
EOF
#ubuntu
cat > /etc/netplan/01-network-manager-all.yaml <<EOF
network:
renderer: networkd
ethernets:
ens33:
dhcp4: no
dhcp6: no
addresses:
- 192.168.1.2/24
optional: true
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 114.114.114.114
- 202.106.0.20
version: 2
EOF