TCP协议在负责端到端数据传输的过程中,其核心机制涉及到发送端和接收端的操作系统内存管理,具体包括用户空间(user space)与内核空间(kernel space)两部分。对于每一个TCP socket连接,在内核中都会配备一个发送缓冲区和一个接收缓冲区,TCP的全双工通信模式及流量控制、拥塞控制等特性正是基于这两个独立的缓冲区及其填充状态来实现的。在TCP socket连接的两端,分别存在send和recv两个操作函数。例如,当客户端向服务器发送数据时,客户端进程会调用send函数,该函数的作用是将待发送的数据复制到socket在其内核中的发送缓冲区。值得注意的是,当send函数执行完毕并返回时,并不代表数据已经到达服务端;实际上,send函数仅完成了从应用层缓冲区到socket内核发送缓冲区的数据复制,数据的实际发送过程由TCP协议栈负责,而非send函数直接处理。而在接收端,接收缓冲区用于暂存接收到的数据,直到应用程序调用recv函数进行读取为止。recv函数的主要职责是从内核缓冲区中复制数据到应用层用户指定的缓冲区,并返回已接收的数据量。若应用程序未及时调用recv读取数据
服务器商家提供的系统镜像虽然方便,但是其中总是包含多余的东西,我比较喜欢干净的系统,每次拿到新机器后都会进VNC控制台手动安装系统。但是手动执行系统比较费时费力,一台还好,但是我的服务器很多,一台一台地弄太慢了,把自己整的很烦躁。因此,我决定尝试使用自动化脚本来简化这一过程,提高效率。在服务器管理和运维领域,自动化脚本是节省时间和提高效率的关键。现在正好放寒假,于是我利用空闲的时间深入研究了如何使用preseed.cfg自动化部署Debian系统脚本已经写好:bash <(curl -sL https://sitao.org/script/installDebian)可选择的系统:Debian 10, 11, 12在debain或者ubuntu上运行脚本,一般在十分钟内完成,机器性能好的话可能才五六分钟,期间可以打开vnc控制台查看进度脚本设计1.检查权限: 脚本首先检查用户是否以 root 权限运行,以确保能够执行必要的系统操作。2.选择版本: 脚本提示用户选择要安装的 Debian 版本,并根据用户的选择下载相应的 netboot 文件。3.设置密码: 用户需要输入 root
Alist是一款支持多种存储(比如本地存储、阿里云盘、OneDrive、Google Drive)的目录文件列表程序,支持 web 浏览与webdav,且易于拓展. 后端基于gin,前端使用reactAList 从一开始就设计为易于安装,几乎一键开启.但是直接使用官方编译好的程序文件有时候不太满足自己的需求,这时候就需要自己修改源码然后编译安装了.我的需求是删掉"Aliyun Video Previewer"的默认预览,我将用Debian 11演示编译前的准备工作1.Golangwget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz tar -zxvf go1.21.0.linux-amd64.tar.gz -C /usr/local/ 配置 ${PATH} 包含 Go 的 bin 目录的环境变量 /usr/loca/go/bin:echo "export PATH=/usr/local/go/bin:${PATH}" | tee /etc/profile.d/go.sh source /etc/profile.d/go
BBRv3 GitHub地址: https://github.com/google/bbr/tree/v3整个过程和之前那篇编译内核有点相似配置要求:2核2GB内存以上,硬盘空间大于20GB本次用于编译的主机配置Processor : AMD Ryzen 7 7700X 8-Core Processor CPU cores : 2 @ 4491.560 MHz AES-NI : ✔ Enabled VM-x/AMD-V : ✔ Enabled RAM : 1.9 GiB Swap : 1024.0 MiB Disk : 28.5 GiB Distro : Debian GNU/Linux 11 (bullseye)购买链接安装依赖apt install git build-essential libncurses-dev libssl-dev libelf-dev bison bc flex rsync debhelper screen vim -y 下载源码本次编译的内核版本是6.5.3这里使用git的方式下载内核:git c
前言如果你非常注重个人隐私和安全,不想用大厂的邮件服务,那么自己搭建一个邮件服务器是一个不错的选择; 而且用自己的域名作为邮箱的后缀是非常有意思的,也好看;iRedMail是一套成熟稳定的邮件服务器系统,它免费,开源且拥有优秀的性能,全面实用的功能Github地址 官网准备工作确保你的服务器开启了25端口测试方法:telnet smtp.google.com 25 #谷歌邮箱地址 或者 telnet smtp.qq.com 25 #腾讯qq邮箱没有屏蔽显示如下:root@mail:~# telnet smtp.qq.com 25 Trying 43.129.255.54... Connected to smtp.qq.com. Escape character is '^]'. 220 newxmesmtplogicsvrsza9.qq.com XMail Esmtp QQ Mail Server. 屏蔽显示如下,一直在连接:root@mail:~$ telnet smtp.qq.com 25 Trying 203.205.232.7...很多云服务器基本都屏
备份现有apt源配置mv /etc/apt/sources.list /etc/apt/sources.list.old Debian 11全部复制后,直接粘贴并按下回车执行官方源cat > /etc/apt/sources.list << EOF deb http://deb.debian.org/debian/ bullseye main contrib non-free deb-src http://deb.debian.org/debian/ bullseye main contrib non-free deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free deb http://deb.debian.org/debian/ bullseye-backports main contrib non-free deb-src
因为内核的代码非常多,所以内核编译需要花费比较长的时间。当然,如果你的计算机性能强劲,时间会短很多.配置要求:2核2GB内存以上,硬盘空间大于20GB本次用于编译的主机配置Processor : AMD Ryzen 7 7700X 8-Core Processor CPU cores : 2 @ 4491.560 MHz AES-NI : ✔ Enabled VM-x/AMD-V : ✔ Enabled RAM : 1.9 GiB Swap : 1024.0 MiB Disk : 28.5 GiB Distro : Debian GNU/Linux 11 (bullseye)购买链接安装依赖apt install git build-essential libncurses-dev libssl-dev libelf-dev bison bc flex rsync debhelper screen -y 下载源码Linux内核官网:kernel.org本次编译的内核版本是6.4.11这里使用git的方式下载内核:git cl
Telegram 的机器人接口很开放,使用简单,100%开放无限制,相对微信服务号、公众号好很多。用来做一些小应用也很方便获取机器人Telegram 非常有趣,要新增自己的 Bot,只要跟 Telegram 上的 BotFather 说一下,他就会给你一个 Bot按BotFather 给你的步骤做,最后可以看到他会提供一个API Token 给你,只要有这个Token 就可以跟Bot 沟通。要保存好,等等会用到,也不要给别人看到,以免自己的Bot 变成别人的玩具。Go-Telegram-bot-apiGo 已经有社区开发的函式库: https://github.com/go-telegram-bot-api/telegram-bot-api新建项目初始化go mod init tgBot go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5 之后只要 import 就可以使用:import ( tgbotapi "github.com/go-telegram-bot-api/telegram-bot-
主机配置建议在2c2g以上1.安装各种依赖apt install build-essential cmake pkg-config libssl1.1 libssl-dev libncurses5-dev libncursesw5-dev -y 2.下载源码wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.34.tar.gz 如需安装其他版本可以在官方下载页找 https://downloads.mysql.com/archives/community/3.解压源码包tar -xzvf mysql-boost-8.0.34.tar.gz 4.进入源码目录cd /mysql-8.0.34/ 5.创建build目录并进入mkdir build && cd build 在编译MySQL时创建build目录有以下好处:1.通过隔离源代码和编译输出,保持项目的组织结构清晰,便于清理和卸载生成的文件,同时支持多个构建配置。2.防止对源代码的污染,将编译过程中生成的临时文件和对象文件与源代码分开。3.增强构
Sitao
不活在别人的评论里