启用 Google BBR 拥塞控制算法

查看内核版本 #输出数字大于4.9即可满足 uname -r 修改内核参数 echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf #保存生效 sysctl -p 查看 sysctl net.ipv4.tcp_available_congestion_control sysctl net.ipv4.tcp_congestion_control 更多 GitHub page Google Cloud blog post Google AI publication

给 Linux 系统添加 swap 交换空间

对于虚拟机而言,一般服务商给 虚拟机(VM(Virtual Machine))不会分配交换空间,有较少数的服务商在图形界面面板里可以配置交换空间(例如 Linode)。这样的话通过把已有硬盘划分一块给一个单独的文件并把这个文件格式化成交换分区的格式然后挂载给系统然后永久启用就可以了,具体如下: 需要创建一个 2GB 大小的 /swapfile 文件,文件路径随意,但是为了好管理,所以放在了根目录下: dd if=/dev/zero of=/swapfile bs=1024 count=2048000 (坑:不能使用 fallocate 否则后续会报错 理由 https://unix.stackexchange.com/questions/294600/i-cant-enable-swap-space-on-centos-7) 输出: 2048000+0 records in 2048000+0 records out 2097152000 bytes (2.1 GB) copied, 6.28804 s, 334 MB/s 查看一把生成的文件: ls -lh / 输出: -rw-r--r--. 1 root root 2.0G Jul 11 23:30 swapfile 改变文件权限: chmod 600 /swapfile 查看一把改变以后的权限: ls -lh /swapfile 输出: -rw-------. 1 root root 2.0G Jul 11 23:30 /swapfile 格式化当前文件为交换空间文件系统: mkswap /swapfile 输出:

推荐 IBM Plex 字体

介绍 IBM 去年 2017年11月 推出了一套叫做 Plex 的字体! 为啥呢?有两个目标:1.自己用 2.给你用 这套字体历时两年,是一套开源并且可以免费下载和使用的英文字体。当前提供 Sans, Serif, Mono 和 Sans Condensed 形式并且满足在所有环境下使用。 下载 主页:https://github.com/IBM/plex 下载:https://github.com/IBM/plex/releases 使用 网页使用指导:https://github.com/IBM/plex#web-usage Windows 安装: 注意下载页面提示:【TrueType.zip is recommended for MacOS and Windows.】 下载然后解压,把所有文件夹内的 .ttf 复制到 C:\Windows\Fonts 文件夹内即可,然后就可以在任何你想使用并且可以设置字体的软件内使用了。 小提示:可以在解压后的文件夹内搜索 “*.ttf” 然后全选复制,避免了一个一个文件夹去打开多次复制的繁琐。 Linux 安装: Linux 中的字体可分为两大类: 轮廓或矢量字体 包含作为字形组成相关绘图指导的数学描述。因此,每个字形都可以缩放为任意大小而无损质量。在可以使用此类字体(或字形)之前,需要将数学描述转换为光栅(网格)。此过程称为字体光栅化。字体微调(嵌入在字体中)可改进和优化特定大小的渲染效果。光栅化和微调通过 FreeType 库实现。 Linux 下的常用格式为 PostScript Type 1 和 Type 2、TrueType 及 OpenType。 位图或光栅字体 包含一个为特定字号设计的像素阵列。位图字体渲染速度极快,而且非常简单。然而,与矢量字体相比,位图字体无法在不损质量的情况下进行缩放。因此,这些字体通常以不同的大小发布。现在,Linux 控制台中仍然使用位图字体,有时终端中也会使用这些字体。 在 Linux 下,便携式编译格式 (PCF) 或字形位图分布格式 (BDF) 是最常用的格式。 这些字体的外观主要会受两个方面的影响: 选择合适的字体系列, 采用某种算法渲染字体,达到接收者眼睛最舒服的效果。

CentOS 7.5 无图静默安装 Oracle 12.2.0

概要 Oracle 数据库的默认安装非常繁琐复杂,但是大致的套路无非就是找一个能满足业务需求的硬件环境和一个能满足需求(并最大限度提升性能)的系统环境(操作系统环境,网络环境等等)把安装程序扔上去然后让它跑起来就可以了。抛开硬件环境不说,这里只说 Linux 软件环境。 对于常规的三大派系的 Linux 发行版:RedHat SUSE Debian 而言。Oracle 默认是不支持 debian 的,所以这个系列的发行版不推荐安装 Oracle 数据库,即便你再喜欢把 Ubuntu 玩的再 6 也不要试图去把 Oracle 安装再 Ubuntu 上(除非哪天 Oracle 官方支持了),也有一些特别执着的人可能实现了安装,但是生产环境绝不推荐这种做FF法。省下的两大商业发行版 RedHat 和 SUSE 都是支持的。 对于 RedHat 而言,当然首先应肯定支持度最好的是 RHEL(Redhat Enterprise Linux)但是大多数情况下社区发行版使用更多一些,所以明显的 CentOS 几乎成了 Oracle 免费方案下最稳妥最靠谱最通用的办法。而 RedHat 系而言,Oracle 自己在 RHEL 的基础上做了少许改进有了 Oracle Linux,可以认为是 CentOS 的兄弟版本而且专为 Oracle 数据库而生,所以商业付费订阅领域最适合 Oracle 数据库的无疑是 Oracle Linux 了。当然 Fedora 也是支持 Oracle 数据库的,但是不推荐生产环境使用。对于 SUSE 而言,SLES(SUSE Linux Enterprise Server)得到了 Oracle 的官方支持,当然 openSUSE 肯定也是可以安装 Oracle 数据库的。

Windows 10 聚焦无法更新

症状: Windows 10 锁屏界面选择了“Windows 聚焦”无法自动更新? 或者 Windows 10 锁屏界面选择了“Windows 聚焦”以后直接蓝色屏幕或者灰色屏幕而没有图片加载出来? 网上给出的方法有关于策略组的,关于网络的,关于注册表的,关于组建完整性的;我试过的都无效。 解决方法: 打开“此电脑”(或者叫了多年的“我的电脑”),菜单栏选择“查看”,打开“文件扩展名”和“隐藏的项目”; 进入下面的文件夹: C:\Users[Your-Name]\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_[Something-else]\Settings 注意: [Your-Name] 是你的登录名; [Something-else] 每个人不同,随机的一个字符串; 现在你看到两个文件: roaming.lock settings.dat 选中这两个文件,按一次 Ctrl + c 和 Ctrl + v(就是备份一下啦:D),然后删除这两个文件; 进入下面的文件夹: C:\Users[Your-Name]\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_[Something-else]\LocalState\Assets 删除文件夹中全部文件。 说明: 这个文件是 Windows 10 聚焦更新的图片存放的地方,有些聚焦图片确实很美,来这里把文件复制到其他地方,改一下后缀为 .jpg 即可使用。 使用管理器权限(右键选择”管理员身份运行“)打开 PowerShell 工具(命令提示符(cmd.exe)不行),输入如下代码: Get-AppxPackage Microsoft.Windows.ContentDeliveryManager -allusers | foreach {Add-AppxPackage -register “$($_.InstallLocation)\appxmanifest.xml” -DisableDevelopmentMode} 重新选择锁屏背景为”图片“,再切换到”Windows 聚焦“。Over

Guide to use Google Cloud DNS

介绍 Google Cloud DNS 是运行在 Google 基础架构上的可扩展、可靠、托管式的权威域名系统 (DNS) 服务。它延迟低、可用性高,是将您的应用和服务提供给用户的一种经济实惠的方式。Cloud DNS 是可编程的。您可以使用我们简单的界面、命令行界面或 API 轻松地发布和管理数百万个 DNS 地区和记录。由于谷歌试用了 Anycast(任播)技术并且云平台是弹性的,所以可以提供给用户 生产级质量的高流量权威 DNS 服务 而且可在全球任何地方以高可靠低延迟访问。100% SLA 保证。同时,所有的访问都是支持 DNSSEC 的,这保证了一定的安全性。 价格 Google Cloud DNS 根据网文介绍之前是有 5K 每天的免费查询额度的,但是现在已经取消了免费额度。所有的服务都是收费的,其实收费机制也很简单,只有两部分组成:托管的域名数量和域名查询数量。而且,无论是域名数量还是查询数量,都是越多越便宜。对于最低配置而言,总量 25个 域名以内的 1个 域名按照每月最低套餐的 100万 查询以内的话,则是 域名托管费用 $0.20 + $0.40 = $0.60 ,价格是相当的经济实惠。价格细节 规模 当前(2018年1月3日),Google Cloud DNS 有 ns-cloud-a1.googledomains.com 到 ns-cloud-h1.googledomains.com 这么 8 大组解析服务器,每组又有 ns-cloud-a1.googledomains.com ns-cloud-a2.googledomains.com ns-cloud-a3.googledomains.com ns-cloud-a4.googledomains.com 这么 4 小组解析服务器。 不幸:每一大组的第一个 ns-cloud-*1.googledomains.com 中国大陆均无法 ping 通。虽然你可以删除第一个,但是无法保证获得 100% SLA。 特性 前面已经提过支持 Anycast 和 DNSSEC 并且 100% SLA 保证。 除了常规的记录类型以外,当前还支持 CAA IPSECKEY NAPTR NS PTR SOA SSHFP 和 TLSA 记录。虽然支持 SPF 类型,但我还是强烈建议把 SPF 按照 TXT 类型来写。支持记录类型细节 最低 1秒 TTL。 SOA 可以编辑 支持多级域名,不限于顶级域名。 先决条件 使用 Google Cloud DNS 之前,需要满足这两个条件:

2017年 DNS 解析服务商列表

1. 提到的服务或/和价格可能在你查看本贴的时候改变了; 2. 如果你还知道靠谱的服务可以反馈给我; 3. 转载不需要获得授权但需要链接到本文; DNSPod 中国版 **方案:**免费版,个人专业版,企业基础版,企业标准版,企业旗舰版 没有被腾讯收购前尤其是没有编入腾讯云之前,大红大紫是个人都喜欢,限制小功能强大。后来被腾讯收购以后现在变成了 腾讯云解析 ,官网基本上就是个空壳了感觉,限制也特别大,曾经追捧 DNSPod 免费版的个人站长和一些博客博主很多人都觉得 DNSPod 免费版的服务质量在下降。 腾讯云解析价格总览:这里 。而且貌似 发生过多次让大家不爽的事情 事件1 事件2 。 它的优势在于对于国内刚需(忽略备案)和域名实名制问题以后的企业而言,运营商线路细分和省份线路细分会有一定的优势,对于死不回国(不接受实名制和备案)的个人用户而言,意义不大。同时,免费版不提供 SLA,而个人收费版 99% SLA 和企业版 最低 99.9% SLA。 DNSPod 国际版 出了国门的 DNSPod 就什么都不是了,没有那么强的竞争力了,毕竟,能撑起半个互联网的 DNS 解析服务商也是有的,超长历史的 DNS 解析服务商也是有的。如果国内版 DNSPod 面向中国大陆,那无疑国际版就面向海外用户了,主要是加快了海外用户的解析速度,据说解析服务器全部在美国。当然,不用把域名实名制和备案。 国际版网站给出了一个成功案例,里面有星巴克中国,星巴克中国作为腾讯的战略合作伙伴选择的不是国内版 DNSPod 而是国际版,囧,这当然不是考虑到备案和域名实名制问题(星巴克中国在上海)。当前(2017年12月27日)DNSPod 国际版首页顶部出现提示文字: DNSPod 国际版解析业务暂停维护,不影响您继续使用。如操作过程中给您带来不便,敬请谅解!国内用户请访问 www.dnspod.cn 。 Cloudflare DNS **方案:**免费版,专业版,商业版,企业版 全球知名的 CDN 服务商,世界级 DNS 服务商,属于这个行业的第一梯队的企业。 **特点:**低延迟,超低延迟而且全域名提供 DNSSEC 支持,但是免费版只有两组解析服务器,收费版最便宜的价格是20美元,但是提供四组服务器,提供 DDOS 保护服务,流量统计,SSL加密,加速,缓存,流量控制等等众多强大功能,支持 Anycast 技术,支持 IPv6,但是只支持顶级域名。当前(2017年12月27日)他家的 CAA 记录正在测试?我没有申请参加测试但是我新添加的域名里面已经可以添加 CAA 记录了,但是 CAA 添加的界面这几天经常变化;而且,他家的 CAA 记录,会额外添加几个 CA,比如你只授权了:

How TOTP (authenticator apps) work

这篇文章翻译自 FastMail 官方博客 原文:https://blog.fastmail.com/2016/07/22/how-totp-authenticator-apps-work/ 这是 mini-series 关于安全的第五篇文章,为了标记一下我们的登陆和认证系统即将到来的安全更新(upcoming security upgrade)。所有新的改进将在 2016年7月25日 发布。 下周我们将推出一项更新以便使用二次验证来更容易地确保你的账户安全。 如果你打开了二次认证,那么每次你在一个新的计算机上登陆的时候你将在你的普通的密码之外额外多一次验证的步骤。 通过完成这个额外的步骤它证明你有难以被攻击者获取的东西:一个特定的安全设备,或者你的手机上安装的某个软件产生的一串安全密码。 ****注意:****当你登陆系统的时候,你可以选择信任这台计算机,这样的话就不用每次进行二次验证了。 你可以添加任意多不同的安全设备到你的 FastMail 账户;然后可以使用任何一个去验证你的账户。我们将提供三种的不同类型: ⦁ TOTP(Time-Based One-Time Password / 基于时间的一次性密码) ****⦁ FIDO U2F ****(Universal 2nd Factor from the Fast IDentity Online alliance); and ****⦁ Yubico OTP ****(a proprietary one-time password scheme from Yubico / 来自 Yubico 公司的一个专有的一次性密码方案). 一旦你设置了他们中的一个,你也可以通过你的任意密码保护手机短信得到一个一次性验证码来完成二次认证。 在这篇文章中,我们试图以一种容易理解的方式解释 TOTP 底层的工作方式,附带简略介绍它的优缺点。敬请期待后续关于 U2F 和 Yubico OTP 的更多文章! How TOTP (authenticator apps) work TOTP 代表 基于时间的一次性密码(Time-Based One-Time Password)。它是一个已经被标准化了的基于共享密钥(意思是,被我们的服务器和你的手机共享,不是指其他人!)产生一个定期改变的代码的方法。由于它是一个标准,所以你可以在手机上使用许多不同的支持它的(大多数是免费的)认证软件。一些最流行的有 Google Authenticator, Authy, Duo 和 1Password。

PGP tools with FastMail

这篇文章翻译自 FastMail 官方博客 原文:https://blog.fastmail.com/2016/12/23/pgp-tools-with-fastmail/ 这是 2016 FastMail Advent Calendar 系列的第 23 篇也是倒数第二篇文章。敬请期待明天的最后一篇更新。 我们之前的 advent 系列文章里,介绍过 为什么 FastMail 不支持 PGP( why FastMail doesn’t have PGP support),并且我们提到过最佳的使用 PGP 的方式是通过命令行工具或 IMAP 客户端软件。 正如我们之前承诺的,一个适用于 FastMail 的关于(部分)开源的 PGP 客户端说明现在可以参阅了!我们强烈推荐使用开源加密软件,最好 reproducible builds . 不清楚类似 PGP 的加密如何工作的?这里是一个引导你进入使用 PGP 加密你的邮件(PGP to encrypt email)的基础的加密概述(overview of encryption)。如果你打算认真对待你的隐私问题,我们推荐进一步阅读以理解加密软件的风险,它带来的好处以及它们的可用性。 虽然我们在这方面已经做了一些基础的研究工作,但我们不能承诺这一定就适用于你的特定情况。 Browser plugins Mailvelope 支持平台:Firefox Chrome 使用说明 WebPG 支持平台:Firefox Chrome 雷鸟 SeaMonkey 先决条件:需要系统中已经安装 GnuPG 和 Key Agent 使用说明 Native clients MacOS GPGTools 支持平台:macOS 可以用于系统自带邮件客户端,但是当前不兼容 macOS Sierra(10.

What we talk about when we talk about push

这篇文章翻译自 FastMail 官方博客 原文:https://blog.fastmail.com/2016/12/21/what-we-talk-about-when-we-talk-about-push/ 这是 2016 FastMail Advent Calendar 系列的第 21 篇文章。敬请期待明天的更新。 当一些人考虑注册成为我们的用户时经常会问我们:“你们的产品支持推送吗?”。简单地回答是“支持”,但令人疑惑的当他们问这个问题的时候他们到底是什么意思?这点让这个问题变得有点复杂了。 当说起电子邮件的时候,大多数人通常理解的“推送”是新的邮件到达一台移动设备的时候他们获得几乎实时( near-realtime )的通知。这看起来是一个相当简单的概念,但实现起来却需要电子邮件服务器(比如 FastMail )和客户端/软件( iOS 邮件客户端,FastMail 移动客户端或者是 Thunderbird(雷鸟)之类的桌面客户端)之间的精心协作,而且依赖于所使用的机制,设备所使用的操作系统(比如 iOS 或 安卓)和操作系统的供应商(苹果,谷歌)。没有这些环节的配合,实时通知是不能实现的。 所有的这些意思是说没有一个简单的回答“你们支持推送吗?”囊括的这些所有情况。我们通常说“支持”是因为对我们的大多数客户来说这就是他们想要的答案。 邮件客户端可以使用各种机制来通知用户新邮件来了,每种都有各自的优缺点。 IMAP 单纯的传统意义上的 IMAP 客户端(桌面客户端和移动客户端)有较少的几个消息通知机制。 Polling 迄今为止对客户端来说最简单的查看是否有新邮件的方式是不断地去查询服务器。如果客户端每分钟都查询一次服务器的话则看起来和实时消息通知差不多。 这种方法最大的缺点就是网络负载和(除过像台式机这种总是插着电源的设备)电池寿命。 如果查询服务器过程很复杂的话网络负载就是一个大问题。最差的情况下,你必须查询服务器上整个信箱的状态并且和设备上保存的上次查询得到的记录做对比。较新的 IMAP 有一些机制(比如 CONDSTORE and QRESYNC )可以让客户端获得当前服务器上的收件箱编码后的令牌(token)。下一次当客户端查询服务器的时候,客户端可以对令牌说“把从我上次离开后的变更”。如果客户端和服务器都支持这个特性的话,通常情况下没有什么改变的话网络负载不会有压力。 电池寿命是个大问题由于系统要定期唤醒并且使用网络去向服务器查询变化情况。这其实是一种对电能的浪费因为大多数情况下你都不会有新邮件,然后设备又转而休眠了,这其实没有多大实际的意义。 IDLE 为了避免上面说所的这种不必要的轮询(定时多次向服务器查询状态),IMAP 有一种叫做 IDLE 的机制。客户端可以在服务上打开一个文件夹并在其中“idle”。这样可以保持和服务器的连接而且可以让客户端进入休眠状态。当服务器上有了需要变化需要通知的话,服务器通过这个连接给客户端发送一条消息,这将从休眠状态激活设备以便客户端查询服务器上的变更。 通常会出现的情况是对一些没有指定推送渠道或是推送机制的设备来说, IDLE 是可用的但仍存在一些问题使得它的效果不是那么理想。 主要的是 IDLE 只允许客户端请求对单个文件夹的变动。如果客户端需要通知多个文件夹的变动那么则必须有多个 IMAP 连接,每个文件夹分别一个。如果有些服务器同时限制单个用户的连接数的话对导致许多问题而且会使客户端变得复杂起来。 还有个问题,特别是移动设备来说, IDLE 是工作在 TCP 协议栈之上的。当设备网络情况发生改变的时候(这可能包括在移动基站之间的切换)会导致问题出现,可能会破坏连接。由于 TCP 协议栈的工作机制,不可能总能让一个设备判断连接是否还在继续,客户端依靠定期去“ping”(通常需要定期唤醒)或当网络发生变化的时候指望设备通知已经不那么可靠了。 很多情况下 IDLE 是靠谱的而且兼容大多数的 IMAP 客户端,但这是最基本的推送通知的做法。 NOTIFY 为了解决上述的一个文件夹对应一个连接的问题(one-folder-per-connection problem),IMAP 引进了另一种叫做 NOTIFY 的机制。它允许客户端请求它感兴趣的一组复杂的内容(包括文件夹列表和变更类型列表,比如“新邮件”或者是“已删除的邮件”)然后一次性通知这些内容。 这是推送机制发展的正确一步,但是还是存在使用 TCP 协议栈会遇到的那个问题。它是一个相当复杂的协议而且难于和当前的需求兼容,这就是我期望没有客户端或服务器支持它的原因。Cyrus(FastMail 使用的邮件服务器软件)不兼容它而且可能一直不会兼容。