自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(687)
  • 收藏
  • 关注

原创 C++ 通过AES-NI指令集高级硬件加速实现AES-256-CFB算法。

但我并不否认,本文的AES实现存在致命的平台处理器CPU局限性,但我个人认为,的确是可以通过C/CXX编译器宏,为特定平台提高更为极致的性能优化是有一定必要的,因为在绝大多数情况下,目标也均仅在X86/X64(i386/i686、AMD64)处理器平台上运行。源实现已添加了大量的中文注释,如果对实现原理感兴趣的童鞋,可以详细参考阅读本文的C++代码实现,性能这块没得说,预期目的一直是为了 PPP PRIVATE NETWORK™ 2 性能继续提高服务的,否则难有过多的心气,去肝爆重写这个东西。

2025-06-11 03:57:00 513

原创 通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法并通过OPENSSL加密验证算法正确性。

本文介绍了如何利用AES-NI指令集实现AES-256-CFB加密算法。通过使用Intel处理器内置的硬件加速指令,该实现展示了密钥扩展、块加密以及CFB模式操作的核心流程。代码包含与OpenSSL库的对比验证,确保实现的正确性,并提供了性能测试功能。文章详细说明了密钥扩展过程、加密/解密逻辑,以及如何处理部分数据块,为开发者提供了基于硬件加速的高效AES实现参考。

2025-06-11 03:21:26 73

原创 通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法。

本文介绍了一种基于XMM硬件指令集的AES-256-CFB加密算法实现方案。该方案通过Intel AES-NI指令集加速,详细展示了密钥扩展、块加密和CFB模式的具体实现。代码包含完整的加密/解密路径,支持任意长度数据,并通过测试向量验证了正确性。实现中特别优化了CFB模式的反馈机制,加密时使用密文作为反馈,解密时使用输入的密文作为反馈。性能测试表明,该硬件加速实现比传统软件实现效率提升显著,适用于需要高性能加密的场景。

2025-06-11 03:12:53 102

原创 关于AES-256-CFB密钥扩展实现

注意,以下代码并不能被编译 _mm_aeskeygenassist_si128 不接受非立即数的,实际上展开是,人工通过编译器宏函数自己干的,一共七轮自己挨着逐个弄,当然本文会提供展开的代码。

2025-06-11 02:20:25 112

原创 C/C++ 检测CPU是否支持AES-NI硬件指令集

本文介绍了在不同X86/X64平台下检测CPU是否支持AES-NI指令集的多种实现方法:1) 使用GNU AT&T格式的内联汇编检查ECX寄存器第25位;2) 通过MSVC的__cpuid函数实现;3) 采用Intel格式的内嵌汇编方式;4) 使用__cpuidex函数;5) 调用编译器内置函数_may_i_use_cpu_feature。这些方法的原理都是通过CPUID指令读取处理器特征信息,通过检查特定标志位(如AES-NI对应ECX[25])来判断指令集支持情况。文中还展示了扩展应用:通过类似

2025-06-11 01:48:10 412

原创 OpenSSL 的 AES-NI 支持机制

OpenSSL自动检测并启用AES-NI硬件加速,通过CPUID指令检测处理器支持情况。版本1.0.1+开始支持,建议使用1.1.0+。启用后通过EVP标准接口自动选择最优实现,避免使用低级函数。可通过命令行和C++代码验证是否启用,若未启用需检查BIOS设置或虚拟机配置。最佳实践包括始终使用EVP接口并进行运行时检查。特殊情况可通过环境变量强制禁用硬件加速。

2025-06-11 01:34:59 50

原创 Linux 删除登录痕迹

echo "" | sudo tee /var/log/auth.log >/dev/null # 认证日志(Ubuntu/Debian)echo "" | sudo tee /var/log/wtmp >/dev/null # 用户登录/注销记录。echo "" | sudo tee /var/log/btmp >/dev/null # 失败登录记录。echo "" | sudo tee /var/log/lastlog >/dev/null # 最后登录信息。当然,仍可以先查阅以下文章。

2025-06-10 14:14:14 315

原创 Linux 命令行添加用户。

3、添加用户到 sudo 组。

2025-06-10 13:20:05 63

原创 Linux 删除用户终端命令行操作记录

这样 history 无法显示用户的操作记录,可以防止被管理员通过 history 命令察觉。假设你想删除最近的 N 行历史记录,可以使用 history -d 命令。如果你知道要删除的行数,您可以使用循环命令。但这会留下操作记录,尽量不要采用这种方式。a. 删除最后几行的命令。2、删除特定的历史项。

2025-06-10 13:17:08 219

原创 boost::asio::ip::<tcp/udp>::resolver 需要慎用它进行异步解析DNS地址列表。

摘要:boost::asio::ip::tcp/udp::resolver虽然支持异步DNS解析,但在高并发场景下可能出现卡死问题,导致回调长时间未触发。建议避免使用其异步实现,或者考虑修改底层实现。同步版本调用C函数库(gethostbyname等)性能更稳定。对于异步需求,可选用C++开源DNS库如cpp-dns、gko_pool等,它们提供更好的异步解析支持且性能更可靠。(146字)

2025-06-06 11:48:47 574

原创 简单方法判断 “域名” 是否ARPA,反向查询(RDnS)

该代码实现了一个判断DNS反向查询的函数IsReverseQuery。它检查输入的hostname是否以".ip6.arpa"或".in-addr.arpa"结尾(分别对应IPv6和IPv4的反向查询),同时验证hostname长度不超过64字节。函数首先处理空指针或空字符串情况,然后检查长度限制,最后通过字符串匹配判断是否为反向查询请求。如果是则返回true,否则返回false。该函数采用noexcept保证不抛出异常,并使用了constexpr定义常量字符串和最大

2025-06-06 11:23:31 124

原创 OS默认DNS查询短暂合并等待时间

DNS解析优化机制:操作系统会同时发送IPv4(A)和IPv6(AAAA)查询以提高效率,采用并行等待机制但设置超时限制。当任一记录返回时,系统启动100毫秒左右的定时器(各平台差异:Linux 50ms/MacOS 50-100ms/Windows 100-300ms),超时后即返回已获得的记录。该硬编码值通过逆向工程和开源资料确认,主要影响操作系统级的DNS管理模块,Windows NT表现尤为典型。注:不同底层库实现存在差异(如glibc设为500ms)。

2025-06-06 11:18:04 212

原创 openppp2 -- 1.0.0.25225 优化多线接入运营商路由调配

摘要:本文介绍openppp2-1.0.0.25196版本新增的VBGP技术优化功能,针对DNS解析路由规则进行改进。新版采用类似DNSMASQ的配置格式,允许用户指定不同域名的解析路径(如.cn域名通过本地物理网卡解析)。结合VBGP运营商路由控制,该技术能确保境内域名强制走大陆线路,避免被境外服务器识别追踪,有效解决IP地址递归回溯问题,同时支持接入***、新加坡等地区网络时的智能路由分流。

2025-05-30 23:50:43 568

原创 C++ 判断文件的编码类型

文本编辑器通过文件头部字节(BOM)判断编码类型。常见的BOM标识包括:0xFFFE41(Unicode)、0xFEFF00(UnicodeBIG)和0xEFBBBF(UTF8)。若无BOM则默认返回ASCII编码。该代码实现了对这三种编码类型的识别,并支持偏移量调整。

2025-05-29 20:29:32 189

原创 关于DDOS

实际上要制作这些程序最好的办法是结合DPDK来发送,这样可以用最低的CPU能耗发出足够巨量的IP数据报文,当然通过系统提供的PF_PACKET, RAW_SOCKET也是可以,但这或许会相对慢得多,在不利用DPDK的情况下,更快的报文轰炸发送是通过内核RING(环)来发送数据的。所以IP协议上的源地址就是对端用来应答数据的IP地址,但这个过程是可以修改的,因为在互联网之中运行的TTL跃点路由器并不会检查源地址,它根本不需要关注源地址,这个附加信息本身就是给IP目标地址指向的对端主机看的。

2025-05-29 20:10:57 923

原创 关于近期中国移动民用家庭网络,新增的UDP网络限制。

中国移动近期在全国范围部署新技术方案打击PCDN等违规应用,该方案于2025年5月17日植入省级网关。尽管承认技术尚未成熟,移动仍坚持启用该系统,导致正常家宽用户(特别是UDP需求用户)网络受限,引发大量投诉。系统主要针对三类UDP使用场景进行限速,对海外UDP流量限制尤为严格。技术规避方案包括定期更换UDP端口等,但需开发者具备较强的网络编程能力来实现无缝切换。移动认为牺牲部分高端用户需求是可接受的,但该决策引发用户不满和投诉风险。

2025-05-28 02:45:39 718

原创 解决:MySQL client, error code: 1251, SQLState: 08004

MySQL认证协议不兼容问题解决方案:客户端报错1251是由于MySQL 8.0默认使用caching_sha2_password认证方式,而旧客户端不支持。可通过修改用户认证插件为mysql_native_password解决。修复步骤:1)执行ALTER USER修改认证方式;2)FLUSH PRIVILEGES刷新权限。该方法可快速解决客户端连接认证失败问题,适用于MySQL 8.0与旧版客户端的兼容场景。

2025-05-28 01:55:06 388

原创 MySQL命令行创建用户并赋予所有权限且允许所有的来源访问。

创建用户并基于所有的权限。显示用户拥有的所有权限。

2025-05-28 01:37:55 118

原创 Ubuntu 系统上安装 MySQL 默认的超级管理员密码

Ubuntu系统的MySQL安装包会自动创建debian-sys-maint用户,其密码存储在/etc/mysql/debian.cnf配置文件中,可通过该用户登录MySQL。若忘记root密码,可采用特权模式强制修改密码,或尝试查看mysql日志文件查找临时密码(var/log/mysql/error.log)。不同版本可能存在差异,新版可能不再提供默认密码。

2025-05-28 01:16:38 209

原创 Linux 下命令行获取本机外网IP地址

本文提供了多个通过命令行快速获取本机公网IP地址的方法,包括使用curl访问checkip.dyndns.org、ifconfig.me、cip.cc等十余个IP查询服务。这些指令通过管道和sed处理返回结果,能直接输出简洁的IP地址信息,适用于Linux/Unix系统环境下的网络调试和IP查询需求。不同服务可作为互相验证的备选方案,部分网址可能需要VPN访问。

2025-05-27 02:42:07 113

原创 Linux 下设置IPV4网络路由优先,但仍支持IPV6网络路由。

本文摘要: 要在双栈服务器上设置IPv4优先访问,需root权限修改/etc/gai.conf文件,添加precedence ::ffff:0:0/96 100配置项。该指令通过调整地址选择策略表(RFC 3484),将IPv4映射地址(::ffff:0:0/96)的优先级设为100,确保系统优先使用IPv4连接。此方法适用于Linux系统,需重启网络服务生效,可解决双栈环境下IPv6默认优先导致的兼容性问题。

2025-05-27 02:37:33 166

原创 中国大陆IP段(含港澳)【2025-05-27】APNIC lasted 2025-05-27

以下列出近期的IP路由列表,人们可以基于以下路由表,配置到大陆的BGP静态路由信息。

2025-05-27 02:16:34 132 3

原创 CentOS7 yum及RPM方式升级最新稳定内核

一般可以下载三个类型,即:lt-devel-、lt-headers-、lt-不要在意,因为在上面LT内核主包之中已经包含了这个子包了。以下方式升级的内核可以开启BBR。

2025-05-27 02:13:46 472

原创 CentOS7安装 htop(100% 可以安上)

本文介绍如何在CentOS 7上手动安装htop软件包。由于EPEL源无法使用,建议从DAG packages网站下载指定版本:htop-1.0.3-1.el7.rf.x86_64.rpm。该版本适用于RedHat Linux el7 x86_64系统,是CentOS 7的稳定支持版本。文章提供了具体的下载链接,并说明由于yum源失效,需要人工手动处理安装过程。

2025-05-26 22:05:35 251

原创 CentOS7更新 GLIBC 2.28

文章摘要:本文介绍在CentOS7下手动升级GLIBC到2.28版本的方法。首先需安装依赖环境并升级GNUMake至4.2.1,然后通过devtoolset-8升级GCC版本。接着下载GLIBC源代码,在/usr目录下编译安装。操作存在风险,建议虚拟机环境下先备份快照。最后可通过命令验证GLIBC是否升级成功。此方法适用于需要手动升级但自动升级失败的情况。

2025-05-26 02:52:20 1130

原创 CentOS7更新 GLIBC 2.25

本文介绍了两种在Linux系统上升级GLIBC的方法。推荐方法是通过EPEL仓库安装(方法一),先启用EPEL仓库,搜索并安装所需版本。如果仓库中没有合适版本,可采用手动编译安装(方法二),但需注意风险。方法二步骤包括:安装开发工具、下载源码、创建构建目录、配置安装路径(需清除LD_LIBRARY_PATH环境变量)、编译安装,最后设置新的环境变量。文中特别提醒了配置时可能出现的环境变量错误及解决方法。两种方法都需谨慎操作,避免影响系统稳定性。

2025-05-25 22:58:50 477

原创 C/C++ 调用堆栈回溯实现(Linux GCC)

本文介绍了一个用于捕获和打印函数调用栈的C++实现。代码定义了两个主要功能:1) PrintStackTrace()宏,用于输出堆栈跟踪信息;2) CaptureStackTrace()函数,实际获取堆栈信息。该实现使用了backtrace()和backtrace_symbols()系统调用来获取堆栈帧,并通过__cxa_demangle()函数对C++名称进行解构处理。输出内容包括函数名、文件位置和偏移地址等信息,格式化为可读字符串。当堆栈跟踪缓冲区非空时,会同时输出到标准输出和错误日志。整个实现具有缓冲

2025-05-23 22:28:27 236

原创 记录:DMIT服务器默认的系统参数

本文摘要介绍了一系列网络和系统内核参数的优化设置,旨在提升网络性能和系统稳定性。关键配置包括:使用FQ队列管理算法(fq)和BBR拥塞控制算法(bbr)优化网络流量;增加接收和发送缓冲区大小(rmem_max, wmem_max)以处理更多数据;提升TCP连接队列长度(somaxconn, tcp_max_syn_backlog)以应对高并发连接;调整TCP内存窗口大小(tcp_rmem, tcp_wmem)以优化数据传输效率;启用TCP SACK和Timestamps功能以增强网络可靠性;设置内核不因pa

2025-05-23 20:20:09 100

原创 解决:dpkg: error: dpkg frontend lock is locked by another process

在处理包管理操作时,可能会遇到锁文件被占用的情况。首先,可以通过ps aux | grep -E 'apt|apt-get|dpkg'命令检查是否有其他包管理进程在运行,若有则需等待其完成。若确认无其他操作但锁仍被占用,可使用sudo killall apt apt-get dpkg命令强制终止相关进程。若进程已终止但锁文件未释放,可手动删除锁文件,如/var/lib/dpkg/lock-frontend和/var/lib/dpkg/lock。删除锁文件后,使用sudo dpkg --configure -

2025-05-23 20:17:33 306

原创 Ubuntu 18.04 升级内核到 5.X(< 5.10)

升级到5.X内核的主要目的是启用BBR(拥塞控制算法)。可以通过两种方式完成升级:一是使用官方内核,执行sudo apt-get install --install-recommends linux-generic-hwe-18.04 -y;二是使用第三方内核(如XanMod),需先安装GnuPG2,添加XanMod源并导入密钥,然后执行apt update && apt install linux-xanmod -y。升级后需重启系统生效。若从低版本升级到高版本,无需指定内核版本启动。此外,可通过sudo

2025-05-23 19:58:01 444

原创 关闭 MySQL 密码策略

重新登录MySQL并检查策略:SHOW VARIABLES LIKE 'validate_password%';Linux: /etc/my.cnf 或 /etc/mysql/my.cnf。4、完全禁止密码策略(卸载插件大法)1、管理员登录 MySQL 服务器。2、查看当前密码策略。3、临时关闭密码策略。5、永久关闭密码策略。

2025-05-23 02:47:56 326

原创 CentOS7 安装 Mysql 5.7.28

本文详细介绍了在Linux系统上安装和配置MySQL 5.7的步骤。首先,通过wget下载MySQL的RPM包并安装MySQL源。接着,使用yum命令安装MySQL社区服务器,若遇到GPG密钥错误,提供了多种解决方案,包括重新导入GPG密钥、清理yum缓存、下载新的GPG密钥文件或临时禁用GPG检查。安装完成后,启动MySQL服务并检查其状态。获取并修改root用户的临时密码,设置密码策略以允许简单密码。此外,还介绍了如何授权其他IP地址访问、设置MySQL开机启动、配置字符集为UTF-8以支持中文,并重启

2025-05-23 01:42:39 748

原创 CentOS7/Ubuntu SSH配置允许ROOT密码登录

在CentOS7和Ubuntu系统中,允许root用户通过SSH登录的步骤相似。首先,使用vim编辑器打开SSH配置文件/etc/ssh/sshd_config,找到或添加#PermitRootLogin yes这一行,并取消注释。在CentOS7中,执行systemctl restart sshd.service命令重启SSH服务。而在Ubuntu中,需要先安装SSH服务器(如果未安装),然后通过sudo service ssh restart或/etc/init.d/ssh restart命令重启服务。

2025-05-22 23:29:47 457

原创 fatal error: uuid/uuid.h: No such file or directory 编译问题修复。

在编译一个五六年历史的游戏服务器项目源码时,遇到了uuid/uuid.h头文件缺失的问题。错误信息显示在Guid.cpp文件中无法找到该头文件。针对不同操作系统,提供了两种解决方案:在CentOS 7上使用yum install uuid uuid-devel或yum install libuuid libuuid-devel命令安装相关库;在Ubuntu上则使用sudo apt-get install uuid-dev -y命令。此外,文章还提到了将.NET Framework的Guid结构移植到C/C+

2025-05-22 23:07:46 224

原创 CentOS7挂载hgfs文件夹(VMware 共享文件夹)及网卡的自启动。

本文介绍了如何设置网卡自启动和挂载VMware共享文件夹。首先,通过systemctl enable network命令启用网络服务,并编辑网卡配置文件(如ifcfg-eth0),将ONBOOT参数设置为yes以确保网卡在开机时自动启动。其次,针对VMware共享文件夹的挂载问题,使用vmware-hgfsclient命令列出共享文件夹,并通过vmhgfs-fuse命令将每个文件夹挂载到/mnt/hgfs/目录下,确保即使安装了VMware Tools也能正常访问共享内容。

2025-05-22 22:37:41 203

原创 RPM镜像站(软件包搜索)

在国内,用户在选择软件源时,通常优先考虑阿里巴巴的开源镜像站,因其稳定性和速度优势。对于需要额外软件包支持的用户,EPEL(Extra Packages for Enterprise Linux)是一个常用选择,提供了丰富的额外软件包。用户可以通过下载EPEL的RPM包来启用这一源。阿里巴巴开源镜像站作为阿里云官网开发者社区的一部分,为开发者提供了便捷的云计算资源和服务,是国内开发者的重要支持平台。

2025-05-22 02:20:41 146

原创 CentOS 7下手动编译安装GCC 7.5.X编译器

本文详细介绍了在Linux系统上手动编译安装GCC 7.5的步骤。首先,安装必要的开发工具和依赖库。接着,下载GCC 7.5的源码并解压,然后下载并安装GCC的依赖项。配置编译环境时,建议新建目录并指定安装路径,选择需要编译的语言,并禁用多架构支持。编译和安装过程可能耗时较长,建议使用所有CPU核心加速编译。安装完成后,配置环境变量以使用新安装的GCC,并验证安装是否成功。此外,还提供了创建符号链接的步骤以及解决常见问题的方法。最后,提到了一种更简单的替代方案——使用SCL(Software Collect

2025-05-22 02:12:15 1036

原创 yum 报错误提示:yum-config-manager --disable <repoid>

在使用 yum 时,可能会遇到因 EPEL 仓库配置错误导致的无法更新问题。解决方法包括:首先确认 EPEL 仓库是否已正确安装,若未安装可通过 rpm 命令手动安装。其次,编辑 EPEL 仓库配置文件,使用 baseurl 替代 metalink,并确保 URL 正确。如果默认镜像不可用,可更换为国内镜像源(如阿里云)。接着,清除 Yum 缓存并重新生成缓存,测试仓库是否可用。若问题仍未解决,可临时禁用 EPEL 仓库,若有效则可永久禁用。通过这些步骤,可以有效解决 yum 因 EPEL 仓库配置错误而无

2025-05-22 01:02:15 978

原创 CentOS 7设置阿里云镜像源

在CentOS系统中,首先通过mv命令备份原有的镜像源配置文件CentOS-Base.repo为CentOS-Base.repo.backup。接着,使用curl命令从阿里云下载适用于CentOS 7的源配置文件,并保存到/etc/yum.repos.d/目录下。最后,执行yum makecache命令更新本地源列表信息并生成缓存,以确保系统能够使用新的镜像源进行软件包管理。这一系列操作有助于提高软件包下载速度和系统更新效率。

2025-05-22 00:38:12 130

原创 记录:VKVM服务器默认的系统内核参数设置

本文提供了一系列系统优化建议,涵盖虚拟内存、网络设置、缓存管理和CPU配置等方面。在虚拟内存优化中,调整了swappiness、dirty_ratio等参数以提升内存管理效率。网络设置方面,通过增加缓冲区大小、调整TCP参数和启用BBR拥塞控制算法来优化网络性能。缓存管理通过调整vfs_cache_pressure参数来平衡缓存使用。CPU设置中禁用了自动分组调度以提升性能。此外,还禁用了NUMA平衡以减少内存访问延迟。这些优化措施旨在提升系统整体性能和资源利用率。

2025-05-21 23:57:27 97

Intel Smart Sound Technology (ISST) Driver

J4105/J4125 NUC/Notebook PC ISST Driver J4105/J4125 NUC/笔记本电脑 ISST声卡驱动

2024-08-01

serverspeeder2 锐速(TCP/IP单边加速)

支持:“Windows XP/2003” 操作系统平台(含:32/64位程序)

2022-09-20

sscli20.zip

Microsoft .NET Framework 2.0 FCL/BCL/RUNTIME,.NET虚拟机实现源代码!

2022-09-20

serverspeeder 锐速

serverspeeder 锐速, 一:支持 “Windows Server 2016/2012/2008” x86_64 服务器平台。 二:支持 “Windows Desktop 7/8” x86_64 桌面平台

2022-09-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除