ubuntu下ssh连接慢的问题分析
服务端配置修改 使用终端工具 SecureCRT 连接本地虚拟机 ubuntu ,发现连接超级慢,大约耗时 10 秒左右,实在无法忍受
网上搜到的一些信息看 /etc/ssh/sshd_config 导致的 ,修改了两个配置,但是效果还是一样的慢,没有任何改善
UseDNS no GSSAPIAuthentication no 使用 win 下的命令行窗口进行 ssh 连接,发现没有任何延时,换一个工具如 winterm 连接也没有任何延时
但是 SecureCRT 连接却延时 10s 左右,那么只能是 SecureCRT 中的配置导致的
修改 SecureCRT 配置 经过一番调研,发现 SecureCRT 下的 GSSAPI 配置导致的,需要将 Method 修改为 MS Kerberos 才行,其他的都不 …
控制台重定向输出详细说明
0 表示标准输入
1 表示标准输出
2 表示标准错误输出
> 表示重定向
一般来说,1> 通常可以省略成 > 如下:
ls a.txt b.txt 1>file.out 2>file.err 可省略写成
ls a.txt b.txt >file.out 2>file.err 另外进行分析日志时候,清空日志常用这种方式,本质上也是重定向清空
[hello@localhost ~]$ >test.log 2>&1 意思是把标准错误输出重定向到标准输出
& 是一个描述符,如果 1 前不加 &,> 符号后面会被当成一个名称为 1 普通文件,结果就是标准错误输出重定向到文件名称为 1 …
批量检测机器是否可达
准备一个配置文件 ip.txt ,每一行记录分别是 ip port(或者port统一命令行读取),中间用空格间隔
将下面 c++ 代码编译生成执行文件 testconn
#include <stdio.h> #include <unistd.h> main(int argc, char** argv) { if (argc != 3) _exit(0); int fd[2]; alarm(1); pipe(fd); close(fd[1]); dup2(fd[0], STDIN_FILENO); dup2(fd[0], STDERR_FILENO); execlp("telnet", "telnet", argv[1],argv[2], 0); } 增加脚 …
Appveyor自动化构建github项目
需要在构建的仓库目录下提供 appveyor.yml 的配置文件
windows 平台提供的构建软件列表参考: https://www.appveyor.com/docs/windows-images-software/
MacOS 和 Linux 平台的可以点击对应的标签查看其提供的构建软件列表
https://www.appveyor.com/updates/2022/04/02/
https://www.appveyor.com/updates/2022/04/03/
查看更新日志显示,Qt 5.14.2 已经被 remove 了,当前可用的 qt 版本 https://www.appveyor.com/docs/windows-images-software/#qt
5.14.2 版本被 remove …
RC4算法实现原理
参考视频 https://www.bilibili.com/video/BV1994y1o7tj/
密钥 k,如值为 012345
初始 s 表,长度256数组,各原始值依次为 0,1,…,255
空间 t 表,长度为256数组,值依次为密钥 k 的扩容256长度,值依次为 012345012345…
依据 t 表打乱 s 表的元素,打乱的规则如下
j := 0 for i :=0; i < 256; i++ { j = j + s[i] + t[i] //计算待置换的 j 位置 s[i], s[j] = s[j], s[i] } 得到打乱后的 s 表后,计算密钥流,buff为待加密或解密的缓冲
var i, j int = 0, 0 for h:=0 ; h<len(buff); h++ { i …
C盘扩容以及磁盘管理
大部分情况下,通过 windows 的磁盘管理就可以完成 C 盘扩容操作,但是一些情况下必须使用工具才行
也就是磁盘管理中无法对目标卷进行删除操作,这里可以使用一款迷你兔的分区管理工具
迷你兔是一款强大的分区管理工具,官网地址 https://www.minitu.cn/pw-free/
可以使用来进行 C 盘扩容操作,分区管理操作完之后,需要点击左上角的应用才会生效
Linux下的软连接和硬连接
创建文件 磁盘分两部分:inode区块,和数据区块
inode文件在inode区块中,数据文件和目录文件在数据区块中
数据文件:就是实际的数据内容,根据内容大小,可能会出现多级索引的情况
目录文件:文件的内容就是该目录下的文件名,以及该文件名对应的inode号码
aaa 为实际文件, bbb 为软连接名称,ccc 为硬连接名称,不带参数 s 表示创建的为硬连接
原文件 aaa ,软连接 bbb ,硬连接 ccc;删除 aaa,bbb无法读取,ccc 正常读取
ln -s aaa bbb ln aaa ccc 实现原理 硬连接为在当前目录下,增加一条文件名记录,对Linux文件系统来说并未新增文件
该文件名和原文件名都有相同的inode号码,然后inode的计数会加1
软连接是新增了一个文件,这个文件有新 …
nginx下多站点部署配置
多站点域名部署的情况下,如 aaa.com 和 bbb.com,每个域名下面又有多个子域名,都部署在同一台主机上
现在希望 nginx 能配置实现如下的逻辑:
1、禁止直接输入 ip 地址进行访问,包括 http 和 https
2、输入 http 访问的时候跳转到对 https 访问
3、对每个域名下不存在的子域名访问的时候,跳转到对应的主域名访问
禁止直接输入 ip 地址进行访问 为了实现禁止通过 ip 访问 https ,得配置一个 server 的 ssl 域,而 ssl 还需要提供对应的证书以及密钥,不然 nginx 会报错
这里可以不使用域名站点的证书和密钥,通过命令专门生成一个证书和密钥提供给禁止 ip 访问 443 的 server 域使用
生成命令如下
openssl req -x509 …
win10虚拟机安装
安装 vmware 软件 这个安装没有什么好说的,网上的安装教程也比较多,一路无脑操作就行
下面是我在使用 vmware 的版本,有需要可以下载获取
链接:https://pan.baidu.com/s/1FTLfjjShDDpsOu1uXLxq7g 提取码:h5sm
制作 win10 安装包 这里不推荐使用第三方制作的安装包,通常这些安装包都会夹带私货,可以自行制作一个 win10 的安装包,非常简单
打开微软的官方地址 https://www.microsoft.com/zh-cn/software-download/windows10
下载 win10 安装媒体
下载得到一个 MediaCreationTool_22H2.exe 的执行文件,双击运行该文件,其中下面这步选择
“为另一台电脑创建安装截止(U …
halo 系统的构建
为了构建 halo 在本地运行以便测试,请按照官方的指引进行构建,这里记录的仅是部分重要的信息
以下基于 2.20.9 版本进行本地编译
halo 项目构成 halo 为 java 开发的项目,并集成了前端 vue 的项目,主体分为两部分
1、application 为后端项目
2、ui 为前端页面项目
编译前端代码 使用 idea 打开 halo 项目后,在配置中选择 halo:ui [build] ,然后点击开始按钮进行构建
构建完毕最后下面显示信息 “BUILD SUCCESSFUL” ,ui 的目录下生成了一个 build 文件夹,dist 中显示有一个 console 和 uc 目录
编译后端代码 使用 idea 打开 halo 项目后,在配置中选择 halo [bootJar] ,然后点击开始按钮进 …
win下修改文件夹图标
运行需要准备两文件
config.txt 文件中每一行指定待修改图标的文件夹路径,review.ico 图标样本文件
vs2022下编译通过,使用 Unicode 字符集编码
#include <windows.h> #include <shlobj.h> #include <iostream> #include <fstream> #include <string> #include <io.h> //https://stackoverflow.com/questions/68941080/update-folder-icon-with-desktop-ini-instantly-change-c void …
下载CUDA的安装版本
输入命令查看 nvidia-smi,显示的CUDA版本号
打开nvidia的官网 https://developer.nvidia.com/cuda-downloads,打开页面显示的是最新版本的CUDA
如果你的显卡显示的不是最新版本,需要到 Archive 档案列表中去下载
在当前页面往下拉到最后,Resource 下面有一个 Archive of Previous CUDA Releases
点击打开新的页面,可以在新页面里面查找到对应的历史版本
比如,12.1的最新版本为 12.1.1,点击可以进入到其对应的版本页面进行下载 https://developer.nvidia.com/cuda-12-1-1-download-archive
注册表批量删除项记录
某些软件在安装的时候,会生成大量的注册表记录,但在卸载的时候,并不会进行清理,时间长了就会留下很多垃圾
这里使用代码加脚本的方式来实现指定删除,遍历符合规则的注册表项,如 “HKEY_CLASSES_ROOT\AD*“ 的注册表项
#include <stdio.h> #include <Windows.h> int main(int argc, char* argv[]) { int i = 0; while (1) { DWORD dwKeyNameSize = 128; char szKeyName[128] = { 0 }; int retCode = RegEnumKeyEx(HKEY_CLASSES_ROOT, i, szKeyName, …
OledTools扫描图片生成点阵文件
OledTools是一款根据图片生成二进制点阵文件的软件,非常轻量且易于使用,下载地址
链接:https://pan.baidu.com/s/1r920OBKecETkXLj63fsahQ 提取码:fwko
16 x 16 点阵,根据图片生成的点阵,指定的扫描方式为竖向,扫描结果参考如下
生成的二进制bin文件内容如下
分析可以知道,00 以及 10 的地址对应图片的第一列, 01 以及 11 对应图片的第二列,依次类推
其中 08 单元的 df 在图形上表示为左侧第一个有值的列,从上往下依次为低位到高位,写成二进制为 11011111
这里的1表示空缺,0 表示置为需要绘制,0 就是表示上述的黑色阵点
64 x 48 的扫描方式
经过分析计算得知,扫描方式为从开始位置向下取 8 位, …
安装 vcpkg 进行包管理
下载 vcpkg 代码版本包
git clone https://github.com/Microsoft/vcpkg.git 进入代码根目录,执行 bat 文件,这个脚本操作实际上是下载了一个 vcpkg.exe 程序
这个 vcpkg.exe 程序是从 github 上面下载的,也可以手工下载,然后放置到 vcpkg 源代码目录下
.\bootstrap-vcpkg.bat 也可以使用 proxy 将 http 的请求全部都转为代理下载,在桌面增加一个 proxy.bat
set http_proxy=http://192.168.1.200:58591 set https_proxy=http://192.168.1.200:58591 start 双击启动 proxy.bat 文件,然后 cd …