[{"content":"","date":"2026-10-18","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"他把最后一个盘子洗干净，倒扣在沥水架上。\n厨房实在有些小。最近陆续添了几件厨具，原本还算宽敞的台面如今已经所剩无几。新买的砧板倒是好用，只是尺寸大了些，平日里放在哪里都觉得碍事。\n不过既然买了，也就懒得再折腾。\n今天的晚饭做得还不错，至少比上次强。最近开始自己做菜，才发现原来有这么多东西值得研究。只可惜有些事情不像电脑，出了错还能撤销，做坏了就只能将就着吃了。\n收拾完，他给自己倒了杯水，回到桌前。\n电脑还开着，音箱里放着一张许久没有认真听过的专辑。桌上有些凌乱，他顺手挪开显示器旁的两个摆件，腾出地方放下杯子。\n房间不大。说是Loft，其实也只是把一间屋子分成了上下两层，楼上勉强放下一张床，楼下摆着桌椅和一些日常用品。\n当初搬进来时，他没想到自己会在这么小的地方放下这么多东西。\n好在住久了，总能找到安置的办法。\n窗外的车流声始终没有停歇。\n楼下是一条宽阔的城市主干道。车辆驶过路面的声音几乎连绵不断，偶尔有摩托车经过，发动机的轰鸣声从远处传来，又很快消失在道路的另一头。\n他端起杯子，走到阳台。\n前些天播下的种子还没有太大动静。其中一盆倒是冒出了点绿色，他凑近看了看，土还是湿的，便没有浇水。\n从这里能够望见城市的天际线。天气好的时候，远处的山脉也看得清楚。只是到了夜里，山渐渐隐入黑暗，反而是高楼的灯光显得格外清晰。\n他挺喜欢这样的景色。\n回到屋里，音乐已经换到了下一首。\n这张专辑他听过许多遍。从前不太喜欢的几首歌，如今倒是经常反复听。\n明明是同样的旋律和歌词，听起来却与从前有些不同。\n他想起很久以前，故乡的一场活动。\n当时的许多细节已经有些模糊，唯独记得最先走过来打招呼的并不是他。\n后来有那么一段日子，许多原本只关乎自己的事，也渐渐成了两个人的事。\n只记得有一次，被问起以后的人生有什么打算。\n他想了许久，竟没能给出一个像样的回答。\n那些日子如今已经有些遥远了。\n倒是那个问题，始终没有忘记。\n他端起杯子，才发现水已经喝完了。\n于是起身又倒了一杯。\n再回来的时候，电脑屏幕已经暗了下去。\n他碰了碰鼠标，重新打开白天留下的文件。\n有些问题还没处理完，便想着晚上再看一眼。只是忙了一整天，到了这个时候，注意力多少有些难以集中。\n他检查了几处内容，修改了一点不太满意的地方，便决定今天到此为止。\n剩下的明天再说。\n手机安静地放在桌上。\n他忽然想起，多年以后重新收到消息的那一天。\n那几句关于过去的话，他至今还记得。\n他也没想到，隔了那么久，自己竟然还有那么多话想说。那些曾经没能说出口的，后来反复想起的，就这样一段接一段地写了出来。\n屏幕另一端也传来很长的回复。\n那天聊了许久。\n如今再想起，仍然会有些感触。\n后来，日子便渐渐恢复了熟悉的模样。\n偶尔聊聊工作，分享些生活里的见闻。有时候说得多些，有时候便各自去忙。\n明明已经生活在同一座城市，却始终没能真正见上一面。\n说来也有些奇怪。\n他偶尔会想，哪天若能找个地方坐坐，大概也还是聊些寻常的话题。\n不过真到了那时候，想必又有些不同。\n日子就这样一天天过去。\n音乐不知什么时候放完了。\n夜已经深了。\n他关掉电脑，又把桌上的杯子拿去洗干净。\n走到阳台边时，忍不住又看了一眼那盆刚发芽的植物。\n小小的叶片还没有完全展开，颜色倒是比前几天更绿了一些。\n他拿起手机拍了一张。\n照片里，那点绿色显得很不起眼。调整了两次角度，效果也没有好多少。\n算了。\n他把照片存进相册，想着明天白天光线好些再拍。\n手机恰好亮了起来。\n他看了一眼，笑了笑，靠着阳台的栏杆回了几句话。\n这些年，许多事情都变了。倒是这样的时刻，似乎始终有些特别。\n远处传来一阵救护车的警笛声，很快又消失在车流之中。\n城市依旧灯火通明。\n他又站了一会儿，才回到屋里。\n明天大概又会是普通的一天。\n起床，上班，处理项目上的事情。下班后回来做饭，听歌，看看阳台上的植物有没有什么变化。\n也许还会有些新的见闻，值得拿出来讲一讲。\n他拉上窗帘，关掉了灯。\n夜已经很深了。\n一切如常。\n","date":"2026-10-18","externalUrl":null,"permalink":"/2026/10/18/ru-chang/","section":"文章","summary":"明天大概又会是普通的一天。","title":"如常","type":"posts"},{"content":"","date":"2026-10-18","externalUrl":null,"permalink":"/posts/","section":"文章","summary":"","title":"文章","type":"posts"},{"content":"","date":"2026-10-18","externalUrl":null,"permalink":"/","section":"咸鱼的小站","summary":"","title":"咸鱼的小站","type":"page"},{"content":"","date":"2026-10-18","externalUrl":null,"permalink":"/tags/%E5%B0%8F%E8%AF%B4/","section":"Tags","summary":"","title":"小说","type":"tags"},{"content":"","date":"2024-12-04","externalUrl":null,"permalink":"/tags/golang/","section":"Tags","summary":"","title":"Golang","type":"tags"},{"content":"","date":"2024-12-04","externalUrl":null,"permalink":"/tags/rust/","section":"Tags","summary":"","title":"Rust","type":"tags"},{"content":"","date":"2024-12-04","externalUrl":null,"permalink":"/tags/%E5%88%86%E4%BA%AB/","section":"Tags","summary":"","title":"分享","type":"tags"},{"content":"","date":"2024-12-04","externalUrl":null,"permalink":"/tags/%E6%8E%A8%E8%8D%90/","section":"Tags","summary":"","title":"推荐","type":"tags"},{"content":"好久不见！\n由于工作过于繁忙以及游戏太好玩，鸽了大半年，今天老人作息，爬起来水一期\n为什么我热衷于使用golang及rust的程序 # 作为一名主机、数据库运维工程师，日常会遇到很多奇奇怪怪的环境，例如就经常遇到RHEL6甚至RHEL5的上古平台，这时候想要使用一些现代化的工具就几乎不用想了，因为要编译、安装甚至构建编译环境都极其困难（因为多数客户的设备都不会连接互联网）。\n此时golang及rust的优越性就体现出来了，以Golang为例，golang支持2.6.23及以上版本内核的任何Linux，也就是说RHEL6及以上的环境全部都能直接使用！直接把二进制包丢进去就可以了，属实过于方便。\n介绍一些好用的工具 # 接下来就给大伙看看我平时常用的一些好东西\nWEB服务器 # Caddy2 # 项目地址 一个非常好用的web服务器，🔒默认安全、支持HTTP3、支持自动签发续签SSL证书、强大的自定义功能以及丰富的插件！\n另外也欢迎使用我的客制化容器！\n系统监控项 # gotop # 项目地址 一个系统负载查看🇨🇭瑞士军刀\n可以非常方便地查看cpu、内存、进程、磁盘等信息\n一个小趣闻：原作者入了rust邪教跑去用rust重写了这个项目😆\nbottom # 项目地址\n项目地址\n另一个系统负载查看🇨🇭瑞士军刀\n可以非常方便地查看cpu、内存、进程、磁盘等信息\n另一个小趣闻：就是上面👆那个gotop的作者写的\nbandwhich # 项目地址 网络负载查看🇨🇭瑞士军刀\n可以非常方便地查看网络负载\nkyanos # 项目地址 使用ebpf黑科技的网络流量采集和分析工具\ntql！\ngdu # 项目地址 磁盘占用分析工具\n网络安全工具 # fscan # 项目地址 大名鼎鼎的fscan，网安小助手\n一般我只用来扫描网段用\nDNS # doggo # 项目地址 更加现代化的DNS命令行查询工具\n由于dig用习惯了所以其实这个我用的挺少\n","date":"2024-12-04","externalUrl":null,"permalink":"/2024/12/04/golang-rust-application-recommendations-ep01/","section":"文章","summary":"","title":"我常用的那些golang与rust程序-EP01","type":"posts"},{"content":"","date":"2024-05-06","externalUrl":null,"permalink":"/tags/aix/","section":"Tags","summary":"","title":"AIX","type":"tags"},{"content":"由于未来工作中会接触AIX系统，所以想尝试熟悉一下这个来自IBM的神奇闭源类Unix系统\n前置准备 # 一台使用Linux操作系统的计算机（其实其他系统也行） 完整的kvm虚拟化环境（如果没有，可以参考这篇文章进行环境的安装） AIX系统镜像，此处使用AIX 7.2 安装qemu_system_ppc # 由于KVM的安装并不会附带安装上不同架构的模拟软件，所以此处需要进行额外的安装\napt install qemu-system -y 等待安装完成后，我们的x86电脑就可以完整模拟包含Power架构在内的各类系统架构了\n正片 # 接下来就进入正式的安装流程了\n在本次实验中，所有的文件，例如虚拟磁盘、AIX的iso文件，都会放在当前目录下进行\n创建虚拟磁盘 # 如同使用virt-manager创建虚拟机一样（虽然没有GUI，但又不是不能用）\n需要为虚拟机创建一个虚拟磁盘\nqemu-img create -f qcow2 aix.qcow2 100G 开始安装 # 从网络上下载的AIX安装光盘镜像有两个镜像文件\naix_7200-04-02-2027_1of2_072020.iso aix_7200-04-02-2027_2of2_072020.iso 实际在安装过程中仅需挂载第一个即可\n下面是安装系统时的命令\nqemu-system-ppc64 \\ -cpu POWER8 \\ -machine pseries \\ -m 8192 \\ -serial stdio \\ -drive file=aix.qcow2,if=none,id=drive-virtio-disk0 \\ -device virtio-scsi-pci,id=scsi \\ -device scsi-hd,drive=drive-virtio-disk0 \\ -cdrom ./aix_7200-04-02-2027_1of2_072020.iso \\ -prom-env \u0026#34;boot-command=boot cdrom:\u0026#34; \\ -display none 让我们先来逐行解读上面的命令：\n-cpu POWER8: 指定虚拟机使用 POWER8 处理器。 -machine pseries: 设置虚拟机的机器类型为 pseries。 -m 8192: 设置虚拟机的内存为 8192 MB（8 GB）。 -serial stdio: 将虚拟机的串行控制台重定向到标准输入/输出。 -drive file=aix.qcow2,if=none,id=drive-virtio-disk0: 创建一个虚拟磁盘驱动器，映射到名为 aix.qcow2 的 QCOW2 格式的磁盘文件。 -device virtio-scsi-pci,id=scsi: 创建一个 Virtio SCSI 控制器，并指定其 ID 为 scsi。 -device scsi-hd,drive=drive-virtio-disk0: 将之前创建的虚拟磁盘驱动器连接到 Virtio SCSI 控制器上。 -cdrom ./aix_7200-04-02-2027_1of2_072020.iso: 将名为 aix_7200-04-02-2027_1of2_072020.iso 的 ISO 文件挂载为虚拟机的光驱。 -prom-env \u0026quot;boot-command=boot cdrom:\u0026quot;: 设置 Open Firmware 环境变量，指定虚拟机启动时从光驱启动。 -display none: 禁用图形显示，虚拟机将没有图形界面，所有操作通过命令行或串行控制台进行。 运行后不出意外的话就正常跑起来了\n安装配置 # 安装时会出现下图的情况\n根据提示，我们扣1并回车\n下一步会让我们选择语言，此处自然是直接回车默认使用英语安装\n默认情况下AIX并不会主动安装上openssh，这里推荐先安装上，以便进入系统后的连接。这里我们输入2并回车\n输入4查看更多选项\n这里可以看到我们到OpenSSH Client和OpenSSH Server均没有安装，此处分别输入3和4并回车即可将其更改为安装系统时附带将OpenSSH Client和OpenSSH Server一并安装上\n完成操作后输入99并回车两次，返回到最开始的安装界面\n进入上图页面后直接回车两次开始安装\n接下去就是极其漫长的安装等待，此处建议搓一把炉石\n安装完成后会疯狂重启，此时使用ctrl+c退出，下面我们要为设备添加虚拟网卡（注意，此网卡是临时添加的，重启后会消失）\nsudo ip tuntap add tap0 mode tap sudo ip link set tap0 up sudo ip a add 10.233.11.1/24 dev tap0 准备完成后就可以开始初始化系统了\nAIX，启动！ # 使用下面的命令启动AIX\nqemu-system-ppc64 \\ -cpu POWER8 \\ -machine pseries \\ -m 8192 \\ -serial mon:stdio \\ -drive file=aix.qcow2,if=none,id=drive-virtio-disk0 \\ -device virtio-scsi-pci,id=scsi \\ -device scsi-hd,drive=drive-virtio-disk0 \\ -prom-env boot-command=\u0026#39;boot disk:\u0026#39; \\ -display none \\ -net nic \\ -net tap,script=no,ifname=tap0 经过漫长的等待就进入系统初始化界面了\n此处输入vt100，接下去会跳是否接受许可，选中Accept Licence Agreements并回车\n此处有个大坑，我尝试了好久都没法把下图的no改成yes，既不是直接输入也不是用过左右键选择，而是使用tab键\u0026hellip;\u0026hellip;\n回车后使用f3退出即可回到配置界面进行其他例如时区、密码的配置了\n在此界面设置完毕后直接f3退出，可以进入Shell 界面\n配置IP # 使用下面这个命令配置IP\nchdev -l en0 -a netaddr=10.233.11.10 -a netmask=255.255.255.0 -a state=up 完成后就可以尝试ssh连接了\n后记 # IBM的操作逻辑设计还是挺怪的，也可能是我不会用导致的，总之，慢慢来吧！\n为啥没有直接用virt-manager 创建 # https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1571075\n根据上面的内容可知遇到无法正常创建虚拟机的并非只有我一人，并且似乎并没有打算修的样子，命令行凑合用吧。\n参考文章 # QEMU 网络配置一把梭 Run AIX 7.2 on x86 with QEMU Cannot Accept License Agreement on Smit Install? ","date":"2024-05-06","externalUrl":null,"permalink":"/2024/05/06/AIX/welcome-AIX/","section":"文章","summary":"","title":"AIX系统初体验","type":"posts"},{"content":"","date":"2024-05-06","externalUrl":null,"permalink":"/tags/ibm/","section":"Tags","summary":"","title":"IBM","type":"tags"},{"content":"","date":"2024-05-06","externalUrl":null,"permalink":"/tags/%E6%95%99%E7%A8%8B/","section":"Tags","summary":"","title":"教程","type":"tags"},{"content":"好久没水文章了，在wjh师傅的催更下来写一篇。\n前情提要 # 过去我曾写过一篇subconverter订阅转换及搭配 clash 使用教程\n简要介绍了一下subconverter和clash的使用小技巧\n本篇将要在原基础上更进一步，透过自定义的subconverter来获得更好的上网体验\n本文所解决的问题 # 会想要做进一步的修改自然是因为实际使用遇到了一些问题：\nClash存在DNS泄露 使用FakeIP后公司内网的DNS解析无法正常获取 国域网访问比蜗牛还慢 实际上，为了方便大家使用，已经创建了一个项目来存放相关配置以及创建容器镜像来（如果可以请给我的项目加星 orz ）\n实际解决思路 # 解决DNS泄露问题 # 首先就是修改外部配置文件了，在subconverter订阅转换及搭配 clash 使用教程所介绍的配置目前已不太适用，请参考下面的配置\n[custom] ;不要随意改变关键字，否则会导致出错 ;设置规则标志位 ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/UnBan.list ruleset=🛑 全球拦截,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanAD.list ruleset=Google,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Google.list ruleset=Google,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/GoogleFCM.list ruleset=Google,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/GoogleCN.list ruleset=Google,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/GoogleCNProxyIP.list ruleset=📺 巴哈姆特,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Bahamut.list ruleset=📺 Youtube,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/YouTubeMusic.list ruleset=📺 Youtube,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/YouTube.list ruleset=🔰 节点选择,rules/ConnersHua/Surge/Ruleset/Global.list ruleset=🍎 苹果服务,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Apple.list ruleset=⚙️ 开发者,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Developer.list ruleset=⚙️ 开发者,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Github.list ruleset=Netflix,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Netflix.list ruleset=Netflix,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/NetflixIP.list ruleset=🔞 R18,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Porn.list ruleset=🖼️ Pixiv,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Pixiv.list ruleset=⚙️ 开发者,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Developer.list ruleset=⚙️ 开发者,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Github.list ruleset=Disney+,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/DisneyPlus.list ruleset=✈️ Telegram,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Telegram.list ruleset=🪟 巨硬服务,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Microsoft.list ruleset=🪟 巨硬服务,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/OneDrive.list ruleset=🎮 Xbox,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Xbox.list ruleset=🕹︎ Nintendo,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Nintendo.list ruleset=🖥️ PC游戏平台,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Epic.list ruleset=🖥️ PC游戏平台,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Steam.list ruleset=🖥️ PC游戏平台,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/Blizzard.list ruleset=🤖 AI相关,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Ruleset/OpenAi.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaIpV6.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Download.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/UnBan.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaDomain.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaMedia.list ruleset=REJECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanAD.list ruleset=REJECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/BanProgramAD.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaCompanyIp.list ruleset=DIRECT,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/ChinaIp.list ruleset=DIRECT,[]GEOIP,CN,no-resolve ruleset=🐟 漏网之鱼,[]FINAL ;设置规则标志位 ;设置分组标志位 custom_proxy_group=🔰 节点选择`select`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]流媒体`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=✈ 手动选择`select`.* custom_proxy_group=Disney+`select`[]🔰 节点选择`[]🇹🇼 台湾地区`[]🇸🇬 新加坡`[]🇹🇼🇸🇬 中文地区`[]流媒体`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=Google`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=📺 Youtube`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=⚙️ 开发者`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=🕹︎ Nintendo`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=🖥️ PC游戏平台`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=🎮 Xbox`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=🤖 AI相关`select`[]🔰 节点选择`[]🇹🇼 台湾地区`[]🇸🇬 新加坡`[]🇹🇼🇸🇬 中文地区`[]流媒体`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=🖼️ Pixiv`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=✈️ Telegram`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=📺 巴哈姆特`select`[]🇹🇼 台湾地区`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`(台) custom_proxy_group=🍎 苹果服务`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=🪟 巨硬服务`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=🔞 R18`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=Netflix`select`[]🔰 节点选择`[]🇹🇼🇸🇬 中文地区`[]流媒体`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲及大洋洲`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼 台湾地区`[]🇸🇬 新加坡`[]🇯🇵 日本国`[]🪙超低倍率0.2`[]DIRECT custom_proxy_group=🌏 全球直连`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=🛑 全球拦截`select`[]REJECT`[]DIRECT custom_proxy_group=🐟 漏网之鱼`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=✈ 延迟最低`url-test`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=✈ 故障切换`fallback`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=🌏 亚洲及大洋洲`url-test`(台|新|日|韩|马来|印度|澳大利亚｜新西兰)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🌍 欧洲及中东地区`url-test`(英|法|德|阿姆斯特丹|荷兰|土耳其|比利时|瑞士)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇺🇸🇨🇦 北美通用`url-test`(美|加拿)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇹🇼🇸🇬 中文地区`url-test`(台|新)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇹🇼 台湾地区`url-test`(台)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇯🇵 日本国`url-test`(日)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇸🇬 新加坡`url-test`(新加坡|R新|s新)`http://www.gstatic.com/generate_204`500 custom_proxy_group=流媒体`url-test`(R台|s台|R新|s新|流|流媒体)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🪙超低倍率0.2`url-test`(0.2)`http://www.gstatic.com/generate_204`500 ;设置分组标志位 enable_rule_generator=true overwrite_original_rules=true exclude_remarks=(到期|官方|Traffic|Expire|剩余|时间|官网|产品|香港|俄罗斯) enable_rule_generator=true overwrite_original_rules=true 添加redir-port配置 # redir-port是Linux 系统中iptables 的一个模块，它可以将来自特定来源IP 地址和端口的网络流量重定向到另一个目标IP 地址和端口。 这是一种防火墙规则，通常用于将内部网络中的流量重定向到特定的服务器或服务上，或者将流量从一个端口重定向到另一个端口\n具体请看 项目地址\n为subconverter添加DNS部分的配置模板 # 由于subconverter默认转换时并不会附带DNS部分的配置，需要客户端进行添加，所以在这里我们直接通过修改subconverter的模板来实现向配置文件添加\ndns: enable: true listen: 127.0.0.1:8853 default-nameserver: - 223.5.5.5 - 8.8.4.4 ipv6: false enhanced-mode: fake-ip nameserver: - 119.29.29.29 - 223.5.5.5 - tls://223.5.5.5:853 - tls://223.6.6.6:853 - tls://120.53.53.53 - tls://1.12.12.12 fallback: - https://1.0.0.1/dns-query - https://public.dns.iij.jp/dns-query - tls://8.8.4.4:853 fallback-filter: geoip: false ipcidr: - 240.0.0.0/4 - 0.0.0.0/32 - 127.0.0.1/32 domain: - +.facebook.com - +.twitter.com - +.google.com - +.googleapis.com - +.google.cn - +.googleapis.cn - +.xn--ngstr-lra8j.com - +.googlevideo.com - +.gvt1.com - +.gmail.com - +.youtube.com - +.youtu.be - +.gvt0.com - +.gvt2.com - +.gvt3.com - +.gstatic.com - +.265.com - +.2mdn.net - +.app-measurement.com - +.c.admob.com - +.clickserve.dartsearch.net - +.crl.pki.goog - +.doubleclick.net - +.firebase-settings.crashlytics.com - +.google-analytics.com - +.googleadservices.com - +.googleanalytics.com - +.googleoptimize.com - +.googlesyndication.com - +.googletagmanager.com - +.googletagservices.com fake-ip-filter: {% include \u0026#34;include/cn-list.txt\u0026#34; %} {% include \u0026#34;include/a-list.txt\u0026#34; %} 具体请看 项目地址\nfake-ip-filter # fake-ip-filter 部分所添加的为国域网的域名清单，这边默认给的不多，也就七万多条，其作用是当DNS查询匹配这些域名时，并不会使用FakeIP，而是返回正确的解析，一方面这能提高国域网的访问速度，另一方面，你也可以通过添加自定义的内容（例如公司内网的域名）来获取真实的地址，防止开启代理的同时无法正常访问内网网站\n如果你有自己的订阅转换服务器可以参考下面的方法进行自定义：\n首先运行一个容器\ndocker run --name tester mrxianyu/subconverter:latest 将容器内的all_base.tpl拷贝至本地的项容器目文件夹中（下面操作均是在本地的项容器目文件夹中进行的）\ndocker cp tester:/base/base/all_base.tpl ./ 将include文件夹拷贝出来\ndocker cp tester:/base/include ./ 此处我们假设需要自定义的域名列表（格式参考include文件夹下已存在的文件）写在include/URL.txt中\n接着我们向的all_base.tpl中的fake-ip-filter部分写入引用这个文件\n.............. - +.firebase-settings.crashlytics.com - +.google-analytics.com - +.googleadservices.com - +.googleanalytics.com - +.googleoptimize.com - +.googlesyndication.com - +.googletagmanager.com - +.googletagservices.com fake-ip-filter: {% include \u0026#34;include/cn-list.txt\u0026#34; %} {% include \u0026#34;include/a-list.txt\u0026#34; %} {% include \u0026#34;include/URL.txt\u0026#34; %} ............. 最后使用如下示例dockercompose文件启用正式的订阅转换服务器即可\nversion: \u0026#39;3\u0026#39; services: app: image: mrxianyu/subconverter container_name: subconverter restart: unless-stopped volumes: - ./pref.toml:/base/pref.toml:ro - ./include:/base/include:ro ports: - \u0026#39;25500:25500\u0026#39; ","date":"2024-04-09","externalUrl":null,"permalink":"/2024/04/09/sub-server-re/","section":"文章","summary":"","title":"subconverter进阶使用教学","type":"posts"},{"content":"","date":"2023-11-30","externalUrl":null,"permalink":"/tags/git/","section":"Tags","summary":"","title":"Git","type":"tags"},{"content":"由于众所周知的原因github的项目拉取和推送非常的痛苦，此篇以记录相关方法以拯救青年失智的我\n使用方法 # 确保已有http或socks代理，此处以http://127.0.0.1:1080和socks5://127.0.0.1:1081为例\n全局配置 # 使用以下命令配置HTTP代理：\ngit config --global http.proxy http://127.0.0.1:1080 git config --global https.proxy http://127.0.0.1:1080 使用以下命令配置SOCKS代理：\ngit config --global http.proxy socks5://127.0.0.1:1081 git config --global https.proxy socks5://127.0.0.1:1081 为特定目标进行设置 # 以为github设置为例\ngit config --global http.https://github.com.proxy socks5://127.0.0.1:1081","date":"2023-11-30","externalUrl":null,"permalink":"/2023/11/30/git-proxy/","section":"文章","summary":"由于众所周知的原因github的项目拉取和推送非常的痛苦，此篇以记录相关方法以拯救青年失智的我\n","title":"Git设置代理","type":"posts"},{"content":"","date":"2023-11-30","externalUrl":null,"permalink":"/tags/%E6%95%99%E5%AD%A6/","section":"Tags","summary":"","title":"教学","type":"tags"},{"content":"","date":"2023-11-03","externalUrl":null,"permalink":"/tags/docker/","section":"Tags","summary":"","title":"Docker","type":"tags"},{"content":"好像拖更有点久，我记得上一次写文章还是在上一次\u0026hellip;\u0026hellip;\n最近好多服务都开始用自己手搓的容器了，由于众所周知的原因，拉取很多项目的代码的体验会很差，在build阶段挂上代理就显得很重要了。\n设备及软件说明 # 本次演示使用的计算机操作系统为 Ubuntu 22.04LTS ，其他操作系统的方法基本一致。\n软件方面有如下配置：\nDocker version 24.0.7 Docker Compose version v2.22.0 本机HTTP代理软件，默认监听本机的所以网卡的8080端口 ufw ufw-docker (一个用于解决docker导致ufw防火墙失效的小工具) 实验过程 # 本次实验以 Caddy2 的容器为例\n确认docker默认网卡的配置 # 通常情况下Linux的Docker默认网卡名为 docker0 ，默认IP及其网段信息一般情况下是 172.17.0.1/16 ，在运行build命令时临时容器将会在这张网卡的网段下，所以需要明确这张网卡的配置信息，以方便后续配置本地HTTP代理的地址，以及如果你跟我一样开启了防火墙的情况下开放端口使用。\n首先可以运行以下命令查看网卡信息\nip a show docker0 你会得到类似如下的输出\nxianyu@book:/home/xianyu $ ip a show docker0 14: docker0: \u0026lt;BROADCAST,MULTICAST,UP,LOWER_UP\u0026gt; mtu 1500 qdisc noqueue state UP group default link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 valid_lft forever preferred_lft forever 如果你不打算修改默认配置的话就可以看下一节了，但如果你觉得默认网段有问题（不少企业网络会使用172的网段作为内网的地址段，会有比较大的概率冲突），那么就可以修改默认的网段。\n修改默认网段 # 修改默认网段的方法非常简单，只需向 /etc/docker/daemon.json 中添加如下配置\n{ \u0026#34;bip\u0026#34;:\u0026#34;10.233.0.1/24\u0026#34; } 并重启docker即可\nsystemctl restart docker 同样的，重启后通过以下命令验证网段是否修改成功\nxianyu@book:/home/xianyu $ ip a show docker0 14: docker0: \u0026lt;BROADCAST,MULTICAST,UP,LOWER_UP\u0026gt; mtu 1500 qdisc noqueue state UP group default link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff inet 10.233.0.1/24 brd 10.233.0.255 scope global docker0 valid_lft forever preferred_lft forever 开放防火墙端口 # 由于目前IPv6的逐渐普及，计算机不开放防火墙会有极大的安全风险，所以在我的本地环境中是启用防火墙的\n在上一节中我们提到了默认网卡的网段问题，此时我们可以知道默认网卡的网段为 10.233.0.0/24 本机作为网关在这个网段中的地址为 10.233.0.1\n我们希望这个网段中的容器可以访问本机的HTTP代理服务，即我们需要添加一条ufw规则以允许来自 10.233.0.0/24 的请求访问 10.233.0.1:8080 ，具体的ufw命令如下\nufw allow from 10.233.0.0/24 to 10.233.0.1 port 8080 编辑Dockerfile # 做好上述准备我们就可以开始配置容器的HTTP代理了\n本次实际案例为编译一个包含自定义插件的Caddy2容器，依照官方文档原始的Dockerfile长这样：\nFROM caddy:builder AS builder RUN xcaddy build \\ --with github.com/caddy-dns/cloudflare FROM caddy COPY --from=builder /usr/bin/caddy /usr/bin/caddy 可以看到在 RUN 当中我们需要从Github拉取我们需要的代码，但实际上由于网络环境问题很难正常拉取到，此时我们可以在这里加入HTTP代理的变量使其拉取时走本机的代理\nFROM caddy:builder AS builder ENV http_proxy=http://10.233.0.1:8080 ENV https_proxy=http://10.233.0.1:8080 RUN xcaddy build \\ --with github.com/caddy-dns/cloudflare FROM caddy COPY --from=builder /usr/bin/caddy /usr/bin/caddy 经过上述处理即可愉快的手搓容器了。\n","date":"2023-11-03","externalUrl":null,"permalink":"/2023/11/03/docker/docker-build-proxy/","section":"文章","summary":"好像拖更有点久，我记得上一次写文章还是在上一次……\n","title":"Docker Build 配置代理","type":"posts"},{"content":"","date":"2023-11-03","externalUrl":null,"permalink":"/tags/proxy/","section":"Tags","summary":"","title":"Proxy","type":"tags"},{"content":"","date":"2023-06-01","externalUrl":null,"permalink":"/tags/dhcp/","section":"Tags","summary":"","title":"DHCP","type":"tags"},{"content":"别问，问就是在摆烂\n写在前面 # 因为isc-dhcp项目目前已不再更新，转向开发kea DHCP了，从官方的介绍中我们可以了解到kea DHCP有以下优点：\n灵活性：Kea DHCP 提供了广泛的配置选项和灵活的扩展机制，可以根据不同的网络需求进行高度定制。它支持动态更新配置、灵活的租约管理、多种地址分配策略以及丰富的选项定义。\n性能和可扩展性：Kea DHCP 通过优化的设计和实现，具有出色的性能和可扩展性。它采用了多线程和异步处理，以处理大规模网络环境下的高并发请求，并能有效地管理大量的租约信息。\n强大的管理和监控功能：Kea DHCP 提供了丰富的管理和监控功能，可通过命令行工具或REST API进行配置、状态查询和统计数据收集。管理员可以轻松地监视服务器状态、租约信息、日志记录，并进行动态配置和管理。\n安全性：Kea DHCP 提供了安全的通信和认证机制，以保护服务器和客户端之间的通信安全。它支持TLS加密和身份验证，可以防止未经授权的访问和数据泄露。\n兼容性：Kea DHCP 兼容标准的DHCPv4和DHCPv6协议，并支持常见的客户端操作系统和网络设备。它还支持动态DNS（DDNS）更新、网站指导模式（Captive Portal）、PXE引导、客户端分类和挂钩脚本等功能。\n注意，这是官方说法，我也信了，但最后为什么选择不迁移了呢？且听我娓娓道来\n环境介绍 # 这次测试使用的环境是在KVM虚拟化的环境中进行的，使用172.18.146.0/24作为测试网段 DHCP服务器将架设在一台运行UbuntuServer 22.04.2 LTS的虚拟机上，仅启用DHCPv4（v6用不上），此外是直接用root用户操作的（我懒得打sudo）\n设备 IP 操作系统 DHCP Server 172.18.146.53 UbuntuServer 22.04.2 LTS User DHCPv4 Windows 10 Pro 安装软件 # 安装kea可以直接使用apt进行安装，也可以编译安装，这里我们两者都会介绍到。\n软件源安装 # 这种方法非常简单，一条命令即可完成安装\napt update \u0026amp;\u0026amp; apt install kea 上述命令将会自动安装kea在软件源中的所有软件（但不是所有其项目的所有软件，后面会说）\n以下是源中所有可选安装的组件\nkea kea-ctrl-agent kea-dhcp4-server kea-admin kea-dev kea-dhcp6-server kea-common kea-dhcp-ddns-server kea-doc 在本次实验中，使用下面的命令安装部分必要的组件即可\napt update \u0026amp;\u0026amp; apt install kea-ctrl-agent kea-dhcp4-server kea-admin 安装好后配置文件均位于/etc/kea文件夹中\n为什么不推荐源安装 # 源中的软件包缺失了很多kea所推荐或是新增的功能，例如源安装的kea并不能正常的与数据库进行交互（似乎是源预编译没有使用相关选项进行编译），同时缺失了hooks的支持，在版本上，也比官方的落后一些（目前ubuntu源的kea组件是2.0.2版本的）\n源码安装 # 源码安装的好处是可以用上kea的所有功能，缺点是需要忍受很长的编译时间。 本次实验环境所编译的包为构建用于和mysql（也可以是mariadb）交互的。\n安装编译所需包 # 首先根据官方文档所要求的安装编译所需的软件\napt install git curl libboost-all-dev openssl git g++ libssl-dev liblog4cplus-dev liblog4cplus-2.0.5 make cmake -y 由于需要在编译时加上--with-mysql的选项，所以需要额外安装以下的包\napt install mysql-client libmysqlclient-dev 拉取源码 # 直接从官方仓库拉取即可\ngit clone https://gitlab.isc.org/isc-projects/kea.git 编译并安装软件 # 进入项目文件夹 # cd kea/ 生成配置文件 # autoreconf -i 生成构建环境 # 由于我们需要使用mysql数据库，所以此处需要加上\u0026ndash;with-mysql`的选项\n./configure --with-mysql 编译软件 # 通常情况下会花费很多时间，可以先出门吃个饭\nmake 安装 # make install 更新链接缓存 # cd /usr/local/lib ldconfig 依照上述方法编译后配置文件夹默认位置为软件安装位置下的etc/kea子文件夹中\n正式使用及配置文件解析 # 完成上一节操作后就可以正式开始使用kea了，但是！这里就要说一说kea不好的地方了，kea的配置文件，是json的格式，这意味着，会有一大堆的括号，极不利于阅读\n简易使用教学 # kea可以通过keactrl来启用各项服务（其实systemctl也可以用，如果是从源码编译的systemctl命令不能开箱即用），例如可以使用以下命令查看服务状态\nroot@testserver:/home/app/kea# keactrl status DHCPv4 server: active DHCPv6 server: active DHCP DDNS: active Control Agent: active Kea DHCPv4 configuration file: /etc/kea/kea-dhcp4.conf Kea DHCPv6 configuration file: /etc/kea/kea-dhcp6.conf Kea DHCP DDNS configuration file: /etc/kea/kea-dhcp-ddns.conf Kea Control Agent configuration file: /etc/kea/kea-ctrl-agent.conf keactrl configuration file: /etc/kea/keactrl.conf 可以看到各项服务都启动了\n在不添加选项的情况下，keactrl start将会根据配置文件夹下的keactrl.conf配置文件的内容来启动相关服务，例如我们不想启动DHCPv6的服务的话就可以将配置文件中的\n# Start DHCPv6 server? dhcp6=yes 改成\n# Start DHCPv6 server? dhcp6=no 配置文件解析 # 此处我们以DHCPv4来说（别的我也不想用）,下面是一个配置文件的节选（不用仔细看，我会将其拆分的更仔细，仅注意我所添加的分割线即可）\n\u0026#34;Dhcp4\u0026#34;: { \u0026#34;interfaces-config\u0026#34;: { \u0026#34;interfaces\u0026#34;: [ ] }, // ################################ 此处分割 ####################################### \u0026#34;control-socket\u0026#34;: { \u0026#34;socket-type\u0026#34;: \u0026#34;unix\u0026#34;, \u0026#34;socket-name\u0026#34;: \u0026#34;/tmp/kea4-ctrl-socket\u0026#34; }, // ################################ 此处分割 ####################################### \u0026#34;lease-database\u0026#34;: { // Memfile is the simplest and easiest backend to use. It\u0026#39;s an in-memory // C++ database that stores its state in CSV file. \u0026#34;type\u0026#34;: \u0026#34;memfile\u0026#34;, \u0026#34;lfc-interval\u0026#34;: 3600 }, \u0026#34;hosts-database\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;mysql\u0026#34;, \u0026#34;name\u0026#34;: \u0026#34;kea\u0026#34;, \u0026#34;user\u0026#34;: \u0026#34;kea\u0026#34;, \u0026#34;password\u0026#34;: \u0026#34;kea\u0026#34;, \u0026#34;host\u0026#34;: \u0026#34;localhost\u0026#34;, \u0026#34;port\u0026#34;: 3306 }, // ################################ 此处分割 ####################################### \u0026#34;expired-leases-processing\u0026#34;: { \u0026#34;reclaim-timer-wait-time\u0026#34;: 10, \u0026#34;flush-reclaimed-timer-wait-time\u0026#34;: 25, \u0026#34;hold-reclaimed-time\u0026#34;: 3600, \u0026#34;max-reclaim-leases\u0026#34;: 100, \u0026#34;max-reclaim-time\u0026#34;: 250, \u0026#34;unwarned-reclaim-cycles\u0026#34;: 5 }, \u0026#34;renew-timer\u0026#34;: 900, \u0026#34;rebind-timer\u0026#34;: 1800, \u0026#34;valid-lifetime\u0026#34;: 3600, \u0026#34;option-data\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;domain-name-servers\u0026#34;, \u0026#34;data\u0026#34;: \u0026#34;192.0.2.1, 192.0.2.2\u0026#34; }, { \u0026#34;code\u0026#34;: 15, \u0026#34;data\u0026#34;: \u0026#34;example.org\u0026#34; }, { \u0026#34;name\u0026#34;: \u0026#34;domain-search\u0026#34;, \u0026#34;data\u0026#34;: \u0026#34;mydomain.example.com, example.com\u0026#34; }, { \u0026#34;name\u0026#34;: \u0026#34;boot-file-name\u0026#34;, \u0026#34;data\u0026#34;: \u0026#34;EST5EDT4\\\\,M3.2.0/02:00\\\\,M11.1.0/02:00\u0026#34; }, { \u0026#34;name\u0026#34;: \u0026#34;default-ip-ttl\u0026#34;, \u0026#34;data\u0026#34;: \u0026#34;0xf0\u0026#34; } ], // ################################ 此处分割 ####################################### \u0026#34;client-classes\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;voip\u0026#34;, \u0026#34;test\u0026#34;: \u0026#34;substring(option[60].hex,0,6) == \u0026#39;Aastra\u0026#39;\u0026#34;, \u0026#34;next-server\u0026#34;: \u0026#34;192.0.2.254\u0026#34;, \u0026#34;server-hostname\u0026#34;: \u0026#34;hal9000\u0026#34;, \u0026#34;boot-file-name\u0026#34;: \u0026#34;/dev/null\u0026#34; } ], // ################################ 此处分割 ####################################### // \u0026#34;hooks-libraries\u0026#34;: [ // { // // Forensic Logging library generates forensic type of audit trail // // of all devices serviced by Kea, including their identifiers // // (like MAC address), their location in the network, times // // when they were active etc. // \u0026#34;library\u0026#34;: \u0026#34;/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_legal_log.so\u0026#34;, // \u0026#34;parameters\u0026#34;: { // \u0026#34;path\u0026#34;: \u0026#34;/var/lib/kea\u0026#34;, // \u0026#34;base-name\u0026#34;: \u0026#34;kea-forensic4\u0026#34; // } // }, // { // // Flexible identifier (flex-id). Kea software provides a way to // // handle host reservations that include addresses, prefixes, // // options, client classes and other features. The reservation can // // be based on hardware address, DUID, circuit-id or client-id in // // DHCPv4 and using hardware address or DUID in DHCPv6. However, // // there are sometimes scenario where the reservation is more // // complex, e.g. uses other options that mentioned above, uses part // // of specific options or perhaps even a combination of several // // options and fields to uniquely identify a client. Those scenarios // // are addressed by the Flexible Identifiers hook application. // \u0026#34;library\u0026#34;: \u0026#34;/usr/lib/x86_64-linux-gnu/kea/hooks/libdhcp_flex_id.so\u0026#34;, // \u0026#34;parameters\u0026#34;: { // \u0026#34;identifier-expression\u0026#34;: \u0026#34;relay4[2].hex\u0026#34; // } // } // ], // ################################ 此处分割 ####################################### \u0026#34;subnet4\u0026#34;: [ { \u0026#34;subnet\u0026#34;: \u0026#34;192.0.2.0/24\u0026#34;, \u0026#34;pools\u0026#34;: [ { \u0026#34;pool\u0026#34;: \u0026#34;192.0.2.1 - 192.0.2.200\u0026#34; } ], \u0026#34;option-data\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;routers\u0026#34;, \u0026#34;data\u0026#34;: \u0026#34;192.0.2.1\u0026#34; } ], \u0026#34;reservations\u0026#34;: [ { \u0026#34;hw-address\u0026#34;: \u0026#34;1a:1b:1c:1d:1e:1f\u0026#34;, \u0026#34;ip-address\u0026#34;: \u0026#34;192.0.2.201\u0026#34; } ] } ], // ################################ 此处分割 ####################################### \u0026#34;loggers\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;kea-dhcp4\u0026#34;, \u0026#34;output_options\u0026#34;: [ { // Specifies the output file. There are several special values // supported: // - stdout (prints on standard output) // - stderr (prints on standard error) // - syslog (logs to syslog) // - syslog:name (logs to syslog using specified name) // Any other value is considered a name of the file \u0026#34;output\u0026#34;: \u0026#34;/var/log/kea-dhcp4.log\u0026#34; // Shorter log pattern suitable for use with systemd, // avoids redundant information // \u0026#34;pattern\u0026#34;: \u0026#34;%-5p %m\\n\u0026#34; // This governs whether the log output is flushed to disk after // every write. // \u0026#34;flush\u0026#34;: false, // This specifies the maximum size of the file before it is // rotated. // \u0026#34;maxsize\u0026#34;: 1048576, // This specifies the maximum number of rotated files to keep. // \u0026#34;maxver\u0026#34;: 8 } ], \u0026#34;severity\u0026#34;: \u0026#34;INFO\u0026#34;, \u0026#34;debuglevel\u0026#34;: 0 } ] } } 监听网卡配置 # 配置文件中的interfaces-config配置用于告诉软件应该监听什么端口，例如我们的网口为eth0，就应该将此项配置的\u0026quot;interfaces\u0026quot;: [ ]改为如下\n\u0026#34;interfaces\u0026#34;: [ \u0026#39;eth0\u0026#39; ] 数据库配置 # 数据库配置有两种，一种为以本地文件为数据库的形式，即下面这段\n\u0026#34;lease-database\u0026#34;: { // Memfile is the simplest and easiest backend to use. It\u0026#39;s an in-memory // C++ database that stores its state in CSV file. \u0026#34;type\u0026#34;: \u0026#34;memfile\u0026#34;, \u0026#34;lfc-interval\u0026#34;: 3600 }, 还有一种是真数据库，即下面这段\n\u0026#34;hosts-database\u0026#34;: { \u0026#34;type\u0026#34;: \u0026#34;mysql\u0026#34;, \u0026#34;name\u0026#34;: \u0026#34;kea\u0026#34;, \u0026#34;user\u0026#34;: \u0026#34;kea\u0026#34;, \u0026#34;password\u0026#34;: \u0026#34;kea\u0026#34;, \u0026#34;host\u0026#34;: \u0026#34;localhost\u0026#34;, \u0026#34;port\u0026#34;: 3306 }, 可以根据自己的实际情况选择使用哪一种\n全局的DHCP配置 # \u0026#34;expired-leases-processing\u0026#34;: { ....... }, \u0026#34;renew-timer\u0026#34;: 900, \u0026#34;rebind-timer\u0026#34;: 1800, \u0026#34;valid-lifetime\u0026#34;: 3600, \u0026#34;option-data\u0026#34;: [ ....... ], 上面这段为全局下的dhcp配置\nrenew-timer表示客户端在租约过期前需要发起续租（Renew）请求的时间间隔。在默认配置中，客户端应在租约过期前的几秒内发送续租请求。如果客户端成功续租，则租约会得到更新，继续使用同一IP地址 rebind-timer表示在租约过期后，如果客户端无法与原DHCP服务器通信，客户端可以向任意可用的DHCP服务器发送绑定（Rebind）请求的时间间隔。在默认配置中，客户端可以在租约过期后的几秒内发送绑定请求，以尝试绑定到任意可用的DHCP服务器并获取新的租约 valid-lifetime表示租约的有效期，即客户端可以使用分配的IP地址的时间长度。在默认配置中，客户端获得的租约将在几秒后过期，除非在此期间成功进行了续租。 option-data中所填入的为RFC2132定义的DHCP的各类功能相关的配置，基本格式如下\n{ \u0026#34;code\u0026#34;: 15, \u0026#34;data\u0026#34;: \u0026#34;example.org\u0026#34; }, 上面这段代码的含义是定义了DHCP服务器的域名（Domain Name，DHCP代码为15），下面是部分的DHCP代码表提供参考\nDHCP代码 含义 1 子网掩码（Subnet Mask） 2 时间偏移（Time Offset） 3 默认网关（Router） 4 时间服务器（Time Server） 5 名称服务器（Name Server） 6 DNS服务器（Domain Name Server） 7 日志服务器（Log Server） 8 Cookie服务器（Cookie Server） 9 LPR服务器（Line Printer Server） 12 主机名（Host Name） 15 域名（Domain Name） 17 根路径（Root Path） 18 扩展路径（Extensions Path） 19 IP层最大数据长度（IP Layer Maximum Datagram Size） 23 默认IP生存时间（Default IP Time-to-Live） 28 广播地址（Broadcast Address） 33 静态路由（Static Route） 43 供应商特定选项（Vendor Specific Information） 50 请求的IP地址（Requested IP Address） 51 租约时间（IP Address Lease Time） 53 DHCP消息类型（DHCP Message Type） 54 服务器标识（Server Identifier） 55 参数请求列表（Parameter Request List） 56 DHCP消息（Message） 57 最大DHCP消息大小（Maximum DHCP Message Size） 58 客户端唯一标识（Client Identifier） 59 客户端状态（Client System） 60 厂商类标识（Vendor class identifier） 61 客户机硬件地址（Client Identifier） 66 TFTP服务器名称（TFTP Server Name） 67 引导文件名称（Bootfile Name） 69 炸弹选项（DHCP Relay Agent Information） 150 TFTP服务器地址（TFTP Server Address） 需要注意，这是标准的DHCP协议的定义，虽然kea的软件是遵照标准所设计的，但在实际填写各选项时，请务必还是看一眼kea的官方文档，确定配置应如何编写\nkea扩展 # 在配置文件中为hooks-libraries段落，此为kea的高级应用，不说了（我懒）\n地址池配置 # 地址池配置为subnet4段落，下面是定义一个网段的配置\n{ \u0026#34;subnet\u0026#34;: \u0026#34;192.0.2.0/24\u0026#34;, \u0026#34;pools\u0026#34;: [ { \u0026#34;pool\u0026#34;: \u0026#34;192.0.2.1 - 192.0.2.200\u0026#34; } ], \u0026#34;option-data\u0026#34;: [ { \u0026#34;name\u0026#34;: \u0026#34;routers\u0026#34;, \u0026#34;data\u0026#34;: \u0026#34;192.0.2.1\u0026#34; } ], \u0026#34;reservations\u0026#34;: [ { \u0026#34;hw-address\u0026#34;: \u0026#34;1a:1b:1c:1d:1e:1f\u0026#34;, \u0026#34;ip-address\u0026#34;: \u0026#34;192.0.2.201\u0026#34; } ] } subnet: 定义一个子网，此处为 192.0.2.0/24，表示一个以 192.0.2.0 作为网络地址的CIDR形式的子网，子网掩码为255.255.255.0。 pools: 定义了一个地址池，其中包含一个范围。此处的地址池为 \u0026ldquo;192.0.2.1 - 192.0.2.200\u0026rdquo;，表示可用于分配的IP地址范围从192.0.2.1到192.0.2.200。 option-data: 定义了DHCP选项的数据。在这里，指定了一个名为 \u0026ldquo;routers\u0026rdquo; 的选项，其值为 192.0.2.1。这表示在DHCP租约期间，客户端将收到一个名为 \u0026ldquo;routers\u0026rdquo; 的选项，并且该选项的值将设置为 \u0026ldquo;192.0.2.1\u0026rdquo;，指示客户端使用该IP地址作为默认网关。这个定义仅适用于此地址池，且其优先级高于全局的option-data。 reservations: 定义了一个预留（reservation），用于为特定的客户端设备分配特定的IP地址。在此配置中，指定了一个硬件地址（hw-address）为 1a:1b:1c:1d:1e:1f 的设备，将被分配IP地址 192.0.2.201。 为什么最后又不选择使用kea DHCP？ # kea DHCP的模块化确实为部署提供了很多的选择，但这个模块化并不人性，并不是通过添加或删除可执行文件就可以增加或减少其功能的，而是需要进行编译。\nstork为kea官方所推荐使用的监控平台，但功能过于鸡肋。\n数据库方面没有很成熟的方式进行操作，交互上需要通过hook，并且如果要方便管理员使用则需要二次开发\njson格式的配置文件过于反人类，看的眼睛疼\n","date":"2023-06-01","externalUrl":null,"permalink":"/2023/06/01/Linux/tutorial/kea-dhcp/","section":"文章","summary":"","title":"kea DHCP 折腾小记","type":"posts"},{"content":"","date":"2023-06-01","externalUrl":null,"permalink":"/tags/linux/","section":"Tags","summary":"","title":"Linux","type":"tags"},{"content":"","date":"2023-02-08","externalUrl":null,"permalink":"/tags/openwrt/","section":"Tags","summary":"","title":"Openwrt","type":"tags"},{"content":"失踪几个月终于更新了\n前言 # 事情是这样的，早在2022年我换上了Pixe之后惊奇的发现android13默默移除了L2TP的支持，只能使用IPsec的VPN了，对于我这样的懒狗来说，配置IPsec是不可能的，这辈子都是不可能的\n所以！我换掉了原先家中使用的某品牌成品AC，改用支持wireguard的Openwrt开发板来作为主路由使用。并开始了这一次的折腾\n设备及环境介绍 # 在实作过程中，踩了不少坑，并且由于openwrt版本不同的情况下软件包会有一点区别，所以在此标注本次实操的系统版本等信息，需要注意：请保证两端LAN的网段不能有重合！\n设备 A地路由（拥有ipv4公网IP） B地路由（无ipv4公网IP） 系统版本 openwrt-22.03 openwrt-22.03 LAN口IP 192.168.10.1/24 192.168.20.1/24 wg网段IP 10.0.0.1/24 10.0.0.2/24 A地路由设置 # 添加防火墙 # 首先需要添加一个wireguard的防火墙区域，依照下图设置即可\n添加wireguard虚拟接口 # 在 网络-接口 页面新建一个接口，名字随意并选择协议为Wireguard VPN\n虚拟接口配置 # 点击生成新的密钥对生成本机的公钥和私钥，并填写下方监听端口我们规划好的此设备在wireguard虚拟网络中的ip\n记得配置此接口所在的防火墙区域\n到这里，我们就可以暂时保存端口的设置了，等B设备配置好后我们再回来配置对端设置。（其实此处可以先在这台路由上将B端的公私钥生成好并填写对端配置）\n配置静态路由 # 为了让局域网下的设备访问到对端网段下的设备，最好请添加以下静态路由（实测好像不加也没事）\n上图中的含义为：当接口区域wg有去往192.168.20.0/24网段的数据包时，将其网关设为本机在wireguard虚拟网络中的ip地址\nB地路由设置 # 添加防火墙 # 首先需要添加一个wireguard的防火墙区域，依照下图设置即可\n添加wireguard虚拟接口 # 在 网络-接口 页面新建一个接口，名字随意并选择协议为Wireguard VPN\n虚拟接口配置 # 点击生成新的密钥对生成本机的公钥和私钥，并填写下方我们规划好的此设备在wireguard虚拟网络中的ip，由于此地无公网ip所以监听端口是否配置其实无所谓（默认其实会开一个）\n记得配置此接口所在的防火墙区域\n配置对端（A地路由信息） # 在对端选项卡中添加一个对端，并填入A路由的对应信息 在允许的ip选项中除了要填A端路由在虚拟网络中的ip（10.0.0.1/24）外，要加A地LAN的网段（192.168.1.0/24）\n私钥和预共享密钥为可选项。\n配置静态路由 # 为了让局域网下的设备访问到对端网段下的设备，最好请添加以下静态路由（实测好像不加也没事）\n上图中的含义为：当接口区域wg有去往192.168.10.0/24网段的数据包时，将其网关设为本机在wireguard虚拟网络中的ip地址\nA地路由的对端设置 # 回到A地路由器的配置，我们将B端信息填入对端选项卡中并保存应用\n使配置生效 # 在保存并应用配置后就已完成所有配置项，但建议重启wg虚拟端口，最好直接重启路由器，以免系统抽风没有无法正常使用。\n","date":"2023-02-08","externalUrl":null,"permalink":"/2023/02/08/wireguard-connect/","section":"文章","summary":"失踪几个月终于更新了\n前言 # 事情是这样的，早在2022年我换上了Pixe之后惊奇的发现android13默默移除了L2TP的支持，只能使用IPsec的VPN了，对于我这样的懒狗来说，配置IPsec是不可能的，这辈子都是不可能的\n所以！我换掉了原先家中使用的某品牌成品AC，改用支持wireguard的Openwrt开发板来作为主路由使用。并开始了这一次的折腾\n","title":"Openwrt使用wireguard实现异地组网","type":"posts"},{"content":"","date":"2023-02-08","externalUrl":null,"permalink":"/tags/vpn/","section":"Tags","summary":"","title":"VPN","type":"tags"},{"content":"","date":"2023-02-08","externalUrl":null,"permalink":"/tags/wireguard/","section":"Tags","summary":"","title":"Wireguard","type":"tags"},{"content":"","date":"2023-02-08","externalUrl":null,"permalink":"/tags/%E5%BC%82%E5%9C%B0%E7%BB%84%E7%BD%91/","section":"Tags","summary":"","title":"异地组网","type":"tags"},{"content":"","date":"2022-08-31","externalUrl":null,"permalink":"/tags/vmware/","section":"Tags","summary":"","title":"VMware","type":"tags"},{"content":"由于莫名其妙的原因，在ubunut下使用VMware workstation需要手动编译vmnet和vmmon，而对于自己编译安装的内核组件来说，在bios启用安全启动选项的情况下是没法正常使用的，所以这时候我们就需要手工给内核签名了\n首次使用 # 复制以下内容即可,请使用root用户\nmkdir /root/vmware cd /root/vmware git clone https://github.com/mkubecek/vmware-host-modules cd vmware-host-modules git checkout workstation-16.2.3 sudo make ; sudo make install openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj \u0026#34;/CN=VMware/\u0026#34; /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon) /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet) mokutil --import MOK.der 重启一次，并根据向导接受签名\n后续使用 # 每次更新系统内核后都需要重新签名，使用以下命令即可\n#!/bin/bash rm -rf /root/vmware/vmware-host-modules cd /root/vmware git clone https://github.com/mkubecek/vmware-host-modules cd vmware-host-modules git checkout workstation-16.2.3 sudo make ; sudo make install cd /root/vmware sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon) sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet) mokutil --import MOK.der 其实Linux下使用KVM跑虚拟机会比使用VMware的体验好太多，在没有特别要求使用VMware的情况下强烈建议使用KVM。\n","date":"2022-08-31","externalUrl":null,"permalink":"/2022/08/31/Linux/tutorial/vmware-on-ubuntu/","section":"文章","summary":"","title":"安全启动时在Linux下使用VMware","type":"posts"},{"content":"","date":"2022-08-31","externalUrl":null,"permalink":"/tags/%E8%99%9A%E6%8B%9F%E6%9C%BA/","section":"Tags","summary":"","title":"虚拟机","type":"tags"},{"content":"","date":"2022-08-27","externalUrl":null,"permalink":"/tags/%E5%AE%B9%E5%99%A8/","section":"Tags","summary":"","title":"容器","type":"tags"},{"content":"好久不见，我终于更新了\u0026hellip;\u0026hellip; 原本计划是要更新kubernetes相关文章的，但是：\n🕊️了\n今天来讲解onedrive的事\n为什么要用docker部署onedrive？ # 众所周知我人是非常非常非常！！！讨厌Windows的，所以目前我已经全面转向使用Linux了。\n虽然是已全面转向Windows，但Office365还续着费呢，并且由于分享站，以及移动端的需求，我也不打算停止续费。\n既然如此，那必定是需要把Onedrive利用起来的。\n由于微软“强大的”开发实力，并没有为linux推出官方的onedrive客户端，所以我们就需要自己动手部署第三方的了\n准备工作 # 安装docker # 这里可以直接使用脚本安装\ncurl -fsSL https://get.docker.com | bash -s docker 对于国内的小伙伴可以使用以下脚本\ncurl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 确定文件夹位置 # 这次我们使用的是来自abraunegg/onedrive的第三方客户端，同时使用docker部署，以避免可能遇到的各种各样奇奇怪怪的问题。\n对于docker部署来说，我们主要用到两个文件夹:\n容器路径 说明 主机路径推荐 /onedrive/conf 用于放置数据库以及TOKEN ~/docker/onedrive/conf /onedrive/data onedrive的文件夹（默认为onedrive根目录） ~/OneDrive 以上是我储存数据的位置\n创建文件夹 # mkdir -p ~/docker/onedrive/conf mkdir ~/OneDrive 开始部署 # 注意：使用这个客户端双向同步的话将完全同步OneDrive下的所有文件，如果OneDrive中有巨量文件的话将占用大量本地磁盘空间！\n首次运行 # 首次运行请参照以下格式运行：\ndocker run -it --name onedrive -v /home/${USER}/docker/onedrive/conf:/onedrive/conf \\ -v \u0026#34;/home/${USER}/OneDrive:/onedrive/data\u0026#34; \\ -e \u0026#34;ONEDRIVE_UID=${UID}\u0026#34; \\ -e \u0026#34;ONEDRIVE_GID=${GID}\u0026#34; \\ driveone/onedrive:latest 请将以上命令按照下方步骤填充好\n确定用户文件夹绝对路径 # 使用以下命令可以确定用户文件夹路径\ncd ~/ pwd 输出结果为用户文件夹路径，例如我的为： /home/xianyu\n确定自己的用户ID以及组ID # 请务必确定好自己的用户ID以及组ID，如果不使用正确的用户ID以及组ID将有极大可能无法正常访问使用文件夹下的文件！\nid 这里我的UID和GID均为1000\n填充命令并执行 # docker run -it --name onedrive -v /home/xianyu/docker/onedrive/conf:/onedrive/conf \\ -v \u0026#34;/home/xianyu/OneDrive:/onedrive/data\u0026#34; \\ -e \u0026#34;ONEDRIVE_UID=1000\u0026#34; \\ -e \u0026#34;ONEDRIVE_GID=1000\u0026#34; \\ driveone/onedrive:latest 获取TOKEN # 在执行完上方命令后，命令行会输出一个URL，复制到浏览器后打开，将会登录微软帐号。 按照指示操作完后页面会全白，此时不要担心，不是电脑网络不好，只需要将此时浏览器上的URL填入容器输出窗口并回车即可完成首次的设置。 删除首次运行使用的容器 # 查找容器ID\ndocker ps -a 将首次运行用的容器删除\ndocker rm \u0026lt;ID\u0026gt; 使用docker-compose运行 # 注意：使用docker-compose运行也必须经过上方首次运行的步骤，先确保获取到TOKEN并填入容器！\n安装docker-compose # 下载二进制文件\nsudo curl -L \u0026#34;https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)\u0026#34; -o /usr/local/bin/docker-compose 也可使用国内镜像\ncurl -L https://get.daocloud.io/docker/compose/releases/download/v2.4.1/docker-compose-`uname -s`-`uname -m` \u0026gt; /usr/local/bin/docker-compose 下载完成后赋予可执行权限 # sudo chmod +x /usr/local/bin/docker-compose 编写docker-compose文件 # 我习惯将文件放在~/docker/onedrive文件夹下\ncd ~/docker/onedrive vim ~/docker/onedrive/docker-compose.yml 文件内容就是将首次运行时的docker命令变为配置文件的形式\nversion: \u0026#34;3\u0026#34; services: onedrive: image: driveone/onedrive:latest restart: unless-stopped environment: - ONEDRIVE_UID=1000 - ONEDRIVE_GID=1000 volumes: - /home/xianyu/docker/onedrive/conf:/onedrive/conf - /home/xianyu/OneDrive:/onedrive/data 部署 # cd ~/docker/onedrive docker-compose up -d 当修改了微软账户密码 # 在修改了微软账户密码后，容器就会无法使用TOKEN进行同步，此时需要重新部署容器，按照官方文档的操作方法，需要先停止并删除容器，再在启动时添加一条变量退出登录并清楚conf文件夹下内容。和我一样嫌麻烦的同学可以按照下方操作进行重新登录\n停止容器 # cd ~/docker/onedrive docker-compose down 删除TOKEN文件 # rm -rf /home/xianyu/docker/onedrive/conf/refresh_token 重复首次部署流程 # 接下去的操作与首次部署时完全一致，使用docker命令部署容器，并输入URL即可重新登录\n使用体验 # 除了必须全量同步这一点上非常蛋疼外什么都好 你也可以像我一样将文件夹图标改成OneDrive的Logo，让它看起来更加没有违合感\n","date":"2022-08-27","externalUrl":null,"permalink":"/2022/08/27/onedrive-on-docker/","section":"文章","summary":"","title":"使用docker部署onedrive容器","type":"posts"},{"content":"当拥有不只一台Linux服务器的时候就会想着把多台服务器的docker进行统一管理，而直接使用docker daemon socket是很不安全的，应为没有任何加密并且没有身份验证，任何人知道暴露的端口就可以操作本机的docker，而docker需要root权限运行，所以约等于让人得到了root权限。\n为了解决这个问题，就需要启用证书的认证。\n使用的平台 # 注：服务器信息经过处理\nPortainer Web服务器 地址：192.168.1.1 须启用docker daemon socket的远程主机 地址：192.168.2.1 两台主机系统均为Debian，并已经安装好了Docker 申请证书、修改配置这些操作均在须启用docker daemon socket的远程主机进行操作\n签发证书 # 这里使用自签名证书 这里创建一个文件夹用于存放所有证书\nmkdir /home/ca cd /home/ca 生成 CA 公钥和私钥 # openssl genrsa -aes256 -out ca-key.pem 4096 openssl req -new -x509 -days 3650 -key ca-key.pem -sha256 -out ca.pem #此处创建的证书为十年，绝对够用到换服务器了 创建 Server 端证书 # 请自行替换本机地址与本机域名\nopenssl genrsa -out server-key.pem 4096 openssl req -subj \u0026#34;/CN=本机地址\u0026#34; -sha256 -new -key server-key.pem -out server.csr echo subjectAltName = DNS:本机域名,IP:本机地址,IP:127.0.0.1 \u0026gt;\u0026gt; extfile.cnf echo extendedKeyUsage = serverAuth \u0026gt;\u0026gt; extfile.cnf openssl x509 -req -days 3650 -sha256 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf 创建 client 证书 # openssl genrsa -out key.pem 4096 openssl req -subj \u0026#39;/CN=此处填写对端主机地址\u0026#39; -new -key key.pem -out client.csr echo extendedKeyUsage = clientAuth \u0026gt; extfile-client.cnf openssl x509 -req -days 3650 -sha256 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out cert.pem -extfile extfile-client.cnf 修改docker的配置 # 修改/etc/default/docker文件 # 这里需要向文件中写入以下内容\nDOCKER_OPTS=\u0026#34; -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --tls --tlscacert /home/ca/ca.pem --tlscert /home/ca/server-cert.pem --tlskey /home/ca/server-key.pem\u0026#34; 修改/lib/systemd/system/docker.service文件 # 修改或添加以下内容\nEnvironmentFile=/etc/default/docker ExecStart=/usr/bin/dockerd -H fd:// $DOCKER_OPTS 重启docker # systemctl daemon-reload service docker restart 修改ufw # 根据上方修改的配置，我们的docker会监听来自2375端口的请求，所以我们需要放行2375端口\nufw allow 2375 ufw enable 连接远端的主机 # 现在我们回到Portainer Web服务器，可参考下图经行连接远程主机 参考文章 # Docker配置TLS认证开启远程访问 ","date":"2022-05-07","externalUrl":null,"permalink":"/2022/05/07/docker/docker-daemon-tls/","section":"文章","summary":"","title":"Docker配置TLS认证","type":"posts"},{"content":"在更新到Ubuntu22.04后，VMware会因为vmnet和vmmon安装失败而无法运行，解决方法很简单，手动编译安装即可。\ncd /usr/lib/vmware/modules/source git clone https://github.com/mkubecek/vmware-host-modules cd vmware-host-modules git checkout workstation-16.2.3 make tar -cf vmnet.tar vmnet-only tar -cf vmmon.tar vmmon-only mv vmnet.tar /usr/lib/vmware/modules/source/ mv vmmon.tar /usr/lib/vmware/modules/source/ vmware-modconfig --console --install-all 执行完后重新启动VMware即可\n","date":"2022-04-24","externalUrl":null,"permalink":"/2022/04/24/Linux/tutorial/vmware-work-on-Ubuntu2204/","section":"文章","summary":"","title":"解决VMware在更新到Ubuntu22.04LTS后无法使用的问题","type":"posts"},{"content":"","date":"2022-03-22","externalUrl":null,"permalink":"/tags/debian/","section":"Tags","summary":"","title":"Debian","type":"tags"},{"content":"","date":"2022-03-22","externalUrl":null,"permalink":"/tags/ubuntu/","section":"Tags","summary":"","title":"Ubuntu","type":"tags"},{"content":"","date":"2022-03-22","externalUrl":null,"permalink":"/tags/ufw/","section":"Tags","summary":"","title":"Ufw","type":"tags"},{"content":"什么是ufw # 全称Uncomplicated Firewall，是一个iptables的接口，可以简单理解为ufw是一个用于管理iptables的工具，由于其命令简洁便于使用、同时支持IPv4、IPv6而受到我本人的欢迎。\n为什么要用ufw # 来对比一下\n#iptables开放22端口 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT #ufw开放22端口 ufw allow 22/tcp ufw enable 你说为什么要用ufw\n当然是简单啊！\n安装ufw # Ubuntu/Debian # sudo apt-get update sudo apt-get install ufw CentOS/RHEL # sudo yum install ufw 设置默认规则 # 注意：从本章节开始所有命令都是在root权限下执行的，请提前切换到root用户！我实在懒得把sudo打出来了 虽然一般来说刚刚安装好的ufw本来就不包含规则，但最好还是先拒绝所有传入的连接再按照自己的需求配置比较好。（此处配置完后千万不要直接执行ufw enable对这两条命令进行应用）\nufw default allow outgoing #默认允许所有数据出站 ufw default deny incoming #默认禁止所有数据入站 ufw default命令意为：默认xxx allow和deny详见下图： 基础命令 # 查看当前规则 # 你可以使用以下命令查看已生效的规则\nufw status ufw status numbered #这条会让列出的规则前面加上数字编号 允许或禁止某端口/某服务传入和传出流量 # 以允许22端口为例\nufw allow 22 ufw deny 22 真的超级简单。\n仅仅允许某端口的TCP/UDP的流量 # 在端口号后加上/tcp或/udp即可\nufw allow 22/tcp ufw allow 22/udp 通过应用名来允许或禁止某项服务的流量（默认的端口） # ufw allow ssh ufw deny ssh 上面两条命令等同于\nufw allow 22/tcp ufw deny 22/tcp 你也可以通过这个方法来禁用\n使配置生效 # 为了使我们输入的配置生效，请使用以下命令\nufw enable 关闭防火墙 # ufw disable 删除生效的规则 # 你可以通过以下格式删除规则\nufw delete allow ssh ufw delete allow 22 或者根据ufw status numbered给出的列表前的数字编号删除\nufw delete 1 #删除编号为1的规则 高级用法 # 允许某IP或IP地址段访问某端口 # 允许某IP或IP地址段访问本机所有端口 # ufw allow from 192.168.1.1 #允许某IP访问 ufw allow frome 192.168.1.0/24 #允许某IP段访问 某IP或IP地址段访问本机某特定端口 # ufw allow from 192.168.1.1 any port 22 #允许某IP访问 ufw allow from 192.168.1.0/24 any port 22 #允许某IP段访问 禁ping，仅允许特定IP使用ping # 检查是否已经关闭了icmp服务 # cat /etc/ufw/sysctl.conf | grep net/ipv4/icmp_echo_ignore_all= 如果输出结果为net/ipv4/icmp_echo_ignore_all=1则需要到文件里把它改为net/ipv4/icmp_echo_ignore_all=0\n添加规则 # 在/etc/ufw/before.rules中添加规则\n-A ufw-before-input -p icmp --icmp-type echo-request -s 此处填写IPv4地址或地址段 -m state --state ESTABLISHED -j ACCEPT -A ufw6-before-input -p icmpv6 --icmpv6-type echo-request -s 此处填写IPv6地址或地址段 -m state --state ESTABLISHED -j ACCEPT 重新加载配置 # ufw reload 参考文章 # 非常简单的 UFW 防火墙使用教程 简明教程｜Linux中UFW的使用 UFW: Allow ping requests only for specific host ubuntu防火墙ufw使用教程 ","date":"2022-03-22","externalUrl":null,"permalink":"/2022/03/22/Linux/tutorial/ufw/","section":"文章","summary":"什么是ufw # 全称Uncomplicated Firewall，是一个iptables的接口，可以简单理解为ufw是一个用于管理iptables的工具，由于其命令简洁便于使用、同时支持IPv4、IPv6而受到我本人的欢迎。\n","title":"ufw简易使用教程","type":"posts"},{"content":"","date":"2022-03-22","externalUrl":null,"permalink":"/tags/%E9%98%B2%E7%81%AB%E5%A2%99/","section":"Tags","summary":"","title":"防火墙","type":"tags"},{"content":"","date":"2022-03-21","externalUrl":null,"permalink":"/tags/linux-yes/","section":"Tags","summary":"","title":"Linux Yes","type":"tags"},{"content":"写在前面 # 最近开始换用Linux作为主要系统了，打算写一个系列来介绍为什么Linux比Windows好用。这是第一篇。\n由于SMB服务的445端口会被用于传播例如永恒之蓝等的Windows病毒，所以一般国内的运营商会直接封锁445端口，这也就导致了我们无法直接在外网使用标准端口访问家中nas上的SMB服务。而Winodws又因为其非常弱智的设计——不允许用户使用非标准端口挂载SMB，所以在Windows的公网环境下无法愉快的使用网络硬盘。当然，你也可以用端口转发的方式实现Windows挂载非标准端口的SMB（反正我没有成功过）。 总之，我不喜欢使用Windows，也的确不熟悉这个系统的一些原理，所以我也不打算在Windows环境下折腾了。来玩Linux吧！\n挂载SMB的前置准备 # 在挂载网络硬盘前首先要下载相关的软件包 # Debian/Ubuntu下\nsudo apt-get update sudo apt-get install cifs-utils CentOS/RHEL\nsudo yum install cifs-utils 创建要挂载的目录 # 由于正常情况下我们都不会使用root用户进行日常的生产生活，所以我们把网络硬盘挂载到目前使用用户的家目录下的文件夹中才行，这里以挂载到/home/xianyu/mnt/nas/disk为例\nmkdir -p /home/xianyu/mnt/nas/disk 如何挂载SMB # 先看我的范例\nsudo mount -t cifs -o username=user_name,password=your_password,uid=xianyu,gid=xianyu,port=10086 //example.com/disk /home/xianyu/mnt/nas/disk 首先来看-t cifs，这条指定了使用的档案系统的形态，也就是上一节安装的那个。 后面的-o参数只有root用户可以使用，所以前面要加上sudo 在来到-o后方跟着的一长串：username=user_name,password=your_password,uid=xianyu,gid=xianyu,port=10086，他们的含义如下：\nusername password uid gid port SMB服务器上登陆用的用户名 SMB服务器上登陆的用户密码 挂载到本地后指定的用户 挂载到本地后指定的用户组 SMB的端口 这里尤其要说明一下uid和gid，由于在Linux中root用户责任重大，在正常的生产环境及个人使用时都不建议直接使用root用户进行操作，所以我们需要在挂载时指定使用普通用户、用户组进行挂载。如果不添加uid和gid参数的话，网络硬盘挂载到本地之后文件加的若属用户和用户组就是root，对于普通用户来说会没有权限对文件夹的内容进行操作。 最后的//example.com/disk /home/xianyu/mnt/nas/disk，前面的指的是SMB服务器的地址及路径，后面的就是挂载到本地的哪个位置。\n了解完命令的意义，就可以根据自己的情况进行挂载了\n如何卸载SMB # 很简单，如下：\numount /home/xianyu/mnt/nas/disk","date":"2022-03-21","externalUrl":null,"permalink":"/2022/03/21/Linux/yes/SMB/","section":"文章","summary":"写在前面 # 最近开始换用Linux作为主要系统了，打算写一个系列来介绍为什么Linux比Windows好用。这是第一篇。\n","title":"Linux挂载非标准端口SMB","type":"posts"},{"content":"","date":"2022-03-21","externalUrl":null,"permalink":"/tags/linux%E9%A6%99%E7%96%AF%E4%BA%86/","section":"Tags","summary":"","title":"Linux香疯了","type":"tags"},{"content":"","date":"2022-03-21","externalUrl":null,"permalink":"/tags/smb/","section":"Tags","summary":"","title":"SMB","type":"tags"},{"content":"","date":"2022-03-20","externalUrl":null,"permalink":"/tags/sudo/","section":"Tags","summary":"","title":"Sudo","type":"tags"},{"content":"写在前面 # 有时好久没更新。日常摆烂。本来想这个月更新（反正我已经默认月更了）一篇 Xbox Series S 的评测的，但是由于种种原因，还没受到货，所以就写点别的吧。\n前天开始我把自己的两台电脑都刷成了Linux系统，开始正式以Linux作为主要的操作系统使用了。\n作为一个Linux小白，同时由于我手头上设备都比较奇葩（一台陈年Macbook Air，一台用AMD APU的惠普笔电）所以我选择了兼容性好且对于普通用户而言相对友好的Ubuntu作为电脑的操作系统。同时，在惠普的笔电上，我还保留了（其实是重新刷入了）Windows系统，以备不时之需。 作为一个懒狗，不能接受普通用户在使用例如apt、docker等命令前需要加sudo并且输入密码，所以就有了这次小小的折腾。\nsudo的简单介绍 # sudo命令的含义其实就是superuser do，从字面意思上看我们就能知道，它的作用是通过安全的方式让用户提权使用特殊的权限执行程序。 而就像我上面提到的，如果想要使用sudo（Ubuntu）默认创建的用户，那么需要输入自己的密码才能提权，这还挺麻烦的。 此时我们就可以通过修改配置文件，让用户免密使用sudo，具体的配置文件以及配置文件夹有二：配置文件sudoers（位置在/etc/sudoers）和配置文件夹sudoers.d(位置在/etc/sudoers.d/)\n通过修改或者添加自定义的配置就可以实现免密登陆。\nsudoers配置应该怎么写 # 先来看看两个范例： xianyu ALL=(root:root) NOPASSWD: /usr/bin/apt 以上配置的含义为：授权用户xianyu在所有主机上，以用户root、组root的身份不需要密码直接执行/usr/bin/apt %admin ALL=(ALL:admin) NOPASSWD: /usr/bin/docker,/usr/bin/tree 以上配置的含义为：授权用户组xianyu的用户在所有主机上，以所有用户身份，以组admin的身份不需要密码直接执行/usr/bin/docker或/usr/bin/tree\n解析 # 从上面的例子我们就可以知道格式为：\n#用户的格式： 用户名 主机名或组=(提权后的用户名:提权后的用户组) NOPASSWD: 命令 用户名 主机名或组=(提权后的用户名:提权后的用户组) 命令 #用户组的格式： %用户组 主机名或组=(提权后的用户名:提权后的用户组) NOPASSWD: 命令 %用户组 主机名或组=(提权后的用户名:提权后的用户组) 命令 命令可以在同一行写很多个。 可以在配置文件中写好主机列表、命令列表、用户列表、身份列表方便使用。 例如：\n#主机列表 Host_Alias HOST_LIST=hostname1,hostname2,hostname3 #命令列表 Cmnd_Alias COMMAND_LIST=/usr/bin/apt,/usr/bin/docker #用户列表 User_Alias USER_LIST=xianyu,yuxian,admin #以什么身份运行 Runas_Alias RUNAS_LIST=root,adm 接着就可以直接引用了，比如\nUSER_LIST HOST_LIST=(RUNAS_LIST) COMMAND_LIST USER_LIST HOST_LIST=(RUNAS_LIST) NOPASSWD: COMMAND_LIST 我将怎么用 # 首先当然是写sudoers配置文件。**但是！**由于Linux发行版的差异，需要修改的地方不一样，例如，Debian可以直接在配置文件sudoers中添加配置，而Ubuntu发行版需要进入sudoer.d文件夹中，新建一个文件，并将配置写入其中。我平时常用的有四个命令：apt、apt-get、docker、snap，所以我需要让普通用户免密使用以上命令，以下是我的配置文件内容：\n#配置文件路径为/etc/sudoers.d/xianyu xianyu ALL=(ALL:ALL) NOPASSWD: /usr/bin/apt,/usr/bin/apt-get,/usr/bin/docker,/usr/bin/snap 然后，我除了嫌输密码麻烦外，多打一个sudo也挺麻烦的。所以为了进一步减少工作量，接下去需要修改用户主目录下的.bashrc。\n什么是bashrc # Linux下默认使用的shell程序是bash，.bashrc是用户登陆时会首先运行的文件（其实就是个shell脚本），所以我们只需要用alias命令将相关的规则写进.bashrc就可以一劳永逸了。\n怎么用 # 上面我提到了四个命令，所以要在文件中添加四条\nalias apt=\u0026#39;sudo apt\u0026#39; alias apt-get=\u0026#39;sudo apt\u0026#39; alias docker=\u0026#39;sudo docker\u0026#39; alias snap=\u0026#39;sudo snap\u0026#39; 保存并退出文件，注销用户后重新登陆就能使用了。 alias命令的含义就是让等号前的等同于等号后的命令，所以在之后我以普通用户执行这些命令，不再需要加sudo输密码了。\n","date":"2022-03-20","externalUrl":null,"permalink":"/2022/03/20/Linux/tutorial/sudoers/","section":"文章","summary":"写在前面 # 有时好久没更新。日常摆烂。本来想这个月更新（反正我已经默认月更了）一篇 Xbox Series S 的评测的，但是由于种种原因，还没受到货，所以就写点别的吧。\n","title":"sudo使用小技巧","type":"posts"},{"content":"","date":"2022-02-11","externalUrl":null,"permalink":"/tags/android/","section":"Tags","summary":"","title":"Android","type":"tags"},{"content":" 写在前面 # 我的PixelBook去年年底突然暴毙，我带着一台Windows笔记本度过了一段非常痛苦的时期，由于起其耗电量实在过于惊人（不是游戏本！！！），我不得不在上课的时候蹲到教室的最后面的插座边上给笔记本供电。\n一个偶然的机会，我发现了联想小新Pad的这个系列产品，思来想去选择了联想小新Pad Pro 2020\n为什么选择它？ # 原先考虑的机器有三款：Pro 2020、Plus、Pro 2021\n性能及屏幕最为优秀的肯定是Pro 2021 ，CP值最高的肯定是Plus\n但它们都有个各自对我来说不能忍受的缺点： Pro 2021缺少GPS支持，并且无对应的海外版本固件，虽然性能要比上一代强上太多，但6GB的运行内存加上大陆系统的搭配让我觉得不是很妙，应该说100％会卡出天际。\nPlus硬伤是屏幕非OLED，对于观影体验来说会大打折扣（正所谓买前生产力，买后迪士尼）\n最终我选择了Pro 2020，首先是我最关心的系统部分，Pro 2020可以在不解锁BootLoader的情况下（当然是有先决条件的）直接刷入海外版固件，同时网上已经存在大量的刷机教学（由于此机型的大陆版本相较于海外发行的版本来说价格过于香，所以有不少的台湾同胞以及海外的搞机玩家购入此款机型）\n其次，硬件方面，730G的SoC功耗足够低，为长续航提供了保障（再也不用蹲到教室后面充电了）；同时OLED屏幕＋JBL认证的四颗喇叭＋杜比认证为良好的观影体验的提供的了强有力的保障。 综上所述： Pro 2020 YES！\n在长期的心理斗争及查询相当多资料后，我选择了购入这台Pad。\n刷机 # 先决条件 # 机器拿到手之后不要升级！！！ 机器拿到手之后不要升级！！！ 机器拿到手之后不要升级！！！ 本篇文章中涉及到的刷机方法仅限于没有升级到ZUI12.5及以上版本的Pro 2020，如果你已经升级了，那么恭喜你，需要先行解锁BootLoader再进行刷机的动作 前期准备 # 硬件 # Windows系统的电脑\n一根数据线\n软件 # 所有使用的软件已经全部备份到了我的分享站，点击这里前往镜像站，所涉及的刷机工具全部都包含在内\nWindows 上的准备 # 首先要在Windows 上安装好所需要的软件，以确保后面的流程能够正常进行\n安装QFIL # 先下载好QPST.WIN.2.7.451.2.zip这个文件并解压，在文件夹下有一个名为setup.exe的可执行文件点击安装，同意其条款后一路默认点NEXT就可以\n配置QFIL # 打开QFIL软件，将Select BUild Type中的Meta Build选中 点击上方Configuratiion中的FireHoseConfiguration并将device type设置为UFS，点击OK确认保存 安装HxD # 下载HxD安装包.zip这个文件解压并安装，一样无脑NEXT就可以\n安装高通驱动 # 下载高通驱动.zip这个文件解压并安装，一样无脑NEXT就可以。 注意：此处windows的安全软件会显示有病毒，请忽略并运行解压\n刷入低版本海外版固件 # 注意：这一步是中间步骤，请按照这个教程做完！如果你认为这样刷入海外版就可以的话升级后会变砖！升级后会变砖！升级后会变砖！ 点击此处下载低版本的海外版固件(TB-J706F_S241015_210326_ROW.zip) ，并将其解压缩（注意：解压的路径中不可以包含任何中文字符！） 平板关机并按住音量键+，用数据线将Pad连接至电脑，并打开QFIL，如果一切顺利，上方会显示出Qualcomm HS-USB QDLoader 9008的字样，说明Pad已经入9008工程模式 接下去点击Load Content并进入前面解压的ROM包的文件夹中，点击contents.xml文件，并点击打开 最后点击Download Content进行安装即可。安装好后即为海外版的ROM，可以开机进行确认，但非常不建议直接使用！请按照本文将所有的步骤做完！\n修改QCN # 原先最早的时候刷机并没有这一步，但后来Lenovo往固件包里加了防降级、防刷海外版本的补丁，所以为了顺利刷入，无论如何要修改QCN。\n机器关机状态下按住电源键及音量键+进入FFBM Mode，并将Pad连接至电脑 打开QFIL，此时如果一切顺利，上方将会显示Qualcomm HS-USB Android DIAG 901D的字样\n此时选择上方Tools中的QCN Backup Restore，点击Backup QCN，之后等进度条读完，会有一个文件出现在选框中显示的文件夹中，例如下图所示，这个文件就保存在C盘下的Temp文件夹中 警告⚠️：在编辑文档之前请务必备份此文件！\n接着使用HxD打开此文件，使用ctrl+f快捷键，或点击上方的Seach中的find查找字符\n查找选框打开后选择Hex-values，搜索框中填入88 00 01 00 CA 1A 00 00 02点击OK进行查找（注意，此处如果你省略了上方的先刷入海外版ROM的步骤的话，请将末尾的02改为01尝试搜索） 此处需要注意：HxD有个莫名其妙的bug，如果你第一次查找的字符并没有找到，在不关闭这个文件的情况下再次搜索，无论这个文件中包不包含匹配的字符，都会显示找不到！如果第一次没找到，请将文件关闭后重新打开再进行搜索！\n找到后，将末尾02选中，输入00完成修改（00代表不限制刷机01代表限制只能刷中国大陆版02代表限制只能刷国际版）并保存文件。\n回到QFIL，还是QCN Backup Restore选框，点击Restore QCN，将文件刷入设备，在刷入过程中会提示报错，这是正常的，看到报错后不用等进度条走完（因为报错了进度条就不走了） 按住电源键+音量键-将Pad关机\n最终刷入海外版固件 # 完成修改QCN的步骤后就可以正式刷入海外版固件了\n点击此处下载海外版固件（这个是Android11的）并解压注意：解压的路径中不可以包含任何中文字符！） 打开QFIL，平板关机并按住音量键+，用数据线将Pad连接至电脑，并打开QFIL，如果一切顺利，上方会显示出Qualcomm HS-USB QDLoader 9008的字样，说明Pad已经入9008工程模式 接下去点击Load Content并进入前面解压的ROM包的文件夹中，点击contents.xml文件，并点击打开 最后点击Download Content进行安装即可。 接着打开就是海外版系统了。\n使用体验 # 优点 # 海外版的系统着实比国内版看着顺眼的多，而且相对干净。由于系统预装软件的减少，一定程度上缓解了运行内存不足的问题 个人对于这块屏幕的显示素质以及影音表现都非常的认可，可以说惊艳到我了，没想到一千多人民币的设备能够做到这个程度。CP值超高 耗电量方面也还可以，如果持续看Disney+的影片的话，高亮度能坚持7-9个小时左右，非常够用\n缺点 # 工作模式非常烂！ # 工作模式让我觉得非常鸡肋，首先，切换到工作模式没有过渡动画，整体显得非常生硬，同时，工作模式下，除了界面使用逻辑上会更贴近Windows这个缺点外，使用体验也很差，打开应用会有一定卡顿，小窗口加上Android的UI设计看着也非常别扭底部导航栏也过于鸡肋\n触摸板非常难用 # 由于这款机器的原装触摸板并非是模拟鼠标，或是有专门的触摸板驱动，而是直接模拟手指触控操作，所以触摸板操作逻辑非常别扭，没有鼠标右键，且选中文字的操作也很别扭\n实体键盘搭配使用有莫名其妙的bug # 在我的测试下，在自建的code-server的web界面下使用实体键盘并搭配中文输入法编辑文件会无法正常拼写 以及Google Keep下写笔记，如果打开勾选框也会出现一模一样的问题。\n缓解的办法就是使用实体键盘的同时将虚拟键盘也打开，但在保正中文输入的同时还会出现新的问题：\n如果此时切换到英文输入法，则会导致直接无法输入 大概会有一半的屏幕直接被虚拟键盘挡掉，大大减少了屏幕查看其他内容的面积 面部识别鸡肋 # 说真的，识别率很差，且打开面部识别并打开“抬起唤醒”的功能后，关闭屏幕的情况下会被莫名其妙唤醒，很弱智（不知道联想工程师是怎么想的，明明键盘都合上了，霍尔元件也能够感应到，但为什么还能被唤醒）\n合上键盘后莫名奇妙的唤醒 # 上一条提到了，但不完全是人脸识别到问题，因为开启“显示”设置下的“轻触即可唤醒”和“拿起平板电脑即可查看”的功能后也会出现合上键盘后莫名其妙唤醒的问题\n总结 # 抛开这些“影响生产力”但莫名其妙的bug，这台平板依旧是我认为值得的，一千多人民币的价格可以购买如此优秀的屏幕及喇叭就已经值回票价，同时其便携性以及长续航可以让我不用再带充电线去上课了，总体来说，虽然有很多不足，但瑕不掩瑜，这个价格非常值得购买，也基本满足了我的需求。\n参考链接 # ZUI系统小新\u0026amp;YOGA平板线刷教程和国行底包及root（资源合集） ","date":"2022-02-11","externalUrl":null,"permalink":"/2022/02/11/Android/Lenovo-p11-pro/","section":"文章","summary":"","title":"联想小新Pad Pro 2020 刷机笔记","type":"posts"},{"content":"","date":"2022-02-11","externalUrl":null,"permalink":"/tags/%E5%88%B7%E6%9C%BA/","section":"Tags","summary":"","title":"刷机","type":"tags"},{"content":"","date":"2022-01-20","externalUrl":null,"permalink":"/tags/nas/","section":"Tags","summary":"","title":"NAS","type":"tags"},{"content":"","date":"2022-01-20","externalUrl":null,"permalink":"/tags/unraid/","section":"Tags","summary":"","title":"UNraid","type":"tags"},{"content":" 写在前面 # 买NAS的缘由 # 去年的时候由于实在是忍受不了B站对于番剧的阉割，所以入手了一台矿渣蜗牛星级作为个人的第一台NAS，开始搞自己的影音服务器 这台矿渣的配置及价格如下\n设备 数量 价格 J1900 1 / 4G DDR3内存 1 / 以上配置的蜗牛星际整机 1 368¥ 3T日立翻新盘 2 536¥ 500G西数二手盘 1 49.5¥ 256G七彩虹SATA固态 1 179¥ 闪迪32G U盘 1 29.9¥ 合计 / 1162.4¥ 用很少的钱装黑群晖组了人生第一台NAS。\n为什么才一年就换 # J1900的性能过于羸弱，导致我只能下载1080p的且是h264的资源，外挂字幕只能使用srt格式的（因为如果是特效字幕的话J1900就扛不住转码了）。\n同时，由于找资源的速度过于快了，1年内nas的储存就即将告罄，为了未来3-5年左右能有充足的槽位进行扩展，同时也为了解决一下性能拉垮的问题，就踏上了本次捡垃圾之旅。\n购买人生的第二台NAS # 选购思路 # 在挑选硬件的时候主要分为CPU性能、主板扩展性、储存扩展性、所使用操作系统这几个方向。\n作为一个穷逼，长这么大到现在我连4k屏幕都没见过，所以对我而言CPU性能、主板扩展性是次要的，最主要的就是储存扩展性，也就是盘位的多少，其次是选择使用说明系统。\n为了满足未来3-5年的储存需求，我就需要至少8盘位的机器保证有足够的盘位对储存进行扩容。\n系统方面，不愿意继续使用黑群晖，所以选择了UNraid，至于为什么后面会说到\n确定硬件 # 为考虑的机器范围分为两个大方向：DIY成品NAS和二手服务器\nDIY成品NAS要满足我的需求价格其实就和二手服务器差不多，但同价位二手服务器比DIY成品NAS性能要高（虽然耗电量也高），所以果断选择了塔式服务器。从性能、扩展性、噪音各方面来说都很合适。\n经过几天筛选，最后我买了一台DELL的塔式服务器，选定好了各种配件下单。以下是我选择并购入的物品清单\n设备 数量 价格 E5-2420v2 1 / 8G DDR3 ECC 内存 2 / H310阵列卡 1 / 服务器电源 1 / 以上配置的T320 1 1800¥ 3T 戴尔SAS服务器拆机盘 4 588¥ Unraid OS Plus 授权 1 89$（折合人民币570.35¥） 闪迪32G U盘 1 29.9¥ 合计 / 2988.25¥ 意外的惊喜 # 在我拿到服务器之后，发现店家给我发了T420，也就是T320的双路版本！！！虽然不合适但还是不厚道的笑开了花 XD 实际我拿到的机器配置如下\n设备 数量 E5-2420v2 1 8G DDR3 ECC 内存 2 495W热插拔电源 2 H310阵列卡 1 可以说是血赚\n组装NAS # 由于买的是成品，所谓硬件组装也就只是把硬盘塞好，插上UNraid的U盘\nU盘刷入UNraid # UNraid的特性之一就是其系统是储存在U盘上的，U盘仅作为引导，开机后会将系统放入内存中运行。这一点上，由于服务器支持ECC内存的缘故，NAS运行起来会更加的可靠。\n通过UNraid官网下载USB Flash Creator,并按提示刷入U盘即可。 初始设置 # 在把U盘和硬盘装好后，插电～开机～，进入bios设置，选择从U盘启动（UNraid不能使用UEFI启动，不然会有莫名其妙的问题） 当机器开机后就可以从浏览器登录web管理页面：http://NAS-IP,默认root用户无密码（登录后请设置好密码）\n设置好硬盘阵列 # 我的设置思路是阵列中全为机械硬盘，并将SSD放在缓存池中，UNraid的缓存和群晖不太一样，其实缓存也是普通的硬盘，只是不受数据校验保护而已。之后会解释为什么。选择好硬盘后启动阵列。\n安装基本的插件 # 虽然UNraid于6.9.2版本已支持官方中文，但是需要通过插件安装。\n找到导航栏中的PLUGINS，点击二级菜单中的Install plugin,并将以下链接复制到文本框中进行安装\nhttps://raw.githubusercontent.com/Squidly271/community.applications/master/plugins/community.applications.plg 之后导航栏会多出一个APPS，点击后进入界面（由于众所周知的原因加载会比较慢），搜索并安装中文语言包，之后就可以切换为中文了\n设置共享文件夹 # 我的NAS主要是围绕影音中心为目的而搭建的，所以这里以我的设置为例进行介绍。\nUNraid的文件管理和群晖完全不一样，用户不需要关心自己的文件到底储存在哪个硬盘上，只需要注意由于文件的用途不同需要选择怎么样的储存策略，我的储存思路见下表\n文件类型 特性 储存方案 影音文件 量大，读取率相对低 不使用缓存盘，仅存储于阵列中，通过手工移动的方式将缓存盘或外部存储的数据写入共享文件夹 系统/应用相关文件 体积小但需要经常读写 仅使用缓存，避免机械硬盘的经常读写 由此简单的分为这两大类进行存储。\n我的设置 # 新建一个媒体文件夹用于存放视频、音乐文件，设置参考下图 将末认新建好的appdata、domains、system设置为仅缓存，即在这些文件夹中的数据仅会储存在缓存盘中。\n新建一个download文件夹设为仅缓存，用于充当bt、pt或其他服务器的下载文件夹。\nSMB文件共享设置 # 如果你不希望公开共享文件夹，则需要在user设置中添加一个用户，并在共享文件夹设置中给予用户访问的权限！UNraid的root用户是不能用于登陆SMB服务的！\n安装常用应用 # 与群晖不同，绝大多数UNraid的应用都是通过docker安装的\n安装PLEX # APPS选项卡中搜索Plex-Media-Server，找到官方的那个点击安装。各项配置如下\nHost Path 2填写PLEX应用的数据储存位置，我选择储存在appdata/共享文件夹中，文件路径为/mnt/user/appdata/ Host Path 3填写媒体文件所在的文件夹，即前面创建的媒体文件夹，路径为/mnt/user/media/ Key 1需要填入神秘代码，请前往PLEX官网获取 Key 2为容器的UID，默认填写99 Key 3为容器的GID，默认填写100 Key 4为容器版本，默认填写latest 填写好之后点击完成，等到容器上线即可\nFileBrowser文件管理安装 # 由于UNraid作为NAS系统居然没有官方自带的web文件管理功能，所以这里需要自己安装一个。\n安装的应用为荒野无灯大佬的魔改版（项目地址），按照项目的说明安装即可\n安装aria2 # 这里使用P3TERX大佬的镜像，如果没有特殊需求，按照下面给出的配置进行安装即可\ndocker run -d \\ --name aria2-pro \\ --restart unless-stopped \\ --log-opt max-size=1m \\ --network host \\ -e PUID=$UID \\ -e PGID=$GID \\ -e RPC_SECRET=此处填写RPC的密码 \\ -e RPC_PORT=6800 \\ -e LISTEN_PORT=6888 \\ -v $PWD/aria2-config:/config \\ -v $PWD/aria2-downloads:/downloads \\ p3terx/aria2-pro 安装ariaNG # 由于aria2-pro并不自带webUI，所以需要自己安装一个。设置参考下图 几天的使用体验 # 由于主要作为影音服务器使用，所以挺在意这颗U的性能如何的，刚开始我的要求仅是h264能正常使用即可，但没想到这颗U的性能超出预期，能解码H265 4K的影片！为我省了买显卡的钱。\n同时，这台服务器有着极强的扩展性，巨量PCIe插槽，可以方便的扩展各种设备。比如未来可以加显卡搞Mac虚拟机；加装万兆网卡；加装阵列卡扩展存储等。几乎可以说，这台机器可以满足我未来5-10年的需求。\n总之非常满意就是了。\n","date":"2022-01-20","externalUrl":null,"permalink":"/2022/01/20/nas-unraid/","section":"文章","summary":"","title":"UNraid折腾笔记——鸟枪换炮，我的第二台NAS","type":"posts"},{"content":"","date":"2022-01-20","externalUrl":null,"permalink":"/tags/%E6%9C%8D%E5%8A%A1%E5%99%A8/","section":"Tags","summary":"","title":"服务器","type":"tags"},{"content":"","date":"2022-01-20","externalUrl":null,"permalink":"/tags/%E5%9E%83%E5%9C%BE%E4%BD%AC/","section":"Tags","summary":"","title":"垃圾佬","type":"tags"},{"content":" 中国社会大学新生 社畜 鸽子 热爱折腾 半职业游泳教练 认证网络攻城狮、RHEL攻城狮 国际健将级摆烂运动员。 游戏 # 是个任豚，过去现在以及将来都会在任天堂的主机/掌机平台继续为世界经济的发展做出自己的贡献。\n任天堂就是世界的主宰！ 如果你也使用Nintendo Switch，欢迎来找我联机 以下是我的NS好友代码： SW-7175-0689-4499\n欢迎各位《怪物猎人：崛起》的猎友来一起狩猎\n联系我 # 你可以通过me@xianyu.one联系我\n","date":"2022-01-20","externalUrl":null,"permalink":"/about/","section":"咸鱼的小站","summary":"","title":"about","type":"page"},{"content":"","date":"2021-12-17","externalUrl":null,"permalink":"/tags/ip%E5%9C%B0%E5%9D%80/","section":"Tags","summary":"","title":"IP地址","type":"tags"},{"content":"写在前面 # 属实无聊，就当考前复习。\n开篇 # 初接触网络层的东西，相信不少人会有很多的疑惑，毕竟相较于物理层和数据链路层而言，网络层的东西会比较抽象。\n在大学开设的这门课里我并没有遇到什么特别大的瓶颈和不理解的地方，这得益于多年来瞎折腾所学习到的知识。从身边遇到的问题入手，通过解决问题的方式学习知识，可以说是我本人最爱的学习方法。\n所以，我想结合实例来讲解IPv4的相关知识，希望能对正在学习相关专业的学生以及爱好者有所帮助。\nIPv4地址的结构 # 大家应该都知道，IPv4的地址写出来长这样：192.168.1.1\n我们为了阅读的方便，将十进制格式的IP地址用.分成了四个部分。\n看，只是人类为了阅读方便而设置的。对于计算机而言IPv4地址长这样11000000101010000000000100000001\n其实就是二进制形式的地址。\n我们也可以把二进制形式的地址拆成四份：11000000 10101000 00000001 00000001\n第一段 第二段 第三段 第四段 十进制格式 192 168 1 1 二进制格式 11000000 10101000 00000001 00000001 简单看了一下格式，就可以继续往下说了。 别急，其他的诸如子网掩码、网络号、主机号的概念后面会慢慢讲。\nIPv4的发展历史 # 开始讲解IPv4地址，绕不开的话题就是要讲一讲IP发展的历史，看看IPv4是怎么样发展到现在这样的\n分类编址时代 # 很久很久以前，IP地址被分成了五种地址类型，分别是A、B、C、D、E五类。 他们的区分方式很简单，二进制形式的IP地址从左往右数，开头的几位数字的不同决定这个IP的分类。 在判断属于一个IP属于哪一个类别时其实不需要把它变成二进制的形式，因为区分类别的位数只占4位，也就是说只要判断第一段的十进制数是在哪个区间即可知道这个IP的类别。 可以参照以下表格进行判断：\nA类地址 B类地址 C类地址 D类地址 E类地址 二进制下的开头 0 10 110 1110 1111 二进制下的地址区间 00000001 - 01111110 10000000 - 10111111 11000000 - 11011111 11100000 - 11101111 11110000 - 11111111 十进制下的地址区间 1 - 126 128 - 191 192 - 223 224 - 239 240 - 255 注：A类地址中0和127两个段为保留地址，用于特殊目的。\n对照这个表，就很容易分辨IP地址的分类了。以下给出几个IP地址，大家可以对照表格判断一下：\n192.168.66.12 11.43.192.30 11.43.192.30 网络号 \u0026amp; 主机号 # 上文我们知道了，IP地址被划分成了五个类别 A、B、C类为单播地址，是我们平时接触最多，也是正在使用的地址。D是多播地址，E是保留地址。 对于A、B、C类的地址来说，它们除了开头不一样外，网络号和主机号的长度也是不一样的。 一个IPv4地址的二进制形式有32位，在分类编址时代，IP的组成形式为\u0026lt;网络号\u0026gt; + \u0026lt;主机号\u0026gt;。\nA类地址的网络号为前8位，后面24位为主机号。也就是十进制形式的 第一段 为网络号， 第二段+第三段+第四段 为主机号 B类地址的网络号为前16位，后面16位为主机号，也就是十进制形式的 第一段+第二段 为网络号， 第三段+第四段 为主机号 C类地址的网络号为前24位，后面8位为主机号，也就是十进制形式的 第一段+第二段+第三段 为网络号， 第四段 为主机号 那么同为单播地址，为什么还要分成A、B、C三类呢？ 前面我们知道了，IP的组成形式为\u0026lt;网络号\u0026gt; + \u0026lt;主机号\u0026gt;，这当中的网络号代表的是这个IP所在的网段，而主机号则定义了这个IP在这一个网段中的编号。 打个比方：一个小区（整个IP地址库）里有很多栋居民楼（网络号），居民楼里很很多户人家（主机号）。 对于网络服务商来说，一般购买的都是一整个IP地址块，而不会购买单个IP地址。不同大小的运营商需求不同，需要的IP地址量不同，所以会需要选择购买合适数量的IP地址块。将单播地址分为三类的意义就在于，现在客户可以根据自己的需求选择IP地址块的大小了。 那么A、B、C类地址是如何做到区分地址块大小的呢？这就是\u0026lt;网络号\u0026gt; + \u0026lt;主机号\u0026gt;模式的作用了。\n计算地址块容量 # 假设现在有八个空格，可以往里填入数字将其变为一个二进制的数，请问可以有多少个不同的数字？\n其实这个问题很容易算出来，方法很简单： 这里我们可以知道最高能写8位，那么能写出的数字量就是 $2^8=256$ 个 同理，因为IPv4地址事实上是一串32位的二进制数字，所以就可以使用同样的方法计算出地址块的容量 从上面的内容中已经知道了，IP地址的组成形式为\u0026lt;网络号\u0026gt; + \u0026lt;主机号\u0026gt;，购买IP使用权的时候，购买的地址块其实是购买了\u0026lt;网络号\u0026gt;下包含的所有IP，就像网络服务商作为“包租婆”，购买了开发商的整栋楼（网络号）一样。 因为IP的长度固定，所以网络号越短，主机号越长，主机号越长，所包含的IP就越多！\n再来简单做个题：黄先生购买了一个C类地址块，请问这相当于他买了多少个IP地址？ 一个C类地址的前24位是网络号，后8位是主机号，主机号长度决定其拥有多少个IP。 所以黄先生拥有的IP地址块包含了 $2^8=256$ 个地址。\n划分子网时代 # 原先的分类编址时代，我们把实际用来分配使用的IP地址分成A、B、C类。也就是说网络服务商在购买IP地址的时候可以选择三种大小：\nA类地址块：包含 个地址 B类地址块：包含 个地址 C类地址块：包含 个地址 但这时候问题来了，比如我现在想购入4000个地址，这个数量大于C类的同时又远远小于B类所含的数量，想要买4000个地址要不就是买16个C类地址，或者出手极其阔绰直接购买B类地址块。 这就不可避免的造成了地址的浪费。 划分子网时代，将IP变成了\u0026lt;网络号\u0026gt; + \u0026lt;子网号\u0026gt; + \u0026lt;主机号\u0026gt;的形式，以满足这样的需求。 买4000个地址，就可以选择购买 B类地址中的一个子网 来实现最大程度的不浪费。\nB类地址网络号占了16位，此时我们只需要把主机号的一部分变为子网号，让主机号的位数所包含的IP地址块最接近4000个就可以最大程度避免浪费 通过计算可知： $2^{12}=4096$\n所以，我们需要12位的主机号。在网络号固定为16位的B类地址中，将主机号部分的4位占用为子网号，再购买B类地址中的这个子网就可以了。\n买包含4096个地址的B类子网 网络号 子网号 主机号 二进制格式 10xx xxxx xxxx xxxx xxxx xxxx xxxx xxxx 对应位数 16位 4位 12位 无分类编址时代 # 随着时间的推进，计算机网络变得越来越庞大，本就不富裕的IPv4地址需求越来越大，过去的划分子网方式已经不足以满足人们的需求了。 公网IP对于一般民众而言其实不会专门进行购买，而对于网络服务商来说，其购买的需求量就挺大的。也正因为此，C类地址仅有256个IP的超小容量极易不受人待见。对于互联网而言，急需更灵活的IP分配方式。1993年，无分类域间路由选择（Classless Inter-Domain Routing， CIDR）应运而生。 在划分子网时代，IP变成了\u0026lt;网络号\u0026gt; + \u0026lt;子网号\u0026gt; + \u0026lt;主机号\u0026gt;的形式，而到了无分类编址的时代，又把这个子网号去掉了，取而代之的是子网掩码的概念。 过去网络号长度是固定的，并且被固定了长度。而到了无分类编址时代，网络号的长度不固定了，可以根据需求指定任意长度的网络号。\n那如何指定网络号长度呢？ # 还是买4000个地址，按之前划分子网的办法，就是购买一个\u0026lt;网络号16位\u0026gt; + \u0026lt;子网号4位\u0026gt; + \u0026lt;主机号12位\u0026gt;的地址块。既然无分类编址去除了子网号，同时不限制网络号长度，那么直接把子网号的4位合并进网络号里就可以达到相同效果了 \u0026lt;网络号20位\u0026gt; + \u0026lt;主机号12位\u0026gt; 也就是说，我们买的地址块的网络号变成了20位。 因为无分类编址不依靠、也无法依靠网络类型来确定网络号长度，所以引入了子网掩码的概念。其实子网掩码的作用很简单，就是告诉我们网络号的长度。 上面我们买了一个网络号长度为20位的地址块，那么它的子网掩码长度就是20位，同时，子网掩码长度通过写1来表示，剩余位置以0填充\n二进制IP地址 11001100 10001111 0011xxxx xxxxxxxx 二进制子网掩码 11111111 11111111 11110000 00000000 这一串子网掩码看着像不像IP地址？ # 对的，它也能变成十进制的形式：255.255.240.0\n是不是还是很眼熟？ # 没错，在你的电脑/手机的网络设置里就有它。 一般家庭的路由器会将局域网默认设置为192.168.x.x/24的形式，所以我们见到的地址比如192.168.1.1/24或192.168.1.1 子网掩码：255.255.255.0，对应的意思就是：IP地址为192.168.1.1，同时其子网掩码长度是24，或写作255.255.255.0。同一地址块下能够容纳的主机数为 $2^8=256$ 台（其中包含两个特殊地址）\n","date":"2021-12-17","externalUrl":null,"permalink":"/2021/12/17/ip-address/","section":"文章","summary":"","title":"计网专业学习笔记——认识IPv4地址的发展史","type":"posts"},{"content":"","date":"2021-12-17","externalUrl":null,"permalink":"/tags/%E7%BD%91%E7%BB%9C/","section":"Tags","summary":"","title":"网络","type":"tags"},{"content":"","date":"2021-11-16","externalUrl":null,"permalink":"/tags/k8s/","section":"Tags","summary":"","title":"K8s","type":"tags"},{"content":" 写在前面 # 上个月和班主任聊天，知道了k8s（Kubernetes），瞬间来了折腾的兴趣。脑子一热买了三台树莓派4B。 由于其对初心者及其不友善的特点，断断续续拖了一个月，昨天刚弄好。 想到博客万年没更新了，来写一下。\n封面图来自：画师JW —— 人总分不清梦境与现实。\n前置准备 # 硬件准备 # 电脑一台(系统随意) 树莓派4B*3（我的是4GB的版本） 交换机 网线*4（树莓派连交换机3根，交换机连路由器1根） SD卡*3（我是64GB的闪迪） 鞋盒*1 此处树莓派供电我用的是绿联的三个快充头，以保证充足的供电。 有买亚克力的架子，组装后大概如下 软件 # 各系统自带终端（用于ssh连接树莓派） Debian-Pi-Aarch64 ★ 全新树莓派64位系统 项目地址 balenaEtcher – 一个跨平台镜像烧录工具（Mac、Windows、Linux）官方网址 各种k8s相关的软件 注意：接下去的内容能够正常使用的前提是要有“良好的网络环境”，例如要能顺畅地pull到dockerHub上的镜像，否则将有极大概率无法完成安装！\n系统设置 # 这里使用的是Debian-Pi-Aarch64 ★ 全新树莓派64位系统的基础版无桌面镜像，烧录进SD卡后插电开机 默认账户：pi，默认密码：raspberry 首先需要找到树莓派的IP地址，可以登录路由器后台查看。建议知道地址后将其固定下来，不固定也没事，之后会将其设置为静态IP。 以我的为例，我将三台树莓派分别命名为rpi1、rpi2、rpi3，其IP固定为如下\nrpi1 192.168.6.91 #节点类型：Master rpi2 192.168.6.92 #节点类型：node rpi3 192.168.6.93 #节点类型：node 在k8s集群中，节点分为Master和node两种，Master节点是集群中负责调度任务等工作的控制面节点，node是工作节点。后续向集群中添加应用程序时，会由Master将任务指派给node。 接下去的内容默认是在root用户下执行，请使用sudo -i将用户变更为root并设置root用户密码\n更改主机名 # 首先要把三台主机的主机名更改回来（此处仅以rpi1为例） ssh连接rpi1这里有两个文件内容要更改，第一个是/etc/hosts\nvim /etc/hosts 将文件中的\n127.0.0.1 raspberry 更改为\n127.0.0.1 rpi1 第二个文件是/etc/hostname 将内容改为rpi1即可。其他两台操作相同\n更改网络设置 # 打开配置文件\nvim /etc/network/interfaces 将文件内容修改为如下（此处依旧以rpi1为例，如果你的网段与我不同，请更改为自己的网段！请勿照抄）\nauto eth0 allow-htoplug eth0 iface eth0 inet static address 192.168.6.91 netmask 255.255.255.0 gateway 192.168.6.1 dns-nameservers 114.114.114.114 接着将三台机器的IP地址添加到/etc/hosts文件中，并重启网络\nsudo cat \u0026gt;\u0026gt; /etc/hosts \u0026lt;\u0026lt; EOF 192.168.6.91 rpi1 192.168.6.92 rpi2 192.168.6.93 rpi3 EOF service networking restart 修改ssh设置 # 默认情况下，这个镜像是不允许直接使用root账号连接的，为了方便省事，需要允许直接使用root账号进行ssh连接\nvim /etc/ssh/sshd_config 进入配置文件，将\n#PermitRootLogin prohibit-password 修改为\nPermitRootLogin yes 并重启服务\nservice sshd restart 打开IPv4转发 # vim /etc/sysctl.conf 将文件中的这行注释去掉\nnet.ipv4.ip_forward = 1 关闭防火墙 # sudo /usr/sbin/iptables -P FORWARD ACCEPT 关闭一些服务 # systemctl stop NetworkManager.service systemctl disable NetworkManager.service 安装常用软件 # sudo apt-get install -y net-tools lrzsz tree screen lsof tcpdump 启用docker # systemctl enable docker.service #开机自动启动Docker服务 systemctl start docker.service #启动Docker服务 关闭Swap # 直接注释掉，简单粗暴\nsed -ri \u0026#39;s/.swap./#\u0026amp;/\u0026#39; /etc/fstab 至此，系统配置已全部完成 重启一遍系统后，正式开始集群的部署\nsudo reboot 集群部署 # 从这里开始，才算进入正片。由于k8s对于树莓派而言有点过于臃肿了（主要部署起来太折腾了），所以我使用的是k3s。\nk3s脚本安装 # 对于没有网络问题的同学可以直接使用官方脚本进行安装，（请注意不要直接复制下面这行命令，我们需要加上相关参数执行！）\ncurl -sfL https://get.k3s.io | sh - 同时，如果网络有问题，可以参考官方文档使用国内镜像。 此处不直接使用这个脚本，而是预先添加参数，分别在Master和node执行\nMaster机执行 # Master机脚本如下\ncurl -sfL https://get.k3s.io | K3S_NODE_NAME=rpi1 sh - 如果网络有问题请在命令中添加参数INSTALL_K3S_MIRROR=cn，以使用国内镜像 此处K3S_NODE_NAME为指定此机器在集群中的名字，为方便识别这里设置为和主机名rpi1一样的名字。 等待执行完后，需要获取Token，给后续添加进集群的机器使用。请保存好这个Token，接下去要用到。\ncat /var/lib/rancher/k3s/server/node-token #获取rpi1的Token node机执行 # 前面我们在Master机获取到了Token，假设它为\nK107dfc82a8d9453e538b26dd3250757827356a276ae509c3158b60ec3238e7929f::server:bac90b26fc5t6b2c76a8ee1bc22291cc 那么在rpi2、rpi3这两个node节点上的执行命令为\ncurl -sfL https://get.k3s.io | K3S_NODE_NAME=rpi2 K3S_URL=https://192.168.6.91:6443 K3S_TOKEN=K107dfc82a8d9453e538b26dd3250757827356a276ae509c3158b60ec3238e7929f::server:bac90b26fc5t6b2c76a8ee1bc22291cc sh - #这个命令在rpi2上执行 curl -sfL https://get.k3s.io | K3S_NODE_NAME=rpi3 K3S_URL=https://192.168.6.91:6443 K3S_TOKEN=K107dfc82a8d9453e538b26dd3250757827356a276ae509c3158b60ec3238e7929f::server:bac90b26fc5t6b2c76a8ee1bc22291cc sh - #这个命令在rpi3上执行 参数K3S_URL为Master结点（即这里的rpi1结点），参数K3S_TOKEN填入上面的Token 如果网络有问题请在命令中添加参数INSTALL_K3S_MIRROR=cn，以使用国内镜像\n回到Master机查看集群状态 # kubectl get nodes 如果没有问题将会看到如下显示，三个结点都已在集群中，并已ready\nNAME STATUS ROLES AGE VERSION rpi2 Ready \u0026lt;none\u0026gt; 32h v1.21.5+k3s2 rpi3 Ready \u0026lt;none\u0026gt; 32h v1.21.5+k3s2 rpi1 Ready control-plane,master 32h v1.21.5+k3s2 使用以下命令查看pods是否已正常运行\nkubectl get pods -A 基本如下所示就是正常的\nNAMESPACE NAME READY STATUS RESTARTS AGE kube-system local-path-provisioner-5ff76fc89d-pd7rd 1/1 Running 0 32h kube-system coredns-7448499f4d-dlwqx 1/1 Running 0 32h kube-system helm-install-traefik-crd-lpgwj 0/1 Completed 0 32h kube-system helm-install-traefik-gqrr9 0/1 Completed 1 32h kube-system svclb-traefik-rrwqk 2/2 Running 0 32h kube-system traefik-97b44b794-h2rqp 1/1 Running 0 32h kube-system svclb-traefik-49gc9 2/2 Running 0 32h kube-system svclb-traefik-nltmk 2/2 Running 0 32h 至此k3s的安装也就告一段落了。\n安装一些管理应用 # 到目前为止，k3s还只能在命令行使用，由于其复杂程度非常不利于初心者的使用，对于学习来说，快速开始使用是挺重要的，这里介绍Kubernetes Dashboard和Kuboard的部署。对于k8s集群来说，部署任务只需要在Master机上执行即可，Master节点会向node节点指派任务。所以以下操作均是在Master机上执行的（在我的集群中是rpi1）\n安装Kubernetes Dashboard # 执行以下命令\nkubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml 执行完后需要等待一段时间，集群拉取镜像和指派任务需要一点时间 可以通过以下命令查看部署情况\nwatch kubectl get pods -n kuboard 如果为ready则说明已经部署完成了\nNAME READY STATUS RESTARTS AGE kubernetes-dashboard-78c79f97b4-v9565 1/1 Running 0 32h dashboard-metrics-scraper-856586f554-z8nz5 1/1 Running 0 32h 使Kubernetes Dashboard在集群外部可用 # 在部署完成后，在Master机上执行kubectl proxy可以使其在Master机上访问（地址） ，但这对于我们来说是不够的。大公司可以用带桌面的系统，在机房中直接操作Master机，但平穷如我只能使用无桌面镜像的树莓派组集群，所以我们至少要让它暴露在集群外，至少在局域网下可以使用。 此时就需要对其配置进行修改。执行以下命令\nkubectl patch svc kubernetes-dashboard -n kubernetes-dashboard -p \u0026#39;{\u0026#34;spec\u0026#34;:{\u0026#34;type\u0026#34;:\u0026#34;NodePort\u0026#34;,\u0026#34;ports\u0026#34;:[{\u0026#34;port\u0026#34;:443,\u0026#34;targetPort\u0026#34;:8443,\u0026#34;nodePort\u0026#34;:30443}]}}\u0026#39; 这个命令的意义在于让Kubernetes Dashboard的端口暴露在nodePort（节点端口）30443上，是我们可以通过访问rpi1（192.168.6.91）的30443端口，执行完后，就可以通过访问 https://192.168.6.91:30443 使用Kubernetes Dashboard了。 但是！ 但是由于目前集群使用的是自签名的ssl证书，对于浏览器而言是不受信任的，还无法直接访问。对于Firefox浏览器而言可以配置例外情况进行访问，而Google Chrome呢，它没给我们选项怎么办？ 不用怕，其实Google Chrome有留“秘籍”！ 点击以下页面的空白处，然后在键盘上敲thisisunsafe并回车就可以访问！非常有Google的风格。 登录使用Kubernetes Dashboard # Kubernetes Dashboard提供了两种登录方式，一种是Token，另一种是Kubeconfig。这里我只说Token的方法。 执行以下命令\ncd /var/lib/rancher/k3s/server/manifests/ #进入/var/lib/rancher/k3s/server/manifests/目录 #创建并向dashboard-adminuser.yaml写入内容 cat \u0026gt; dashboard-adminuser.yaml \u0026lt;\u0026lt; EOF apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard EOF 然后通过以下命令获取到Token\nkubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk \u0026#39;{print $1}\u0026#39;) 将输出的Token填写在网页中即可。接下去就可以开始使用了\n安装Kuboard # 看了Kubernetes Dashboard的安装以及进入Kubernetes Dashboard的页面后是不是感觉还是很麻烦？是不是觉得看到一大堆各种各样的洋文无从下手？没错，我也这么觉得。所以这里我们安装Kuboard方便我们之后的使用。 不过这里就不在k8s中部署了，而是直接在rpi1上使用docker部署。这里只介绍docker`上的部署，其他的方式请参阅官方文档。\n部署Kuboard镜像 # 在rpi1上执行以下命令\ndocker run -d \\ --restart=unless-stopped \\ --name=kuboard \\ -p 60080:80/tcp \\ -p 60081:10081/tcp \\ -e KUBOARD_ENDPOINT=\u0026#34;http://192.168.6.91:60080\u0026#34; \\ -e KUBOARD_AGENT_SERVER_TCP_PORT=\u0026#34;60081\u0026#34; \\ -v /root/kuboard-data:/data \\ eipwork/kuboard:v3.3.0.0-arm64 参数KUBOARD_ENDPOINT中的地址为之后Web界面的访问地址，命令中的各部分可根据实际需求自由替换，详情参阅官方文档 部署完成之后直接访问 http://192.168.6.91:60080 即可开始使用。比官方的Kubernetes Dashboard属实方便多了。 Kuboard的默认用户名：admin，默认密码：Kuboard123 现在开始，你也可以使用反向代理、内网穿透、端口映射等手段让管理界面在公网上可用。\n添加集群 # 当我们完成了上面的设置，并不代表我们可以直接使用Kuboard对集群进行管理，还需要在设置中添加集群。 Kuboard提供了两种方法 这里我们选择agent的方式 填写名称和描述，其他默认，直接点确定，然后根据提示在Master机执行命令即可，基本无脑点确定就行，非常方便。 集群导入成功后即可开始使用 后话 # 为了玩这个真的投入了不少时间和金钱，确实折腾人。目前还没搞懂k8s的很多概念，有非常多不理解的地方，对于任务的部署其实还完全不了解，回头理解了再发新的文章介绍。估计要明年发了\n参考文章 # Raspberry Pi4b 集群基于Raspbian Buster搭建K3S集群 手把手教大家使用树莓派4B搭建K8s集群 Debian-Pi-Aarch64 ★ 全新树莓派64位系统 2.0正式版 - 说明文档 k3s —— 安装选项介绍 Kuboard —— 安装Kubernetes 多集群管理工具 - Kuboard v3 ","date":"2021-11-16","externalUrl":null,"permalink":"/2021/11/16/Linux/tutorial/k8s-install/","section":"文章","summary":"","title":"k8s折腾笔记——树莓派集群安装k3s","type":"posts"},{"content":"","date":"2021-11-16","externalUrl":null,"permalink":"/tags/kubernetes/","section":"Tags","summary":"","title":"Kubernetes","type":"tags"},{"content":"很早就刷了，只不过一直懒的写。\n所需设备 # 电脑一台（配置好adb） 数据线一根 手机一只 人脑一个 过程 # 刷入氧OS # 此处下载9008救砖包，请注意：不要省略刷欧版的这一步！按照帖子用救砖包刷入欧版即可。\n解锁 # 进入设置，找到版本号狂点，开启开发者选项。 在开发者选项中打开oem解锁和usb调试 手机连电脑后显示usb调试时选择全部允许 电脑命令行下输入\nadb reboot fastboot 进入fastboot模式，开始解锁oem\nfastboot oem unlock 此时需要在手机上操作，按手机音量键将光标以至unlock\n解包 # 从官网下载PE ROM 使用payload_dumper解包 解包后文件夹output中的内容物就是我们需要用到的东西\n刷入 # 一样需要重新打开开发者模式，打开USB调试 然后按以下顺序刷入即可\nadb reboot bootloader fastboot flash recovery D:\\ payload_dumper-win64\\ payload_output\\recovery.img fastboot flash boot D:\\ payload_dumper-win64\\ payload_output\\boot.img fastboot flash dtbo D:\\ payload_dumper-win64\\ payload_output\\dtbo.img fastboot flash vbmeta D:\\ payload_dumper-win64\\ payload_output\\vbmeta.img fastboot flash vbmeta_system D:\\ payload_dumper-win64\\payload_output\\vbmeta_system.img fastboot reboot fastboot fastboot flash system D:\\ payload_dumper-win64\\ payload_output\\system.img fastboot flash product D:\\ payload_dumper-win64\\ payload_output\\product.img fastboot flash system_ext D:\\ payload_dumper-win64\\ payload_output\\system_ext.img fastboot reboot","date":"2021-10-20","externalUrl":null,"permalink":"/2021/10/20/Android/onepe/","section":"文章","summary":"很早就刷了，只不过一直懒的写。\n","title":"OnePlus 8T 刷机笔记","type":"posts"},{"content":"","date":"2021-10-20","externalUrl":null,"permalink":"/tags/perom/","section":"Tags","summary":"","title":"PEROM","type":"tags"},{"content":"","date":"2021-10-20","externalUrl":null,"permalink":"/tags/pixelexperience/","section":"Tags","summary":"","title":"PixelExperience","type":"tags"},{"content":"","date":"2021-10-20","externalUrl":null,"permalink":"/tags/%E5%AE%89%E5%8D%93/","section":"Tags","summary":"","title":"安卓","type":"tags"},{"content":"","date":"2021-10-08","externalUrl":null,"permalink":"/tags/c%E8%AF%AD%E8%A8%80/","section":"Tags","summary":"","title":"C语言","type":"tags"},{"content":"","date":"2021-10-08","externalUrl":null,"permalink":"/tags/windows/","section":"Tags","summary":"","title":"Windows","type":"tags"},{"content":"缘由 # 正式开学了，第一天直入主题，学c。 学校电脑很垃圾 用的软件更垃圾 总之就是很难用\n本文献给我的同学们。\n旨在帮助不想使用学校电脑的同学们使用自己的笔电更好地学习c语言\n所需物品 # Windows系统的电脑一台 一个良好的网络环境（最好能正常访问海外网站） 实做过程 # 强烈推荐使用VScode写代码！！！\n安装MinGW # Linux有自带的GNU，Mac自带clang，都可以不需要额外操作就正常使用gcc对代码进行编译 而Windows没有！没有！！！ 所以这时候我们就需要安装MinGW来解决这个问题。\n下载MinGW # 网好的同学可以直接在下载。进入网页后向下找到x86_64-posix-seh点击即可下载。\n解压压缩包 # 下载后会得到名字为x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z的压缩包。 默认情况下Windows是不能解压的，这里可以下载[Bandizip](https://www.bandisoft.com/)来解压缩。 解压位置随意，但记得记下来之后要用。 比如文件夹解压到了C盘根目录，那么文件夹路径即为C:\\mingw64 文件夹路径加上bin后就是之后要用的文件夹路径（C:\\mingw64\\bin`)\n配置环境变量 # 右键点击此电脑，在侧边栏找到高级设置 在高级设置的界面里点击环境变量的选项，此时会看到PATH变量 点击PATH，将文件夹路径(C:\\mingw64\\bin)添加到里面即可\n如何验证是否成功安装 # 在Windows菜单栏搜索cmd，打开命令行操作界面输入以下命令\ngcc -v 如果跳出一大堆看不懂的英文或者中文就说明安装成功了。\n","date":"2021-10-08","externalUrl":null,"permalink":"/2021/10/08/win-inst-gcc/","section":"文章","summary":"缘由 # 正式开学了，第一天直入主题，学c。 学校电脑很垃圾 用的软件更垃圾 总之就是很难用\n本文献给我的同学们。\n旨在帮助不想使用学校电脑的同学们使用自己的笔电更好地学习c语言\n","title":"Windows下安装gcc的小教程","type":"posts"},{"content":"","date":"2021-10-08","externalUrl":null,"permalink":"/tags/%E5%BC%80%E5%8F%91/","section":"Tags","summary":"","title":"开发","type":"tags"},{"content":" ","date":"2021-08-28","externalUrl":null,"permalink":"/2021/08/28/logbook/","section":"文章","summary":"","title":"业余无线电台通联日志","type":"posts"},{"content":"这是一部极其小众的作品，小众到电视动画开始时都没有在日本全国播放，但是机缘巧合下，让我接触到了这部作品。\n这部作品围绕着八十龟最中等高中生的日常介绍了名古屋当地的人文风俗，日常番+超有意思的地方特色是在是太对我胃口了。\n总之很爱就是了，顺便，前两季电视动画的音乐专辑以及漫画原著我也购入收藏了\n","date":"2021-07-29","externalUrl":null,"permalink":"/2021/07/29/yatogame/","section":"文章","summary":"","title":"安利《八十亀ちゃんかんさつにっき》","type":"posts"},{"content":"“On my business card,I am a corporate president. In my mind,I am a game developer. But in my heart,I am a gamer.”\nYouTube # ","date":"2021-07-19","externalUrl":null,"permalink":"/2021/07/19/iwata-san-2005GDC/","section":"文章","summary":"","title":"岩田先生的演讲 -- 2005 GDC 存档","type":"posts"},{"content":"本文内容摘抄于《体育运动中的功能性训练》（Michael Boyle著），同时视频演示以及步骤来自于Keep健身。\n文中个人的一些观点以及注解会以MarkDown中的引用的形式出现，这一部分内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议。 个人精力有限，内容会缓慢更新。\n拉伸与动态热身 # 运动前后热身有助于防止受伤\n泡沫轴 # 泡沫轴是一种廉价且方便的热身、放松工具。 根据我有限的知识解释，泡沫轴的原理可以简单理解为通过对特定肌肉群的挤压，在运动前/运动后使肌肉舒张，从而起到保护肌肉不会在过于猛烈的运动中撕裂，或是让运动后紧绷的肌肉放松。 注意⚠️：泡沫轴购买圆桶表面平整的即可 唯一缺点：用起来比较累\n泡沫滚轴滚动臀大肌和髋部旋转肌 # 步骤（以左侧为例） # 左手撑地，右腿屈曲踩实地面，左腿搭在右膝上，上身稍微转向左侧，将重量压在左侧臀部 泡沫轴置于臀中部两块突起的骨头中间 右腿发力带动身体前后滚动 泡沫轴滚动下背部 # 步骤 # 双臂支撑，将泡沫轴垫在下背部下方 臀部抬离地面，上身往后靠，将身体重量集中压在泡沫轴上 下背部在泡沫轴上缓缓的前后滚动 泡沫轴上背部放松 # 步骤 # 仰卧在瑜伽垫上，屈膝，双脚与肩同宽踩实地面；双手抱住对侧肩膀，双肩充分展开 泡沫轴置于上背部下方，来回滚动 下颚后缩收紧，减少颈部受力 泡沫轴滚动阔筋膜张肌和臀中肌 # 步骤（以左侧为例） # 45度左侧卧，左腿伸直，让大腿前外侧与泡沫轴接触，右腿屈曲置于左腿前；左肘撑地，右手扶地 左脚脚尖带动身体在泡沫轴上前后滚动，全程保持大腿放松 下肢练习 # 下肢练习在竞技游泳中主要锻炼的部位为臀部、大腿的肌群\n深蹲类 # 深蹲类的动作主要锻炼的部分为臀大肌、缝匠肌、股四头肌、阔筋膜张肌（即臀部以及大腿前侧肌群）\n深蹲 # 强度类型：基准 步骤 # 腰背挺直，脚跟与肩同宽，膝盖与脚尖方向一致，不要内扣，掌心相对，手臂前平举 下蹲动作自然流畅，臀部向后移动，至最低点时大腿与地面近似平行，然后起身还原，全程保持腰背挺直 高脚杯深蹲 # 强度类型：退阶（小重量哑铃下）/进阶（大重量哑铃下） 步骤 # 双脚分开与肩同宽，收紧腹部核心，肩膀后缩下沉 双手握着一只哑铃的一端，放于胸口，不要离身体太远 臀部缓慢向后推并向下蹲，蹲至大腿与地面平行；稍作停顿 臀部收缩发力站起；站起后，肩胛骨后缩，夹紧臀部 保持腰背挺直，动作过程中膝盖朝向脚尖方向，同时膝盖不主动前伸 半蹲 # 强度类型：退阶 步骤 # 脚跟与肩同宽，挺直腰背，掌心相对，手臂前平举 臀部向后坐，膝盖与脚尖方向一致，下蹲至大腿与地面呈45°，臀部位置高于大腿，即可还原起身，动作尽* 可能流畅、连贯 分腿蹲 # 强度类型：基准 步骤 # 分腿站姿，双脚与肩同宽，前后分开（类似弓步的站姿） 双手叉腰，后膝缓慢下降触碰地板 核心练习 # 核心肌群包含以下肌肉\n腹直肌（腹部肌肉） 腹横肌（腹部肌肉） 多裂肌（背部肌肉） 腹内斜肌和腹外斜肌（腹部肌肉） 腰方肌（下背部肌肉） 竖脊肌（背部肌肉） 部分髋处肌肉（例如臀肌、髋部旋转肌群） 核心肌群的力量关系到身体的稳定系，例如竞技游泳中需要在游进过程中长时间保持核心紧绷，从而稳定身体，或是配合身体绕纵轴转动\n平板支撑类 # 平板支撑 # 强度类型：基准 要点 # 屈肘，小臂与前脚掌撑地，耳、肩、髋、膝、踝呈一条直线 手肘朝脚的方向用力， 脚尖用力向前勾起，与地面摩擦力对抗，小臂按紧地面 侧支撑 # 强度类型：基准 步骤（以左侧为例） # 左手肘支撑在瑜伽垫上，左侧大臂垂直于地面，右臂向上伸展并垂直于地面；双脚并拢 全身收紧，保持身体呈一条直线 屈膝侧支撑 # 强度类型：退阶 要点 # 身体侧对地面，不能前后倾倒，左臂屈臂，小臂撑地，右臂向上伸直 双腿曲膝，左小腿外侧着地，绷紧侧腹部，从头到膝盖呈一条直线 其他类 # 俄罗斯转体 # 强度类型：基准 步骤 # 坐于垫上，双腿曲膝抬起，脚离地，下背挺直，上背略微弓起 转动双肩来带动手臂的移动 手接触身体两侧地面，目光跟随双手移动 上肢练习 # 俯卧撑类 # 俯卧撑 # 强度类型：基准 要领 # 俯卧撑于垫上，腰背挺直，从侧面看身体成一条直线，双手撑于胸部两侧，间距比肩略宽 屈臂俯身至肘关节略高于躯干，然后伸臂起身还原 简易俯卧撑 # 强度类型：退阶 步骤 # 俯卧撑于垫上，腰背挺直，从侧面看身体成一条直线，双手撑于胸部两侧，间距比肩略宽 屈臂俯身至身体贴于地面上，屈腿使膝盖着地，然后伸臂起身还原 ","date":"2021-07-14","externalUrl":null,"permalink":"/2021/07/14/sports-/","section":"文章","summary":"","title":"体育运动中的功能性训练","type":"posts"},{"content":"","date":"2021-06-03","externalUrl":null,"permalink":"/tags/%E5%AE%89%E5%88%A9/","section":"Tags","summary":"","title":"安利","type":"tags"},{"content":" 写在前面 # 由于自己的爱折腾，所以经常各种作死刷系统和重装。在经历了痛苦的抢救之后往往会忘记自己以前安装过什么奇奇怪怪的东西，所以想记录下来，并安利给看到这篇文章的人。\n分类方法及相关事项介绍 # 我会根据应用的功能进行分类，并在应用的后面标注可以使用的平台或是使用的编程语言，同时我也会贴上获取的链接。\n学习相关 # Qwerty Learner \u0026ndash;为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 项目地址 時雨の町 \u0026ndash;日语学习网站 官方网址 Python \u0026ndash;100天从新手到大师 项目地址 办公相关 # Slidev \u0026ndash;用MarkDown制作PPT 项目地址 Google文档 \u0026ndash;Google推出的办公套件 官方网址 博客 # Hexo \u0026ndash;强大的静态博客框架（Mac、Windows、Linux） 官方网址 Gridea \u0026ndash;易用的静态博客写作客户端（Mac、Windows、Linux） 官方网址 站长工具 # Google站长 官方网址 Google分析 官方网址 Super Tiny Icons \u0026ndash;小体积SVG图像项目 项目地址 聚合图床 \u0026ndash;高速稳定的图片上传和外链服务 官方网址 阿里巴巴矢量图库 官方网址 开发相关 # VSCode \u0026ndash;极其好用的IDE 官方网址 Android Studio \u0026ndash;Android开发必备IDE 官方网址 吾爱破解论坛 论坛地址 Homebrew \u0026ndash;Mac必备包管理软件 官方网址 VSCode插件专区 # vscode-icons – 在文件列表的文件名边加上图标 链接 Kite AutoComplete AI Code – 智能代码补全工具 链接 Chinese (Traditional) Language Pack for Visual Studio Code – 中文插件 链接 Bracket Pair Colorizer – 代码对着色器 链接 信息获取 # 🐋 Awesome TTRSS \u0026ndash;方便部署的Tiny Tiny RSS Docker项目 官方网址 FeedMe \u0026ndash;Android RSS订阅客户端 （Android） 官方网址 RSSHub \u0026ndash;开源、简单易用、易于扩展的 RSS 生成器 官方网址 Newlearnerの自留地 \u0026ndash;Telegram资讯频道 频道链接 多媒体/音乐相关 # YouTube Music \u0026ndash;来自Google的音乐串流服务 （Web、Android、iOS）官方网址 Netflix \u0026ndash;优质的影视流媒体平台 官方网址 巴哈姆特動畫瘋 \u0026ndash;巴哈姆特电玩资讯站于台湾运营的OTT动画播放平台 官方网址 IINA \u0026ndash;干净的MacOS多媒体播放器 （Mac）官方网址 VLC \u0026ndash;跨平台的多媒体播放器（Mac、Windows、Linux、Android、iOS）官方网址 poweramp \u0026ndash;强大的Android音乐播放器 官方网址 Plex \u0026ndash;跨平台的家庭影音中心（Mac、Windows、Linux、Android、iOS）官方网址 Disney+ – 迪士尼本家的流媒体平台 官方网址 通讯 # Telegram （Mac、Windows、Linux、Android、iOS、Web）官方网址 网络穿透工具 # Clash （Mac、Windows、Android、OpenWrt） v2Ray \u0026ndash;网络穿透工具箱 官方网址 电子书/漫画相关 # Tachiyomi \u0026ndash;开源的Android漫画客户端 （Android) 项目地址 Calibre \u0026ndash;跨平台的电子书管理软件（Mac、Windows、Linux）官方网址 资源下载 # tgbot-collection/YYeTsBot \u0026ndash;开源的人人影视数据库 项目地址 Mox.moe \u0026ndash;Kindle漫画下载站官方网址 RARBG \u0026ndash;影视磁力下载站 官方网址 日剧跑 \u0026ndash;日剧资源分享站 官方网址 蜜柑计划 \u0026ndash;番剧磁力下载站 官方网址 AGE动漫 \u0026ndash;番剧网盘下载站 官方网址 次元狗动漫 \u0026ndash;番剧网盘下载站 官方网址 二次元虫洞 \u0026ndash;ACG资源论坛 论坛地址 ACG爱动漫 \u0026ndash;ACG资源论坛 论坛地址 星空论坛 \u0026ndash;ACG资源论坛 论坛地址 Hires后花园 \u0026ndash;无损音乐论坛 论坛地址 漫音社 \u0026ndash;无损ACG音乐下载站 官方网址 sukidesuost \u0026ndash;无损ACG音乐下载站 官方网址 点点字幕 \u0026ndash;好用的字幕下载站 官方网址 A4K字幕 \u0026ndash;好用的字幕下载站 官方网址 Xclient下载站 \u0026ndash;MacOS软件下载站 xclient pc6下载站 \u0026ndash;MacOS软件下载站 官方网址 下载工具 # Downie 4 \u0026ndash;万用的Mac视频下载器（Mac）官方网址 BitComet(比特彗星) \u0026ndash;一款免费的BT/HTTP/FTP下载软件（Mac、Windows、Android）官方网址 aria2 \u0026ndash;跨平台下载工具（Mac、Windows、Linux）官方网址 Motrix \u0026ndash;跨平台下载工具（Mac、Windows、Linux）官方网址 系统镜像 # Ubuntu 官方网址 Windows10 官方网址 OpenWrt 第三方项目地址 MacOS 第三方论坛地址 Cros Updates Serving \u0026ndash;ChromeOS镜像站 官方网址 Debian-Pi-Aarch64 ★ 全新树莓派64位系统 项目地址 pixelexperience \u0026ndash;好用的类原生Android ROM 官方网址 私有云/分享站 # OLAINDEX \u0026ndash;一款OneDrive目录文件索引应用 项目地址 Cloudreve \u0026ndash;以最低的成本快速搭建公私兼备的网盘系统 官方网址 开发者工具 # API调试 # bruno \u0026ndash;简单好用的跨平台API调试工具 项目地址 实用工具 # 广播 # Radio Garden \u0026ndash;收听全世界的广播 官方网址 系统镜像烧录 # balenaEtcher \u0026ndash;跨平台镜像烧录工具（Mac、Windows、Linux）官方网址 ventoy 官方网址 MarkDown工具 # obsidian \u0026ndash;跨平台的MarkDown写作工具（Mac、Windows、Linux、Android、iOS） 官方网址 traceroute请求可视化 # BestTrace \u0026ndash;一款优秀的traceroute请求可视化工具 官方网址 图像压缩 # tinypng \u0026ndash;在线压缩图像的网站 官方网址 PP鸭 \u0026ndash;图片压缩神器 官方网址 Imagine \u0026ndash;跨平台图片压缩 项目地址 解压缩 # MacZip \u0026ndash;一款干净的Mac解压缩工具（Mac）官方网址 Bandizip \u0026ndash;一款跨平台解压缩工具（Mac、Windows）官方网址 ZArchiver \u0026ndash;一款Android平台好用的解压缩、文件管理工具Google Play 音频提取 # XLD \u0026ndash;Mac音频提取工具（Mac） 下载地址 音乐信息修改 # Music Tag Editor \u0026ndash;一款Mac下音乐信息修改工具（Mac）官方网址 视频/音频压制 # HandBrake \u0026ndash;跨平台视频压制工具（Mac、Windows、Linux）官方网址 Adapter \u0026ndash;音视频压缩工具（Mac、Windows）官方网址 配色工具 # 色采 \u0026ndash;一款优秀的移动端配色应用（Android、iOS） 网络抓包 # Fiddler \u0026ndash;一款优秀的跨平台抓包工具（Mac、Windows、Linux）官方网址 SSH # Termius \u0026ndash;跨平台SSH工具 （Mac、Windows、Linux、Android、iOS）官方网址 局域网文件传输 # snapdrop \u0026ndash;好用的局域网跨平台传输工具 官方网址 Android ROM解包工具 # unpackandroidrom \u0026ndash;基于Python的Android解包工具 项目地址 编码转换 # CodeTransmit \u0026ndash;基于python的编码转换工具 （Mac、Windows、Linux）项目地址\n订阅转换 # subconverter \u0026ndash;网络穿透订阅链接转换服务项目 （Mac、Windows、Linux）项目地址 sub-web \u0026ndash;subconverter的Web前端 项目地址 Clash rules \u0026ndash;适用于 Clash Premium 内核的规则集（RULE-SET）项目地址 subconverteriniexample \u0026ndash;适用于 Clash Premium 内核的规则集 项目地址 OCR # pot-desktop 项目地址 ","date":"2021-06-03","externalUrl":null,"permalink":"/2021/06/03/URL/","section":"文章","summary":"","title":"自用软件/项目/网站推荐","type":"posts"},{"content":"前几天开始，我所在的城市算是准备开始入夏，只要不下雨，基本30度以上了。 这对于长头发的人来说属实不是什么好事，同时对于一个平时戴耳罩式耳机又长头发的人来说简直是“火上加碳”。 剪头发是不可能的，这辈子都不可能的，所以只能从耳机入手了。\n先给结论 # 可以说这部耳机从入手打开的那一刻就惊艳到我了，音质、降噪都没话说，独家的 HearID 2.0 可以很方便的针对不同人的听力进行优化，同时价格只需要999（某宝上店铺卖的更便宜，我入手的价格大概是750） 如果你不是对音频格式、比特率、采样等数据有着无与伦比的执念的发烧友，以及追求超低延迟的FPS、音乐游戏还非要戴无线蓝牙耳机的玩家，那么这款耳机就非常适合你。无论你用的是iPhone还是Android。\n推荐指数 ⭐⭐⭐⭐⭐ 佩戴舒适度 ⭐⭐⭐⭐⭐ 兼容性 ⭐⭐⭐⭐⭐ CP值 ⭐⭐⭐⭐⭐ 音质水平 ⭐⭐⭐⭐ 降噪水平 ⭐⭐⭐⭐ 易用性 ⭐⭐⭐⭐ 开箱 # 我买耳机，尤其是无线耳机这种可以进行固件升级的耳机非常讨厌购买国行，原因详见。 但我这次买了国行。\nAnker 这个品牌其实之前长期运营海外市场，近些年才慢慢开始顾上大陆市场，从包装上来说，其实和海外版差别不大，除了中文多了点然后把android下载应用的Google Play标志拿掉然后告诉你从各大应用市场下载外与海外版包装基本一致 内部第一层非常简洁，就是耳机本体加上充电仓 第二层就是充电线和说明书以及替换用的耳塞，这款耳机非常夸张的附赠了8组（加耳机上那一副共九组）不同型号的硅胶耳塞供用户选择！ 妈妈再也不用担心耳塞型号不合适了！ 使用 # 讲实话，我纸质说明书根本没打开看\n首次配对 # 首次配对只需要把耳机放入充电仓，同时看到右耳耳机上面的指示灯在闪烁就说明耳机正在等待配对了，这时候只需到手机设置里的蓝牙设置把耳机连上就能开始用了\nAPP使用 # 只是通过蓝牙链接这款耳机并不能发挥它全部的效能，这时我们需要通过它的APP对设置进行客制化 下载地址：App Store Google Play\nHearID设置 # 每个人的耳朵对声音的灵敏度都不一样，通过HearID的测试，耳机可以自动根据你对声音的敏感度调整等化器 HearID设置真的非常非常重要，它能让你听到的音乐变得更加好听！ 在app左下角你可以看到HearID及等化器的选项，点进去之后就可以看到HearID设置，按照提示花几分钟即可。\n降噪 # 这个真的好评，降噪模式分为交通、室内、户外、自订四种，每个模式的侧重都不同\n交通：会集中降低汽车发动机等交通工具的噪音，实测下来能听得见发动机的声音但已经非常微弱了，开音乐的话不注意听也根本不会注意到汽车的声音了 室内：注重人声等声音的降噪，是三个预设中降噪强度最大的，除了人声，电脑等电器发出的早上也能被很好地消除，世界瞬间安静 户外：这个我决定主要是用于跑步、骑行等容易产生风噪的场景下，户外模式下不会有任何因风击打拾音麦克风而导致的风切声（风刮到耳朵上的声音还是会有的，就是你平时跑步时风刮来你听到那种声音，但是非常轻）。 自定义模式：讲实话我没有用过，实在不知道自定义模式怎么用，APP里没说明自定义模式下调节各档有哪些不同，这点差评 降噪来说稍微会比AirPods Pro差一点点（吊打WH-H900n），但正因为降噪强度没有那么高，所以耳压感几乎没有，佩戴非常舒适 小组件 # 小组件可以很方便地根据个人需求选择使用不同的降噪模式抑或是也换到降噪关闭或通透模式。Android下的小组件我个人觉得甚至比Google自家的要好看 音质 # 这里讲的是经过HearID设置后听到的声音，由于每个人的耳朵对声音的敏感程度不同，我仅代表我个人的感受，不能代表任何组织以及任何科学严谨的结论。\n传输格式 # 这款耳机的音频协议仅支持SBC/AAC 但这不能代表什么。 音频协议只决定了音乐能达到的上限，简单来讲协议所决定的是单位时间内手机传输到耳机的数据量有多大，比如大多数音乐软件给的低、中、高品质的歌曲都是能使用AAC协议正常使用的，而如果你使用的音源达到了无损例如使用FLAC、WAV格式的音乐，其数据量大到无法AAC协议无法胜任，那么就要使用单位时间内可以传输更大数据量的LDAC、aptX协议。 对于普通人来说，其实AAC很够用了。在HearID的加持下，你可以获得不错的体验。\n主观听感 # 我本人不懂音乐，说不出什么专有名词和解释，只能很主观给出如下感受：\n低音非常棒，控制的恰到好处，同时不至于特别轰头 和Sony的WH-H900n相比人声稍微有所欠缺（只是稍微），不过不影响。整体来说人声是非常清晰的，但我就是觉得人声稍微有一点点欠缺，文化水平不高实在表达不出来。 总体来说非常优秀，声音干净、清晰 个人使用下来与家里的音箱、耳机相比的听觉感受排名如下 Sony SRS-HG2 音箱\u0026gt;Sony WH-H900n 头戴式耳机\u0026gt;SIMGOT em2 洛神 入耳式有线耳机\u0026gt;Anker Liberty Air 2 Pro\u0026gt;Google Next Mini 智能音箱\u0026gt;Apple AirPods Pro\u0026gt;Sony NW-WS413\u0026gt;Sony WF-SP800N\n佩戴 # 舒适性 # 这副耳机是我除了Apple的AirPods系列外唯一戴着很舒服的入耳式耳机，舒服到甚至可能会忘了有它的存在。 而且运动时也非常稳固，不容易被甩掉。\n耳塞型号选择 # 由于附赠了非常非常多的硅胶耳塞，所以不用担心耳塞不合适，如果你不知道怎么用算是戴好耳塞或者应该戴什么型号的耳塞，可以戴上耳机使用APP中的Tip Fit Test功能检测耳机是否戴好，并给出佩戴建议。 续航 # 续航根本不用担心，官方标称降噪模式下耳机续航6小时，带充电仓甚至能高达26小时的续航，你甚至可以不带充电仓完成一场全马。 我个人的使用来说四五天充一次电就绰绰有余了。\n不足 # 触摸操作判定有点迷 # 由于不是压感操作而是采用触控，所以操作比较迷，刚开始可能会因为不熟悉触控的位置而点下去后没什么反应，同时也做不到点按和操作同步，切歌什么的操作会有一定延迟，这一点不如AirPods Pro\n耳机莫名其妙没声音 # 有时候（极小几率）不知道为什么刚刚把耳机从充电盒里拿出来戴上然后开音乐会没声音，而且手机显示已连接。但只要重新放回充电盒再拿出来就没问题，也不知道为什么。\n总结 # Anker Liberty Air 2 Pro这款耳机CP值非常高，用料扎实、价格实惠。它的素质吊打一千元以下所有耳机，音质方面有HearID的加持下能赶上大法的WH-H900n，这方面吊锤AirPods Pro。 还是那句话：如果你不是对音频格式、比特率、采样等数据有着无与伦比的执念的发烧友，以及追求超低延迟的FPS、音乐游戏还非要戴无线蓝牙耳机的玩家，那么这款耳机就非常适合你。无论你用的是iPhone还是Android。\n","date":"2021-05-17","externalUrl":null,"permalink":"/2021/05/17/liberty-air-2-pro/","section":"文章","summary":"","title":"Anker Liberty Air 2 Pro 非客观评测","type":"posts"},{"content":"","date":"2021-05-17","externalUrl":null,"permalink":"/tags/%E8%80%B3%E6%9C%BA/","section":"Tags","summary":"","title":"耳机","type":"tags"},{"content":"","date":"2021-05-17","externalUrl":null,"permalink":"/tags/%E8%AF%84%E6%B5%8B/","section":"Tags","summary":"","title":"评测","type":"tags"},{"content":"","date":"2021-05-12","externalUrl":null,"permalink":"/tags/clash/","section":"Tags","summary":"","title":"Clash","type":"tags"},{"content":" 写在前面 # 其实subconverter我已经用了一年多了，最近考完单招考试（由于今年压力很大所以其实爹妈还是强烈要求我准备高考），同时对自己的订阅做了优化，所以就趁这个机会记录下我的使用心得。 注意：由于平时并不使用windows系统的电脑所以这里只介绍subconverter在Linux下的部署方法\n前期准备 # 硬件部分 # 电脑一台（啥都行，Linux、Mac、Windows都可以），手机也行。 软件部分 # subconverter subconverteriniexample clash-rules Clash/ClashX（MacOS使用）/Clash for Windows/Clash for Android URLEncode subconverter搭建 # 由于本人不使用subweb，所以这里只介绍无可视化界面的subconverter如何搭建，如果你希望使用subweb，可以移步其项目地址参照官方文档操作。\n下载subconverter压缩包 # 首先使用ssh连接Linux服务器或在本地打开终端 从subconverter项目的Releases找到自己机器适用的压缩包（这里以subconverter_linux64.tar.gz 为例） 如果你使用的是Linux64位的操作系统那么可以完全照抄以下操作\nmkdir /home/sub # 创建一个文件夹 cd /home/sub # 进入#/home/sub文件夹 wget https://github.com/tindy2013/subconverter/releases/download/v0.6.4/subconverter_linux64.tar.gz # 下载压缩包 tar -xvf subconverter_linux64.tar.gz # 解压压缩包 cd subconverter #进入项目文件夹 修改配置文件 # 在项目文件夹下会有一个叫pref.ini文件，如果你有特殊需求的话，请按文件中的注释自行修改，我是直接使用默认的设置的。\n后台运行及管理 # 这里使用pm2来管理和后台运行\nwget -qO- https://getpm2.com/install.sh | bash # 安装pm2 pm2 start subconverter # 启动subconverter pm2 startup # 生成启动脚本 pm2 save # 生成启动脚本 到此，部署就全部完成了，现在你可以通过访问http://主机名:25500来使用。你也可以搭配nginx反向代理上证书使用。\nsubconverter使用 # 如果你没有别的特殊要求，到这里就可以直接使用了\n这里以本地搭建并使用为例，IP/域名请自行根据实际情况进行替换\n基础使用 # 基础使用的话我们按照官方的最基本的来就行了，具体支持哪些类型的转换可以参考官方文档的支持列表 这里我给出基础使用方式的链接格式，按实际情况照抄就行http://主机名:25500/sub?target=输出格式\u0026amp;url=机场订阅链接或节点链接 输出格式的话请参照官方文档支持列表中的参数填入,例如要使用clash，那么target=后面的参数就要填入clash；而如果你要使用的是ios上的Surge 4，那么就填入surge\u0026amp;ver=4 同时要注意，机场订阅链接需经过URLEncode转换才能使用，例如订阅链接为https://abc.xyz/efg=1那么就要通过URLEncode转换为https%3A%2F%2Fabc.xyz%2Fefg%3D1才能使用 所以，当我们使用的代理软件是clash，订阅链接为https://abc.xyz/efg=1，subconverter部署在本机（127.0.0.1)，同时不需要其他自定义设置的时候订阅链接就为http://127.0.0.1:25500/sub?target=clash\u0026amp;url=https%3A%2F%2Fabc.xyz%2Fefg%3D1 如果有多个机场的节点要整合在一起怎么办？很简单，用|将两个机场的链接隔开即可，例如要新增一个机场的订阅节点为https://xianyu.one/233那么链接就变成了http://127.0.0.1:25500/sub?target=clash\u0026amp;url=https%3A%2F%2Fabc.xyz%2Fefg%3D1|https%3A%2F%2Fxianyu.one%2F233\n进阶使用 # 学会了简单的使用，对于爱折腾，同时对节点有要求的朋友来说还是不够的，比如有些机场提供高倍率节点而我们希望把这些节点排除不用怎么办，在本节中会讲到。 首先我们要理解以下用于订阅转换的这个链接的结构，还是以上面提到的http://127.0.0.1:25500/sub?target=clash\u0026amp;url=https%3A%2F%2Fabc.xyz%2Fefg%3D1为例，我们将其拆分为以下几个部分 http://127.0.0.1:25500/sub? target=clash \u0026amp; url=https%3A%2F%2Fabc.xyz%2Fefg%3D1 现在是不是一目了然？ http://127.0.0.1:25500/sub?是我们要访问的地址，而后面如target=clash（即调用值为clash的参数target)、url=https%3A%2F%2Fabc.xyz%2Fefg%3D1（即调用值为https%3A%2F%2Fabc.xyz%2Fefg%3D1的参数url），而\u0026amp;为各参数间使用的连接符号 理解了订阅转换链接的结构，解决上面提到的问题的思路就很明朗了。我们只需要在后面加入相应参数并使用\u0026amp;连接即可。\n参数exclude \u0026ndash; 节点排除 # 当我们想排除某一些节点时，就需要在转换链接上加入参数exclude,同样的，我们筛选使用的关键词也需要经过URLEncode转换 例如我们不想使用节点名称中带有高倍率的节点，那么我们只需要将高倍率通过URLEncode转化为%E9%AB%98%E5%80%8D%E7%8E%87再将此字符串填在参数exclude后即可 放入转换链接就变成了http://127.0.0.1:25500/sub?target=clash\u0026amp;exclude=%E9%AB%98%E5%80%8D%E7%8E%87\u0026amp;url=https%3A%2F%2Fabc.xyz%2Fefg%3D1 为了方便查看和理解，我再将此链接拆开，变成以下形式方便大家查看 http://127.0.0.1:25500/sub? target=clash \u0026amp; exclude=%E9%AB%98%E5%80%8D%E7%8E%87 \u0026amp; url=https%3A%2F%2Fabc.xyz%2Fefg%3D1 那么如果我们需要筛选多个关键词怎么办呢？其实也很简单，在关键词之间加上|隔开即可，比如要筛选掉高倍率、新加坡的节点，那么就把高倍率、新加坡放入URLEncode转换为%E9%AB%98%E5%80%8D%E7%8E%87和%E6%96%B0%E5%8A%A0%E5%9D%A1之后，再用|隔开放到exclude参数后面就行了 其他参数可以依照官方文档中的调用说明自行添加即可\nsubconverter程序自定义 # 有些时候，我们可能想换换emoji（有够无聊）或者自定义config文件进行分流或节点分组时我们就需要对subconverter进行一些修改了\n修改emoji # 存放国旗emoji的文件在subconverter/snippets/emoji.txt，如果你完全参照我的部署过程，那么绝对路径为/home/sub/subconverter/snippets/emoji.txt，如果有地方需要修改那么可以直接打开这个文件进行修改。 其他比如节点分组之类的emoji会在下一节讲的config文件中出现，可以通过改config文件中的emoji修改节点分组的emoji\n自定义config # 如果我们对默认的节点组不满意，或是对分流效果不满意，那么我们可以通过调用其他config文件优化我们得到的配置文件，在subconverter根目录下的config文件夹里有预置的一些config文件，通过在链接中添加config参数，并指定需要使用的config文件名即可，例如使用名为ACL4SSR_Online_NoReject.ini的config文件，即将config=ACL4SSR_Online_NoReject.ini添加到转换链接中\n创建并使用属于自己的config文件 # 下面我们先来看一个配置文件的内容\n;不要随意改变关键字，否则会导致出错 ;设置规则标志位 surge_ruleset=DIRECT,rules/LocalAreaNetwork.list surge_ruleset=DIRECT,rules/ConnersHua/Surge/Ruleset/Unbreak.list surge_ruleset=🛑 全球拦截,rules/NobyDa/Surge/AdRule.list surge_ruleset=🛑 全球拦截,rules/ConnersHua/Surge/Ruleset/Hijacking.list surge_ruleset=📹 YouTube,rules/ConnersHua/Surge/Ruleset/Media/YouTube.list surge_ruleset=🎥 NETFLIX,rules/ConnersHua/Surge/Ruleset/Media/Netflix.list surge_ruleset=📺 巴哈姆特,rules/ConnersHua/Surge/Ruleset/Media/Bahamut.list surge_ruleset=🌍 国外媒体,https://raw.githubusercontent.com/ConnersHua/Profiles/master/Surge/Ruleset/GlobalMedia.list surge_ruleset=🌏 国内媒体,rules/lhie1/Surge3/Domestic.list surge_ruleset=📲 电报吹水,rules/ConnersHua/Surge/Ruleset/Telegram.list surge_ruleset=🔰 节点选择,rules/ConnersHua/Surge/Ruleset/Global.list surge_ruleset=🍎 苹果服务,rules/ConnersHua/Surge/Ruleset/Apple.list surge_ruleset=DIRECT,rules/ConnersHua/Surge/Ruleset/China.list surge_ruleset=DIRECT,rules/NobyDa/Surge/Download.list surge_ruleset=DIRECT,[]GEOIP,CN surge_ruleset=🐟 漏网之鱼,[]FINAL ;设置规则标志位 ;设置分组标志位 custom_proxy_group=🔰 节点选择`select`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=📲 电报吹水`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`(狮城|新) custom_proxy_group=📹 YouTube`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=🎥 NETFLIX`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`(NF|解锁) custom_proxy_group=📺 巴哈姆特`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`(台) custom_proxy_group=🌍 国外媒体`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=🌏 国内媒体`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低 custom_proxy_group=🍎 苹果服务`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=🛑 全球拦截`select`[]REJECT`[]DIRECT custom_proxy_group=🐟 漏网之鱼`select`🔰 节点选择`select`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=✈ 手动选择`select`.* custom_proxy_group=✈ 延迟最低`url-test`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=✈ 故障切换`fallback`.*`http://www.gstatic.com/generate_204`500 ;设置分组标志位 很明显，它分为两个大的版块：surge_ruleset=（规则集）、custom_proxy_group=（节点组）\nsurge_ruleset= # 这一部分指=后指定的是我们所要分类的规则集，以surge_ruleset=🎥 NETFLIX,rules/ConnersHua/Surge/Ruleset/Media/Netflix.list为例\n🎥 NETFLIX为规则集的名称 rules/ConnersHua/Surge/Ruleset/Media/Netflix.list为规则集所在的文件，本地的规则集存在于subconverter根目录下的rules文件夹中，如果你有自己的规则集文件，那么可以放在此文件夹下并以rules/xxx.list的形式填入config文件中。除了使用本地的规则集外，还能使用互联网上的在线规则集\nsubconverteriniexample clash-rules 这两个就是规则及相关的项目，需要的朋友可以自行查阅并引用\ncustom_proxy_group= # 这个是用来分节点组使用的，比如我想把节点中的台湾地区节点单独分成一组使用，那么就可以这样写\ncustom_proxy_group=🇹🇼 台湾地区`url-test`(台|新)`http://www.gstatic.com/generate_204`500 同样为方便，我将其拆开 custom_proxy_group= 🇹🇼 台湾地区 url-test (台|新) http://www.gstatic.com/generate_204 500 由于`和markdown的代码块语法冲突所以打不出来，请自行脑补\n🇹🇼 台湾地区 是节点组名 url-test是节点选择的方式即选择延迟最低的节点，其他还有例如fallback（故障切换）、select（手动选择）等方式 (台|新)当中用|隔开的即为要筛选的关键词 fallback、url-test要搭配\n`http://www.gstatic.com/generate_204`500 使用（后面这段用于检测节点延迟）\n我的解决方案 # 下面分享我使用的节点方案，如果不想折腾可以使用我提供的文件内容，新建一个ini文件放入config文件夹中调用 A方案\n;不要随意改变关键字，否则会导致出错 ;设置规则标志位 surge_ruleset=DIRECT,rules/LocalAreaNetwork.list surge_ruleset=DIRECT,rules/ConnersHua/Surge/Ruleset/Unbreak.list surge_ruleset=🛑 全球拦截,rules/NobyDa/Surge/AdRule.list surge_ruleset=🛑 全球拦截,rules/ConnersHua/Surge/Ruleset/Hijacking.list surge_ruleset=📹 YouTube,rules/ConnersHua/Surge/Ruleset/Media/YouTube.list surge_ruleset=🎥 NETFLIX,rules/ConnersHua/Surge/Ruleset/Media/Netflix.list surge_ruleset=📺 巴哈姆特,rules/ConnersHua/Surge/Ruleset/Media/Bahamut.list surge_ruleset=🌍 国外媒体,https://raw.githubusercontent.com/ConnersHua/Profiles/master/Surge/Ruleset/GlobalMedia.list surge_ruleset=🌏 国内媒体,rules/lhie1/Surge3/Domestic.list surge_ruleset=📲 电报吹水,rules/ConnersHua/Surge/Ruleset/Telegram.list surge_ruleset=🔰 节点选择,rules/ConnersHua/Surge/Ruleset/Global.list surge_ruleset=🍎 苹果服务,rules/ConnersHua/Surge/Ruleset/Apple.list surge_ruleset=☁️ OneDrive,rules/ConnersHua/Surge/Ruleset/OneDrive.list surge_ruleset=DIRECT,rules/ConnersHua/Surge/Ruleset/China.list surge_ruleset=DIRECT,rules/NobyDa/Surge/Download.list surge_ruleset=DIRECT,[]GEOIP,CN surge_ruleset=🐟 漏网之鱼,[]FINAL ;设置规则标志位 ;设置分组标志位 custom_proxy_group=🔰 节点选择`select`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲通用`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]DIRECT custom_proxy_group=✈ 手动选择`select`.* custom_proxy_group=📲 电报吹水`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=📹 YouTube`select`[]🌏 亚洲通用`[]🌍 欧洲及中东地区`[]🔰 节点选择`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=🎥 NETFLIX`select`[]🇹🇼🇸🇬 中文地区`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=📺 巴哈姆特`select`[]🇹🇼 台湾地区`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=🌍 国外媒体`select`[]🔰 节点选择`[]🌏 亚洲通用`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=🌏 国内媒体`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低 custom_proxy_group=🍎 苹果服务`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=☁️ OneDrive`select`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`DIRECT custom_proxy_group=🛑 全球拦截`select`[]REJECT`[]DIRECT custom_proxy_group=🐟 漏网之鱼`select`[]🌏 亚洲通用`[]🌍 欧洲及中东地区`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]🇺🇸🇨🇦 北美通用`[]🔰 节点选择`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`DIRECT custom_proxy_group=✈ 延迟最低`url-test`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=✈ 故障切换`fallback`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=🌏 亚洲通用`url-test`(台|新|日|韩)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🌍 欧洲及中东地区`url-test`(英|法|德|阿姆斯特丹|荷兰|土耳其|比利时|瑞士)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇺🇸🇨🇦 北美通用`url-test`(美|加拿大)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇹🇼🇸🇬 中文地区`url-test`(台|新)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇹🇼 台湾地区`url-test`(台|新)`http://www.gstatic.com/generate_204`500 ;设置分组标志位 B方案\n;不要随意改变关键字，否则会导致出错 ;设置规则标志位 surge_ruleset=DIRECT,rules/LocalAreaNetwork.list surge_ruleset=DIRECT,rules/ConnersHua/Surge/Ruleset/Unbreak.list surge_ruleset=🛑 全球拦截,rules/NobyDa/Surge/AdRule.list surge_ruleset=🛑 全球拦截,rules/ConnersHua/Surge/Ruleset/Hijacking.list surge_ruleset=📺 巴哈姆特,rules/ConnersHua/Surge/Ruleset/Media/Bahamut.list surge_ruleset=🎯 全球直连,rules/ACL4SSR/Clash/ChinaDomain.list surge_ruleset=🎯 全球直连,rules/ACL4SSR/Clash/ChinaCompanyIp.list surge_ruleset=🎯 全球直连,[]GEOIP,CN surge_ruleset=🎯 全球直连,/rules/ACL4SSR/Clash/lancidr.txt surge_ruleset=🔰 节点选择,rules/ConnersHua/Surge/Ruleset/Global.list surge_ruleset=DIRECT,rules/ConnersHua/Surge/Ruleset/China.list surge_ruleset=DIRECT,rules/NobyDa/Surge/Download.list surge_ruleset=DIRECT,[]GEOIP,CN surge_ruleset=🐟 漏网之鱼,[]FINAL ;设置规则标志位 ;设置分组标志位 custom_proxy_group=🔰 节点选择`select`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲通用`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]DIRECT custom_proxy_group=✈ 手动选择`select`.* custom_proxy_group=📺 巴哈姆特`select`[]🇹🇼 台湾地区`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`(台) custom_proxy_group=🎯 全球直连`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低 custom_proxy_group=🛑 全球拦截`select`[]REJECT`[]DIRECT custom_proxy_group=🐟 漏网之鱼`select`[]🇹🇼🇸🇬 中文地区`[]🌏 亚洲通用`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=✈ 延迟最低`url-test`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=✈ 故障切换`fallback`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=🌏 亚洲通用`url-test`(台|新|日|韩)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🌍 欧洲及中东地区`url-test`(英|法|德|阿姆斯特丹|荷兰|土耳其|比利时|瑞士)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇺🇸🇨🇦 北美通用`url-test`(美|加拿大)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇹🇼🇸🇬 中文地区`url-test`(台|新)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇹🇼 台湾地区`url-test`(台)`http://www.gstatic.com/generate_204`500 C方案\n;不要随意改变关键字，否则会导致出错 ;设置规则标志位 surge_ruleset=DIRECT,rules/LocalAreaNetwork.list surge_ruleset=DIRECT,rules/ConnersHua/Surge/Ruleset/Unbreak.list surge_ruleset=🛑 全球拦截,rules/NobyDa/Surge/AdRule.list surge_ruleset=🛑 全球拦截,rules/ConnersHua/Surge/Ruleset/Hijacking.list surge_ruleset=Google,https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/google.txt surge_ruleset=📺 巴哈姆特,rules/ConnersHua/Surge/Ruleset/Media/Bahamut.list surge_ruleset=🌍 国外媒体,rules/GlobalMedia.list surge_ruleset=🌏 全球直连,https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/direct.txt surge_ruleset=🌏 全球直连,https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/cncidr.txt surge_ruleset=🌏 全球直连,/rules/ACL4SSR/Clash/lancidr.txt surge_ruleset=🔰 节点选择,rules/ConnersHua/Surge/Ruleset/Global.list surge_ruleset=🍎 苹果服务,https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/apple.txt surge_ruleset=🍎 苹果服务,https://raw.githubusercontent.com/Loyalsoldier/clash-rules/release/icloud.txt surge_ruleset=☁️ OneDrive,rules/ConnersHua/Surge/Ruleset/OneDrive.list surge_ruleset=DIRECT,rules/ConnersHua/Surge/Ruleset/China.list surge_ruleset=DIRECT,rules/NobyDa/Surge/Download.list surge_ruleset=DIRECT,[]GEOIP,CN surge_ruleset=🐟 漏网之鱼,[]FINAL ;设置规则标志位 ;设置分组标志位 custom_proxy_group=🔰 节点选择`select`[]✈ 延迟最低`[]✈ 故障切换`[]✈ 手动选择`[]🌏 亚洲通用`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🇹🇼 台湾地区`[]DIRECT custom_proxy_group=✈ 手动选择`select`.* custom_proxy_group=Google`select`[]🌏 亚洲通用`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🇹🇼🇸🇬 中文地区`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=📺 巴哈姆特`select`[]🇹🇼 台湾地区`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`(台) custom_proxy_group=🌍 国外媒体`select`[]🇹🇼🇸🇬 中文地区`[]🌏 亚洲通用`[]🌍 欧洲及中东地区`[]🇺🇸🇨🇦 北美通用`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=🌏 国内媒体`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低 custom_proxy_group=🍎 苹果服务`select`[]DIRECT`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换 custom_proxy_group=☁️ OneDrive`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=🛑 全球拦截`select`[]REJECT`[]DIRECT custom_proxy_group=🐟 漏网之鱼`select`[]🔰 节点选择`[]✈ 手动选择`[]✈ 延迟最低`[]✈ 故障切换`[]DIRECT custom_proxy_group=✈ 延迟最低`url-test`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=✈ 故障切换`fallback`.*`http://www.gstatic.com/generate_204`500 custom_proxy_group=🌏 亚洲通用`url-test`(台|新|日|韩)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🌍 欧洲及中东地区`url-test`(英|法|德|阿姆斯特丹|荷兰|土耳其|比利时|瑞士)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇺🇸🇨🇦 北美通用`url-test`(美|加拿大)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇹🇼🇸🇬 中文地区`url-test`(台|新)`http://www.gstatic.com/generate_204`500 custom_proxy_group=🇹🇼 台湾地区`url-test`(台)`http://www.gstatic.com/generate_204`500 ;设置分组标志位 参考文章 # subconverter \u0026ndash; 在各种订阅格式之间进行转换的实用程序 Clash proxy-provider 搭配 subconverter 使用小记 clash-rules \u0026ndash; 🦄️ 🎃 👻 Clash Premium 规则集(RULE-SET)，兼容 ClashX Pro、Clash for Windows 客户端 ","date":"2021-05-12","externalUrl":null,"permalink":"/2021/05/12/Linux/tutorial/subconverter/","section":"文章","summary":"","title":"subconverter 订阅转换及搭配 clash 使用教程","type":"posts"},{"content":"","date":"2021-05-12","externalUrl":null,"permalink":"/tags/%E4%BB%A3%E7%90%86/","section":"Tags","summary":"","title":"代理","type":"tags"},{"content":"不知道为什么，我的hexo总会遇到各种各样的问题，所以换了Gridea。 最近应该会更新。首先是订阅转换的教程，然后会更新一片游戏相关的随笔。 敬请期待。\n","date":"2021-05-09","externalUrl":null,"permalink":"/2021/05/09/Something/bo-ke-qian-yi/","section":"文章","summary":"","title":"博客迁移","type":"posts"},{"content":"写在前面 # 鸽了好久，十分抱歉。\n不找理由，我的问题。\n这次是因为快考试了，感觉自己快凉了，所以报了个线上辅导班，临时抱佛脚。\n然后被迫使用钉钉。\n作为一只仓鼠，个人爱好就是囤东西，所以直播录像也想保存下来（虽然没什么用，毕竟考试前都可以查看回放）。\n由于管理员设置了禁止下载，所以没法直接下载好存档。\n然后就用了以下方法抓取并下载视频了。\n注意：使用本操作下载如培训班的视频等有触及他人商业利益的东西请勿传播，尤其是不可以贩卖！！！\n事前准备 # 硬件 # 电脑一台（我自然是用Mac啦） 软件 # Fiddler（这里我使用的是Fiddler Everywhere） m3u8视频在线提取工具 项目地址 在线使用地址（这里的话我们待会是直接使用在线地址就可以了） 开搞 # Fiddler安装 # Fiddler是一款常用的抓包工具，这里我们用它来获取视频地址\n首先从官网下载工具并安装\n然后点开软件注册并登陆\n点击左上角齿轮找到HTTPS并安装证书（点击Trust root cert1ficate）然后勾选Capture HTTPS traffic 然后关闭软件重启\n抓取视频地址 # 保证Fiddler打开后首先筛选要抓的内容\n点击URL后面的三个点，并如图中一样填入m3u8 之后点击Filter\n接下去就可以开始抓视频了 打开钉钉，并点击要回放的视频，然后回到Fiddler中之后会发现出现了一些网址，这时候说明成功抓到了 图中所示的四条实色的地址便是接下去我们所需要使用的视频地址（注意：这里有四条是因为我抓了两个视频并且在没有关Fiddler的情况下下载了两个视频所以有四个，正常情况下操作到这一步是只会有一条实色地址出现的） 选中需要下载的视频并右键点击，找到Copy并选则URL 下载视频 # 接下去打开在线m3u8视频在线提取工具在线使用地址\n粘贴刚刚我们抓到的地址就可以下载了。\n","date":"2021-04-01","externalUrl":null,"permalink":"/2021/04/01/dingtalk-video-download/","section":"文章","summary":"写在前面 # 鸽了好久，十分抱歉。\n不找理由，我的问题。\n这次是因为快考试了，感觉自己快凉了，所以报了个线上辅导班，临时抱佛脚。\n然后被迫使用钉钉。\n作为一只仓鼠，个人爱好就是囤东西，所以直播录像也想保存下来（虽然没什么用，毕竟考试前都可以查看回放）。\n由于管理员设置了禁止下载，所以没法直接下载好存档。\n然后就用了以下方法抓取并下载视频了。\n注意：使用本操作下载如培训班的视频等有触及他人商业利益的东西请勿传播，尤其是不可以贩卖！！！\n","title":"下载钉钉的直播重放","type":"posts"},{"content":"写在前面 # 其实AdGuard Home我用了好久了，挺好用的，只是之前一直没写部署及使用指南。\n前期准备 # AdGuard Home的部署非常简单，基本没什么难度。这里只介绍Linux的安装。\n服务器一台（什么都行，机房的服务器和树莓派我都在用） AdGuard Home 部署 # 首先我们需要从AdGuard Home的release下载对应机器的安装包，如果服务器在国内的话这里建议先在能魔法上网的机器上把安装包下好再传到机器上。\n例如\n树莓派使用对应的安装包为AdGuardHome_linux_armv7.tar.gz Linux服务器一般选择AdGuardHome_linux_amd64.tar.gz 创建文件夹 # 首先通过SSH连接服务器，创建一个文件夹并进入该文件夹\nmkdir /home/dns cd /home/dns 将安装包放到此处 # 以下介绍两种方案\n从Linux/Mac传送 # 这里使用scp命令\nscp 文件绝对路径 用户名@服务器ip:/home/dns 直接下载到服务器 # wget 文件链接（例如https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.105.0-beta.1/AdGuardHome_linux_amd64.tar.gz） 解压并安装部署 # 解压压缩包\ntar xvf 文件名 进入文件夹\ncd AdGuardHome 部署\nsudo ./AdGuardHome -s install 管理命令 # AdGuardHome -s uninstall - 卸载AdGuard Home服务。 AdGuardHome -s start - 启动服务。 AdGuardHome -s stop - 停止服务。 AdGuardHome -s restart - 重新启动服务。 AdGuardHome -s status - 显示当前的服务状态。 使用 # 初始化 # 通过浏览器访问http://服务器ip:3000进行初始化设置 注意：在设置端口时，请务必不要将其作为本机的dns服务器，使用AdGuard Home作为服务器的dns服务器会导致无法续签SSL证书或者有可能导致无法通过apt-get安装应用。选择IP时务必只选择本机外网IP或内网IP（别的如127.0.0.1）不要选择。\n初始化完成后即可开始使用\n常规设置的注意事项 # 在常规设置底下有个日志配置的设置，这里如果服务器硬盘空间小的话不建议把保留时间开太长\nDNS 设置 # 上游 DNS 服务器设置 # 2021年初，国内开始了针对DoT端口（853端口）进行封锁，包括国内机房的端口也无法正常使用。所以这里如果需要填写海外无污染DNS的话，请使用DoH形式的DNS服务。 这里推荐cloudflare的DoT作为上游\ntls://1dot1dot1dot1.cloudflare-dns.com tls://1.1.1.1 https://cloudflare-dns.com/dns-query https://1.1.1.1/dns-query 其他公共DNS（国内的都有污染，国外的国内基本用不了），可以参考以下列表或者维基百科（DoH/DoT）\nGoogle # https://dns.google/dns-query https://dns.google/resolve https://[2001:4860:4860::64]/dns-query https://[2001:4860:4860::6464]/dns-query 8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844 AdGuard # https://dns-unfiltered.adguard.com/dns-query https://dns.adguard.com/dns-query https://dns-family.adguard.com/dns-query 阿里巴巴DNS # 223.5.5.5 223.6.6.6 2400:3200::1 2400:3200:baba::1 https://223.5.5.5/dns-query https://223.6.6.6/dns-query https://[2400:3200::1]/dns-query https://[2400:3200:baba::1]/dns-query QUAD9 DNS # https://dns.quad9.net/dns-query https://dns9.quad9.net/dns-query https://dns10.quad9.net/dns-query https://dns11.quad9.net/dns-query 9.9.9.9 149.112.112.112 2620:fe::fe 2620:fe::9 Open DNS # https://doh.opendns.com https://doh.familyshield.opendns.com 注意：绝对不要使用360的DNS服务\n加密设置 # 证书部分我选择的方法是用宝塔面板申请Let\u0026rsquo;s Encrypt的证书然后把内容粘贴到设置里。这种方法非常适合我这样的懒狗和菜鸡使用。\n过滤器设置 # DNS封锁清单 # 由于屏蔽广告会导致很多国内的服务无法使用，所以我并不推荐用封锁清单来对付国内的流氓，以下仅列出一些比较好的清单，并不推荐使用。\nhttps://github.com/vokins/yhosts https://github.com/neoFelhz/neohosts https://github.com/Diumo/ADhosts https://github.com/StevenBlack/hosts 自定义过滤规则 # 这里提供一份我个人的屏蔽列表，主要封锁国内的一些流氓软件及对安全构成威胁的域名\n||360.cn^ ||360.com^ ||so.cn^ ||so.com^ ||360buyimg.com^ ||flux.hcdn.iqiyi.com^ ||policy.video.iqiyi.com^ ||api.map.baidu.com^ ||ps.map.baidu.com^ ||sv.map.baidu.com^ ||offnavi.map.baidu.com^ ||newvector.map.baidu.com^ ||ulog.imap.baidu.com^ ||newloc.map.n.shifen.com^ ||ris­ing.com^ ||ris­ing.net^ ||ris­ing.org^ ||king­soft.com^ ||king­soft.net^ ||king­soft.org^ ||duba.com^ ||duba.net^ ||duba.org^ ||xin­dubawukong.com^ ||xin­dubawukong.net.^ ||xin­dubawukong.org^ ||jin­shan­duba.com^ ||jin­shan­duba.net^ ||jin­shan­duba.org^ ||cn­nic.net.cn^ ||xun­lei.com^ ||hao123.com^ ||newloc.map.n.shifen.com^ ||rising.com.cn^ ||ijinshan.com^ ||verycd.com^ ||dianlv.com^ ||emule.org.cn^ ||xunlei.com^ ||kankan.com^ ||sandai.net^ ||gougou.com^ ||gigaget.com^ ||kuaishou.com^ ||gifshow.com^ ||guanjia.qq.com^ 后记 # DNS被创造的初期，并没有考虑到安全的因素，所以未加密的DNS服务很容易被恶意使用，例如DNS劫持、DNS污染等。\n相信身处中国大陆的人应该深有体会。\n透过AdGuard Home，我们可以将DNS服务掌握在自己的手里，自己选择该污染那些域名，并使用更安全的DNS服务。\n别的不好说，这里就不说了。\n","date":"2021-01-29","externalUrl":null,"permalink":"/2021/01/29/Linux/tutorial/AdGuard-Home/","section":"文章","summary":"写在前面 # 其实AdGuard Home我用了好久了，挺好用的，只是之前一直没写部署及使用指南。\n","title":"AdGuard Home部署及使用指南","type":"posts"},{"content":"","date":"2021-01-29","externalUrl":null,"permalink":"/tags/dns/","section":"Tags","summary":"","title":"DNS","type":"tags"},{"content":"2021年来了。\n2020年过了。\n去年遇到了很多事， 大概会改变我这一生的轨迹。\n希望21年能达成自己的目标，考上大学\n做更多自己喜欢的事。\n乐之。\n","date":"2021-01-09","externalUrl":null,"permalink":"/2021/01/09/Something/hello-2021/","section":"文章","summary":"","title":"Hello 2021","type":"posts"},{"content":"","date":"2021-01-09","externalUrl":null,"permalink":"/tags/%E9%9A%8F%E7%AC%94/","section":"Tags","summary":"","title":"随笔","type":"tags"},{"content":" 想不到这么快会更新文章。\n今天晚上不知道怎么的就是觉得不占满带宽睡不着觉，于是起身找番屯着（本人有轻度仓鼠症，喜欢的视频都会本地备份）。\n由于生肉原盘品质最高的缘故（主要冲着有番剧的cd去的），所以选择了它。 如上图所示，直接跑满带宽。感谢世界各地的hxd\n至少在下盗版盘这事上，全世界人民联合起来了。\n2020年是不平凡的一年，东亚这边一个自认为崛起的地方和大洋彼岸某个希望再次伟大的地方闹得不可开交；东亚某区域形势急剧恶化，某国贩卖军火顺便隔岸观火，而某地则频频军演大秀肌肉。何必呢。\n我一毫无政治素养、道德底线、家国情怀的刁民只是觉得很可笑也很可悲。\n还记得某部叫做《我的xx学院》的番剧，因\n2020年2月3日發售的《週刊少年Jump》中，該作第259話首次公布一位進行非人道人體試驗的反派角色的真實姓名為「志賀丸太」（在漫畫中標音為しが まるた，Shiga Maruta）。2月2日（正版漫畫發布日前），一些韓國讀者在推特上發表評論認為該角色的命名與日本侵華戰爭中侵華日軍731部隊有關並提出抗議，引起相關討論，隨後被中國大陸媒體報導。 Maruta（マルタ，中文常音譯為「馬路大」），該詞在日本語中日常翻譯為「圓木」。在日本侵華戰爭期間，該詞曾被作為731部隊對人體實驗受害者的非人化稱呼。而「志賀」則是731部隊使用的一種病菌\n最终导致中国大陆的网络平台集体下架此番剧，更好玩的是原本这部番在睿站评分9+，一夜之间刷到三分以下。 这个事情我怎么想的无可奉告，大家各自保留意见吧。\n因为上面一段的缘故，不知道怎么结尾。就这样吧。\n","date":"2020-11-12","externalUrl":null,"permalink":"/2020/11/12/Something/bt-connected/","section":"文章","summary":"","title":"无题随笔","type":"posts"},{"content":"","date":"2020-11-07","externalUrl":null,"permalink":"/tags/rss/","section":"Tags","summary":"","title":"RSS","type":"tags"},{"content":"写在前面 # 好久不见，托失眠的福，我又来更新文章了。\n早上大概两点就醒了，没事干就折腾了一下博客，把该更新的都更新了。\n这段时间我开始正式使用rss，也感受到了其吸引人的地方\u0026mdash;-高度客制化的信息阅读。\n在使用rss之前，我获取信息的方式必须是要手动点开某个网站，这样效率很低，用起来也很烦。rss的优势在于可以定制自己的信息获取源，在保证信息是自己感兴趣的同时更加高效。\n本文将会介绍利用 Tiny Tiny RSS、RSSHub 等工具使用RSS获取高质量的信息内容。\n前期准备 # 硬件 # 一台服务器（vps即可，最好服务器在国外） 一台本地可以使用ssh连接服务器的设备 一个爱折腾的人 软件 # 这里指的是服务器上应该有的软件\ndocker Tiny Tiny RSS服务器部署过程 # 这里我们使用到的是来自Awesome TTRSS的docker容器。（其实不用看我的文章，官方文档对于部署和使用写的超级清楚）\nvps使用的是Ubuntu18.04 LTS\n配置环境 # 更新系统\napt-get -y update 安装docker及docker-compose\nsudo apt-get install docker-ce sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose 通过docker-compose部署Tiny Tiny RSS # 注意：建议新建一个专用文件夹存放配置文件。 如\nmkdir /home/ttrss cd /home/ttrss 获取配置文件\nwget https://raw.githubusercontent.com/HenryQW/Awesome-TTRSS/master/docker-compose.yml 通过vim编辑配置文件\nvim docker-compose.yml 文件必需修改的内容为POSTGRES_PASSWORD、SELF_URL_PATH、DB_PASS\nversion: \u0026#34;3\u0026#34; services: database.postgres: image: postgres:13-alpine container_name: postgres environment: - POSTGRES_PASSWORD=此处修改为自己想要的密码 # please change the password volumes: - ~/postgres/data/:/var/lib/postgresql/data # persist postgres data to ~/postgres/data/ on the host restart: always service.rss: image: wangqiru/ttrss:latest container_name: ttrss ports: - 8964:80 environment: - SELF_URL_PATH=此处修改为部署后使用的网址 # please change to your own domain - DB_HOST=database.postgres - DB_PORT=5432 - DB_NAME=ttrss - DB_USER=postgres - DB_PASS=此处修改为自己想要的密码 # please change the password - ENABLE_PLUGINS=auth_internal,fever # auth_internal is required. Plugins enabled here will be enabled for all users as system plugins - FEED_LOG_QUIET=true stdin_open: true tty: true restart: always service.mercury: # set Mercury Parser API endpoint to `service.mercury:3000` on TTRSS plugin setting page image: wangqiru/mercury-parser-api:latest container_name: mercury expose: - 3000 restart: always service.opencc: # set OpenCC API endpoint to `service.opencc:3000` on TTRSS plugin setting page image: wangqiru/opencc-api-server:latest container_name: opencc environment: - NODE_ENV=production expose: - 3000 restart: always 修改完成后esc+:wq保存\n部署容器\ndocker-compose up -d 这里建议使用Nginx给容器反向代理，我懒所以是直接用宝塔面板做的反代。\n如果配置文件直接是复制我上面的，那么反代时使用的端口就是8964\n当然你也可以自己修改配置文件中ports的参数调整到你想要用的端口。\nTiny Tiny RSS使用 # 做完刚刚的一切，接下去就可以开始正式使用了 浏览器中输入你设置的域名/直接使用ip+端口号 默认账户：admin 密码：password 在偏好设置中可以修改密码等信息，也可以将语言设为中文。 这里建议勾选启用API的选项，以方便支持feverAPI登陆的app使用。 使用RSSHub获取订阅源 # RSSHub这个项目涵盖了大量的订阅源，基本上你会想要订阅的源大部分都可以在这里找到，搭配浏览器插件使用更佳。\n请自行前往网站挑选自己喜欢的源\n客户端选择 # 目前我个人的硬件配置为MacBook+Android+Chromebook，笔电这块我选择使用网页直接浏览，Android客户端推荐readbly，iOS不负责任但听说很好用的推荐reader\n利用feverAPI使用rss阅读器app # 前面提到了Tiny Tiny RSS可以使用feverAPI连接rss阅读器客户端，这里以readbly为例教学使用 打开软件选择fever选项 第一个随便填，第二个填写设置中给出的链接 底下分别填写用户名和密码，填写完后点击sign in即可。\n后记 # rss可以说是很古早的东西了，但它能带给我们更加干净、适合自己的获取信息体验。这个时代的尤其是国内的资讯软件普遍很混乱，xx头条、xx新闻的版面上充斥着大量垃圾讯息。在这样一个信息爆炸的时代，更高效获取干净的讯息其实更为重要\u0026mdash;-不要把时间浪费在看毫无用处的垃圾信息上\n","date":"2020-11-07","externalUrl":null,"permalink":"/2020/11/07/Linux/tutorial/ttrss/","section":"文章","summary":"写在前面 # 好久不见，托失眠的福，我又来更新文章了。\n早上大概两点就醒了，没事干就折腾了一下博客，把该更新的都更新了。\n这段时间我开始正式使用rss，也感受到了其吸引人的地方—-高度客制化的信息阅读。\n在使用rss之前，我获取信息的方式必须是要手动点开某个网站，这样效率很低，用起来也很烦。rss的优势在于可以定制自己的信息获取源，在保证信息是自己感兴趣的同时更加高效。\n本文将会介绍利用 Tiny Tiny RSS、RSSHub 等工具使用RSS获取高质量的信息内容。\n","title":"通过docker快速搭建Tiny Tiny RSS服务器 \u0026 RSS使用指北","type":"posts"},{"content":"最近很忙。\n估摸着要鸽好久\n准备高复\n回头见。\n","date":"2020-08-16","externalUrl":null,"permalink":"/2020/08/16/Something/2020/","section":"文章","summary":"","title":"闲言碎语","type":"posts"},{"content":"","date":"2020-05-27","externalUrl":null,"permalink":"/tags/%E7%A7%91%E6%99%AE/","section":"Tags","summary":"","title":"科普","type":"tags"},{"content":"","date":"2020-05-27","externalUrl":null,"permalink":"/tags/%E5%8E%86%E5%8F%B2/","section":"Tags","summary":"","title":"历史","type":"tags"},{"content":"","date":"2020-05-27","externalUrl":null,"permalink":"/tags/%E9%AD%94%E6%B3%95%E4%B8%8A%E7%BD%91/","section":"Tags","summary":"","title":"魔法上网","type":"tags"},{"content":"写在前面 # 相信有无数的墙内同胞会因为种种原因接触上魔法上网，甚至铤而走险使用这种违法的技术浏览违法的或者合法的网站。在此就聊聊有关这项技术背后的历史和实现原理。\n开篇\u0026ndash;那些互联网的历史 # 中国互联网的诞生 # 作为一个00后，我诞生于中国互联网出现后，对于开篇，我也只是从长辈那道听途说。\n中国互联网诞生于1994年，据说当时上网很麻烦，装“猫”都老费劲了。我的一位高中信息技术老师说，他当年接触互联网时，花了几天时间就把中国的网站看了个遍。\n同样作为00后，我错过了网上冲浪的时代，我也错过了论坛、博客兴盛的时代，我接触中国互联网是在08年左右，但我还小，懂个屁。\n网络审查的兴起 # 网络审查制度随着中国互联网的诞生而来，但并非一开始就如当下一般。\n网络审查粗略分为两块：\n一、中国大陆境内的内部审查：企业和个人需要遵守中国的法律法规，自觉过滤掉政府不希望出现的内容，违规的企业或个人将会受到处罚。（这不是我要说的重点）\n二、部署在中国网络国际出口的境外信息过滤机制（GFW）\n记得当年和我爹说过百度的好，认为谷歌不好用，在那个不用魔法上网就能使用谷歌搜索的年代，我甚至不喜欢谷歌，更爱百度。回想起来真是想给自己几个大嘴巴子······\n2014年5月27日，谷歌正式和中国普通网民说再见。正是在这年后，我开始慢慢探索向那些我不被允许访问的网站。\n道高一尺魔高一丈 # 随着网络审查制度的不断强化和完善，一部分人迫切的希望访问那些不存在的网站，所以希望使用魔法上网的方式站到墙头看看。\n传统艺能————VPN # 虚拟私人网络（英语：Virtual Private Network，缩写：VPN）是一种常用于连接中、大型企业或团体与团体间的私人网络的通讯方法。它利用隧道协议（Tunneling Protocol）来达到发送端认证、消息保密与准确性等功能。 \u0026mdash;\u0026mdash;wiki\n这是早期登上墙头的常用方法，也是目前一些企业正大光明上墙的办法（备案审批）。其诞生的目的是为了通信的安全而非网络审查。\n这种通信方式很安全，但对于上墙有明显缺陷————流量特征过于明显。由于传统的VPN有这一特性所以很快便被墙精准识别了。\n后起之秀，当代明星————Shadowsocks类基于socks5代理的协议 # 2012年4月20日，Shadowsocks出现在广大人民群众的视线中， 但很快在15年原作者被迫删除了项目仓库，得益于git的特性，Shadowsocks在其他志愿者的努力下不断继续前进和发展，并延伸出了v2ray、ssr、trojan这些新的衍生协议。\n今日，这批协议仍是大量上墙者在使用且推荐使用的。\n浅析软件原理、科普互联网知识 # 首先我们要了解当我们在上网时我们的机器在干什么，以我在浏览器中访问谷歌为例\n无审查环节的访问 # 在没有网络审查的环境中，当我在浏览器中输入谷歌的域名www.google.com后\n我的电脑知道了我要访问这个网站，但电脑不知道这个域名背后的IP地址（相当于某人的门牌号）所以要向DNS服务器（相当于当今的缺德地图或是电话黄页）查询这个网址背后的IP地址\n｜\n｜\nDNS服务器收到请求，并将结果返回给我的电脑\n｜\n｜\n解决了要去哪的问题，接下去就是把数据包发向谷歌的服务器了\n｜ ｜ 数据包经过路由器到达外网——到达骨干网——经过国际互联网出口再向对应服务器去\n｜\n｜\n谷歌的服务器收到了我的请求，向我发送网页的数据包，经国际互联网再返回我的电脑，我的电脑中的浏览器将网页呈现在我的面前\n有网络审查无魔法上网 # 有网络审查之后其实就多一步，国际出口处加装了GFW，此时流量在通过国际出口时，由于谷歌的IP被列入了黑名单，所以访问将直接被阻断。\n当然，也远不止这个手段。除此之外，审查机制会要求国内的DNS服务器将查询黑名单域名的请求返回错误地址（例如你问我张三的电话但我有意无意地告诉你李四的电话）。同时由于普通的DNS查询时不加密的，且使用udp协议，谁先发回数据就听谁的，所以如果你选用国外的DNS服务器进行查询，墙也能第一时间知道并抢答。还有数据包明文匹配————如果你的信息未经加密且含有其不允许查询的关键字也将阻断访问\n有网络审查有魔法上网 # 这里就要分开说了\n传统VPN # VPN思路很简单，我是为了信息安全而生的，主要任务就是加密数据。开始的时候墙还没有那么厉害，以为数据加密监测不到关键字所以也就放过了VPN的流量，但由于这种方式有非常明显的流量特征所以被精准识别了。\nShadowsocks类 # 这类基于socks5代理的穿透工具的鼻祖是Shadowsocks，框架差不多，都是由其发展而来\n类Shadowsocks协议与传统VPN不同在于它的代理方式是：\n客户端\n｜\n｜\n本地服务器（可以是在客户端上安装的软件或如网关上安装的软件）\n｜\n｜\n远程服务器\n中间多了一个本地的服务器，同时针对墙的识别方式对流量形式上做了优化\nShadowsocks # 这是老祖宗，目前依然很稳，许多机场也都提供服务。目前已经发展得非常成熟了。 同时它在速度和延迟上都有着不俗的表现，游戏加速利器。（前提是你的游戏流量能过代理。）\nShadowsocksR # Shadowsocks的一个变种，极富争议，具体自行谷歌。\nProjectV # 还有一个比较熟悉的名字叫v2ray，但正确的叫法是projectV。准确的说这不是一个协议，而是一套工具，整合了一堆乱七八糟的协议，其诞生的目的就是为了突破网络封锁，缺点是很难配置（目前有很多懒人脚本可以帮助部署），需要有一定基础知识才能理解配置的含义（都一样）。vmess协议也是目前比较主流的类Shadowsocks协议，其流量伪装的特性极大提高了隐匿程度（只是相对而言），同时ws+tls外套cdn的套娃方法可以复活被墙节点，功能十分强大。\n这里着重介绍ws+tls：\n说白了就是伪装为正常的https流量，ws一层加密再套上tls一层加密，你还可以加个cdn层层套娃，很大程度上降低流量被识别的可能。（不是100%不会被墙）\n同时正是因为这种套娃的形式所以大大增加了访问延迟，也加大了对服务端和客户端算力的要求。\ntrojan # 一个新兴的协议，方式和vmess的ws+tls有些类似，但它少了ws的加密，访问延迟和负载上较ws+tls好不少，同时部署也更为方便。缺点是不方便用ngnix。\n个人的猜想 # 首先我们知道了，每逢重大会议或“六月大扫除”墙都会拔高一截，有些机场被打的死去活来，选择自建的小伙伴也非常惨，但依然有些人能毫无阻碍的使用。\n所以这里我们要做一个假设。\n假设墙还无法做到对类Shadowsocks协议的精准识别\n从上面我们知道了，只是力度大了而已，而非完全封锁，所以可以猜测墙还无法做到精准识别。\n既然识别算法上有缺陷，那么必定会通过行为的分析，对流量进行判定。\n比如我使用trojan，从协议上来看无懈可击，完全就是伪装成了一个普通的https流量，但如果24小时都连接着，那么就显得非常不正常。没人会一天到晚盯着一个网站看，而且流量还那么大。所以我推测如果表现的很不正常，一样会触发墙的判定。\n按照这个思路，我们再往回思考，除了做到协议的无懈可击外，我们还可以在客户端和服务端入手，让我们的流量看着更普通。\n服务端上，可以用v2ray，同时真的在vps上搭建真正的网站（例如云盘或者流媒体服务），同时将就伪装为访问这个网站的流量，这样可以让流量看着非常正常，因为表面上它确实就是在看这个网站。\n客户端方面，保证不长时间的链接，同时流量尽量不要过大。最好是多台服务器配合clash使用，clash自动选择节点可以将流量分散到各个节点，也保证了不长时间连接各个节点，更大程度上流量会显得更为正常。\n以上，仅仅只是猜测。\n万一人家真的只是不想管呢？\n","date":"2020-05-27","externalUrl":null,"permalink":"/2020/05/27/cyber-security/","section":"文章","summary":"写在前面 # 相信有无数的墙内同胞会因为种种原因接触上魔法上网，甚至铤而走险使用这种违法的技术浏览违法的或者合法的网站。在此就聊聊有关这项技术背后的历史和实现原理。\n","title":"浅谈魔法上网的那些事","type":"posts"},{"content":"","date":"2020-05-27","externalUrl":null,"permalink":"/tags/%E6%9D%82%E8%B0%88/","section":"Tags","summary":"","title":"杂谈","type":"tags"},{"content":"","date":"2020-04-06","externalUrl":null,"permalink":"/tags/ddns/","section":"Tags","summary":"","title":"DDNS","type":"tags"},{"content":"写在前面 # 我的网件路由器拿来当AP用了，所以没法使用梅林固件的插件进行魔法上网。手机电脑都还好，但是ns就比较蛋疼了，不挂代理下载慢的跟蜗牛一样，而且不知道为什么国内的一些dns会把ns访问的域名解析到美帝的节点去，所以就想了这么一出。（题目又臭又长请见谅）\n准备工作 # 硬件 # 树莓派4b（别的也行，反正差不多） 陈年MacBookAir Windows电脑一台（下面我会解释为什么有Mac还要加台Windows的电脑） 网线一根 sd卡一张（大小随意，我用的是闪迪64gb A1的卡） 读卡器 树莓派对应充电线（4是type-c，之前是microUSB） 软件 # ~~分享站暂时下线，目前有点小问题 ~~已重新上线\nUbuntu18.04固件 balenaEtcher（用于烧录固件） ssh工具（这里我使用的是termius。AppStore有） 烧录系统 # 这一步其实很简单，把上面提到的Ubuntu的固件下载下来，然后在balenaEtcher中就可以一键刷入。\n我的Mac不知道为什么这个软件用不了，正好家里有另一台笔记本能用就懒得折腾了。\nSelect image那选中我们所要烧录的固件\u0026ndash;\u0026gt;Select drive选中我们所要烧录到的sd卡（做这一步的时候建议把别的什么储存卡之类的拔掉，并仔细确认选中的是对的。不要问我为什么）\u0026ndash;\u0026gt;点右边的flash等待完成刷入。\n树莓派开机及使用 # 将sd卡插到树莓派上，接上网线，插上供电线即可\n等待网口的黄灯闪烁说明已将成功了\n这时候我们需要登陆到路由器管理页面查看树莓派的ip（如果是动态ip的话需要将树莓派ip固定下来）\n我的树莓派内网IP是192.168.1.149\n在ssh工具里填写好IP，同时使用的用户名是ubuntu，默认密码为ubuntu。第一次连接后会要求强制更改密码。 在接下去使用的过程中，需要使用root用户，请使用sudo -i将自己的用户更改为root\n首先需要更改源，因为Ubuntu的官方源在国内还是比较慢的（后面还会降到更慢的）\n替换源 # 这里我们需要将文件中的所有源的地址更改为国内源的地址\nvim /etc/apt/sources.list #打开文件 按i开启编辑模式，将文件中的所有网址替换为以下任意一种\n中科大源 # mirrors.ustc.edu.cn #中科大源 ############### 你也可以选择先删光文件内容直接复制以下内容 ############ deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse 阿里云源 # mirrors.aliyun.com #阿里云源 ############### 你也可以选择先删光文件内容直接复制以下内容 ############ deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse 163源 # mirrors.163.com #163源 ############### 你也可以选择先删光文件内容直接复制以下内容 ############ deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse 清华源 # mirrors.tuna.tsinghua.edu.cn #清华源 ############### 你也可以选择先删光文件内容直接复制以下内容 ############ deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse 结束后按esc退出编辑模式并输入:wq保存并退出\n修改后更新源\nsudo apt-get update sudo apt-get upgrade 搭建本地DNS服务器 # 搭建本地DNS服务器使用的是Dnsmasq\n安装Dnsmasq # apt-get install dnsmasq 配置Dnsmasq # dnsmasq.conf # 打开配置文件\nvim /etc/dnsmasq.conf 按i打开编辑模式 去掉strict-order前面的#号 设置listen-address，配置如下：\nlisten-address=127.0.0.1,逗号后的这里请填写树莓派的内网IP地址 修改缓存大小（就在目前打开的文件中添加以下内容即可）\ncache-size=10000 resolv.conf # 打开文件\nvim /etc/resolv.conf 添加上游dns，格式如下\nnameserver 此处填写DNS地址，注意和前面的nameserver之间要有一个空格 查询顺序自上而下，可以多添加几个上游DNS地址\n按esc退出编辑模式 输入:wq保存并退出\n启动 # 启动\nservice dnsmasq restart 查看运行状态\nservice dnsmasq status 没有报错就说明安装成功了\n搭建透明代理 # 这里我们使用的是大名鼎鼎的clash\n安装clash # 找到armv7的包，复制链接并使用wget下载到机器（个人建议用能魔法上网的电脑先下载好之后上传到树莓派上，这里不介绍怎么传了）\nmkdir /home/clash cd /home/clash wget 此处填入前面找到的安装包的下载链接，比如写这篇文章时的是https://github.com/Dreamacro/clash/releases/download/v0.19.0/clash-linux-armv7-v0.19.0.gz gunzip clash-linux-armv7-v0.19.0.gz #解压包，记得把文件名替换成你下载的文件的文件名 mv clash-linux-armv7-v0.19.0 /usr/local/bin/clash #将解压好的文件夹移动至/usr/local/bin/clash chmod +x /usr/local/bin/clash #给权限 配置文件 # 配置文件怎么来的不解释，这里默认大家已经有配置文件了。\n假设我们手上有一个配置文件（文件名为a.yaml，文件路径为/home/clash/a.yaml），且目前我们处于/home/clash这个文件夹中\n重命名配置文件\nmv a.yaml config.yaml 打开并修改配置文件 # vim config.yaml 将文件中的这两个配置修改成如下\nallow-lan: true #即允许来自局域网的连接 external-controller: 0.0.0.0:9090 #可以外部控制 保存并退出\n启动clash # clash -d /home/clash 无错误输出的就是成功了\n守护程序 # 这里介绍service，也可以选用pm2（推荐）\ncd /etc/systemd/system vim clash.service 在文件中添加如下内容\n# This is about to control clash\u0026#39;s start|stop|restart|status|enable [Unit] Description=Clash Service After=network.target [Service] ExecStart=/usr/local/bin/clash -d /home/clash Restart=on-abort LimitNOFILE=1048576 [Install] WantedBy=multi-user.target 要注意ExecStart=/usr/local/bin/clash -d /home/clash这行使用的命令，如果按我的教程做的不需要修改，如果配置文件位置不一样的请自行做调整\n启动\nsystemctl start clash 查看运行状态\nsystemctl status clash 开机自启\nsystemctl enable clash 小结 # 这样就完成了clash的设置，局域网内的设备就可以通过配置文件里设置的端口设置代理进行魔法上网了。（默认http是7890，socks是7891，请自行查看配置文件设置的端口）\n想要外网访问的话需要路由器支持端口转发，请自行设置。\n这里不介绍web管理页面怎么弄了，非常简单，GitHub上把文件下载到电脑点开文件夹里的index.html文件就能用（管理页面会要求填ip和端口号，ip是树莓派内网ip，端口号是之前在修改配置文件时提到的external-controller: 0.0.0.0:9090这里的9090)。\n使用cloudflareAPI实现DDNS # 事情是这样的，本来我想弄完上面两样就收工的，然后想想得折腾折腾让外网也能正常访问。但我家宽带是动态ip我使用的主路由是TP-LINK的企业级路由，虽然支持使用ddns但是只能使用固定那几家的（花生壳啥的），但我不想用。正好我有域名，且是cloudflare托管，就使用cloudflare的api来实现ddns。\n这里使用到的脚本来自这位大神的这篇文章（利用 CloudFlare API 实现自动 DDNS 功能|支持IPv4|IPv6）,我家是IPv4所以我去掉了IPv6的内容，如需要请前往原文查看IPv6相关设置，这里就不多介绍了。\n脚本 # #!/bin/bash auth_email=\u0026#34;cloudflare账号邮箱\u0026#34; auth_key=\u0026#34;api秘钥\u0026#34; zone_name=\u0026#34;根域名\u0026#34; record_name=\u0026#34;绑定公网ip的子域名\u0026#34; record_type=\u0026#34;A\u0026#34; ip=$(curl -s http://members.3322.org/dyndns/getip) ip_file=\u0026#34;ip.txt\u0026#34; id_file=\u0026#34;cloudflare.ids\u0026#34; log_file=\u0026#34;cloudflare.log\u0026#34; log() { if [ \u0026#34;$1\u0026#34; ]; then echo -e \u0026#34;[$(date)] - $1\u0026#34; \u0026gt;\u0026gt; $log_file fi } log \u0026#34;Check Initiated\u0026#34; if [ -f $ip_file ]; then old_ip=$(cat $ip_file) if [ \u0026#34;$ip\u0026#34; == \u0026#34;$old_ip\u0026#34; ]; then echo \u0026#34;IP has not changed.\u0026#34; exit 0 fi fi if [ -f $id_file ] \u0026amp;\u0026amp; [ $(wc -l $id_file | cut -d \u0026#34; \u0026#34; -f 1) == 2 ]; then zone_identifier=$(head -1 $id_file) record_identifier=$(tail -1 $id_file) else zone_identifier=$(curl -s -X GET \u0026#34;https://api.cloudflare.com/client/v4/zones?name=$zone_name\u0026#34; -H \u0026#34;X-Auth-Email: $auth_email\u0026#34; -H \u0026#34;X-Auth-Key: $auth_key\u0026#34; -H \u0026#34;Content-Type: application/json\u0026#34; | grep -Po \u0026#39;(?\u0026lt;=\u0026#34;id\u0026#34;:\u0026#34;)[^\u0026#34;]*\u0026#39; | head -1 ) record_identifier=$(curl -s -X GET \u0026#34;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name\u0026amp;type=$record_type\u0026#34; -H \u0026#34;X-Auth-Email: $auth_email\u0026#34; -H \u0026#34;X-Auth-Key: $auth_key\u0026#34; -H \u0026#34;Content-Type: application/json\u0026#34; | grep -Po \u0026#39;(?\u0026lt;=\u0026#34;id\u0026#34;:\u0026#34;)[^\u0026#34;]*\u0026#39;) echo \u0026#34;$zone_identifier\u0026#34; \u0026gt; $id_file echo \u0026#34;$record_identifier\u0026#34; \u0026gt;\u0026gt; $id_file fi update=$(curl -s -X PUT \u0026#34;https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier\u0026#34; -H \u0026#34;X-Auth-Email: $auth_email\u0026#34; -H \u0026#34;X-Auth-Key: $auth_key\u0026#34; -H \u0026#34;Content-Type: application/json\u0026#34; --data \u0026#34;{\\\u0026#34;id\\\u0026#34;:\\\u0026#34;$zone_identifier\\\u0026#34;,\\\u0026#34;type\\\u0026#34;:\\\u0026#34;$record_type\\\u0026#34;,\\\u0026#34;name\\\u0026#34;:\\\u0026#34;$record_name\\\u0026#34;,\\\u0026#34;content\\\u0026#34;:\\\u0026#34;$ip\\\u0026#34;}\u0026#34;) if [[ $update == *\u0026#34;\\\u0026#34;success\\\u0026#34;:false\u0026#34;* ]]; then message=\u0026#34;API UPDATE FAILED. DUMPING RESULTS:\\n$update\u0026#34; log \u0026#34;$message\u0026#34; echo -e \u0026#34;$message\u0026#34; exit 1 else message=\u0026#34;IP changed to: $ip\u0026#34; echo \u0026#34;$ip\u0026#34; \u0026gt; $ip_file log \u0026#34;$message\u0026#34; echo \u0026#34;$message\u0026#34; fi 使用方法 # 先确定自家宽带目前的公网ip，并添加到CloudFlare的DNS记录中（不要打开CDN）\n并在概述处找到api，获取Global API Key的秘钥\n制作脚本 # cd /home vim cfapi.sh 填入上面提到的脚本，并将上面有中文的四行依次填入中文所示的信息后保存并退出。\n执行 # chmod +x cfapi.sh ./cfapi.sh 如果下面这个输出了宽带公网ip或显示ip为改变则说明成功了\n输出了这个 IP changed to: **** 或者这个 IP has not changed. 就是成功了 定时运行 # 我家路由器每天四点重启，所以每天四点都会更新IP，我们需要做的就是让脚本定时运行，保证实时更新。\nservice cron start #启动定时执行工具 crontab -e #编辑配置 第一次执行会显示让你选择使用的编辑工具，填对应数字并回车就行，我选择的是2（vim）\n接着的操作和之前使用vim完全一样\n这里我们填入以下命令\n0 5 * * * /home/cfapi.sh \u0026gt;/dev/null 2\u0026gt;\u0026amp;1 即每天五点运行一次脚本（具体含义可参考这篇文章） 保存并退出\n重启程序\nservice cron restart 完成。\n后记 # 折腾完了我也身心舒畅了，你说折腾这个有啥用其实也真没什么用。但也算是学到了不少新的知识吧。\n写这篇文章花了我两个小时，从晚上八点半写到晚上十点半，真的累。创作不易，欢迎大家支持和资瓷。\n","date":"2020-04-06","externalUrl":null,"permalink":"/2020/04/06/Linux/tutorial/rpi4-socks-ddns-dns/","section":"文章","summary":"写在前面 # 我的网件路由器拿来当AP用了，所以没法使用梅林固件的插件进行魔法上网。手机电脑都还好，但是ns就比较蛋疼了，不挂代理下载慢的跟蜗牛一样，而且不知道为什么国内的一些dns会把ns访问的域名解析到美帝的节点去，所以就想了这么一出。（题目又臭又长请见谅）\n","title":"使用树莓派搭建透明代理、搭建本地DNS服务器及使用cloudflareAPI实现DDNS教程","type":"posts"},{"content":"","date":"2020-04-06","externalUrl":null,"permalink":"/tags/%E6%A0%91%E8%8E%93%E6%B4%BE/","section":"Tags","summary":"","title":"树莓派","type":"tags"},{"content":"说到磁力和种子，国内很多人第一时间想到的肯定是迅雷，多年前的我也一样。由于自己下载bt非常慢，所以今天认认真真查了一下资料，才知道为啥迅雷会被叫做吸血雷。\n首先，P2P下载就是一种错误的说法。确切地说，这是一种文件共享的方式，既然有下载，也就必定会有上传。\n先说说传统的文件共享方式：有一天我见到wjh在看我很想看的小电影，然后我让他传给我一份。wjh和我使用的宽带带宽同为100M（即理论上12.5MB/s的上传下载速度），所以我下载他传给我的这个后缀为.avi的1GB大小的文件所需的时间大约是一分多钟。那么如果wjh还有另外的99个小伙伴也想要这个视频文件，且wjh同时给这一百个人传，那么我们将平分这100M的带宽。也就是说，下载速度是原来的1%\nbt应运而生。P2P文件共享的原理就是：让每一个人都成为此文件的发送者和共享者。还是上面的例子，wjh要分享文件给一百个小伙伴，此时我们将文件拆分成一百个数据块。此时小伙伴A从wjh那获得了数据块a，小伙伴B从wjh那获得了数据块b，小伙伴c从······同时，因为小伙伴A有数据块a，而小伙伴B没有，小伙伴B有数据块b而小伙伴A没有，所以这两个小伙伴互通有无，直接交换彼此有的数据块，从而减小了wjh家网络带宽的压力，且加快了下载速度。\n人多了文件多了自然分享过程就不好找，此时就需要tracker服务器出场了。当你想下载这个视频时，你向tracker服务器发消息告诉它你想要什么，那么它会帮你和其他有这个资源的用户取得联系。 从上面这个例子中我们知道了，P2P下载使用的人越多，这个文件的下载速度也就越快\n当然，前提是你愿意慷慨分享。\n这时就不得不提迅雷了。这个鬼东西同样使用P2P，但是它只下载不分享，它先将文件下载到自己的服务器，然后又不对外分享，只分享给那些交了钱的。所以，它现在也就半死不活了。但是与此同时，它顺便玩死了（同样半死不活）国内的BT圈，顺带使得国外的一些tracker服务器直接屏蔽中国IP（丢人丢到国外了）。\n对于我来说这个网络的作用是下载电影（自然是盗版）。因为穷而使用盗版并不可耻，但绝不能以此为荣，有钱的话，也请补补票，资瓷一下。当然，下载到资源的同时也别忘了分享给其他的穷兄弟，大家付出的越多，得到的也越多。\n所以\n我好想有钱啊·····\n","date":"2020-03-28","externalUrl":null,"permalink":"/2020/03/28/bt/","section":"文章","summary":"","title":"P2P下载小科普","type":"posts"},{"content":"这里收录朋友们的网站。想交换友情链接，可以通过 me@xianyu.one 联系我，并附上站点名称、网址和一句简介。\n友链 # WJH\u0026rsquo;s Blog — 高中好友w师傅。 ","date":"2020-03-28","externalUrl":null,"permalink":"/links/","section":"咸鱼的小站","summary":"","title":"友情链接","type":"page"},{"content":" 写在前面 # 2020年的时候我第一次参加体育单招考试，爹妈给买了一套课程。我抓下来保存了。 然后当年没考上。 2021年，依然没考上 在这里就放出来，分享给需要的有缘人。 更新于：2021-5-31 ⚠️注意：请勿使用于商业\n数学 # 1.考试大纲介绍、第一章集合精讲 2.函数（一） 3.函数（二） 4.数列与不等式 5.三角函数（一） 6.三角函数（二） 7.平面向量 8.平面解析几何\u0026ndash;直线 9.平面解析几何\u0026ndash;圆与椭圆 10.平面解析几何\u0026ndash;双曲线与抛物线 11.立体几何\u0026ndash;点、线、面及两平面位置关系 12.立体几何\u0026ndash;空间角与距离求解、棱柱与棱锥介绍 13.立体几何\u0026ndash;圆柱、圆锥、球 14.排列组合与概率（一） 15.排列组合与概率（二） 16.习题课\n英语 # 1.考试大纲、题型及名词讲解 2.冠词 3.代词 4.形容词 5.副词 6.副词的比较级和最高级 7.介词 8.动词 9.动词时态（一） 10.动词时态、语态（二） 11.非谓语动词 12.动名词 13.虚拟语气及构词法 14.主从句 15.强调句、倒装句 16.书面表达 17.完形填空 18.阅读理解 19.习题课（一） 20.习题课（二）\n语文 # 1.考点大纲介绍、正音 2.字形 3.词语的运用 4.成语熟语运用 5.病句 6.语言实际运用 7.修辞 8.标点符号 9.文学常识 10.现代文阅读（一）基础篇 11.现代文阅读（二）技巧篇 12.现代文阅读（三）训练篇 13.古诗文阅读（一）文言实词和文言虚词 14.古诗文阅读（二）文言句式及翻译 15.作文 16.综合测试题（一） 17.综合测试题（二） 18.综合测试题（三）\n政治 # 1.考试大纲介绍、神奇的货币 2.多变的价格、多彩的消费、生产与经济制度 3.企业与劳动者、投资理财的选择、收入的分配 4.发展社会主义市场经济 5.我国公民的政治参与 6.我国政府是人民的政府 受人民监督 7.发展社会主页民主政治、当代国际社会 8.生活与哲学 9.生活智慧与时代精神 10.思想方法与创新意识 11.认识社会和价值选择\n","date":"2020-03-24","externalUrl":null,"permalink":"/2020/03/24/2020tydz/","section":"文章","summary":"","title":"2020体育单招课程","type":"posts"},{"content":"","date":"2020-03-24","externalUrl":null,"permalink":"/tags/%E5%AD%A6%E4%B9%A0/","section":"Tags","summary":"","title":"学习","type":"tags"},{"content":"好久没写文章了，最近实在没啥可写的。\n近期也没折腾出什么名堂来。\n最近弄了分享站，花了巨款买了世纪互联的onedrive，结果没用几天API就被屏蔽了，气坏了······\n不过无所谓，有国际盘，无非需要魔法上网。\n由于onedrive的限制，无法上传15gb以上的文件，所以没法分享出蓝光资源。我在想办法把相对优质的资源压制一下上传（主要是电影）\n可怜了我12年的MacBookAir······\n","date":"2020-03-22","externalUrl":null,"permalink":"/2020/03/22/Something/da-gai-shi-ge-jin-qi-zong-jie/","section":"文章","summary":"","title":"大概是个近期总结？","type":"posts"},{"content":"最近好像有什么大事件，ao3.org被墙了。我不追星，也没入饭圈，所以这事跟我一点关系都没有。\n今天早上的时候我看到空间里有人在转这条消息 从我的角度看无非就是确认了ao3被墙了这个事实而已，关于这个墙的问题，在空间里也做了科普。 从这个事情上可以看出两点点：\n有人不了解互联网的基础知识 有人理解错了ao3官方的意思（按照我朝律例这种行为会被归类为造谣） 前些日子好像又有什么外国人中国永久居住证的事情。我是中国人，所以这事跟我也一点关系都没有。\n具体是个什么问题我也没了解过。只看见空间里也有人在转相关的消息，说什么要引进黑人啥的\n过了两天，果然有人转辟谣的说说了 从这个事情上又可以看出两点：\n有人觉得上头都是SB（小嘴抹了蜜） 有人没有专门了解过官方的文件和相关资料就在空间转发引进黑人的说说了（按照我朝律例这种行为同样会被归类为造谣而且是那种可能会被请去喝茶的造谣） 举了上面两个例子，我们可以得出以下结论：\n提到的两个事情我都没有了解过 我没有对这两个事件本身发表任何评论 首先我认为在这些事情上没有必要花心思，喜欢的网站被墙了有什么关系？fq就好了，大不了肉身出去。 引进黑人？听着就扯，更何况我国可是法治国家，按照法律的说法是得过审才能实施的\n避免做出这种无意义的浪费时间行为，首先需要的是理性的思考和说话方式。\n我对于理性语句的定义：不带形容词的陈述句\n举一个例子：\n背景：xx游行（本次游行未获得不反对通知书） 事件：xxx在xx游行中接收了来自xx组织（来自其他国家/地区）的100美元\n这里并未使用到形容词，所以描述可以做到无褒贬义，同样的，我们可以加上形容词，从两个完全不同的角度去说这个事情\n正方：xxx在xx游行中获得了xx组织的100美元资金支持 反方：xxx在xx非法游行收到境外xx组织的100资金 同一个事情，加上不同的形容词就会描述出两个不同的故事。\n声明：本人在本篇中使用的例子并非真实事件，不存在含沙射影的意思，同时也不针对任何人，但是欢迎对号入座。\n","date":"2020-03-03","externalUrl":null,"permalink":"/2020/03/03/Something/rational/","section":"文章","summary":"最近好像有什么大事件，ao3.org被墙了。我不追星，也没入饭圈，所以这事跟我一点关系都没有。\n","title":"一些话","type":"posts"},{"content":"","date":"2020-02-28","externalUrl":null,"permalink":"/tags/minecraft/","section":"Tags","summary":"","title":"Minecraft","type":"tags"},{"content":"写在前面 # 注意：本文介绍的方法目前已失效\n昨天晚上睡前看手机，本来想上微软的官网询问为什么主机端Minecraft不能填写自建服务器进行游玩的问题，然后在谷歌的时候发现了这篇帖子 **真是一语惊醒梦中人啊！**为啥我没想到？！！\n准备 # 一台服务器（这里使用的vultr的一台服务器，本来是用于搭建分享站使用的）系统为CentOS7 电脑手机度可以，用于远程连接服务器 安装软件 # 方法一 # 使用到的软件是Dnsmasq\nwget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.75.tar.gz yum -y install gcc tar -xf dnsmasq-2.75.tar.gz cd dnsmasq-2.75 make install 执行完后可以利用下面的命令查看安装版本以检察是否安装成功\ndnsmasq -v 方法二 # yum install dnsmasq 配置 # Dnsmasq配置文件 # Dnsmasq的配置文件路径为：/etc/dnsmasq.conf\n打开配置文件\nvim /etc/dnsmasq.conf 添加以下内容\nresolv-file=/etc/resolv.dnsmasq.conf strict-order addn-hosts=/etc/dnsmasq.hosts listen-address=127.0.0.1,123.123.123.123 server=114.114.114.114 resolv-file=/etc/resolv.dnsmasq.conf dnsmasq 会从这个文件中寻找上游dns服务器 strict-order 表示严格按照resolv-file文件中的顺序从上到下进行DNS解析，直到第一个解析成功为止。 addn-hosts=/etc/dnsmasq.hosts 在这个文件里面添加要自定义的DNS记录,这个是重点！！！后面将在这个文件中添加我们所需要解析的地址 listen-address=127.0.0.1,123.123.123.123 监听地址,为localhost和dnsmasq服务器IP。“，”前的不需要改动，只需要将后面的IP地址改为你的服务器IP即可（这个服务器是指我们现在在操作的服务器，而非mc服务器的IP地址！） server=114.114.114.114 这行告诉dnsmasq使用DNS服务器进行解析,我们也可以通过server对不通的网站使用不同的DNS服务器进行解析，或者国内外网站使用不同DNS进行解析,如:server=/google.com/8.8.8.8 添加上游dns服务器的地址 # 创建resolv.dnsmasq.conf文件并添加上游dns服务器的地址\ntouch /etc/resolv.dnsmasq.conf echo \u0026#39;nameserver 114.114.114.114\u0026#39; \u0026gt; /etc/resolv.dnsmasq.conf 添加自定义dns # 这里是重点了，由上文提到的帖子可知，主机板的Minecraft精选服务器域名是写死的，且端口是默认的19132。所以我们只需要把这几个服务器的域名指向我们mc服务器IP就可以了（注意要保证mc服务器的端口也是19132！）\n创建dnsmasq.hosts文件\ncp /etc/hosts /etc/dnsmasq.hosts 进入文件\nvim /etc/dnsmasq.hosts 添加以下内容，IP部分请自行替换成你的mc服务器地址\nlbsg.net 123.123.123.123 mco.cubecraft.net 123.123.123 mco.mineplex.com 123.123.123.123 hivebedrock.network 123.123.123.123 保存后就可以启动了\n启动 # systemctl start dnsmasq #启动 systemctl enable dnsmasq #设置开机自启 注意：如果你使用的是阿里云等服务器，需要打开服务器53端口才可以使用，vultr的端口默认是开着的\n使用 # 测试 # 如果不放心，可以用手机或电脑的dns修改为我们部署好的dns服务器地址，然后ping上面提到的四个域名中的任意一个，如果输出为自建服务器IP则说明成功了\n以NS为例 # 进入设置\u0026ndash;\u0026gt;互联网\u0026ndash;\u0026gt;互联网设置\u0026ndash;\u0026gt;点击连接到的WiFi\u0026ndash;\u0026gt;更改设置\u0026ndash;\u0026gt;DNS设置改为手动\u0026ndash;\u0026gt;填入dns服务器地址\u0026ndash;\u0026gt;保持\n接下来就可以进入游戏了 大成功！\n","date":"2020-02-28","externalUrl":null,"permalink":"/2020/02/28/Linux/tutorial/Minecraft-dns/","section":"文章","summary":"写在前面 # 注意：本文介绍的方法目前已失效\n昨天晚上睡前看手机，本来想上微软的官网询问为什么主机端Minecraft不能填写自建服务器进行游玩的问题，然后在谷歌的时候发现了这篇帖子 **真是一语惊醒梦中人啊！**为啥我没想到？！！\n","title":"骚操作让你在主机端的Minecraft游玩自建服务器（已失效）","type":"posts"},{"content":"","date":"2020-02-28","externalUrl":null,"permalink":"/tags/%E6%B8%B8%E6%88%8F/","section":"Tags","summary":"","title":"游戏","type":"tags"},{"content":"2020魔幻开年，由于众所周知的原因我被困家中，不得不通过网上冲浪的方式进行学业上的提升。全国各地大量的学校都不约而同选择钉钉作为线上学习的工具，我亲爱的母校也不例外。\n关于钉钉，首先我要亮出我在GooglePlay上给出的评分 除了某些众所周知的原因导致我要给它来个最低分，还有一些我个人的见解给了我这个毫不犹豫为它打出最低分动力。 为了作比较，这里拉出大洋彼岸某个公司推出的产品进行对比。 平台支持 # 钉钉：Android、iOS、MacOS、Windows，这四个平台都有相对应的客户端软件\nG Suite：只要你使用的设备能连上网，能够安装的了一个相对好的浏览器就能使用 高下立判\n账户设置 # 钉钉：手机号注册\nG Suite：使用域名邮箱注册\n这一点尤其要说明，首先我个人的习惯是公私分明，我个人生活使用的账号和办公账号一定是分开的，虽然之前也有历史遗留问题，但只要想到了就会解决掉，做到账号分开。\n使用域名邮箱的好处就是:\n有逼格 可以自由建立多个邮箱账号，方便使用在不同的地方 还有一点是我非常不能理解也不能接受的：*除了某些特殊原因外，为什么国内各种软件都会想着使用手机号注册，为什么各种软件都想着获取你的通讯录？*首先通讯录对个人是较为私密的，我自己的通讯录除了家人就是朋友，偶尔加几个自己比较认可的老师的手机号，根本不会添加牵扯到工作学习方面的人的手机号，\nUI及应用体验 # 界面设计 # 钉钉：可以说是熟悉的味道吧，我用着的就像是用微x或者Qx，聊天体验好像甚至还不如这两个软件\nG Suite：简单，一目了然\n打开钉钉的时候映入眼帘的是聊天列表，第二就是四个大类，点击后能看到各个小类，本身我觉得设计比较复杂，一个字乱\nG Suite的设计很清爽，比如我今天想着要制作英语单词的表格，我只需要展开应用栏点击表格，然后就可以找到自己需要编辑的文档开始编辑了。 内置程序使用体验 # 办公几件套 # 钉钉：没怎么用过，我只知道在线编辑表格的功能是和WPS联合推出的\nG Suite：还是上一条提到的，简单、好用。自家产品，实时云端储存，历史版本查看 首先，微软的office系列绝对是很牛逼的我不否认，但是对于我这种用用文档用用表格偶尔做点幻灯片的人来说好像谷歌的产品用着更舒服些，毕竟个人用户是免费的，还不占用本地空间。钉钉嘛······\n呵呵\n云端储存 # 钉钉：创建团队即可获得100G空间奖励，不限使用人数 G Suite：基础版30GB，商务和企业版注册人数五人以下每人1TB，五人以上无限储存空间\n还有什么可说的呢\n聊天及会议 # 钉钉：最高三十方电话会议，视频会议302人以下免费 G Suite：单个聊天室支持8000人，基本版100方、商务版150方、企业版250方 都没用过，不予置评\n组织网站建设 # 钉钉：没这玩意\nG Suite：只要你会做PPT就能做网站\nG Suite这个用着真的把我惊到了，非常方便实用，不能说用它设计出来的网页有多么个性化多么好看，但是它真的很方便，也绝对比某些企事业单位那种铺天盖地全是字和链接的网站强上不少。\n日程及备忘录 # 钉钉：应用内一级目录放着日历，看着不错，没用过 G Suite：中规中矩，没啥可说的，跟钉钉比优点是有独立备忘录\nGoogle keep从使用上来说没啥毛病，但比不上Apple的提醒事项，Apple的提醒事项吊打一切我使用过的同类产品\n搜索功能 # 钉钉：我反正是没见过 G Suite：Cloud Search牛逼！！！！！\n安全 # 没啥可说的，这点都很注意\n组织管理 # 钉钉：第一我没用过，第二官网上没有这一大类的介绍，都细化为了考勤审批什么的，看着就一个字乱。 G Suite：没用过。统一管理入口，清晰明了，看着就舒服，分类精准 这点上我认为是两者对企业管理的理解上不同导致的差异。\n钉钉更专注于管理层人员的使用，打卡、考勤、审批一类的功能做的特别细致，甚至还提供模板方便使用，想方设法规员工工作习惯，或是在员工是否能按时到岗，如何防止员工使用某些方式进行“不规范”打卡······一切的一切都是为了管理者能够控制局面而设计的。\nG Suite这边我认为更多的专注于团队的协作，没有所谓的考勤，没有所谓的打卡，专注于工作本身，我们需要做什么，我们应该如何分工，至于工作应该如何完成，那就完全员工的事情了。\n让我们思考一个最根本的问题，使用这些工具的目的是什么？是为了规范办公习惯？还是为了更高效地完成那些需要去完成的事？\n自己的一些话 # 说实话本身我是用不到G Suite的功能的，因为我只是一个学生。我最近开始了解这个是因为我妈工作方式的极度传统，老板“必须到公司上班才能算是上班，不然不算工资”的要求让本来可以不限办公场所的员工必须到岗，而且是在这样的非常时期。我希望我妈作为一个公司的高管可以改变这样的现状，让工作效率更高，能腾出更多的业余时间，并且能让一个中国特色社会主义市场经济体制下的私企生存得不那么艰难。但是为什么我需要自己去了解它的详细使用方法呢？因为我妈不肯学。我不知道为什么至今为止在家打印文件我妈都得来问我应该如何操作，也不知道为什么至今为止她对电子产品还是一如既往的抵触，不知道为什么明明上网搜索一下就能得到答案的事情需要来请我帮忙，不知道为什么明明生活工作方式很原始依旧不愿意学习。或许是生活在这个社会，沉重的生活和工作的压力让她不愿意继续探索新的事物；或许是残酷的现实让她希望生活能保住现状，不向更坏的地方发展。\n既然不肯学，那我学，我能教。\n可就算如此，还是没有人原因听我学到的这点皮毛。\n我没有体会过生活的艰辛，但我只是想以我的方式帮助我愿意帮助的人，让他们生活变得刚好。\n","date":"2020-02-20","externalUrl":null,"permalink":"/2020/02/20/about-tingtalk/","section":"文章","summary":"2020魔幻开年，由于众所周知的原因我被困家中，不得不通过网上冲浪的方式进行学业上的提升。全国各地大量的学校都不约而同选择钉钉作为线上学习的工具，我亲爱的母校也不例外。\n关于钉钉，首先我要亮出我在GooglePlay上给出的评分 除了某些众所周知的原因导致我要给它来个最低分，还有一些我个人的见解给了我这个毫不犹豫为它打出最低分动力。 为了作比较，这里拉出大洋彼岸某个公司推出的产品进行对比。 ","title":"关于钉钉的一些看法","type":"posts"},{"content":"","date":"2020-02-20","externalUrl":null,"permalink":"/tags/%E9%AD%94%E5%B9%BB%E9%AB%98%E4%B8%89%E7%94%9F%E6%B4%BB/","section":"Tags","summary":"","title":"魔幻高三生活","type":"tags"},{"content":"","date":"2020-01-25","externalUrl":null,"permalink":"/tags/2019-ncov/","section":"Tags","summary":"","title":"2019-NCoV","type":"tags"},{"content":"最近的热点一定是这次疫情的爆发了。到处都在谈论此事，在此对本次事件的一些重要新闻或资料等有关信息做一个整理。或许也会有我个人的评论。\n注：部分资料存在无法访问情况。请自行通过魔法上网的方式访问这些不存在的网站。\n注意：本文在保证信息内容保证表达原意的同时，会对摘要或新闻标题中政治敏感的部分进行修改或删减（如当看到摘要繁体字中混着简体字，说明我有进行修改），也会将一些信息归类到本不应该在的类别中，以减少不必要的麻烦。请谅解！\n以下内容均为个人手工整理，精力有限，不全或消息来源有误欢迎指正。\n我们中华民族 是有着很强的凝聚力 任何的困难都压不倒我们 中国人民是不可战胜的！\n\u0026mdash;\u0026mdash;江泽民\n本文最后更新于2020-2-7日中午 懒得整理了，很多可以在cds档案找到。\n心累。 本文已停更，有兴趣可前往此处查看疫情报道。\n重要链接 # 全国新型肺炎疫情实时动态 新型冠状病毒—中国 世界卫生组织 2019－2020年新型冠状病毒肺炎事件 \u0026mdash;\u0026mdash;wiki 中国国家卫生健康委员会 新型冠状病毒感染的肺炎疫情防控 \u0026mdash;\u0026mdash;中国国家卫生健康委员会宣传司 发热咳嗽并非新型冠状病毒感染的肺炎唯一首发症状 新型冠状病毒感染的肺炎诊疗方案（试行第五版） CDS档案 中国数字时代 新闻类 # 发布日期：2019-12-31 # 內地疑爆發「新沙士」 武漢海鮮市場7人染肺炎需隔離 摘要：內地微博昨晚起流傳一份由武漢市市衞生健康委發出、名為《關於做好不明原因肺炎救治工作的緊急通知》、一份《關於不明原因肺炎救治情況的緊急通知書》文件以及武漢大學內部對話截圖，指武漢市華南水果海鮮市場確診7宗不明原因肺炎個案，患者現正接受隔離，另確診一宗非典型肺炎合併冠狀病毒感染。 武汉疾控证实：当地现不明原因肺炎病人，发病数在统计 \u0026mdash;\u0026mdash;新京报摘要：新京报快讯（记者 许雯）昨日晚间起，两份落款为武汉市卫健委的紧急通知在网络流传。文件透露，武汉市华南海鲜市场陆续出现不明原因肺炎病人。记者今日（12月31日）从武汉市疾控中心证实，该文件确实为真，目前发病人数尚在统计中，国家卫健委已派专家抵达武汉。 发布日期：2020-1-2 # \u0026gt; * 央视-新闻直播间 : 武汉8名散布肺炎疫情谣言者被查处！ 摘要：1月1日武汉警方依法查处八名散布肺炎疫情谣言者 # 发布日期：2020-1-3 # 武汉发现不明原因肺炎患者44例 未发现明显人传人证据 \u0026mdash;\u0026mdash;每日经济新闻 发布日期：2020-1-4 # 因武汉不明原因肺炎，香港启动“严重”应变级别 \u0026mdash;\u0026mdash;凤凰网 摘要：香港特区政府今日公布对公共卫生有重要性的新型传染病准备及应变计划，并同时启动严重应变级别，即时生效。 发布日期：2020-1-7 # 政府周三刊憲　武漢不明肺炎納法定須呈報傳染病 \u0026mdash;\u0026mdash;明报新闻网 摘要：衛生署宣布，政府將於明日（8日）在憲報刊登《2020年預防及控制疾病（修訂）規例》及《2020年預防及控制疾病條例（修訂附表1）公告》，將「嚴重新型傳染性病原體呼吸系統病」（武漢不明病毒性肺炎）納入法定須呈報傳染病。 发布日期：2020-1-9 # 武汉肺炎：疫情病原体初步判定为新型冠状病毒 \u0026mdash;\u0026mdash;新浪新闻 摘要：就武汉不明原因的病毒性肺炎疫情病原学鉴定进展问题，记者今天从病原检测结果初步评估专家组了解到，截至2020年1月7日21时，实验室检出一种新型冠状病毒，获得该病毒的全基因组序列，经核酸检测方法共检出新型冠状病毒阳性结果15例，从1例阳性病人样本中分离出该病毒，电镜下呈现典型的冠状病毒形态。 发布日期：2020-1-13 # 【武漢肺炎】華婦泰國確診　屬首宗輸出個案 (19:15) 摘要：泰國衛生部稱，當局自本月3日起，在布吉、清邁等多個機場對來自武漢的旅客實施監測措施，發現12名旅客有病徵，大部分為流感，當中8名病人發高燒，在本月8日起被隔離。昨日（12日）其中一個實驗室樣本測試發現新型冠狀病毒，是當地首宗確診感染個案，亦是首宗新型冠狀病毒輸出個案。 世卫组织：一名武汉新型冠状病毒感染者在泰国确诊 摘要：世界卫生组织今天表示，一名从中国武汉前往泰国旅游的游客1月8日在泰国被确诊为感染了新型冠状病毒，并于当天被送往泰国的医院接受治疗。这也是首例在中国以外地区发现的感染病例。世卫组织表示，鉴于目前情况，该组织可能将于近期召开紧急委员会会议对疫情进行评估。 2019新型冠狀病毒 台灣專家抵武漢查訪疫情 \u0026mdash;\u0026mdash;台湾中央通讯社 摘要：（中央社記者陳偉婷台北13日電）中國武漢肺炎疫情肇因於新型冠狀病毒，世界衛生組織（WHO）已命名為2019-nCoV（2019新型冠狀病毒）。疾管署派2名專家到武漢查訪，12日晚間抵達，將至少停留2天。 发布日期：2020-1-16 # 日本出現武漢肺炎首例！患者為中國籍曾前往湖北 \u0026mdash;\u0026mdash;udn 摘要：日本共同社報導，日本政府相關消息人士16日透露，一名前往中國湖北省武漢市的大陸籍30多歲男子返日後，在2019新型冠狀病毒所引發肺炎的檢查中呈陽性反應。這是日本首次確認爆發此一病例。該名男子15日已出院。 新型冠状病毒：日本确诊首例患者、武汉新增一例死亡 \u0026mdash;\u0026mdash;un 摘要：世界卫生组织今天表示，已接到日本厚生劳动省通知，该国确诊一例新型冠状病毒感染病例，患者曾经前往武汉。这是继13日泰国发现一例确诊病例之后，第二例在中国之外发现的确诊病例。世卫组织表示，考虑到当前的全球旅行模式，“在其他国家进一步发现病例是可能的”。 发布日期：2020-1-19 # 武漢肺炎病例增 WHO確認病毒有限度人傳人 \u0026mdash;\u0026mdash;台湾中央通讯社 摘要：（中央社記者唐佩君布魯塞爾19日專電）世界衛生組織（WHO）今天表示，依最新分析，「2019新型冠狀病毒」（2019－nCoV）是有限度人傳人，正密切監測評估人際傳播範圍，將視發展必要時召開緊急會議研商。 发布日期：2020-1-20 # 上海出現首宗輸入性新型冠狀病毒肺炎確診病例 \u0026mdash;\u0026mdash;rthk 摘要：國家衛健委確認，上海市首例輸入性的新型冠狀病毒感染肺炎確診病例。患者是一名56歲女性，戶籍是湖北武漢，本月12日從武漢到上海後，有發熱、乏力等徵狀，經上海市疾控部門檢測，並經中國疾控中心覆核，新型冠狀病毒核酸檢測結果為陽性，經評估確認為確診病例，目前患者體溫正常，生命體徵平穩，她在上海的2名密切接觸者，正接受醫學觀察。 武漢肺炎：中國首次公布武漢外確診病例，韓國發現確診病例 \u0026mdash;\u0026mdash;BBC 摘要：韓聯社周一（1月20日）中午引述韓國疾病管理本部消息稱，19日從中國武漢通過仁川國際機場入境的一名中國籍女性被確診感染所謂「武漢肺炎」的新型冠狀病毒肺炎。該患者在仁川機場被發現有高燒等症狀而被隔離，目前轉入醫療機構接受治療。 钟南山肯定新型冠状病毒肺炎人传人 \u0026mdash;\u0026mdash;环球网 摘要：钟南山：根据目前的资料，新型冠状病毒肺炎是肯定的人传人，在广东有2个病例，没去过武汉，但家人去了武汉后染上了新型冠状病毒肺炎，现在可以说，肯定的，有人传人现象。 习近平对新型冠状病毒感染的肺炎疫情作出重要指示 \u0026mdash;\u0026mdash;央视网 世卫组织：有关冠状病毒的问答 发布日期：2020-1-21 # 武漢肺炎：美國西雅圖確診第一例 \u0026mdash;\u0026mdash;BBC 摘要：美國疾病控制與預防中心（CDC）21日下午宣佈，確診的患者是一名30多歲的男子，在1月15日從武漢返回華盛頓州西雅圖，隨後前往華盛頓州的一家醫院就診。有鑒於其旅行記錄及症狀，院方懷疑他感染了2019-nCov新型冠狀病毒，立即將他的生理樣本送往CDC檢驗，隨即確診。該中心的團隊正在華盛頓州當地進行調查，並且監控與患者有過密切接觸之人士的健康狀況。 袁國勇稱疫情可能已進入第三波傳播 \u0026mdash;\u0026mdash;rthk 摘要：曾經到武漢視察情況的港大微生物學系講座教授袁國勇說，疫情可能已進入第三波傳播，即是在家庭或醫院傳播，擔心如果病毒在社區大爆發，情況類似當年沙士，他強調不可讓病毒在其他城市「落地生根」。 武汉成立新型冠状病毒肺炎疫情防控指挥部 升级防控措施\u0026ndash;央视摘要：路透北京1月21日 - 中国武汉市周一成立新型冠状病毒肺炎疫情防控指挥部，统一领导、指挥全市疫情防控工作，要求采取更严格的举措，内防扩散、外防输出，防止疫情扩散蔓延。央视新闻客户端援引指挥部工作会议内容称，要求全力做好患者救治工作，按照国家、省、市联合制定的诊疗方案开展规范、精准救治，对重症患者“一人一方案”“一人一团队”，确保轻症患者尽快治愈出院；强化医务人员防护，严格控制医院感染。 国家医保局：对确诊为新型肺炎患者采取特殊报销政策 \u0026mdash;\u0026mdash;澎湃新闻摘要：针对此次疫情特点，医保局决定对确诊为“新型冠状病毒感染肺炎”等患者采取特殊报销政策。一是将国家卫生健康委《新型冠状病毒感染的肺炎诊疗方案》覆盖的药品和医疗服务项目，全部临时纳入医保基金支付范围。二是保证及时支付患者费用，特别是发挥医疗救助资金的兜底保障作用，打消患者就医顾虑。对异地就医患者先救治后结算，报销不再执行异地转外就医支付比例调减规定，减少患者流动带来的传染风险。三是对集中收治的医院，医保部门将预付资金减轻医院垫付压力，患者医疗费用不再纳入医院总额预算控制指标。 一罩难求：南都民调实测走访发现，线上线下口罩基本卖脱销 \u0026mdash;\u0026mdash;南方都市报 摘要：广州消费监测榜课题组于1月21日通过搜索线上口罩旗舰店和实地走访市内8家药店、1家便利店，发现医用外科口罩、N95口罩及KN95口罩均卖到脱销，出现供不应求的情况。多数线上商家已卖断货，快递相继停运。特别是此前主打防霾、防粉尘、防病毒的3M KN95系列口罩，在多个电商平台处在“缺货”“无货”状态。 广东市场监管部门：将坚决打击囤积居奇、哄抬价格等行为 摘要：南方网讯（记者刘灏 通讯员粤市监）近日，受湖北省武汉市等多个地区发生新型冠状病毒感染的肺炎疫情影响，我省部分地市出现口罩等防控医药用品热销现象。广东省市场监管局对此高度重视，深入贯彻落实习近平总书记对新型冠状病毒感染的肺炎疫情的重要指示精神，按照国务院决策部署以及全国新型冠状病毒感染的肺炎疫情防控工作电视电话会议精神，遵照省政府的统一部署安排，迅速行动，采取多项措施部署开展相关医药用品价格监管工作，稳定价格秩序。 详讯：日本政府就中国新型肺炎召开阁僚会议 摘要：【共同社1月21日电】关于中国湖北省武汉市等地疫情扩散的新型冠状病毒感染肺炎，日本政府21日召开了商讨对策的相关阁僚会议，决定贯彻边境口岸对策，切实把握患者情况，彻底收集信息，向国民迅速提供准确信息。 发布日期：2020-1-22 # 新型冠状病毒来源于武汉海鲜市场销售的野生动物 \u0026mdash;\u0026mdash;新京报 摘要：新京报快讯（记者 应悦）中国科学院院士、中国疾病预防控制中心主任高福在今日（1月22日）的发布会上表示，新型冠状病毒的来源是武汉一家海鲜市场非法销售的野生动物。 武漢專家組成員王廣發向本台證實確診新型肺炎 \u0026mdash;\u0026mdash;有線新聞 摘要：內地疫情擴散，連去武漢實地調查的專家都受到感染。國家衛健委武漢肺炎專家組成員王廣發向我們證實，已確診染上武漢肺炎。王廣發是北大第一醫院呼吸和危重症醫學科主任醫師，國家衛健委專家組早前曾去武漢了解疫情，王廣發曾在10日接受過中央電視台訪問時，指病毒的致病性較弱，疫情仍可控。 袁國勇：新型肺炎疫情或進入第三波　鍾南山：內地醫院防控不足 \u0026mdash;\u0026mdash;有線宽频 摘要：鍾南山再解釋醫院感染個案，一個腦外科病人感染十四個醫護人員，醫護都不是收症的傳染科，而是神經外科的醫護，主要是醫護防感染控制做得不好。兩個專家都指內地沒有隱瞞疫情。袁國勇指突然出現這麼多個案是由於內地有快速測試，開始廣泛應用。 疫情存在扩散风险 防控措施全面升级——新型冠状病毒感染肺炎疫情防控焦点回应 \u0026mdash;\u0026mdash;新华网 武汉要求在公共场所佩戴口罩 \u0026mdash;\u0026mdash;中国新闻网摘要：中新网1月22日电 据湖北省武汉市网信办微博消息，武汉市政府今日发布《关于在公共场所实施佩戴口罩有关措施的通告》(以下简称《通告》)。《通告》称，各公共场所经营者应当要求进入其场所的顾客佩戴口罩后方可进入其经营的公共场所，国家机关、企事业单位工作人员在岗期间应当佩戴口罩。 教育部：各校非必要不举办聚集性活动 \u0026mdash;\u0026mdash;新京报 湖北拟请求国家紧急支援口罩、防护服等医用物资 摘要：截至31日，湖北本省只能生产医用口罩800万个，防护服200万套，红外测温仪1200套，不能满足全省防疫需要。湖北省拟向国家请求紧急支援，调拨医用口罩4000万个、防护服500万套、红外测温仪5000套。 口罩脱销？多家厂商召回工人加急生产，优先供应医院疾控中心 发布日期：2020-1-23 # 武汉公交地铁轮渡长途客运23日起停运 \u0026mdash;\u0026mdash;人民网 摘要：人民网北京1月23日电 据武汉市官方微信“武汉发布”消息，武汉市新型冠状病毒感染的肺炎疫情防控指挥部发布通告称，自2020年1月23日10时起，武汉全市城市公交、地铁、轮渡、长途客运暂停运营；无特殊原因，市民不要离开武汉，机场、火车站离汉通道暂时关闭。 湖北封闭多处高速公路收费站口 \u0026mdash;\u0026mdash;新华网 摘要：记者从湖北省高速公路管理部门获悉，目前，湖北省内龚家岭、小军山、汉南、北湖、花山、柏泉、青龙、西湖站入口封闭。G4京港澳高速凤凰山、江夏所、武汉南、安山、金口、军山、永安、武汉西、蔡甸、武汉北入口封闭。其它出武汉市的高速公路口也已开始封闭。 因應武漢肺炎疫情，台湾中央流行疫情指揮中心疫情等級提升至第二級，春節期間各項防疫工作不放鬆，共同維護岛民健康 \u0026mdash;\u0026mdash;台湾卫生福利部疾病管制署 中國專家北大王廣發：病情好轉　防護盲點或在沒戴防護鏡　信疫情終究可控 \u0026mdash;\u0026mdash;立场报道 摘要：確診染上新型冠狀病毒肺炎的北京大學第一醫院呼吸和危重症醫學科主任醫師王廣發，在微博發文，表示自己病情已好轉，又說回想自己身為專家，何以會受感染，認為最大可能是沒有戴防護鏡。 体育总局：防控疫情，取消举办体育六艺系列活动之乐动冰雪 \u0026mdash;\u0026mdash;澎湃新闻 武汉市新型肺炎防控指挥部发布第3号通告 接收社会各界爱心捐赠 摘要：中国日报1月23日电 武汉市新型肺炎防控指挥部今天14点发布第3号通告 ，通告称：为做好社会各界捐赠武汉市抗击疫情的医用耗材、防护用品等物质接收调配工作，现开通24小时电话接收社会各界爱心捐赠。武汉市红十字会电话：027-82788599，027-82210181，027-82812604，027-82858499，027-82856122。联系人：骆钢强 13297963117。 发布日期：2020-1-24 # 新加坡出现多两起武汉肺炎确诊病例 摘要：新加坡出现多两起武汉肺炎确诊病例，分别为昨天（1月23日）确诊的66岁男性武汉居民的37岁儿子，以及昨天被列为初步阳性病例的53岁女性武汉居民。截至今天（24日）中午12时，本地共有三起确诊病例。 台湾新增確診二例嚴重特殊傳染性肺炎境外移入個案，指揮中心持續中港澳旅客主動關懷機制，全力守護國內防疫安全 \u0026mdash;-台湾卫生福利部疾病管制署 摘要：中央流行疫情指揮中心今(24)日公布新增確診2例境外移入嚴重特殊傳染性肺炎個案，分別為50多歲中國大陆籍女性(案1)及50多歲男性(案2)，皆為1月21日入境；案1為1月23日因發燒就醫，案2於1月20日出現感冒症狀、於1月23日就醫。因兩位皆有武漢旅遊或居住史，符合通報定義，經醫院隔離採檢後確認為新型冠狀病毒陽性，目前持續於醫院負壓隔離病房治療中。案1密切接觸者計19人，案2密切接觸者計11人，目前健康狀況皆良好；其餘相關接觸者疫調中，衛生單位將持續進行主動健康監測。 快讯：韩国出现第二例新型冠状病毒肺炎确诊病例 \u0026mdash;\u0026mdash;韩联社 北京确诊新型肺炎29例 启动突发公共卫生事件一级响应 \u0026mdash;\u0026mdash;中国新闻网摘要：武汉等地发生新型冠状病毒感染的肺炎疫情后，北京市启动突发公共卫生事件一级响应机制，把全力做好疫情防控工作作为当前重中之重任务，落实责任、关口前移、多措并举、严加防控，及时回应社会关切。北京市发布101所设有发热门诊的医疗机构名单和发热患者就诊指南，引导发热患者规范有序就医，减少交叉感染。针对冬春季传染病防治，连续发布健康教育和提示信息，引导公众采取健康行为。 全国多地启动一级响应抗疫情，湖南取消南岳祈福等活动 \u0026mdash;\u0026mdash;第一财经摘要：全国各地应对疫情的措施正在不断升级。继广东、浙江启动重大突发公共卫生事件一级响应之后，湖南也启动一级响应。另外，北京取消包括庙会在内的大型活动，武汉文娱场所暂停营业。 中国18省市启动一级响应 \u0026mdash;\u0026mdash;多维新闻摘要：1月23日，广东、湖南和浙江三省率先启动重大突发公共卫生事件一级响应。1月24日，武汉所在的湖北省启动一级响应。1月24日中午，天津市启动《天津市应对新型冠状病毒感染的肺炎应急预案》一级响应。随后，安徽、北京、上海、重庆、四川、江西、云南、贵州、山东、福建、广西自治区、河北、江苏决定启动重大突发公共卫生事件一级响应。 中宣部、广电总局紧急协调向湖北、武汉电视台捐赠电视剧版权 \u0026mdash;\u0026mdash;澎湃新闻 发布日期：2020-1-25 # 醫學分析指病毒可有效人傳人 發病初期未必會發燒 摘要：流行病學分析方面，第一個病人在12月1日確診，他的家人都沒有感冒或呼吸道病徵，之後感染的病人和他都沒有流行病學聯繫。 武漢肺炎攻入歐洲　法國確診3起病例 \u0026mdash;\u0026mdash;appledaily 摘要：法國衛生部長布辛（Agnes Buzyn）周五（1/24）宣布，法國確診兩起新型冠狀病毒感染肺炎病例，是歐洲境內的首例。據悉，兩名患者都曾到過中國，目前正被隔離治療。約3小時後，法國當局宣布確診第3起病例。 柔现3宗武汉肺炎病例 \u0026mdash;\u0026mdash;orientaldaily 摘要：（布城25日讯）我国出现3宗武汉肺炎确诊病例。卫生部长拿督斯里祖基菲里证实，柔佛出现3宗武汉肺炎（2019年新型冠状病毒）病例。3宗均被确诊为武汉肺炎病例，是来自武汉游客，与新加坡首宗确诊病例，即66岁来自中国武汉的病患有亲属关系，包括该病患的妻子，和2名分别为2岁及11岁男孙。他们一行10人，是在1月20日于广州乘坐一架飞机飞往新加坡渡假，之后66岁病患和其儿子在新加坡被确诊为武汉肺炎。 尼泊爾首宗個案 留學生返國後確診 \u0026mdash;\u0026mdash;appledaily 摘要：武漢肺炎疫情持續蔓延，尼泊爾周五確診首宗個案，患者是一名在武漢留學的尼泊爾學生，他近日返國後證實染病。美國疾控中心亦證實，在芝加哥確診美國本土的第二宗個案。另外，繼南韓及日本周五確診第二宗病例後，新加坡再確診兩宗個案，令總數增至三宗，其中一名患者是首名患者的兒子，另一人是來自武漢的53歲女子。泰國則確診第五宗病例，患者是武漢的33歲女性遊客。日本方面，第二名患者是在發病求醫後飛日本，在日本也求診兩次才確診，日本周五提升旅遊警示，呼籲國民不要前往湖北省。另外疫情已擴散到北美，加拿大當局周四表示有多宗懷疑個案，美國對武漢旅警升至最高級。土耳其亦證實，出現疑似冠狀病毒感染症狀求診的中國婦女來自武漢，已派醫療專機把她送回中國。 即日起，全国旅行社团队游全部暂停 \u0026mdash;\u0026mdash;澎湃新闻 摘要：即日起，全国旅行社及在线旅游企业暂停经营团队旅游及“机票＋酒店”产品。已出行的旅游团队，可按合同约定继续完成行程。 驰援武汉，10家寄递企业开通“绿色通道” 摘要：IT之家1月25日消息 1月25日大年初一，针对武汉等地的疫情，中国邮政、顺丰速运、京东物流、中通快递、圆通速递、申通快递、韵达速递、百世快递、德邦快递和苏宁物流宣布，将开通全国各地驰援武汉救援物资的特别通道，全力保障疫情防控相关物资运输。 发布日期：2020-1-26 # 试剂盒困局：为何确诊这么难？ \u0026mdash;\u0026mdash;三联生活周刊 定了！北京、湖北等多地学校延迟开学 发布日期：2020-1-27 # 武汉市民一线报告：保障逐渐到达小区，生活还算正常 \u0026mdash;\u0026mdash;央视新闻 发布日期：2020-1-28 # 世卫组织与中国领导人讨论抗击冠状病毒疫情的下一步行动 \u0026mdash;\u0026mdash;-WHO 发布日期：2020-1-29 # 刚刚，武汉警方回应“8人传谣被处理” \u0026mdash;\u0026mdash;科技日报 今日头条 摘要：2019年12月31日，武汉市卫健部门发布关于肺炎疫情的情况通报。随后，多名网民举报有人在网上传发不实信息。为查明情况，公安机关先后对8名行为人进行了调查、核实。根据调查情况，8人分别传发了“X医院已有多例SARS确诊病例”、“确诊了7例SARS”、“Y医院接收了一家三口从某洲回来的，然后就疑似非典了”等未经核实的信息。根据《中华人民共和国治安管理处罚法》的相关规定，因上述8人情节特别轻微，当时，公安机关分别进行了教育、批评，均未给予警告、罚款、拘留的处罚。 武漢肺炎 震動世界大撤僑 \u0026mdash;\u0026mdash;rfi 摘要：儘管世界衛生組織總幹事譚德塞訪問北京做出最為重要的表態，不贊成各國從中國撤僑，並息事寧人說武漢肺炎疫情沒有那麼嚴重而不要過分反應，但是世界各國紛紛從中國撤僑。而且撤回的僑民如何被檢查隔離，也大傷腦筋。日本與美國各自撤僑的班機首架都已經返國。 发布日期：2020-1-30 # “肺炎疫情一线岗位全部换上党员，没有讨价还价！” \u0026mdash;\u0026mdash;央视新闻 摘要：1月29日，新型冠状病毒感染肺炎上海医疗救治专家组组长、复旦大学附属华山医院传染科主任张文宏在接受媒体采访时表示，每周自己都会去隔离病区查房，为的是消除一线的医生对新型冠状病毒的恐惧。同时决定，把从新年到现在值班的感染科一线医生进行换岗，换成共产党员医生到一线工作，这都是事先不打招呼，直接派遣 震惊！武汉8名“造谣者”竟然都是医生，向他们致敬！ 已无法访问 【新闻1+1】确诊病例超SARS，疫情是否比SARS严重？ \u0026mdash;\u0026mdash;央视新闻 低价卖援助蔬菜？武汉市商务局、红十字会回应 \u0026mdash;\u0026mdash;观察者网 发布日期：2020-1-31 # 世卫组织正式将武汉肺炎定性为“国际关注的突发公共卫生事件”！ \u0026mdash;\u0026mdash;杨大可 DeepTech深科技 外交部回应世卫组织将疫情列为国际关注突发公共卫生事件 \u0026mdash;\u0026mdash;央视新闻 摘要：新型冠状病毒感染的肺炎疫情发生以来，中国政府一直本着对人民健康高度负责的态度，采取了最全面、最严格的防控举措，很多举措远超出《国际卫生条例》要求，中方完全有信心和能力，打赢这场疫情防控阻击战。 同时，中方本着公开透明和负责任态度向有关各方及时通报疫情信息、分享病毒基因序列。世界卫生组织及许多国家对此予以充分肯定和高度评价。 中国同世卫组织一直保持着密切沟通和良好合作，世卫组织专家赴武汉进行了实地考察，总干事谭德塞于日前访华，同中方就疫情防控工作充分交换了意见，对中方防控工作给予充分肯定，对中国抗击疫情为世界作出的巨大贡献表示高度赞赏。中方愿继续同世卫组织及各国一道，共同维护全球和地区公共卫生安全。 莆田系医院获赠1.6万个N95口罩？湖北红十字会：正在核查 \u0026mdash;\u0026mdash;观察者网 武汉的药店都开门了吗？都能买到啥？总台记者带你去看看 \u0026mdash;\u0026mdash;央视新闻 安倍：禁止來自湖北外籍人士入境日本 韓國第二架包機飛往武漢 \u0026mdash;\u0026mdash;rfi 摘要：日本首相安倍晉三周六宣布，從2月1日凌晨0時起，禁止申請入境日本前14天以內滯留湖北省的外籍人士，以及持湖北省所發行的護照的外籍人士入境。這是日本政府首度根據出入境管理法針對特定地區做出禁止入境的措施。安倍在會議上表示，在無法確認是否感染新型冠狀病毒的情況，將採取空前的因應，有必要大幅加強入境管理。因為已查出有些人雖沒有武漢肺炎癥狀但卻是確診病例，因此有必要提高邊境管制管理的實際成效。自東京方面消息，日本政府周五表示，早前由武漢返日的第三班撤僑包機的149人中，不適送院的人數增至25人。韓國政府並於當天確認在從武漢及附近地區撤離的368名韓國公民中，已有18人因出現發熱等癥狀在抵達首爾後被送醫。 发布日期：2020-2-1 # 最新！全国新增2102例 累计确诊病例超万人 \u0026mdash;\u0026mdash;央视新闻 武汉市委书记自责：如果早一点决定，结果会比现在好 \u0026mdash;\u0026mdash;央视新闻 捐了那么多东西怎么还缺？总台记者探访武汉市红十字会 \u0026mdash;\u0026mdash;央视新闻 中國新冠病毒確診病例破萬 死亡259例 美國宣布新冠病毒為國家緊急事件 \u0026mdash;\u0026mdash;rfi 摘要：根據中國官方最新數據，中國新型冠狀病毒確診病例超過11000人，死亡259人，湖北確診病例24小時猛增1347例。與此同時，美國政府宣布新冠病毒為國家緊急事件，禁止近期去過中國的外國公民入境。 被指疫情中進行定向捐贈 湖北省紅十字會遭輿論質疑批評 \u0026mdash;\u0026mdash;rfi 协和医院医生穿垃圾袋进行防护？院方回应来了 \u0026mdash;\u0026mdash;央视新闻 bilibili 发布日期：2020-2-2 # 最新！湖北昨日新增确诊2103例，累计确诊超万例 \u0026mdash;\u0026mdash;央视新闻 火神山医院交付军方 明日开始收治病人 140秒视频看“火神”速度 \u0026mdash;\u0026mdash;央视新闻 发布日期：2020-2-3 # 中央军委批准！军队承担武汉生活物资配送供应任务 警惕！家中门把手首次发现病毒核酸 发布日期：2020-2-4 # 现场视频！刚刚火神山医院收治首批患者 \u0026mdash;\u0026mdash;央视新闻 湖北省红十字会3名领导被问责 \u0026mdash;\u0026mdash;央视新闻 摘要：经调查，省红十字会有关领导和干部在疫情防控期间接收和分配捐赠款物工作中存在不担当不作为、违反“三重一大”规定、信息公开错误等失职失责问题，经湖北省纪委监委研究并报省委批准，决定免去张钦省红十字会党组成员、专职副会长职务，并给予其党内严重警告、政务记大过处分；给予省红十字会党组成员陈波党内严重警告、政务记大过处分；给予省红十字会党组书记、常务副会长高勤党内警告处分。省红十字会其他责任人员按照干部管理权限由有关党组织依纪依规处理。 发布日期：2020-2-7 # 雷神山医院开展验收并逐步移交 3分钟视频见证“神速” \u0026mdash;\u0026mdash;央视新闻 发布日期：2020-2-7 # 送别李文亮医生 \u0026mdash;\u0026mdash;央视新闻 政府公告类/国际组织类 # 有关感染人数的通报在此不多罗列，详见全国新型肺炎疫情实时动态。\n发布日期：2020-1-15 # 新型冠状病毒（nCoV）感染人类的监测病例定义（英文） \u0026mdash;\u0026mdash;who 发布日期：2020-1-20 # 中华人民共和国国家卫生健康委员会公告 摘要：一、将新型冠状病毒感染的肺炎纳入《中华人民共和国传染病防治法》规定的乙类传染病，并采取甲类传染病的预防、控制措施。二、将新型冠状病毒感染的肺炎纳入《中华人民共和国国境卫生检疫法》规定的检疫传染病管理。 发布时间：2020-1-22 # 市场价格行为提醒书 \u0026mdash;\u0026mdash;北京市市场监督管理局 摘要：（五）不得捏造、散布涨价信息，哄抬价格，推动商品价格过高、过快上涨，扰乱市场价格秩序。（六）除生产自用外，不得超出正常的存储数量或者存储周期，大量囤积市场供应紧张、价格发生异常波动的商品。 发布日期：2020-1-23 # 市新型冠状病毒感染的肺炎疫情防控指挥部通告（第1号） 摘要：自2020年1月23日10时起，全市城市公交、地铁、轮渡、长途客运暂停运营；无特殊原因，市民不要离开武汉，机场、火车站离汉通道暂时关闭。恢复时间另行通告。 广东省决定启动重大突发公共卫生事件一级响应 关于新型冠状病毒（2019-nCoV）疫情的《国际卫生条例（2005）》突发事件委员会会议的声明 \u0026mdash;\u0026mdash;who 武汉市新型冠状病毒感染的肺炎疫情防控指挥部通告（第1号） 摘要：自2020年1月23日10时起，全市城市公交、地铁、轮渡、长途客运暂停运营；无特殊原因，市民不要离开武汉，机场、火车站离汉通道暂时关闭。恢复时间另行通告。 武汉市新型冠状病毒感染的肺炎防控指挥部通告（第2号） 摘要：关闭离汉通道，是阻止疫情扩散的必要之举。面对新型冠状病毒感染的肺炎疫情，我们有习近平总书记的亲切关怀，有省委省政府的周密安排，有全国人民的关心支持，目前，武汉市大宗商品、食品、医疗防护用品等储备充分、供应顺畅。请广大市民不用恐慌，不必囤积，以免造成不必要的浪费。 武汉市新型冠状病毒感染的肺炎防控指挥部通告（第3号） 摘要：为做好社会各界捐赠武汉市抗击疫情的医用耗材、防护用品等物资接收调配工作，现开通24小时电话接收社会各界爱心捐赠。 武汉市红十字会电话：027-82788599，027-82210181，027-82812604，027-82858499，027-82856122。 联系人：骆钢强 13297963117。 发布日期：2020-1-24 # 武汉市新冠肺炎防控指挥部通告（第4号） 摘要：一、接受捐赠主体 1.武汉市慈善总会负责接受捐款和通用物资，联系电话：027-85729696，027-85751277，027-85678311，027-85798437。联系人：汪亮 13627104336 接受捐赠户名：武汉市慈善总会； 账号：421860158018170139664； 开户行：交通银行湖北省分行营业部（860158）； 联行行号：301521000021 2.武汉市红十字会负责接受医用耗材、防护用品等专项物资。联系电话：027-82788599，027-82210181，027-82812604，027-82858499，027-82856122。联系人：骆钢强 13297963117 二、接受捐赠的物资 当前急需用于疫情防控的物资，包括：医用设备、医疗设备、试剂、药品、防护设备、消洗设备、耗材（其中口罩需求量较大）等。 暂不接受与疫情防控无关的物资和境外捐赠。 捐赠物资通行保障联系电话：市公安局周警官 027-85395087；章警官 18302795638；朱警官 18302795633 三、捐赠物资的使用 捐赠的款物原则上由武汉市新冠肺炎防控指挥部统一调配使用。武汉市慈善总会、武汉市红十字会将依法依规公布捐赠接收和使用情况，接受社会监督。 武汉市新冠肺炎防控指挥部通告（第5号） 武汉市新冠肺炎防控指挥部通告（第6号） 摘要：为减少人员流动，降低感染风险，现就桥隧通行管理有关事项通告如下: 自2020年1月25日0时起，过江隧道关闭，三环内(含三环)过江桥梁通行实施体温检测管控。取消时间另行通告。 武汉市新型肺炎防控指挥部通告（第7号） 摘要：一、全员排查发热病人。由全市各社区负责，全面排查所服务辖区发热病人(含已就医和未就医市民)，并送社区医疗中心对病情进行筛选、分类。对于需要到发热门诊的病人，各区统一安排车辆送达指定发热门诊就诊，指定发热门诊不得以任何理由拒收病人;对于不需要到发热门诊就诊的病人，由各社区落实在家居家观察，社区负责做好市民居家观察服务工作。 二、分类安排发热病人。已确定或高度疑似的新型冠状病毒感染的肺炎病人，由市卫健委负责，安排车辆送至指定治疗点治疗;疑似的发热病人，留在发热门诊留滞观察;发热情况较轻，还不能确定为疑似的病人，由各区负责接回指定地点隔离观察;确定不是新型冠状病毒感染的肺炎病人，由各区负责送回家中居家观察。 武汉市新型肺炎防控指挥部通告（第8号） 摘要：为解决市民居家出行不便等问题，全市紧急征集6000台出租车，分配给中心城区。每个社区3-5台，由社区居委会统一调度使用，自2020年1月25日中午始，为辖区居民出行提供免费服务。社区居委会为生活不便居民上门免费提供送餐、送菜、送药等居家服务。 发布日期：2020-1-25 # 感染预防和控制（英文） \u0026mdash;\u0026mdash;who 武汉市新型肺炎防控指挥部通告（第9号） 摘要：自2020年1月26日0时始，除经许可的保供运输车、免费交通车、公务用车外，中心城区区域实行机动车禁行管理。市民确有通行需求的，按指挥部第8号通告执行，各社区配备足够车辆保障需求。 发布日期：2020-2-2 # 武汉市新型肺炎防控指挥部通告（第10号） 摘要：根据《中华人民共和国传染病防治法》《突发公共卫生事件应急条例》和《武汉市新型冠状病毒感染的肺炎疫情防控暂行办法》相关规定，为进一步加强隔离观察工作，现就有关事项通告如下： 自通告发布之日起，在前期定点隔离和居家隔离基础上，对全市经发热门诊诊断有肺炎症状的发热病人和新型肺炎病人的密切接触者，由各区安排车辆分别送至区集中隔离观察点，进行医学观察、治疗或采取其他预防措施。具体隔离观察时间根据医学检查结果确定，患者应当予以配合；拒绝配合的，由公安机关依法协助强制执行。隔离期间，各区免费提供食宿、医学观察和治疗。其他发热病人由社区继续落实居家隔离观察措施。 评论类/民间纪实类 # 发布日期：2020-1-22 # 从武汉疫情抓人事件~看极左翼媒体胡锡进谄媚洗地的逻辑陷阱 \u0026mdash;\u0026mdash;陈秋实 YouTube 武汉up实拍，冠状病毒肺炎下，超市、商圈、公司现在是什么情况？ \u0026mdash;\u0026mdash;林晨同学 bilibili 发布日期：2020-1-24 # 武汉UP实拍，封城后的24小时，“空城”武汉的物价、交通 、生活状态 \u0026mdash;\u0026mdash;林晨同学 bilibili 发布日期：2020-1-25 # 平靜、有序和忙碌 | 陳秋實武漢中心醫院大年初一凌晨實訪錄 \u0026mdash;\u0026mdash;陈秋实 YouTube 多方動員向武漢 | 陳秋實武漢疫區大年初一中午總結報導 \u0026mdash;\u0026mdash;陈秋实 YouTube 发布日期：20201-26 # 醫療資源和專業人員短缺 | 陳秋實大年初二淩晨總結報導 \u0026mdash;\u0026mdash;陈秋实 YouTube 中国时评作家王亚军（王歪嘴）刚刚为武汉募捐物资就被湖北XX威胁 已无法访问 武漢物價水準和居民日常 | 陳秋實大年初二下午武漢街頭購物實錄 \u0026mdash;\u0026mdash;陈秋实 YouTube 发布日期：2020-1-27 # 武漢華南海鮮批發市場 | 陳秋實來到“武漢肺炎”病毒發源地實錄 \u0026mdash;\u0026mdash;陈秋实 YouTube 武漢疫區的人與事深度思考 | 陳秋實大年初三早晨總結報導 \u0026mdash;\u0026mdash;陈秋实 YouTube 在武汉街头 不戴口罩会发生什么？ 发布日期：2020-1-28 # 火神山醫院工地 | 陳秋實與武漢當地人一起實訪武漢版“小湯山醫院” \u0026mdash;\u0026mdash;陈秋实 YouTube 真正納稅人的直播 | 陳秋實和“口罩哥”武漢疫區首次直播 \u0026mdash;\u0026mdash;陈秋实 YouTube 去超市补给库存 看看本地情况 为什么总感觉人们彼此像孤岛 \u0026mdash;\u0026mdash;TuTu生活志 YouTube 发布日期：2020-1-29 # 武汉第五医院 大概是发烧和咳嗽多日一直排不到床位 所以情绪崩溃了 資源緊缺，疫情緊急 | 陳秋實大年初六中午焦慮總結報導 \u0026mdash;\u0026mdash;陈秋实 YouTube 发布日期：2020-1-31 # 武汉红十字会，不要怪我们骂你 \u0026mdash;\u0026mdash;智先生 发布日期：2020-2-1 # 武汉肺炎｜我采访了留在武汉的外国留学生，他们为什么不离开中国？ \u0026mdash;\u0026mdash;杰里德Jared bilibili 武汉肺炎｜街访美国路人，海外网友怎么看新型冠状病毒？ \u0026mdash;\u0026mdash;我是郭杰瑞 bilibili 勇敢真實的聲音非常重要 | 陳秋實大年初八中午武漢總結播報 \u0026mdash;\u0026mdash;陈秋实 YouTube 【武汉Vlog】宿舍距离发热门诊仅300米，一线医生是如何轮班休息的？ \u0026mdash;\u0026mdash;央视新闻 bilibili 紧急发布，武汉市民方斌被自称防疫站的人闯入家中 \u0026mdash;\u0026mdash;陈秋实 YouTube 发布日期：2020-2-2 # 武汉方斌平安 电脑被扣骑单车回家 全民互救 \u0026mdash;\u0026mdash;陈秋实 YouTube 自覺、自醒、自助、自救 | 陳秋實大年初九夜晚武漢漢口殯儀館總結播報 发布日期：2020-2-4 # 真正納稅人的直播 | 陳秋實和武漢肺炎死難者家屬阿明疫區直播 \u0026mdash;\u0026mdash;陈秋实 YouTube 发布日期：2020-2-7 # 【求助代发】陈秋实妈妈呼吁武汉网友寻找秋实下落！公民记者陈秋实去方舱医院后失联超过6小时…… \u0026mdash;\u0026mdash;陈秋实 YouTube 其他类（无法分类） # 发布日期：2020-1-29 # 简单算算，你宅在家里究竟能为抗击肺炎疫情做出多大贡献？ \u0026mdash;\u0026mdash;毕导 bilibili 发布时间：2020-1-30 # 看了这些“土味”标语横幅，你就明白为什么要依靠人民群众了 \u0026mdash;\u0026mdash;央视新闻 他们睡着了的样子，让人心疼 \u0026mdash;\u0026mdash;央视新闻 发布日期：2020-1-31 # 不戴口罩不要乱跑，小心无人机飞你 \u0026mdash;\u0026mdash;央视新闻 发布日期：2020-2-2 # 【回形针PaperClip】关于新冠肺炎的一切 \u0026mdash;\u0026mdash;回形针PaperClip bilibili 【主播说联播】用过的口罩如何处理？详细攻略来了！ \u0026mdash;\u0026mdash;央视新闻 bilibili 时间线梳理 # 这个我暂时是没有时间做的，工程量巨大。\n一句话：我把新闻搜集好放在这里，这些碎片化的线索如何串联，就是你们读者的事了。\n个人想说的一些话 # 希望大家不用过于紧张，特别是不在武汉的小伙伴，注意卫生家里蹲，病毒能染上那才是真的有鬼了。 不要咒骂任何人，没有意义，在灾难面前，理性和秩序尤为重要。 关于这次疫情的报道有很多，报道的方向的很杂，信息量着实很大。有人说想知道真相，可真相我们就算看得见，也不可能看得清。我认为了解真相不是最重要的，重要是理性地面对现实，正视我们所看见的、听见的和遇见的。\n作为一个当代的中国人，希望得到真相，真的只是一种奢望。\n","date":"2020-01-25","externalUrl":null,"permalink":"/2020/01/25/2019-nCoV/","section":"文章","summary":"最近的热点一定是这次疫情的爆发了。到处都在谈论此事，在此对本次事件的一些重要新闻或资料等有关信息做一个整理。或许也会有我个人的评论。\n注：部分资料存在无法访问情况。请自行通过魔法上网的方式访问这些不存在的网站。\n注意：本文在保证信息内容保证表达原意的同时，会对摘要或新闻标题中政治敏感的部分进行修改或删减（如当看到摘要繁体字中混着简体字，说明我有进行修改），也会将一些信息归类到本不应该在的类别中，以减少不必要的麻烦。请谅解！\n以下内容均为个人手工整理，精力有限，不全或消息来源有误欢迎指正。\n","title":"2019-nCoV专栏（停止更新）","type":"posts"},{"content":"","date":"2020-01-25","externalUrl":null,"permalink":"/tags/historia/","section":"Tags","summary":"","title":"Historia","type":"tags"},{"content":"","date":"2020-01-25","externalUrl":null,"permalink":"/tags/%E7%97%85%E6%AF%92/","section":"Tags","summary":"","title":"病毒","type":"tags"},{"content":"","date":"2020-01-25","externalUrl":null,"permalink":"/tags/%E6%96%B0%E5%86%A0%E7%97%85%E6%AF%92/","section":"Tags","summary":"","title":"新冠病毒","type":"tags"},{"content":"","date":"2020-01-25","externalUrl":null,"permalink":"/tags/%E6%96%B0%E9%97%BB/","section":"Tags","summary":"","title":"新闻","type":"tags"},{"content":"","date":"2020-01-23","externalUrl":null,"permalink":"/tags/%E6%9C%BA%E5%99%A8%E4%BA%BA/","section":"Tags","summary":"","title":"机器人","type":"tags"},{"content":"","date":"2020-01-23","externalUrl":null,"permalink":"/tags/%E9%85%B7q/","section":"Tags","summary":"","title":"酷q","type":"tags"},{"content":"写在前面 # 有个狗群员来问我有没有康过某个本子然后我说没有，想到曾在这个博客上看到有开源搜图机器人，所以就打算自己搭建一个玩。\n注意：本教程为懒人教程，可以原封不动按教程中的操作复制粘贴，如果还有错误出现，请自行谷歌。\n使用工具 # 硬件 # MacBookAir 一台阿里云的服务器（系统Ubuntu 16.04） 软件 # 终端（Mac自带） termius（用于ssh） 过程 # ssh连接服务器\napt-get -y update 更新源\n安装node.js # 更新源\nsudo apt-get update sudo apt-get install -y python-software-properties software-properties-common sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update 安装\nsudo apt-get install nodejs sudo apt install nodejs-legacy sudo apt install npm 更新npm的包镜像源，方便快速下载\nsudo npm config set registry https://registry.npm.taobao.org sudo npm config list 全局安装n管理器(用于管理nodejs版本)\nsudo npm install n -g 安装最新的nodejs（stable版本）\nsudo n stable 安装docker版酷q # 如果未安装docker会提示进行安装，自行复制安装命令进行安装\ndocker pull coolq/wine-coolq 下载完成后自己创建一个文件夹用于放置文件\nmkdir /home/cq # 任意路径均可 然后运行 酷Q 镜像\ndocker run --name=coolq --rm -p 6700:6700 -p 8080:9000 -v /home/cq（这个即为前面创建的文件夹路径，如果你没有直接使用上面给出的路径，请自行修改）:/home/user/coolq -e VNC_PASSWD=此处填写管理页登录密码 -e COOLQ_ACCOUNT=此处填写需要登录的qq号 -e CQHTTP_USE_WS=true coolq/wine-coolq 此时我们可以在浏览器中打开你的服务器地址:8080查看并登录QQ\n确认能正常运行后，可以选择安装后台服务。 将上一步中的--rm改为-d即可。\n后台服务命令 # docker logs coolq #查看运行情况 docker start coolq #启动酷q docker stop coolq #关闭酷q 安装CoolQ HTTP API 插件 # 在这里我们使用wget进行安装。\ncd /home/cq/app #进入app文件夹 wget https://github.com/richardchien/coolq-http-api/releases/download/v4.13.0/io.github.richardchien.coolqhttpapi.cpk #下载插件，如果wget未安装会提示安装wget，直接复制其安装命令即可安装 此时我们在浏览器上登录管理页(确保酷q开启，不然无法登录) 登录qq，右击悬浮窗\u0026ndash;\u0026gt;应用\u0026ndash;\u0026gt;点击 应用管理\n找到HTTP API，选择启用\n启用后会在cq/data/app/io.github.richardchien.coolqhttpapi\\config文件夹中生成配置文件\n需要对配置文件进行配置\n\u0026#34;use_ws\u0026#34;: true, 请确保这条为true\n安装搜图机器人插件 # cd #回到根目录 cd /home/cq/app #前往APP文件夹，其实哪个文件夹装都一样 git clone https://github.com/Tsuk1ko/CQ-picfinder-robot.git cd CQ-picfinder-robot cp config.default.json config.json vim config.json #编辑配置文件，按i开始编辑，退出按esc，并输入:wq保存退出 配置文件可参考我的，或移步官方参考文档自行查看\n\u0026#34;host\u0026#34;: \u0026#34;127.0.0.1\u0026#34;, \u0026#34;port\u0026#34;: 6700, \u0026#34;enableAPI\u0026#34;: true, \u0026#34;enableEvent\u0026#34;: true, \u0026#34;access_token\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;reconnection\u0026#34;: true, \u0026#34;reconnectionAttempts\u0026#34;: 10, \u0026#34;reconnectionDelay\u0026#34;: 5000, \u0026#34;picfinder\u0026#34;: { \u0026#34;debug\u0026#34;: false, \u0026#34;admin\u0026#34;: 填写管理员QQ号, \u0026#34;autoAddFriend\u0026#34;: false, \u0026#34;addFriendAnswers\u0026#34;: [], \u0026#34;autoAddGroup\u0026#34;: false, \u0026#34;saucenaoDefaultDB\u0026#34;: \u0026#34;all\u0026#34;, \u0026#34;useAscii2dWhenQuotaExcess\u0026#34;: true, \u0026#34;useAscii2dWhenLowAcc\u0026#34;: true, \u0026#34;searchLimit\u0026#34;: 30, \u0026#34;searchModeTimeout\u0026#34;: 60, \u0026#34;proxy\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;repeat\u0026#34;: { \u0026#34;enable\u0026#34;: true, \u0026#34;times\u0026#34;: 3, \u0026#34;probability\u0026#34;: 40, \u0026#34;commonProb\u0026#34;: 0.2 }, \u0026#34;setu\u0026#34;: { \u0026#34;enable\u0026#34;: false, \u0026#34;antiShielding\u0026#34;: false, \u0026#34;allowPM\u0026#34;: true, \u0026#34;pximgServerPort\u0026#34;: \u0026#34;60233\u0026#34;, \u0026#34;usePximgAddr\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;pximgProxy\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;size1200\u0026#34;: false, \u0026#34;deleteTime\u0026#34;: 60, \u0026#34;cd\u0026#34;: 600, \u0026#34;limit\u0026#34;: 30, \u0026#34;whiteGroup\u0026#34;: [填写白名单QQ群（下面那行填了true所以机器人只有在白名单群内的群聊才会有反应], \u0026#34;whiteOnly\u0026#34;: true, \u0026#34;whiteCd\u0026#34;: 0, \u0026#34;whiteDeleteTime\u0026#34;: 0, \u0026#34;r18OnlyInWhite\u0026#34;: true }, \u0026#34;regs\u0026#34;: { \u0026#34;searchModeOn\u0026#34;: \u0026#34;^竹竹搜[图圖]$\u0026#34;, \u0026#34;searchModeOff\u0026#34;: \u0026#34;^[谢謝]+竹竹$\u0026#34;, \u0026#34;sign\u0026#34;: \u0026#34;我(.*)签到\u0026#34;, \u0026#34;setu\u0026#34;: \u0026#34;^竹竹.*[来來发發给給][张張个個幅点點份]?(?\u0026lt;r18\u0026gt;[Rr]18的?)?(?\u0026lt;keyword\u0026gt;.*?)?的?[色瑟][图圖]|^--setu$\u0026#34; }, \u0026#34;replys\u0026#34;: { \u0026#34;default\u0026#34;: \u0026#34;\u0026#34;, \u0026#34;debug\u0026#34;: \u0026#34;维护升级中，暂时不能使用，抱歉啦~\u0026#34;, \u0026#34;personLimit\u0026#34;: \u0026#34;您今天搜的图太多辣！休息一下明天再来搜吧~\u0026#34;, \u0026#34;failed\u0026#34;: \u0026#34;搜索失败惹 QAQ\\n有可能是服务器网络爆炸，请重试一次\u0026#34;, \u0026#34;sign\u0026#34;: \u0026#34;签到成功，送您10个赞！\u0026#34;, \u0026#34;signed\u0026#34;: \u0026#34;您今天已经签到过啦_(:3」∠)_\u0026#34;, \u0026#34;searchModeOn\u0026#34;: \u0026#34;了解～请发送图片吧！支持批量噢！\\n如想退出搜索模式请发送“谢谢竹竹”\u0026#34;, \u0026#34;searchModeAlreadyOn\u0026#34;: \u0026#34;您已经在搜图模式下啦！\\n如想退出搜索模式请发送“谢谢竹竹”\u0026#34;, 编辑完成后保存退出。\nnpm i npm install pm2 -g npm run pm2start 运行插件后请使用\nnpm run pm2log 查看日志，确保能够正常运行。\n安装管理插件 # 按上方配置，我们的机器人并不会主动同意添加好友，所以我们需要使用这个插件来管理我们的好友申请等功能。 将文件下载到本地，并解压 打开终端，使用scp（不是那个scp！！！）上传文件到服务器\ncp 需要上传的文件路径（将文件拖入终端窗口就会自动填好文件路径） root@IP地址:/home/cq/app(即安放插件的文件夹) 上传后，需要修改配置文件，路径为data/app/com.burnlord.cqExtend，安这个来配置 配置完成后，参照上面开启HTTP API插件的方法开启插件。\n测试是否成功 # 可以向机器人发瑟图确认搜图插件能否运行 可以让机器人加入群，如会向管理员发送入群信息则说明管理插件正常运行 参考文章 # Ubuntu16.04安装最新版nodejs 酷Q on Docker 2.0 酷Q运行增强助手 部署流程 CoolQ HTTP API 插件 ","date":"2020-01-23","externalUrl":null,"permalink":"/2020/01/23/Linux/tutorial/coolq/","section":"文章","summary":"写在前面 # 有个狗群员来问我有没有康过某个本子然后我说没有，想到曾在这个博客上看到有开源搜图机器人，所以就打算自己搭建一个玩。\n注意：本教程为懒人教程，可以原封不动按教程中的操作复制粘贴，如果还有错误出现，请自行谷歌。\n","title":"利用酷q+服务器搭建一个搜图机器人","type":"posts"},{"content":"","date":"2020-01-23","externalUrl":null,"permalink":"/tags/%E6%90%9C%E5%9B%BE/","section":"Tags","summary":"","title":"搜图","type":"tags"},{"content":"","date":"2020-01-20","externalUrl":null,"permalink":"/tags/hexo/","section":"Tags","summary":"","title":"Hexo","type":"tags"},{"content":"","date":"2020-01-20","externalUrl":null,"permalink":"/tags/%E5%8D%9A%E5%AE%A2/","section":"Tags","summary":"","title":"博客","type":"tags"},{"content":"写在前面 # 去年下半年的时候，我终于搭建好了自己的博客，当然，不总是一帆风顺。之前还有过因为换用tx云太难用气到删了博客。再次总结一下使用经验，警示后人。\n注意：本文仅针对使用MacOS的用户！因为我不使用Windows系统所以不知道Windows上应该如何操作！虽然大致操作基本上是一样的但是也有一定的区别！！！\n所需材料 # 硬件 # 一台装有MacOS的电脑 软件 # node.js git 终端（MacOS自带） 以下涉及的命令均需要在终端中完成 首先请确保软硬件均已准备完毕，node.js及git是使用hexo博客框架的基础！软件的安装非常简单，动动鼠标就能完成，在此不做过多赘述。 安装hexo # 在安装和使用hexo时，我们需要使用的npm，由于众所周知的原因，国内使用npm会很慢如果你是会魔法的小魔仙的话就当我没说，所以在这里，我们可以选择使用淘宝的镜像站。\nnpm install -g cnpm --registry=https://registry.npm.taobao.org 安装完成后，再使用npm进行安装hexo\ncnpm install -g hexo-cli 开始安装并构建博客 # 首先，我们要选择一个位置放置博客的文件夹，个人推荐直接在用户文件夹下发进行构建。\n方法一：\nhexo init \u0026lt;此处填写你希望的文件夹名\u0026gt; #将hexo安装至某一文件夹 cd \u0026lt;此处文件夹名同上\u0026gt; #移动到某一文件夹 npm install 方法二：\nmkdir 此处填写你希望的文件夹名 #新建文件夹 cd 此处填写同上 #移动到文件夹 hexo init npm install 等待安装完成即可。\n配置并使用hexo # 当我们安装好hexo之后，我们已经可以开始使用它了，通过\nhexo s 我们可以在浏览器中打开http://localhost:4000/对我们的博客进行预览\n但是这样我们的博客还是只能在本地进行查看，所以我们要下载推送到远端的插件\n利用GitHub的服务部署blog # github提供免费的静态页面托管服务（当然腾讯云什么的也提供类似服务，个人觉得腾讯云的难用得反人类，当然也可能只是我使用的问题），如果你愿意使用他们提供的域名，那么本教程涉及内容将不fa一分钱！\nGitHub设置 # 首先我们需要有一个GitHub的账号废话\n登录后点击右上角的＋号\n选择new repository 填好项目名就可以下一步了\n创建好这个项目后，打开项目页面并点击Settings 本地设置 # 当我们准备好了GitHub的空仓库之后，需要想办法将本地内容推送到GitHub的仓库中\n在博客的根目录下执行\ncnpm install --save hexo-deployer-git #安装插件 安装完成后，在博客根目录下找到_config.yml文件，这个就是博客的配置文件。\n使用文件编辑器打开配置文件或在终端使用vim（我使用的文件编辑器是brackets）\n在配置文件中添加以下内容\ndeploy: type: git repo: 此处换成你的GitHub仓库的网址或者空仓库给出的https推送使用的网址 branch: master 配置完成后保存文件，当我们第一次推送时，会在终端中要求登录，使用GitHub账户登录即可。\nhexo d #将博客推送至远端 使用Markdown写文章 # hexo是支持Markdown的，我们使用Markdown进行写作。 在博客根目录下\nhexo n 此处填写文件名 #新建一篇模板，文件名请使用英文！ hexo会自动生成一个模板文件在source/_posts/目录下，使用文件编辑器打开就可以编写文章了\n当然你也可以直接在source/_posts/目录下新建md文件\nMarkdown语法知识 # 此处列举一些常用语法，完整语法请参考Markdown官方文档 注意：md涉及的语法中，必须使用英文符号！否则无效！！！例如中文的“（”和英文的“(”是不一样的！*\n标题\n\u0026#34;#\u0026#34;为标题，只需要在标题那一行的前面加#即可，注意#后要空一格！ 标题共分6级 # 一级标题 ## 二级标题 ### 三级标题 ····· 以此类推 强调或突出\n强调或突出 可简单理解为加粗和斜体字 在需要强调或突出的文字两侧加上*即可 例如： *这是一个突出* **这是一个强调** 插入图片或文字内联链接\n为文字内联链接使用[]() 中括号中填写文字内容，小括号中填写链接地址 插入图片使用![]() 方法跟文字一样，但是图片的注释（即中括号中的内容）有些主题不会显示 列表\n列表 有序列表 使用1. 2. 这样的形式 例如： 1. MacBook 2. iPhone 无序列表 使用* 例如： * 吃饭 * 睡觉 代码块\n使用“`” 例如： `这里的单行代码块` 多行代码块在头和尾留两行各打三个“`” 水平分割线\n三个或更多星号 例如： ******* 换行\n直接在行尾打两个空格 删除线\n在文字两侧各加上两个~~ 例如： ~~中间这些字会被加上删除线~~ hexo中文章md文件的格式 # 格式如下\n--- title: 此处为文章标题 date: 2019-10-1 8:43:45 #写作时间 tags: --- 在---中间的部分为文章的一些数据，有些主题中还可以添加如文件转载规则等的信息，总之，你的文章内容需在---下方写作！\nhexo主题设置 # 我相信大家一定不会选用官方默认给的主题，这时候我们可以选择别的主题。\n在hexo官网上有有些很不错的主题可供选择，有需要可以到这里查看\n我使用过一个叫matery的主题，功能齐全，还可以自行套cdn，对国内的访问非常友好，还挺好看的。项目地址\n目前使用的是一个很简洁的主题，叫Ayer\n每一个主题基本上都会有教怎么配置，这里就不多说了。\nhexo常用命令 # 新建md文件\nhexo n 此处填写文件名，建议英文 本地调试和查看博客\nhexo clean hexo s # 以上两个命令执行后就可以在localhost:4000看到我们的博客 # 退出使用control+c 推送到远端\nhexo d 自定义域名 # 域名当然是能自定义的\n首先我们需要在域名服务商的管理界面，添加一个A记录将服务器根域名指向GitHub的ip\nGitHub服务器ip可以在终端里通过ping获得\nping github.io 然后添加一个CNAME记录将一个子域名指向你的项目地址（也可以直接将根域名指向项目地址）\n记录的更新需要一点时间，请耐心等待！\n访问GitHub上的项目地址，点setting\n找到GitHub pages在文本框中输入自己的域名保存即可，也可以勾选下面的选项启用https。 使用心得 # 提高博客访问速度 # 一个博客的访问快速是非常重要的，总不能一个页面加载十几秒让人看吧？\n由于众所周知的原因，GitHub的服务国内访问也很慢，所以得搞点骚操作。怕折腾请选用反人类的tx云\n能用cdn就要用上cdn # cdn是很有用的，对加速访问有奇效，有些主题可以自行设置添加cdn，如我前面说到的matery\n这里提供一个国内免费的cdn服务，配合主题使用。请自行在主题的配置文件下修改cdn配置\n有人会问：那万一主题并不支持添加cdn呢？\n这个问题问的好，这时我们就需要请出大佬cloudflare\n注意：以下操作必须要求有自己的域名！且域名由cloudflare托管！\n打开域名管理页面\n点击dns\n将需要套dns的网址记录的proxy选项调整至proxied（这么操作也可以为网站的tls协议直接升级到1.3） 完成后前往speed页面，点击Optimization将设置调整为如下,别的设置不用动 设置完后，在国内访问也能提高不少，可以说效果拔群。\n不过有个小问题，由于采用了缓存技术，所以当我们将写好的文章推送到远端后访问博客可能无法第一时间看到更新，需要在cloudflare管理页面上的overview页面打开一下Development Mode选项（平时的话请把它关上）\n图片能用图床就一定要用图床 # 推荐图床聚合图床 附上我的邀请链接https://www.superbed.cn/signup?from_id=8198\n一定要备份！！！！！ # 备份是很重要的，防止因为莫名其妙的问题导致文件丢失全都得从头再来。推荐用GitHub备份，关于GitHub的使用，下次有时间会专门写一篇文章介绍。\n总结 # 博客这个东西国内除了程序员和一些网上冲浪的GG和MM可能知道以外现在知道有这个东西的人已经越来越少了，可以说是相当小众。由于很多的原因，我不喜欢微博之类的地方，国内的网络和现实环境都让我一言难尽。所以惹不起我还是躲得起的。博客就像互联网大海中的一座座孤立的小岛，时不时有人会来看看，时间长了，可能一些志同道合的人就会聚在一起。圈子不用大，关键是自己呆着很舒服。\n","date":"2020-01-20","externalUrl":null,"permalink":"/2020/01/20/hexo/","section":"文章","summary":"写在前面 # 去年下半年的时候，我终于搭建好了自己的博客，当然，不总是一帆风顺。之前还有过因为换用tx云太难用气到删了博客。再次总结一下使用经验，警示后人。\n注意：本文仅针对使用MacOS的用户！因为我不使用Windows系统所以不知道Windows上应该如何操作！虽然大致操作基本上是一样的但是也有一定的区别！！！\n","title":"利用hexo+GitHub搭建属于自己的blog","type":"posts"},{"content":"","date":"2019-12-16","externalUrl":null,"permalink":"/tags/email/","section":"Tags","summary":"","title":"Email","type":"tags"},{"content":"写在前面 # 事情是这个样子的：有一天突然想写个拍簧片PHP程序，然后在看b站教学的时候一看手机发现某群的大佬搞了个自己的域名邮箱，然后就想也弄一个玩玩了。\n对，没错，就是能跑偏这么远\n正文 # 像腾x和阿里都有提供企业邮箱的服务，但是众所周知，国内嘛，各种实名认证，而我就是烦这个。\n这里我选择了一家毛子的公司，叫yandex。他们家提供免费的域名邮箱服务。\n注册yandex账号 # 这里我们先要去yandex的网站注册一个自己的账号\n申请域名邮箱 # 然后在这里申请域名邮箱。 验证域名所属权 # 官方提供以下四种验证方法\nHtml files Meta tag Whois DNS record HTML files # 即在根目录下新建一个指定HTML文件，官方可以直接提供文件，点击下载，然后放到网站根目录即可\nMeta tag # 简单的说就是在根域名网站主页的head上加一条验证信息\n我的网站是部署在GitHub上的\n直接把项目中的index.md改为index.html然后把里面的内容替换成网页源代码后，按官方的说明直接复制粘贴给出的需要添加在head中的代码即可。\nWhois # 没用过，也不推荐\nDNS record # 即在DNS解析服务商的管理页面上添加一条txt记录\nname处填写yandex-verification\nContent处填写官方给的验证码\n注意：这个方法所需时间可能会很长，一天甚至好几个月才能通过验证，所以有条件尽量选择使用Html files或Meta tag的方式进行验证\n配置MX、SPF与DKIM记录 # 进入DNS管理后台\n在DNS记录中添加以下记录，进行配置MX、SPF记录 在这里获取DKIM公钥后在DNS管理后台添加一条TXT记录，Name（host）填写mail._domainkey，Value填刚刚获取的公钥\n官方文档\n等待生效 # 自定义前缀 # 等DNS解析生效后，我们就可以自由添加邮箱了，yandex可支持添加1000个邮箱前缀，且每个用户都有独立的5GB空间。 进入这个地址 点击Add即可添加自己喜欢的邮箱前缀\n后记 # 讲道理，我也不知道我搞了这个有啥用 ","date":"2019-12-16","externalUrl":null,"permalink":"/2019/12/16/email/","section":"文章","summary":"写在前面 # 事情是这个样子的：有一天突然想写个拍簧片PHP程序，然后在看b站教学的时候一看手机发现某群的大佬搞了个自己的域名邮箱，然后就想也弄一个玩玩了。\n对，没错，就是能跑偏这么远\n","title":"利用yandex搭建个人域名邮箱","type":"posts"},{"content":"","date":"2019-12-16","externalUrl":null,"permalink":"/tags/%E5%9F%9F%E5%90%8D%E9%82%AE%E7%AE%B1/","section":"Tags","summary":"","title":"域名邮箱","type":"tags"},{"content":"写在前面 # 是这样的，我的同学问我到底买啥安卓手机好，然后我就开始推销小米了。为啥推销小米呢？xda上很多大佬在用，刷机资源多，刷类原生方便。然后干脆写篇扫盲出来，方便他刷机顺便拯救一下我博客惨淡的访问量\n正片 # ROM # 简单的说就是个系统安装包。 由于某些原因，国内ROM的Android系统定制化的程度基本都非常高，名气较大的如MIUI、Flyme。\n在一定程度上，这些高度定制的ROM非常本地化，但是从我个人的角度来说，这些ROM太花里胡哨了！ 类原生的ROM是我较为推荐的，非常干净\n注意：在寻找ROM刷机的时候一定要确保对应自己的手机型号！\nROM推荐 # 国产专区 MIUI 怎么说呢\u0026hellip;\u0026hellip;.就那样，反正自从刷了类原生我就没再用了，个人不是很喜欢 氢OS （氧OS为海外版）\n没用过 第三方类原生 pixelexperience\n基于aosp开发的ROM。个人超级推荐！！！预置谷歌全家桶，不需要自己手动安装，且有大量机型在维护，bug少 lineageos\n类原生界几乎是大哥大的存在，没用过。 crDroid\n这个ROM是基于lineages开发的，自定义内容很多，但是小毛病很多 Recovery # 简称rec，是Android的一个恢复系统。在刷机过程中，我们需要利用rec完成大部分的操作。\n一般预装的rec功能都很少，所以我们要刷入第三方rec。\n推荐twrp\nbootloader锁 # 用于限制用户刷机\n每个厂商基本都有官方解锁方法，当然也有非官方的骚操作可以搞一搞。\n解锁bootloader锁是刷机的第一步。\nfastboot # fastboot是一个引导模式，对于刷机来说，rec是卡刷，即用u盘或者sd卡刷入ROM，而fastboot则是利用电脑通过USB线连接手机进行刷机。\n而fastboot本身用途非常多，我本人也不是很清楚\n底包 # 一个非常重要的东西，如果不及时更新底包可能会在刷机的过程中遇到很多莫名其妙的问题，比如刷不进ROM，或者进入系统后没声音等\nroot权限 # 即超级用户权限。有了root权限可以对手机进行很多骚操作，比如谷歌地图的纠偏。这个属于爱折腾的人才刷的东西，好处多多，当然也容易翻车。\n目前最好的工具是magisk，今后会更新一篇文章专门详细介绍magisk的使用。\nopen gapps # 在刷入大部分类原生ROM的时候很多人会问：不是类原生ROM吗？谷歌套件呢？\n先别急，一般的类原生ROM不会特意集成谷歌套件，因为安卓系统开源，但是谷歌套件不是啊！！！\n因此我们又需要自己动手在rec中刷入谷歌套件了。这里提到的open gapps就是提取好的谷歌套件，从官网下载后利用rec刷入就可以愉快的使用了。 注意：在选择open gapps包时要注意自己手机的系统，选择对应的包下载，不然无法刷入！\n后记 # 本文会持续在博客上进行更新，欢迎来访我的博客！\n","date":"2019-11-17","externalUrl":null,"permalink":"/2019/11/17/Android/Android/","section":"文章","summary":"写在前面 # 是这样的，我的同学问我到底买啥安卓手机好，然后我就开始推销小米了。为啥推销小米呢？xda上很多大佬在用，刷机资源多，刷类原生方便。然后干脆写篇扫盲出来，方便他刷机顺便拯救一下我博客惨淡的访问量\n","title":"安卓刷机知识扫盲","type":"posts"},{"content":"写在前面 # 这个其实是我在暑假里干的事情，突然想到了所以赶紧写下来。\n为啥我当时会搞这个事情呢？因为我偶然间发现国行的wh-h900n只更新到1.05版本就不再更新了，而国际版的已更新到4.20了，并且支持Google Assistant！\n本着不折腾会死的信念我开始了这次的耳机刷机折腾之旅。 注意：本教程适用于使用安卓的同学！\n准备工作 # 软件 # Sony Headphone Connect 3.2.0 apk文件（一定要确保是这个版本的！因为之后的版本检测逻辑不同，本方法并不适用） apktool 文本编辑器任意 MT管理器（适用于方法二，详见为apk签名章节） 硬件 # wh-h900n 一台安卓手机 MacBook（macos） 开搞前的废话 # 对于一个懒人，自然是希望网上有现成的资源可以用。找了一圈之后发现：特么的为什么大家给的都是刷1000系的教程啊！！！ 不过也无所谓了，既然有教程，那么我也可以顺藤摸瓜，依葫芦画瓢找到刷wh-h900n的方法。\n根据这篇文章提到的1000系各机型的产品ID，我在思考wh-h900n的产品ID是什么？ 于是我安装了3.2.0的耳机软件抓包了一下。 wh-h900n国行的ID为：289302 那么根据下表可知wh-h900n的国际版产品ID为289300。 知道产品ID后，剩下的就是逆向和打包了。\n正文 解包与打包 # 配置apktool环境 # 进入apktool官网按照教程进行配置 解包及设置 # 下载好Sony Headphone Connect 3.2.0\n进入终端进行逆向\napktool d 此处填写文件路径，直接打开apk所在文件夹，将apk拖入终端即可 解包后一般会用户的文件夹下，为了方便，我把apk包名称改为了b.apk，解包后文件夹路径为/User/yuxian/b 接下去就是查找需要修改的文件的位置\n我当时按着网上的教程找，没找着，后来我是一个个文件夹翻开手动找找到的\n是不是很牛逼？\n文件路径为/smali/com/sony/songpal/mdr/application/b/a.smali\n找到.line 156所在的那行，将下方修改为如下\n.line 156 :pswitch_1 const-string v0, \u0026#34;MDRID289302\u0026#34; #引号中为要填写的ID 重新打包\napktool b a -o 此处填新生成的文件名.apk 为apk签名 # 方法一： 使用jarsigner签名 # 在终端中输入\njarsigner -verbose -keystore {文件的路径} -storepass {密码} -signedjar {签名包的地址} {非签名包的地址} {签名的别名} 即可。\n方法二：MT管理器 # 在手机上安装MT管理器\n把我们打包好的文件传到手机，并在MT管理器中找到它\n点击后就能看到签名选项，按提示签名即可。\n安装APP开始刷机 # 进入我们修改过的软件后就会看到升级的提示了\n记得提前将耳机的电充好！！！ 后记 # 什么？你问我为什么不买1000系？ 还不是因为穷！！！（明示打赏）\n","date":"2019-10-23","externalUrl":null,"permalink":"/2019/10/23/sony-wh-h900n/","section":"文章","summary":"写在前面 # 这个其实是我在暑假里干的事情，突然想到了所以赶紧写下来。\n为啥我当时会搞这个事情呢？因为我偶然间发现国行的wh-h900n只更新到1.05版本就不再更新了，而国际版的已更新到4.20了，并且支持Google Assistant！\n本着不折腾会死的信念我开始了这次的耳机刷机折腾之旅。 注意：本教程适用于使用安卓的同学！\n","title":"WH-h900n 国行强刷国际版固件教程 ","type":"posts"},{"content":"总算是调试的差不多了，两篇干货也重写好了。累死我了，学乖了，现在知道要备份了。 ","date":"2019-10-16","externalUrl":null,"permalink":"/2019/10/16/Something/now/","section":"文章","summary":"","title":"终于。。。","type":"posts"},{"content":"写在前面 # 一直以来对MIUI都没有什么好感，比较喜欢清爽的类原生系统，然后就踏上了永无止境的刷（zhe）机（teng）之路了。 只要你愿意折腾，本教程绝对好用。\n准备工作 # 所需硬件 # 小米8 MacBook OTG线 U盘 所需软件 # 刷机用 # 一个自己喜欢的ROM包 推荐PixelExperience 第三方rec 推荐twrp Disable_Dm-Verity_ForceEncrypt 底包 magisk 下载Magisk v19.3,可自己选择安装那个版本。不需要root的用户可以不用下载。 ～我在我的分享站对刷机资源做了整合，可以直接前往分享站下载 2020.3.15更新～ 电脑上需要的软件 # 终端（Mac OS自带） Android Studio 前期准备 # 为手机开启开发者模式 # 进入设置，找到版本号，一顿狂点即可。\n进入开发者模式后，在开发者选项中打开adb调试。\n为手机解锁bootloader # 这是刷机的第一步，不解锁bootloader啥都干不了。\n首先我们要去小米的官网注册账号并申请解锁，此后要在设置中将账号绑定至手机，等待一定天数后可解锁，如何解锁具体可参考这篇文章。\n由于官方只有Windows下的解锁工具，所以解锁部分对我来说非常艰辛，为此我还专门跑到了有Windows电脑的同学家去解锁。直到后来我才不知道在哪看到有关Mac OS下解锁的文章。没有仔细了解，有兴趣的同学可以自行谷歌。\n配置好adb环境 # 下载Android Studio，并安装，默认安装位置即可。\n打开Android Studio，点击Configure，选择SDK Manager 显示的Android SDK Location后面的路径即为SDK的安装路径，待会会用到。\n进入终端创建.bash_profile文件\ntouch .bash_profile 打开.bash_profile\nopen .bash_profile 在文件中添加以下配置\nANDROID_HOME=此处填写前面我们记下的SDK路径 export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/platform-tools 生效配置\nsource .bash_profile 在终端中输入\nadb 若有一大堆东西显示则为配置成功。 将刷机用的软件拷贝到U盘中备用。 # 正式刷机 # 刷入第三方rec（twrp） # 关机状态下按住手机音量减+开机键进入fastboot模式\n终端中输入\nadb reboot bootloader fastboot flash recovery 此处为下载的twrp的文件名，包含扩展名。可以将本行代码输入到终端后打开twrp文件所在文件夹，将twrp文件直接拖入终端（macOS的使用就是这么方便） fastboot reboot 进入rec开始刷入系统 # 进入rec界面后（可在关机下按住音量加+开机键） 完成首次设置，有中文界面哦 点击清除，选择格式化Data分区，格式化后选择高级清除,勾选Cache System Data 内置存储滑动滑块清除。 清除后用OTG线连上U盘，回到主界面点击安装选择储存位置点击USB-CTG 依次刷入底包 ROM包 Disable_Dm-Verity_ForceEncrypt，刷完后即可重启使用全新的系统了。如果需要root的用户可在rec中刷入magisk的包\n后记 # 刷机有风险，玩机需谨慎！ 安卓刷机真的非常折腾而且不确定因素很多（比如刷机过程中会遇到万能错误7）\n对于安卓，我认为它的好处在于能够折腾，相对宽松的环境能够让手机实现很多骚操作。\n国内的深度定制rom我个人并不喜欢，虽然流量监控、归属地显示等功能贴近生活确实好用，但是系统实在臃肿，花里胡哨。\n某些安卓的定制rom会借鉴一些iOS的设计，但只学到了表面。简单易用、一目了然是iOS的绝对优势所在\n所以我会选择清爽的类原生系统。虽然缺乏本土化，但能让我记住使用手机根本的目的是为了提高效率，方便生活（虽然折腾刷机与此理念有所违背）。\n对于懒人用户，还是选择iPhone吧！\niPhone不需要折腾就能让你爽到。\n参考文章 # Android studio MacOS环境配置 Mac 配置 adb Android刷机教程（mac系统）\n","date":"2019-10-16","externalUrl":null,"permalink":"/2019/10/16/Android/mi8/","section":"文章","summary":"写在前面 # 一直以来对MIUI都没有什么好感，比较喜欢清爽的类原生系统，然后就踏上了永无止境的刷（zhe）机（teng）之路了。 只要你愿意折腾，本教程绝对好用。\n","title":"小米8刷机笔记","type":"posts"},{"content":"写在前面 # 由于目前还在使用12年的MacBook Air，加上身边多数人会使用手机等移动设备玩游戏，所以决定搭建一台BE的服务器。 请注意本教程适用于国际版的Minecraft BE，而非我的世界。\n器材 # MacBook\n一台Linux的服务器（博主使用的是阿里云Ubuntu18.04的服务器）\n环境配置 # 通过SSH连接服务器 更新系统\napt-get -y update 安装软件\napt-get -y install curl wget zip unzip screen jq openssl screen 设置服务端安装版本变量\nBEDROCK_VERSION=latest 获取服务端版本下载URL并设置变量\nif [ -z \u0026#34;$BEDROCK_VERSION\u0026#34; ] || [ \u0026#34;$BEDROCK_VERSION\u0026#34; == \u0026#34;latest\u0026#34; ]; then echo -e \u0026#34;\\n Downloading latest Bedrock server\u0026#34;; DOWNLOAD_URL=$(curl https://www.minecraft.net/en-us/download/server/bedrock/ | grep azureedge | grep linux | grep -Eo \u0026#34;(http|https)://[a-zA-Z0-9./?=_-]*\u0026#34;); BEDROCK_ZIP=$(echo $DOWNLOAD_URL | cut -d\u0026#34;/\u0026#34; -f5); else echo -e \u0026#34;\\n Downloading $BEDROCK_VERSION Bedrock server\u0026#34;; DOWNLOAD_URL=https://www.minecraft.azureedge.net/bin-linux/bedrock-server-$BEDROCK_VERSION.zip; BEDROCK_ZIP=$(echo $DOWNLOAD_URL | cut -d\u0026#34;/\u0026#34; -f5); fi 设置服务端安装目录变量\n等号后面的为服务端安装的目录，可自行修改。\nBEDROCK_PATH=/home/mc 安装服务端 # 创建服务端目录\nmkdir -p $BEDROCK_PATH 进入服务端目录\n目录为前面配置变量时设置的目录\ncd /home/mc 下载服务端压缩包\nwget $DOWNLOAD_URL 解压压缩包\nunzip -o $BEDROCK_ZIP 删除压缩包\nrm $BEDROCK_ZIP 设置权限\nchmod -R 777 bedrock_server 配置 # Minecraft BE服务端的配置文件在服务端文件夹的根目录里为server.properties。使用vim打开它进行配置。\nvim的使用 # 常用命令 # 打开文件\nvim 此处填写文件名 打开后按i进入输入模式后修改文件\n修改完成后按ESC回到命令模式\n输入：wq退出\nw为保存；q为退出\n配置文件的一些常用内容 # 服务器名称 server-name=此处填写自己喜欢的名称 难度 difficulty=此处填写难度 默认为easy 最大玩家数 max-players=此处填写数字 如果服务器像博主的一样垃圾那么建议改小玩家数 端口号server-port=填写自己喜欢的端口号 server-portv6=填写自己喜欢的端口号 世界名称level-name=填自己喜欢的名称 -世界种子level-seed=填自己喜欢的种子不填的话会默认随机生成。 加入游戏的玩家的权限default-player-permission-level=此处填写权限默认为member，可选择填写visitor或operator。一般自己和朋友玩的话默认就好 软件运行及后台运行 # 开放端口 # 博主使用的是阿里云所以直接在控制面板就可以进行设置了。\n具体就是进入阿里云控制面板，点击防火墙，添加规则，分别添加UDP和TCP的规则，开放服务器的端口。\n运行 # 使用apt安装screen，没有apt就装一个。\nsudo apt install screen 使用screen启动一个新的名为mcbds的窗口\nscreen -S mcbds 启动服务器\nLD_LIBRARY_PATH=. ./bedrock_server 或 sudo LD_LIBRARY_PATH=. ./bedrock_server 未出现错误，并显示IP v4 supported, port = 你设置的端口号之类的就是成功了 这些结束后可以按control+a+d退出窗口 需要再次打开窗口的话使用\nscreen -x mcbds 玩家权限设置 # 可以选择启动后先不退出窗口，游戏中登陆服务器后直接在窗口中输入\nop \u0026lt;玩家名\u0026gt; 或使用白名单方法\n登陆后会窗口显示玩家的名称和一串神秘代码（一长串数字） 按以下格式写入在服务端根目录的permissions.json文件中\n[ { \u0026#34;xuid\u0026#34;: \u0026#34;神秘代码\u0026#34;, \u0026#34;permission\u0026#34;: \u0026#34;权限\u0026#34; } ] 权限处填operator即授予xuid为xxx的玩家狗管理的权限（最高游戏权限）\n一切准备就绪，开始玩吧！ # 2020-2-28更新 # 在server.properties文件下加一个参数allow-cheats设置为true，op进入游戏后可以操作一些本只能在服务器后端操作的命令\n参考文章 # 在 Ubuntu 18.04 上搭建 Minecraft 基岩版官方服务端 server.properties Minecraft wiki Minecraft 基岩版官方服务器Alpha测试版本开服指南 Linux-基岩版服务器自定义版本搭建教程\n","date":"2019-10-16","externalUrl":null,"permalink":"/2019/10/16/Linux/tutorial/Minecraft-server/","section":"文章","summary":"写在前面 # 由于目前还在使用12年的MacBook Air，加上身边多数人会使用手机等移动设备玩游戏，所以决定搭建一台BE的服务器。 请注意本教程适用于国际版的Minecraft BE，而非我的世界。\n","title":"Minecraft BE（基岩版）服务器搭建教程","type":"posts"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","externalUrl":null,"permalink":"/archives/","section":"归档","summary":"","title":"归档","type":"archives"}]