为 OpenSUSE 和 UNRAID 开启 IPv6 临时地址优先

IPv6 临时地址和 Privacy Extension

临时地址是 IPv6 Privacy Extension (RFC 4941) 中一项针对 IPv6 地址安全性的改进措施。

在 IPv6 中一般网络设备如路由器分配到的是一个前缀,下级的设备通过特定的算法将自己的 MAC 地址添加在前缀的后面生成一个完整的 IPv6 地址用于访问互联网,由于各种历史原因和技术限制仍然有一些网络设备没有启用临时地址这一特性或是没有将临时地址设置为优先使用的地址。

对于一般使用 PPPoE 拨号的家庭网络 IPv6 虽然前缀可能每次都会更换,但是后缀仍然可能会暴露设备的 MAC 地址,而在没有做特殊处理的情况下设备 MAC 地址是网卡终身唯一的标识,这就意味着在没有使用临时地址和随机 MAC 地址的情况下 IPv6 地址可以用于长期分辨特定的设备,甚至是将网络流量与现实地理位置、个人信息等身份对应起来,如果你不认同 "互联网没有隐私" 这句话,那么你一定不希望这些情况出现。

通过 MAC 地址生成的 IPv6 地址有一个显著的特征是它将会以 FF:FEXX:XXXX 的方式结尾,X 代标任意字母或数字,而 FF:FE 则是固定的。

一句话概括,使用 IPv6 但不适用临时地址或未开启临时地址优先可能会是一个危险的事情。

openSUSE

openSUSE 12 及以上版本默认开启了临时地址,但并没有将临时地址设置为首选,原因是有效期较短可能会影响长连接相关的应用。

Continue reading 为 OpenSUSE 和 UNRAID 开启 IPv6 临时地址优先

为Debian 10升级Linux Kernel 5.x

目前 Debian 10 自带的内核版本为 4.19,可能由于种种原因...比如不升级手痒,十分希望体验一下新版内核,这篇文章可以指导你如何正确的查询并安装新版内核。
以下方法同时也适用于未来以及先前的 Debian 版本,步骤一致,唯一的区别是将文中的 buster-backports 中的代号更换为你正在使用的系统的代号。

开始

首先来到 Debian Backports 网站查询当前版本是否已经提供 Backports 支持,如果是刚刚发布的版本这里可能没有哦...
也可以访问 Debian Package List 选择 buster-backports 查看可用的软件包列表。

如果要升级内核,可以在 Debian Package List 页面找到 Kernel 分类并进入对应的页面,并使用浏览器搜索 linux-image 来查看可用的内核版本。
但是要注意,linux-image-5.2.0-0.bpo.2-amd64 这种并不是我们想要安装的软件包,如果安装了这种特定版本的软件包会导致未来 Backports 中有新版本发布时系统仍然停留在已安装的特定版本内核,不会自动更新。

那么如何找到适合自己的设备呢?以下提供一些例子:

Continue reading 为Debian 10升级Linux Kernel 5.x

Scaleway ARM 独立服务器测试

配置与价格

文章中使用的是 Scaleway 的 C1 ARM 独立服务器,每月€2.99,仅在巴黎 PAR1 区可用。

具体配置为:

CPU: 4核心 ARMv7 (Marvell Armada 370, 32 Bit)
内存: 2GB
硬盘: 50GB
带宽: 200Mbps 性能测试:

性能测试

硬盘测试

root@baremetal:~# dd if=/dev/zero of=./test.bin bs=1M count=1024 conv=fdatasync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 10.195 s, 105 MB/s
Continue reading Scaleway ARM 独立服务器测试

在Windows 10中访问玩客云Samba共享

玩客云中的 Samba 使用的是 Samba 1.0(CIFS) 协议,而微软已经在 Windows 10 Version 1709 及以上中默认关闭了这个老旧且不安全的协议,从旧版本系统升级到新版的用户可能会收到 0x80070035 的提示,无法访问玩客云的共享目录。

同时由于一些不可描述的...Bug?开启密码访问后,在 "网络" 中访问玩客云设备时会收到 0x80004005 的提示,其他版本系统遇到同样错误时也可以尝试参考修复。

Continue reading 在Windows 10中访问玩客云Samba共享

在PowerShell中使用Git创建Patch

Emmm...

如果你是一个经常在多台机器之间切换写代码,又不愿意将乱七八糟还没有整理好的代码推送到仓库中的人,并且还在使用 Windows,那么你可能需要这篇文章。

由于一些众所周知的编码问题,直接在 PowerShell 中使用 git diff | Out-File changes.patch 会导致 Patch 中的中文和特殊符号乱码,并且 Patch 文件的编码是 UCS-2,不方便直接在其他应用中使用。

Continue reading 在PowerShell中使用Git创建Patch

使用CoreRT编译C#项目为机器码

关于 CoreRT :

CoreRT 是一个可以将 CIL(MSIL) 中间码编译为机器码 (例如 X64, X86, ARM 架构) 的工具链,CoreRT 默认使用 RyuJIT 作为编译器(AOT),它也是 .NET Core 的默认 JIT 编译器,除了可以将代码编译为机器码可以无需运行库直接分发以外,还带来了一定的性能提升。

CoreRT 目前 (2018年8月) 仍处于 Alpha 阶段,请酌情使用。

准备工作:

要尝试 CoreRT,需要安装 .NET Core SDK,请访问 官方下载页面 根据介绍下载并安装,本文编写时已在 Windows 10 和 Ubuntu 18.04 上测试。

为了减少外部因素带来影响的概率,将使用 .NET Core CLI 默认的 Hello World 作为演示。 Continue reading 使用CoreRT编译C#项目为机器码

使用PowerShell Profile快速设置 HTTP 代理

因为...

Windows 系统本身可以通过系统设置来HTTP代理,但是由于应用的编写方式不同,有的来自 Unix/Linux,有的是跨平台应用,有的是 PowerShell 脚本,在设计时没有专门编写读取 Windows 系统内的代理设置的代码,就需要手动设置环境变量来为应用设置代理。

由于应用读取代理的方式各不相同,例如环境变量 http_proxy, https_proxy, 或是大写的 HTTP_PROXY 或是 HTTPS_PROXY,也可能是调用 Windows 系统中设置的代理,还有的 PowerShell 脚本是读取 [Net.WebRequest]::DefaultWebProxy ,每次设置和取消都需要执行 N 条命令和多次点击操作,设置起来非常麻烦,所以查了下资料写了一段脚本,方便在 PowerShell 中快速设置 HTTP 代理。

这个脚本支持为通过上述方式获取代理设置的应用快速设置代理,也可以同时将设置应用到系统中。

Continue reading 使用PowerShell Profile快速设置 HTTP 代理

解决Windows 10中Surface Pro的电源选项滑块丢失

在安装了 Windows 10 的 Surface 上,电源选项中除了以往常见的 "节能"、"平衡"、"高性能" 模式以外,在电量信息界面还可以通过滑块调整设备的电源选项,从最长续航到最高性能最多有 4 个级别可供选择。
这个滑块在某些情况下可能会消失,例如第三方软件更改了电源模式设置,但点击任务栏底部的电池图标后除了滑块消失以外没有明显的特征表明出现了什么问题。
通过搜索,类似的提问在微软中文社区中没有找到可靠的答复,于是搜索了微软英文社区,得到以下解决方案:

  1. 右键单击任务栏中的电源图标,选择 "电源选项"
  2. 在弹出的界面中展开 "隐藏的附加计划"
  3. 选择 "平衡(推荐)"

完成以上的步骤之后电源选项应该会立刻出现在电量信息的界面中