ubuntu 20.04 & ubuntu18.04快速开启TCP BBR实现高效单边加速

Linux Kernel 内核升级到 4.9 及以上版本可以实现 BBR 加速,由于Ubuntu 18.04 默认的内核就是 4.15版本的内核,由于Ubuntu 20.04 默认的内核就是 5.4 版本的内核,并已经默认编译了 TCP BBR 模块,所以可以直接通过参数开启。

新的 TCP 拥塞控制算法 BBR (Bottleneck Bandwidth and RTT) 可以让服务器的带宽尽量跑慢,并且尽量不要有排队的情况,让网络服务更佳稳定和高效。

修改系统变量:

保存生效

执行

如果结果是这样

就开启了。 执行 lsmod | grep bbr ,以检测 BBR 是否开启。

一般建议重启系统,重启后执行

参考链接


OpenSSL命令行校验SSL/TLS连接检查HTTPS证书配置是否正常

最近服务器上配置了HTTPS之后,发现证书无法通过验证,客户端报告异常

证书里面内容是正常的,并且通过浏览器是可以正常访问的,但是Android APP使用okhttp访问的时候就不能正常访问了。同样IOS应用访问也是异常的。

一脸懵逼,不清楚哪一步出现了问题。

于是想追踪一下正常的证书验证流程,搜索了一下发现如下命令:

目前校验过程中发现错误信息如下:

经过相关的分析,发现这个问题的原因在于证书签发机构在签发证书的时候,下发了两个证书,其中一个是根证书,一个是中级证书,但是在配置的时候,没有配置相关的中级证书。导致证书校验异常。

增加中级证书之后,校验恢复正常。

参考链接


rsync同步报告错误"cannot delete non-empty directory"

最近在执行rsync的时候,发现报告错误信息cannot delete non-empty directory,如下:

解决方法是增加--delete-excluded即可,如下:

参考链接


Centos 7配置Jenkins构建Android持续集成(离线内网环境)

安装配置Jenkins

为了安全考虑,首先需要解锁Jenkins

继续阅读Centos 7配置Jenkins构建Android持续集成(离线内网环境)

alien:.deb与.rpm包转换工具

deb 与 rpm 是GNU/Linux 流行的软件包格式。我们“alien”可以在rpm\dpkg\slackware tgz\deb\slp 格式见进行转换。

Debian/Ubuntu 可使用下面命令安装alien:

从RPM转到DEB

举例:假设在目录/tmp 有myprogram.rpm 文件,使用下面命令转换:

这时,在/tmp 目录下就会发现有 myprogram.deb ,这时就可以使用dpkg安装:

继续阅读alien:.deb与.rpm包转换工具

resize2fs:Memory alloction failed while trying to resize

最近入手一块 12T 的西数红盘,打算安装到 WD MyCloud Gen1 上,从 4TB 版本升级到 12TB 版本,作为 TimeMachine 来用。

使用 拯救死翘翘了的WD MyCloud 方式恢复镜像之后,最后一步执行

结果报告如下错误:

这个原因网上查询了很久,基本上断定是 e2fsprogs 1.42.5 的 BUG,这个问题在  e2fsprogs 1.42.9 版本修复。修复内容参考代码下的 debian/changelog

关键日志如下:

编译过程参考 How to successfully build packages for WD My Cloud from source 中对于 e2fsprogs 1.42.13 的编译。

参考链接


Gettext po文件编辑器

Gettext 是一个非常老牌和成熟的国际化和本地化解决方案,在 Linux 下几乎每个 GNU 程序中都能见到 Gettext 的身影。在 Gettext 中,每个 locale 对应一个 po 文件,虽说 po 文件是纯文本,但是如果用普通的文本编辑器来编辑是非常麻烦的。

正好这两天国际化 ,搜到了几个 Linux 下的 po 编辑器~,推荐 GtranslatorWordPress 翻译( i18n )的时候使用这些工具。

macOS 下安装如下命令:


继续阅读Gettext po文件编辑器

ubuntu 18.04 "nvidia-340 导致 /usr/lib/x86_64-linux-gnu/libGL.so.1 转移到 /usr/lib/x86_64-linux-gnu/libGL.so.1.distrib"

解决方案如下:

参考链接


发现了 nvidia-340 导致 /usr/lib/i386-linux-gnu/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so.1.distrib...

ubuntu 18.04 systemd-udevd进程CPU占用特别高,CUDA Toolkit 10.1 Update 2安装之后出现

最近在T440笔记本的ubuntu 18.04系统上安装最新的CUDA Toolkit 10.1 Update 2之后,发现 systemd-udevd 进程CPU占用特别高,执行 sudo /lib/systemd/systemd-udevd -D ,会发现持续输出如下信息:

解决方法如下:

参考链接


Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本

一、通过apt-get安装指定版本

二、查询指定软件有多少个版本

说明:在Linux用这个查询并不能完全的把所有版本都列举出来,因为每个版本都与系统版本和CPU架构有关,比如一个软件支持Ubuntu系统的16.04的CPU架构为amd64的版本只有1.0和1.2,其余都不支持,所以列举时就只有两款。

列举版本列表:

0、通过网站搜索:

https://packages.ubuntu.com/

1、

将列出所有来源的版本。如下输出所示:

madison 是一个 apt-cache 子命令,可以通过 man apt-cache 查询更多用法。

2、

将列出所有来源的版本。信息会比上面详细一点,如下输出所示:

policy 是一个 apt-cache 子命令,可以通过 man apt-cache查询更多用法。

3、

4、

说明:这个命令只是模拟安装时会安装哪些软件列表,但不会例举出每个软件有多少个版本

5、

参考:https://manpages.debian.org/unstable/aptitude/aptitude.8.en.html

6、

说明:列举出所有版本,且能查看是否已经安装。还可以通过apt-show-versions -u <<package name>>来查询是否有升级版本。

参考:http://manpages.ubuntu.com/manpages/trusty/man1/apt-show-versions.1p.html

7、

8、

单个详情:

1、

说明:查询指定包的详情,不管是否已经安装。

2、

说明:效果和上面基本一致,但是结果是列表详情展示,会提示是否已经删除了之后还有依赖包没有删除等。

3、

说明:必须是安装的包才能显示详情。

4、

说明:同上,效果一致。

使用技巧:

1、可以在查询后面带上一些参数来实现筛选

参考链接


Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本