linux基础知识
TCP被称为可靠连接导向,其连线主要是透过许多机制来达成的,其中最重要的就是三向交握的功能。当然TCP传送资料的机制非常复杂,(TCP三次握手四次挥手。)?
A:封包发起状态,TCP 封包带有 SYN 旗标,假设序号为 10001 号
当客户端想要对服务器端连线时,就必须要送出一个要求连线的封包,此时客户端必须随机取用一个大于 1024 以上的端口口来做为程序沟通的接口。 然后在 TCP 的表头当中,必须要带有 SYN 的主动连线旗标(SYN=1),并且记下发送出连线封包给服务器端的序号 (Sequence number = 10001)
B:封包接收并发送确认封包,TCP封包同时带有ACK与 SYN 旗标,假设序号 20001,响应序号为 10001+1
当服务器接到这个封包,并且确定要接收这个封包后,就会开始制作一个同时带有 SYN=1, ACK=1 的打包,其中那个 acknowledge 的号码是要给 client 端确认用的,所以该数字会比(A 步骤)里面的 Sequence 号码多一号 (ack = 10001+1 = 10002), 那我们服务器也必须要确认客户端确实可以接收我们的封包才行,所以也会发送出一个 Sequence (seq=20001) 给客户端,并且开始等待客户端给我们服务器端的响应喔!
C:送出确认封包,TCP 封包带有 ACK 旗标:
当客户端收到来自服务器端的 ACK 数字后 (10002) 就能够确认之前那个要求封包被正确的收受了, 接下来如果客户端也同意与服务器端建立连线时,就会再次的发送一个确认封包 (ACK=1) 给服务器,亦即是 acknowledge = 20001+1 = 20002 啰。
D:取得最后确认
若一切都顺利,在服务器端收到带有 ACK=1 且 ack=20002 序号的封包后,就能够建立起这次的连线了。
老师上课谈到 TCP 最常做的事就是,叫一个同学起来,实际表演三向交握给大家看!
- 老师说:甲同学你在不在(SYN)?
- 甲同学说:我在(ACK)! 那老师你在不在(SYN)?
- 老师说:我也在(ACK)
此时两个人就确认彼此都可以听到对方在讲啥,这就是可靠连线啦! _
TCP与UPD的区别?
连接性:
TCP:是一种面向连接的协议,数据传输前需要建立连接,通过三次握手确保数据传输的可靠性。
UDP:是一种无连接的协议,数据传输前不需要建立连接,直接发送数据。
数据传输:
TCP:提供可靠的数据传输服务,确保数据包按顺序、完整地到达目的地。
UDP:不保证数据包的顺序或完整性,数据包可能会丢失、重复或乱序到达。
速度:
TCP:由于需要建立连接和保证数据传输的可靠性,速度相对较慢。
UDP:由于不需要建立连接和保证数据传输的可靠性,速度相对较快。
流量控制和拥塞控制:
TCP:有流量控制和拥塞控制机制,可以根据网络状况调整数据传输速率。
UDP:没有这些机制,发送方不考虑网络的拥塞情况。
用途:
TCP:适用于需要可靠数据传输的应用,如网页浏览(HTTP)、文件传输(FTP)、邮件传输(SMTP)等。
UDP:适用于对速度要求高、可以容忍一定数据丢失的应用,如在线游戏、视频流、DNS查询等。
简而言之,TCP注重数据的可靠传输,而UDP注重传输的速度和效率。
Linux的基本组件有哪些?
1.内核(Kernel)
2.Shell:
3.文件系统(Filesystem)
4.图形用户界面(GUI)
5.系统库(System Libraries)
6.系统实用程序(System Utilities)
7.网络工具(Networking Tools)
8.软件包管理器
9.硬件驱动程序
10.用户空间程序
11.配置文件
12.启动加载器
如何处理linux内核崩溃的问题?
处理Linux内核崩溃的问题通常涉及以下几个步骤:
1.启用kdump服务:
kdump是一个Linux内核崩溃转储工具,它可以在系统崩溃时捕获内存中的数据并保存到磁盘上,以便事后分析。要启用kdump,你需要安装kexec-tools和crash工具,然后配置内核启动参数以预留足够的内存空间给kdump服务。例如,在/etc/default/grub文件中设置GRUB_CMDLINE_LINUX="... crashkernel=256M-2G:256M,high ...",然后更新GRUB配置并重启系统
2.分析内核崩溃转储文件:
一旦kdump服务成功捕获了内核崩溃时的数据,你可以使用crash工具来分析这些数据。crash工具提供了一个交互式命令行界面,允许你查看系统状态、调用栈、内存布局等关键信息。使用crash命令加载转储文件和内核映像,然后使用各种命令进行分析
3.检查硬件问题:
内核崩溃有时可能是由于硬件故障引起的。使用命令如sudo lshw来检查硬件信息,确保内存、硬盘和CPU等硬件组件正常工作
4.分析日志文件:
查看系统日志文件,如/var/log/syslog、/var/log/messages和/var/log/kern.log,可以提供系统崩溃发生的原因。使用命令如tail -n 100 /var/log/syslog来查看最近的日志信息
5.内核修复:
如果确定了内核崩溃的原因,可能需要给内核打补丁。这通常涉及下载内核源代码,应用补丁,重新编译和安装内核。在打补丁之前,备份操作系统以防万一
6.重启系统:
在分析和修复后,重启系统以应用更改,并使用uname -r命令检查当前使用的内核版本,确认补丁是否已经生效
7.监控和预防:
为了防止未来的内核崩溃,监控系统日志和性能指标,及时更新系统和驱动程序,以及合理配置系统资源,都是必要的预防措施。
查看当前与服务器连接的客户端IP有哪些?
netstat -ntu | grep tcp | awk '{print $5}' | cut -d ":" -f 1
#可以列出所有当前的网络连接
lsof -i TCP -s tcp:established -n | grep ssh
#lsof命令可以列出打开的文件,包括网络连接,使用以下命令可以查看所有TCP连接
要使用 rsync 命令同步 1.1.1.1 服务器中的 /data/test/ 目录到 2.2.2.2 服务器,并保留文件的所有属性,并且在同步后删除 1.1.1.1 服务器中的文件,
rsync -avz --delete /data/test/ user@2.2.2.2:/path/to/destination/
chmod 755 /data/ 这条命令对 /data/ 目录进行了以下授权
属主(Owner):授权了读(r)、写(w)和执行(x)权限。属主可以读取目录内容、向目录中添加或删除文件、进入目录以及修改目录中的文件。
属组(Group):授权了读(r)和执行(x)权限。与目录属主相同用户组的用户可以读取目录内容和进入目录,但不允许在目录中创建或修改文件。
其他(Others):同样授权了读(r)和执行(x)权限。这意味着任何其他用户都可以读取目录内容和进入目录,但不允许在目录中创建或修改文件。
读(r)权限用数字4表示。 写(w)权限用数字2表示。 执行(x)权限用数字1表示。
删除文件 php.conf1 中所有以“#”开头的注释行及空白行
[root@zabbix-server default.d]# sed '/^#/d; /^$/d' php.conf index index.php index.html index.htm; location ~ \.(php|phar)(/.*)?$ { fastcgi_split_path_info ^(.+\.(?:php|phar))(/.*)$; fastcgi_intercept_errors on; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_pass php-fpm; }
如何显示zabbix_server.log-20240929 的第 1000 行至 1020 行?
umask 和 ulimit 是两个在 Unix 和类 Unix 系统中用于控制不同类型系统资源的命令。它们的主要区别在于它们控制的资源类型和用途
umask(用户文件创建掩码):
umask(user file creation mode mask)是一个系统默认设置,用于控制新创建的文件和目录的权限。
当你创建一个新文件或目录时,umask 确定哪些权限将不会被赋予给新创建的文件或目录。换句话说,它设置了一个默认的权限屏蔽,从 chmod 777(即完全开放的权限)中减去,以确定新文件或目录的实际权限。
默认情况下,umask 通常设置为 022 或 027,这意味着新文件默认不会拥有写入或执行权限,而新目录默认不会拥有写入或执行权限。
umask 的值可以通过命令行修改,也可以在用户的 shell 配置文件(如 .bashrc 或 .profile)中设置,以改变所有新会话的默认 umask 值。
ulimit(用户限制):
ulimit 是一个用来控制用户可以启动的进程资源限制的命令,包括进程可以占用的文件大小、内存使用量、进程数量等。
它可以用来查看和设置软限制和硬限制。软限制是可以被用户或进程在运行时修改的限制,而硬限制是系统级别的限制,不能被普通用户修改。
ulimit 控制的资源包括但不限于:
core file size(核心转储文件大小)
data seg size(数据段大小)
file size(文件大小)
open files(打开文件的数量)
stack size(栈大小)
cpu time(CPU 时间)
max user processes(最大用户进程数)
ulimit 的设置通常在系统的配置文件中定义,如 /etc/security/limits.conf,或者在用户的 shell 配置文件中设置。
总结来说,umask 影响文件和目录的默认权限,而 ulimit 控制用户进程的资源限制。两者都是系统管理员和用户用来管理系统资源和安全性的重要工具。
本文来自博客园,作者:{Rohin},转载请注明原文链接:https://www.cnblogs.com/Rohing/p/18441334