打造自己的 RSS 信息流
对于 RSS 的介绍本文不赘述,你需要知道 RSS 是能将分散孤立的平台的信息聚合到一起,下面我将带你搭建一套流程实现 RSS 信息流,大致思路:从 RSSHub 和 WeWeRSS 获取 RSS 订阅源链接,部分使用 rss-proxy 进行代理,使用 FreshRSS 作为 RSS 服务端,安卓使用 ReadYou 进行阅读。
graph LR
subgraph "RSS订阅源"
rss["RSS"]
rsshub["RSSHub"]
wewerss["wewe-rss"]
end
subgraph "使用代理"
rssproxy["rss-proxy"]
end
subgraph "RSS服务端"
freshrss["FreshRSS"]
end
subgraph "RSS ...
DDNS v Tailscale v Cloudflared
正如这篇博客中所说,我外部访问自建服务器用的是 DDNS(v6) + FRP(v4) 以实现 IPv6+IPv4 双栈访问。
然而,不久之后,我发现 SSH 登录出现了问题。经过排查,发现有人通过 FRP 不断扫描端口,导致 SSH 登录受阻。因此,我关闭了 FRP,只用 DDNS 通过 IPv6 进行访问。
因为遇到上面的问题,我总觉得直接暴露端口也不够安全,所以一直在找别的访问方案。搜来搜去,大致也就这三种方案:DDNS 直连、内网穿透(FRP/CloudFlare Zero Trust)、异地组网(Wireguard/Tailscale)。
最近几天,把几种方案都浅浅体验了一下,这篇博客就来总结一下感受(斜粗体=优点,斜体=缺点)。
DDNS
因为是 IPv6 直连,连接速度只受限于服务器所在网络的上传带宽,是连接速度最佳的方案。
因为没有公网 IPv4,客户端仅 v4 环境时无法访问,但就我目前网络情况(数据流量是 IPv6 优先)而言,绝大多数时间都是 IPv6 访问优先。
因为是直接对外暴露端口,可能会有被爆破的风险,但不乱传播,仅自 ...
《C Primer Plus》学习笔记
《C Primer Plus(第6版)中文版》
作者:普拉达(StephenPrata)
译者:姜佑
出版社:人民邮电出版社
出版年:2016-04
ISBN:9787115390592
第 1 章 初识 C 语言
许多初学者经常忽略第 1 步和第 2 步(定义程序目标和设计程序),直接跳到第 3 步(编写代码)。刚开始学习时,编写的程序非常简单,完全可以在脑中构思好整个过程。即使写错了,也很容易发现。但是,随着编写的程序越来越庞大、越来越复杂,动脑不动手可不行,而且程序中隐藏的错误也越来越难找。最终,那些跳过前两个步骤的人往往浪费了更多的时间,因为他们写出的程序难看、缺乏条理、让人难以理解。要编写的程序越大越复杂,事先定义和设计程序环节的工作量就越大。
本书用等宽斜体表示占位符,可以用具体的项替换这些占位符。
本书用相同的字体表示计算机的输出,粗体表示用户输入。
本书使用 [enter] 显式标出 Enter 键。
第 2 章 C 语言概述
花括号在 C 语言中的作用类似于这些语言中的 begin 和 end。
[!Note]
Verilog、Matlab 中都需要 ...
《Python 基础教程》学习笔记
《Python基础教程(第3版)》
作者:MagnusLieHetland
译者:袁国忠
出版社:人民邮电出版
出版年:2018-02
ISBN:9787115474889
第 1 章 快速上手:基础知识
类似这样的名称冲突很隐蔽,因此除非必须使用 from 版的 import 命令,否则应坚持使用常规版 import 命令。
通常,应避免导入模块中所有的名称,但尝试使用海龟绘图法时,这样做可提供极大的方便。
1from turtle import *
确定需要使用哪些函数后,可回过头去修改 import 语句,以便只导入这些函数。
[!Note]
使用 from ... import * 的方式很容易引发命名冲突,因为这样会将模块中的所有对象导入到当前命名空间,包括函数、变量等。
使用 import 语句:当你需要导入整个模块的所有内容,或者需要使用模块中的多个对象时。
使用 from … import … 语句:当你只需要导入模块中的特定对象,并且避免与当前命名空间中已有的对象发生冲突时。
注释务必言之有物,不要重复去讲通过代码很容易获得的信息。无用而重复的 ...
搭建自己的在线动漫资源库
由于国内审批制度的存在,阿 B 的动漫大多会延迟三集上线,所以需要自己去找字幕组资源下载下来观看。接下来介绍一种流程实现 qbit 下载后使用 rclone + alist webdav 上传到阿里云盘实现高速播放,不受限于家宽上传带宽。
你或许会问,为什么不直接播放服务器上的视频?
首先,国内家宽大多都是上传下载不对等,如果在外播放服务器上的视频,会受限于服务器的上传带宽,而如果上传到阿里云盘,就目前来看播放视频还是没有限速的,你上传到 OneDrive 也可以,总之就是要通过网盘走下载带宽来高速播放。
其次,如果你看过我之前的这篇博客,你会知道我是用一台只有 256G 硬盘空间的笔记本搭建的家用服务器,这点空间存点自己要看的动漫还是够用的,但我的空间不只是用来存视频的。
PS 也不一定要用服务器,qbit rlone alist 都有 Windows 版本,所以你的 Windows 电脑也能走通这套流程。
qBittorrent首先,设置在下载未完成时文件的临时保存路径,以免在下载时执行上传操作出现问题。// “设置-下载-保存管理-保存未完成的 torrent ...
用笔记本来搭建家用服务器
最近用一台家里的老旧笔记本搭了一台家用服务器,体验下来还是不错的,于是写一篇博客记录一下。
主要流程就是安装 Ubuntu Server 系统,路由器支持 IPv6 实现公网 IPv6 访问,宽带有公网 IPv4 或者有一台云服务器实现公网 IPv4 访问,最终实现通过 IPv4 + IPv6 双栈访问服务器,安装 docker 来快速部署和方便管理服务。
使用笔记本搭建家用服务器有两个独特的好处:
有一块显示屏,当服务器出现问题,并且无法通过 SSH 连接进行调试时,不用额外接一块显示屏就可以直接进行调试。
有一块电池,当直流供电中断时,一块电池可以起到 UPS 的作用。
不过这俩平时都用不到,我们需要进行一定的设置,我在文末会提及。
Thinkpad E431首先介绍一下我用的笔记本,联想 Thinkpad E431:
发布于 2013 年左右的笔记本
CPU 是“Intel i3-3110M@2.400GHz”
GPU 是“NVIDIA GeForce GT 740M”
4G 内存
原装 500G 机械硬盘,后来换的 256G 固态。
这台笔记本之前安装个 Window ...
配置 git 代理连接 GitHub
使用 git 时我们肯定离不开 GitHub,但国内网络环境连接到 GitHub 总会出现时好时不好的情况,本文记录一下如何配置 git 代理(http 和 ssh)来解决这个问题。
下面主要是记录解决的步骤,如果你想要了解更详细的信息,可以参阅这篇文章:https://hellodk.cn/post/975
本文也是对之前学习 git 时做的笔记的补充 > krdw-git-note#SSH-Key
区分 http 和 ssh 代理git 的代理有两种,一种是走 https 协议的 http 代理,一种是走 ssh 协议的 ssh 代理。
一般使用 http 代理的情况就是在 clone 仓库并使用 https 时,比如
1git clone https://github.com/KrDw9ec4/KrDw9ec4.github.io.git
而使用 ssh 代理的情况就比较多了,
在 clone 仓库并使用 ssh 时,比如
1git clone git@github.com:KrDw9ec4/KrDw9ec4.github.io.git
本地仓库与 GitHub ...
定期备份 memos 数据
因为数据在自己手上,所以数据备份还是得自己来做,这里讲一下使用 rclone 备份到阿里云 OSS 上。
(1) 创建一个 OSS bucket参照网上教程创建一个 bucket(新建 buncket,填名称选地域其他默认即可),并创建一个子用户给 rclone 使用,记录 AccessKey ID 和 AccessKey Secret,待会要用。
其中要给 OSS 访问桶的权限:
(2) 安装并配置 rclone你可以使用官网的一键安装脚本在 Linux 系统下安装 rclone
1sudo -v ; curl https://rclone.org/install.sh | sudo bash
安装成功后:
在命令行键入 rclone config 开始配置
键入 n 表示新建一个配置
键入一个配置名称(这里示例用 example_name)
在弹出来的选项中找到并键入 Amazon S3 对应的序号(我这里为 5)
在弹出来的选项中找到并键入 Alibaba OSS 对应的序号(我这里为 2)
再键入 1
键入上一步创建的子用户的 AccessKey ID:XXXXX
键入上 ...
导入历史数据到 memos
⚠️ 由于 memos 版本更新,数据库结构发生变化,以下内容仅供参考。(其实主要是思路,现在数据库结构可以打开看看,对应结构导入就行)
至此,我们已经完成了 memos 服务的搭建,你可以从现在开始在 memos 记录自己的想法了。但如果你像我一样,之前已经在别的平台记录了很多,想要迁移到 memos,那么也是可以实现的。
我们可以通过操作 memos_prod.db 数据库文件来实现这个功能,我先说明,这个方法需要有一定的 Python 基础(配合 ChatGPT 能看懂代码就行)。
(1) 查看 memos_prod.db 数据库memos 默认是采用 SQLite 数据库类型,我们可以使用 DB Browser for SQLite 这个可视化工具查看我们的数据库。
如果你没有数据库相关知识也没关系,我也没有XD
我们从云服务器将 memos_prod.db 文件下载到本地,使用 DB Browser for SQLite 打开数据库如下:
右键 memo 表点击“浏览表”:
(2) 将历史记录转换为 csv 文件我们可以看到在 memos,一条数据主要由 memo i ...
从零开始部署 memos
memos 项目地址:usememos/memos
flomo 为了长期维护,功能开发十分克制,这是优点,对我来说也是缺点,我对他们未来支持 Markdown 的常用语法持悲观态度。还有就是自己数据是在别人的服务器上,先不论隐私安全问题,光是历史数据(其他平台的记录)导入基本都做不到。
早就听闻 memos 是 flomo 的开源自部署替代品,我在试用了 memos 之后发现它完全可以满足我对 flomo 的需求,还更自由。
云服务器部署如果你手头恰好有 Linux 系统(虚拟机、WSL、双系统等),其实可以尝试在本地部署 memos,步骤和在云服务器部署是一样的。如果没有的话,memos 也提供了一个 demo 供尝试(数据会清除),注册账号就可以体验了。
在尝试了本地部署之后,如果确定要继续使用 memos 的话,就需要购买云服务器实现互联网访问。
如果你是第一次购买并使用服务器,欢迎查看我之前的文章([[第一次使用云服务器]]),那里讲了在购买服务器后最基本的操作——连接到服务器。
(1) 安装 docker 和 docker compose这里我推荐 Docker ...