<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>爱世界 N</title><description>世界那么美好......</description><link>https://lwnlh.com/</link><language>zh_CN</language><item><title>使用 SSH隧道 绕过 PLEX 对 Hetzner 的封锁</title><link>https://lwnlh.com/posts/23using_ssh_tunneling_to_bypass_the_plex_block_on_hetzner/</link><guid isPermaLink="true">https://lwnlh.com/posts/23using_ssh_tunneling_to_bypass_the_plex_block_on_hetzner/</guid><description>使用 SSH隧道 绕过 PLEX 对 Hetzner 的封锁</description><pubDate>Mon, 16 Oct 2023 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;使用 SSH隧道 绕过 PLEX 对 Hetzner 的封锁&lt;/h1&gt;
&lt;h2&gt;确定使用环境&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;一台 docker 宿主机, 一台 反代机&lt;/li&gt;
&lt;li&gt;PLEX 通过 反代机 Nginx 反代, 且 远程访问 已关闭&lt;/li&gt;
&lt;li&gt;宿主机能够 SSH 访问 反代机&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;修改 SSH Config&lt;/h2&gt;
&lt;p&gt;反代机 SSH 需要打开 &lt;code&gt;AllowTcpForwarding yes&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/ssh/sshd_config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将 &lt;code&gt;AllowTcpForwarding yes&lt;/code&gt; 前面的 # 删掉
重启 SSH 服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl restart sshd
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;修改配置文件&lt;/h2&gt;
&lt;p&gt;修改 &lt;code&gt;docker-compose&lt;/code&gt; 文件, 网络 更改为 &lt;code&gt;host&lt;/code&gt;, 添加 &lt;code&gt;environment&lt;/code&gt;, 如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;network_mode: host

&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;environment:
      - ALL_PROXY=socks5://127.0.0.1:62312

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;重新启动容器&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt; docker-compose down
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;docker-compose up -d
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;检查是否成功&lt;/h2&gt;
&lt;p&gt;打开 PLEX 检查, 此时媒体库应该能正常访问, 没有的话 打开侧边栏-更多
 或者 进入到容器内 &lt;code&gt;curl ipv4.ip.sb&lt;/code&gt; 看看出口IP是不是你的反代机&lt;/p&gt;
&lt;h2&gt;持久化&lt;/h2&gt;
&lt;p&gt;SSH隧道每次自动重连可用 autossh 之类的来自动创建并持久化. 这里不展开了&lt;/p&gt;
</content:encoded></item><item><title>关于长生种 AI 奇怪的碎碎念</title><link>https://lwnlh.com/posts/22_alive_long_long_long_time/</link><guid isPermaLink="true">https://lwnlh.com/posts/22_alive_long_long_long_time/</guid><description>关于长生种 AI 奇怪的碎碎念</description><pubDate>Thu, 29 Dec 2022 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;关于长生种 AI 奇怪的碎碎念&lt;/h1&gt;
&lt;h2&gt;一&lt;/h2&gt;
&lt;p&gt;最近看了一部番 &quot;散华礼弥&quot;, 有点喜欢这只萌萌的丧尸娘, 于是就去搜索了她的后续, 然后 漫画的 IF 线就给我致郁了......
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/12/29/22-1.jpg&quot; alt=&quot;&quot; /&gt;
礼弥 以近乎无限的生命独自一人在深山里度过漫长岁月, 陪伴她的只有曾经经历的短暂的, 美好的时光回忆
在时光长河冲刷下, 却又不知道这份回忆能陪伴她多久, 抑或者是一剂毒药?&lt;/p&gt;
&lt;p&gt;对于长生种而言, 这份回忆会被永远篆刻于心么?&lt;/p&gt;
&lt;h2&gt;二&lt;/h2&gt;
&lt;p&gt;偏个题, 看完 &quot;散华礼弥&quot; 后过于致郁本来想看个 &quot;TRAI TRAI&quot; 缓一缓的
结果又被 &quot;日後談&quot; 恶心到了&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;根據日本網友所說，在TARI TARI官方日後談小說中，宮本來夏成為一位單身母親，是未婚先孕又被男友拋棄自己一個人生下孩子
沖田紗羽在動畫中是夢想成為一名騎手，但是在10年後因為薩布雷的死亡放棄了做騎手的夢想
在動畫中喜歡羽毛球的田中大智成為了職業羽毛球選手，維也納則是成為了一名高中教師&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;我真是谢谢您&lt;/p&gt;
&lt;h2&gt;三&lt;/h2&gt;
&lt;p&gt;本来看新番 &quot;恋爱FLOPS&quot; 来缓一缓的
结果后半部分开始整 AI 的活了, 目前看到第十话, 讲一讲 &quot;散华礼弥&quot; &quot;恋爱FLOPS&quot; 连在一块儿给我带来的一些莫名其妙的思考 胡说八道&lt;/p&gt;
&lt;h2&gt;四&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;对于普通人而言, 一个暑假或者一年的时光是其人生的百分之一, 忆起可能会刻骨铭心, 那么对于长生种呢? 这短暂的时光相对于人家不过是短短一瞬, 甚至连个小水花都算不上, 不过长生种至少还会有 &quot;时间&quot; 这一概念, 而对于 &quot;AI&quot; 呢? &quot;AI&quot; 会有时间这一概念么? 那一段短短的恋情只是一个线程所发生的, 人家 &quot;AI&quot; 估计会有无数线程吧?&lt;/li&gt;
&lt;li&gt;现在的 &quot;AI&quot;, 都是做成拟人的样子, 比如说思考模式, 这是一种产生方法, 但这个玩意真的能叫 &quot;AI&quot; 么? 一种人类的复刻也能叫 &quot;智能&quot;?&lt;/li&gt;
&lt;li&gt;&quot;智能生命&quot; 应该没有时间观念, 人家可能是多个线程的集合体, 消亡可能就是一个线程的任务完成罢了&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;五&lt;/h2&gt;
&lt;p&gt;啪啪一顿敲也不知道胡咧咧了啥
就这样吧
另外推荐下 &quot;散华礼弥&quot; 的 ED &lt;a href=&quot;https://youtu.be/uZFRj4_1afM&quot;&gt;above your hand&lt;/a&gt;&lt;/p&gt;
</content:encoded></item><item><title>做了一个好梦</title><link>https://lwnlh.com/posts/21_have_a_good_dream/</link><guid isPermaLink="true">https://lwnlh.com/posts/21_have_a_good_dream/</guid><description>做了一个好梦</description><pubDate>Tue, 10 May 2022 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;总结 萝莉富婆 登月&lt;/p&gt;
</content:encoded></item><item><title>ZeriTier 安装使用、自建 MOON 节点、进阶使用</title><link>https://lwnlh.com/posts/20_zeritier_installation_and_use_self-built_moon_node_advanced_use/</link><guid isPermaLink="true">https://lwnlh.com/posts/20_zeritier_installation_and_use_self-built_moon_node_advanced_use/</guid><description>ZeriTier 安装使用、自建 MOON 节点、进阶使用</description><pubDate>Wed, 17 Nov 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文主要介绍内网穿透工具&lt;strong&gt;ZeroTier&lt;/strong&gt;使用方法，全文总分为三大部分：第一部分为基本安装使用、第二部分为自建&lt;code&gt;MOON&lt;/code&gt;节点，第三部分为进阶使用--访问&lt;code&gt;LAN&lt;/code&gt;下的资源。主要面向已经知道&lt;code&gt;ZeroTier&lt;/code&gt;是什么，并已经准备使用的人群。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;一、基本安装及使用&lt;/h2&gt;
&lt;h3&gt;1. 创建帐号&lt;/h3&gt;
&lt;p&gt;打开&lt;a href=&quot;https://my.zerotier.com/network&quot;&gt;ZeroTier控制中心&lt;/a&gt;，注册一个帐号，之后会给你一个&lt;code&gt;NETWORK ID&lt;/code&gt;，如果没有点上面&lt;code&gt;Creat A Network&lt;/code&gt;创建一个
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/19-1.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;2. 安装客户端&lt;/h3&gt;
&lt;p&gt;官网链接: &lt;a href=&quot;https://www.zerotier.com/download/&quot;&gt;https://www.zerotier.com/download/&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windows: 下一步下一步下一步......&lt;/li&gt;
&lt;li&gt;Linux (Debain/CentOS):&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;curl -s https://install.zerotier.com | sudo bash
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Linux (Arch):&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S zerotier-one
yay -S zerotier-gui-git # GUI 可选
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;GUI 长这样
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/19-2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;群晖: &lt;a href=&quot;http://download.zerotier.com/RELEASES/&quot;&gt;http://download.zerotier.com/RELEASES/&lt;/a&gt;, 展开到 &lt;code&gt;/1.8.3/dist/synology/&lt;/code&gt; 下载对应版本然后套件中心手动安装。(看似版本挺新的实际上是1.4.0)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3. 使用&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Linux:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;启动服务并允许开机启动&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl start zerotier-one.service
systemctl enable zerotier-one.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;加入网络&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;zerotier-cli join 你的NETWORK ID
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;群晖:&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;套件里启用后 ssh 运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;zerotier-cli join 你的NETWORK ID
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;问就是GUI不好使&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Windowns: 直接在GUI上加就行&lt;/li&gt;
&lt;li&gt;OpenWrt: 基本和 Linux 一致，不过一般编译好的固件有 luci，直接在那里把 &lt;code&gt;NETWORK ID&lt;/code&gt; 加上就行&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4. 测试&lt;/h3&gt;
&lt;p&gt;在 Menbers 选项里，把对应的客户端&lt;code&gt;Auth?&lt;/code&gt;勾上，后面就是这个客户端对应的内网IP，此时你Ping一下，应该就通了，延迟一般就是你两地直连延迟，ZeroTier 服务器实际上是起到一个牵线搭桥的作用，你的两个客户端则是 P2P 打洞，如果你的 Ping 超过 2.300ms 了，说明走的是 ZeroTier 的服务器中转了，此时建议自建一个国内节点的 MOON 服务器，见下文第二部分。
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/19-3.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;二、自建 MOON 节点&lt;/h2&gt;
&lt;p&gt;推荐国内服务器，或者有 公网IP 的
至于为啥叫 MOON 节点，ZeroTier 就是么叫的(:&lt;/p&gt;
&lt;h3&gt;1. 加入网络&lt;/h3&gt;
&lt;p&gt;参照第一部分，先把网络加入了&lt;/p&gt;
&lt;h3&gt;2. 生成配置文件&lt;/h3&gt;
&lt;p&gt;进入到 ZeroTier 安装目录&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /var/lib/zerotier-one
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;生成&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo zerotier-idtool initmoon identity.public &amp;gt; moon.json
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;Windows: C:\ProgramData\ZeroTier\One&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Macintosh: /Library/Application Support/ZeroTier/One (在 Terminal 中应为 /Library/Application\ Support/ZeroTier/One)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Linux: /var/lib/zerotier-one&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;FreeBSD/OpenBSD: /var/db/zerotier-one&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;3. 修改配置文件&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;nano moon.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把 &lt;code&gt;stableEndpoints&lt;/code&gt; 修改为你的 公网IP&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&quot;stableEndpoints&quot;: [ &quot;1.1.1.1/9993&quot; ] #修改为VPS公网IP/9993
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;4. 生成MOON文件&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo zerotier-idtool genmoon moon.json
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后会生成一个&lt;code&gt;000000xxxx.moon&lt;/code&gt;的文件，&lt;code&gt;xxxxx&lt;/code&gt;就是你 MOON节点 的 ID，记下来留用，文件也可以拷贝出来备份&lt;/p&gt;
&lt;p&gt;重启下服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl restart zerotier-one.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时你的服务器就成为了 MOON节点&lt;/p&gt;
&lt;h3&gt;5. 其余客户端加入 MOON节点&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo zerotier-cli orbit xxxxx xxxxx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中,&lt;code&gt;xxxxxx&lt;/code&gt;就是你上面记下的 MOON节点ID，没错，要写两遍，返回&lt;code&gt;200,xx，OK&lt;/code&gt;则加入成功，如果一直加入失败，把上面那个&lt;code&gt;00000xxx.moon&lt;/code&gt;文件拷贝到安装目录下的&lt;code&gt;moons.d&lt;/code&gt;,再重启下服务&lt;/p&gt;
&lt;h3&gt;5. 检查是否加入 MOON节点&lt;/h3&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo zerotier-cli listpeers
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;检查你的节点列表里是否有 MOON节点
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/19-4.png&quot; alt=&quot;&quot; /&gt;
如果一直没有，重启下服务再看&lt;/p&gt;
&lt;h2&gt;三、进阶: 访问LAN下资源&lt;/h2&gt;
&lt;p&gt;一般来讲，穿透都是客户端对客户端，但要是 ZeroTier 挂在路由器下，那么如何访问路由器下的 NAS 等其他资源呢？很简单，在 ZeroTier 后台配置一下就行。
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/19-5.png&quot; alt=&quot;&quot; /&gt;
在&lt;code&gt;Advanced&lt;/code&gt;界面，&lt;code&gt;ADD Routes&lt;/code&gt;下,&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Destination&lt;/code&gt;为你路由器网段，一般家用为&lt;code&gt;192.168.1.1&lt;/code&gt;那么这里就填&lt;code&gt;192.168.1.0/24&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;(Via)&lt;/code&gt;则填写 ZeroTier 给你分配的客户端的 内网IP 地址&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/19-6.png&quot; alt=&quot;&quot; /&gt;
Ping 一下，看看是不是就通了&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;高版本的&lt;code&gt;ZeroTier&lt;/code&gt;已经帮你配置好了防火墙，基本不用管其他问题，直接用就行&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ZeroTier: &lt;a href=&quot;https://www.zerotier.com/download/&quot;&gt;https://www.zerotier.com/download/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ZqinKing: &lt;a href=&quot;https://post.smzdm.com/p/adwrepgk/&quot;&gt;https://post.smzdm.com/p/adwrepgk/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Hetzner 安装 Proxmox 开小鸡教程 - 安装篇</title><link>https://lwnlh.com/posts/19_hetzner_install_proxmox_to_open_the_chicken_tutorial_1/</link><guid isPermaLink="true">https://lwnlh.com/posts/19_hetzner_install_proxmox_to_open_the_chicken_tutorial_1/</guid><description>Hetzner 安装 Proxmox 开小鸡教程 - 安装篇</description><pubDate>Mon, 13 Sep 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;此系列主要记录 Hetzner 安装 Proxmox 开小鸡的流程，主适用于宿主机为单ipv4,多ipv6，想开小鸡为 NAT ipv4 + 独立 ipv6 的情境&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;本文为此系列第一篇 主要记录 Proxmox 的安装，以及宿主机的网络配置&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;一、准备工作&lt;/h2&gt;
&lt;h3&gt;1.修改&lt;code&gt;hostname&lt;/code&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;hostnamectl set-hostname 自己设
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后编辑&lt;code&gt;hosts&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/hosts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;去掉 ipv6 的主机名
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/18-1.png&quot; alt=&quot;&quot; /&gt;
你的 ipv6 主机名为红色箭头所示，如果你上面修改了主机名，那么 ipv4 对应的主机名也要修改
测试一下，返回宿主机的 ipv4 地址为正常&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hostname --ip-address
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2.开启端口转发和BBR&lt;/h3&gt;
&lt;p&gt;编辑&lt;code&gt;/etc/sysctl.conf&lt;/code&gt;文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/sysctl.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;加入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;net.core.default_qdisc=fq
net.ipv4.tcp_congestion_control=bbr 
net.ipv4.ip_forward=1
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.forwarding=1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面两行作用开启 BBR ，下面的为开启转发
保存生效&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sysctl -p
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后重启宿主机&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;如果你要编译安装 lnmp 之类的话，在一切开始之前先装完，以防翻车&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;二、安装 Proxmox&lt;/h2&gt;
&lt;p&gt;添加官方仓库&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;deb [arch=amd64] http://download.proxmox.com/debian/pve buster pve-no-subscription&quot; &amp;gt; /etc/apt/sources.list.d/pve-install-repo.list
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加 GPG 密钥&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;赋予权限&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chmod +r /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt update -y &amp;amp;&amp;amp; apt upgrade -y 
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;apt -y install proxmox-ve postfix open-iscsi
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个过程中可能会弹出一个postfix的配置界面，先 no，然后直接选择 Local 然后回车即可
安装完毕后， &lt;strong&gt;重启！重启！重启！&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;三、网络配置&lt;/h2&gt;
&lt;p&gt;网上有很多教程了，但这几天试下来，ipv4 NAT 没有问题，但独立ipv6一直不好用，有说直接 PVE 直接加一块儿 vmbr0 的网卡，然后就被HZ滥用警告了2333，最终沿袭这位老哥的思路&lt;a href=&quot;https://www.liujason.com/article/477.html&quot;&gt;https://www.liujason.com/article/477.html&lt;/a&gt;，终于搞定了 ipv6 的问题，目前使用一切正常。
下面贴一下母鸡的网络架构以及一些具体配置&lt;/p&gt;
&lt;h3&gt;宿主机网络基本架构&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;enp9s0：物理网卡，空&lt;/li&gt;
&lt;li&gt;vmbr0：物理网卡桥接——公网IPv4+公网IPv6&lt;/li&gt;
&lt;li&gt;vmbr1：物理vLAN网卡桥接——内网IPV4+公网IPv6（无gateway）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;网卡具体配置&lt;/h3&gt;
&lt;p&gt;编辑&lt;code&gt;/etc/network/interfaces&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;### Hetzner Online GmbH installimage

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

auto enp9s0
iface enp9s0 inet manual
#  post-up /sbin/ethtool -K enp9s0 tx off rx off
iface enp9s0 inet6 manual

auto vmbr0
iface vmbr0 inet static
  address 母鸡ip
  netmask 子网掩码
  gateway 网关ip
  pointopoint 同上网关ip
  hwaddress ether MAC地址
  bridge_ports enp9s0
  bridge_stp off
  bridge_fd 0
  bridge_maxwait 0
  # post-up /sbin/ethtool -K vmbr0 tx off rx off

iface vmbr0 inet6 static
  address 母鸡v6地址  #例子 2a01:abc:abc:abc::2
  netmask 64                #6 4或者128,看你之前的网络参数
  gateway fe80::1         #网关
  bridge_ports enp9s0
  bridge_stp off
  bridge_fd 0
  up ip -6 route del 2a01:abc:abc:abc::/64 dev vmbr0   #这个是你母鸡ipv6的网段，含义说明下面有写

auto vmbr1
iface vmbr1 inet static
  address 192.168.1.1
  netmask 255.255.255.0
  bridge_ports none
  bridge_stp off
  bridge_fd 0
  post-up echo 1 &amp;gt; /proc/sys/net/ipv4/ip_forward
  post-up iptables -t nat -A POSTROUTING -s &apos;192.168.1.0/24&apos; -o vmbr0 -j MASQUERADE
  post-down iptables -t nat -D POSTROUTING -s &apos;192.168.1.0/24&apos; -o vmbr0 -j MASQUERADE

auto vmbr1
iface vmbr1 inet6 static
  address  另一个ipv6地址 # 例子 2a01:abc:abc:abc::3/64   
  #gateway fe80::1
  bridge_ports none
  bridge_stp off
  bridge_fd 0
  up ip -6 route add 2a01:abc:abc:abc::/64 dev vmbr1
  post-down ip -6 route del 2a01:abc:abc:abc::/64 dev vmbr1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;解释一下一些语句的含义&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;up ip -6 route add 2a01:abc:abc:abc::/64 dev vmbr1&lt;/code&gt; 是让所有的ipv6流量走vmbr1,才能将ipv6流量转发出去&lt;/li&gt;
&lt;li&gt;&lt;code&gt;up ip -6 route del 2a01:abc:abc:abc::/64 dev vmbr0&lt;/code&gt; 是将2a01:abc:abc:abc::/64从vmbr0网桥中去掉&lt;/li&gt;
&lt;li&gt;&lt;code&gt;post-up iptables -t nat -A POSTROUTING -s &apos;192.168.1.0/24&apos; -o vmbr0 -j MASQUERADE&lt;/code&gt; 是使用 NAT
再额外提一下&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pre-up&lt;/code&gt; 网卡启用前的动作&lt;/li&gt;
&lt;li&gt;&lt;code&gt;up&lt;/code&gt; 启用时候的动作&lt;/li&gt;
&lt;li&gt;&lt;code&gt;post-up&lt;/code&gt; 启用后的动作&lt;/li&gt;
&lt;li&gt;&lt;code&gt;pre-down&lt;/code&gt; 关闭前的动作&lt;/li&gt;
&lt;li&gt;&lt;code&gt;down&lt;/code&gt; 关闭时动作&lt;/li&gt;
&lt;li&gt;&lt;code&gt;post-down&lt;/code&gt; 关闭后动作&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;重启网络服务&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;systemctl restart networking.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看网络状态&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl status networking.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果显示&lt;code&gt;Active&lt;/code&gt;则一切正常，此时可以重启了
如果你在配置桥接网络这块配完了重启网络服务失败但是机器还有网，那么恭喜你还可以继续折腾，也就是你还可以继续修改网卡的配置文件，但如果你想让你新修改的配置生效就得用下面这条命令强制重启 vmbr0（networking restart是没用的）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ifdown --force vmbr0 &amp;amp;&amp;amp; ifup --force vmbr0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后：&lt;strong&gt;重启！重启！重启！&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;验证&lt;/h3&gt;
&lt;p&gt;输入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ip -6 route 
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;回显如下为正常&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;::1 dev lo proto kernel metric 256 pref medium
2a01:abc:abc:abc::/64 dev vmbr1 proto kernel metric 256 linkdown pref medium
2a01:abc:abc:abc::/64 dev vmbr1 metric 1024 linkdown pref medium
fe80::/64 dev vmbr0 proto kernel metric 256 pref medium
fe80::/64 dev vmbr1 proto kernel metric 256 linkdown pref medium
default via fe80::1 dev vmbr0 metric 1024 onlink pref medium
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你也可以 Ping 一下相关地址.....&lt;/p&gt;
&lt;p&gt;至此 Proxmox 的安装，以及相关网络配置完成，开小鸡教程将在下一篇文章记录。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;荒岛：&lt;a href=&quot;https://lala.im/4821.html&quot;&gt;https://lala.im/4821.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;老赵部落：&lt;a href=&quot;https://blog.faaoo.cn/archives/173&quot;&gt;https://blog.faaoo.cn/archives/173&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;LiuJason&apos;s Blog： &lt;a href=&quot;https://www.liujason.com/article/477.html&quot;&gt;https://www.liujason.com/article/477.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>小米平板5 Pro ROOT</title><link>https://lwnlh.com/posts/18_mi_pad_5_pro_root/</link><guid isPermaLink="true">https://lwnlh.com/posts/18_mi_pad_5_pro_root/</guid><description>小米平板5 Pro ROOT</description><pubDate>Tue, 24 Aug 2021 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文主要记录 小米平板5 Root 的各种问题&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;一句话 Root&lt;/h2&gt;
&lt;p&gt;替换 &lt;code&gt;boot.img&lt;/code&gt; 完事&lt;/p&gt;
&lt;h2&gt;&lt;code&gt;Magisk SafetyNet&lt;/code&gt; 检查 &lt;code&gt;CTS Profile&lt;/code&gt; 失败&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/kdrag0n/safetynet-fix/releases&quot;&gt;下载ZIP包&lt;/a&gt;，Maagisk刷入，重启解决&lt;/p&gt;
</content:encoded></item><item><title>Samsung Pay突然无法联网</title><link>https://lwnlh.com/posts/17_samsung_pay_suddenly_can_not_connect_to_the_internet/</link><guid isPermaLink="true">https://lwnlh.com/posts/17_samsung_pay_suddenly_can_not_connect_to_the_internet/</guid><description>Samsung Pay突然无法联网</description><pubDate>Sun, 04 Apr 2021 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;状况&lt;/h2&gt;
&lt;p&gt;Samsung Pay之前一直用的好好的，但是这几天发现交通卡充值，银行卡二维码一直提示：网络错误，无法连接至网络；网络明明正常啊.jpg&lt;/p&gt;
&lt;h2&gt;解决&lt;/h2&gt;
&lt;p&gt;尝试百般无果后，清除应用数据走起，然后，就发现了，Samsung Pay居然还需要&lt;code&gt;Samsung Push Service&lt;/code&gt;启动才能联网&lt;/p&gt;
&lt;h2&gt;因由&lt;/h2&gt;
&lt;p&gt;之前我是把&lt;code&gt;Samsung Push Service&lt;/code&gt;手动&lt;code&gt;Disable&lt;/code&gt;的，因为这货在Play Store里的描述是这样子的：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The Samsung push service provides the notification service only for Samsung services (Samsung Apps, Samsung Link, Samsung Wallet, Samsung Pay, etc.) on Samsung devices.
If you delete the Samsung push service, you may not receive the new notification messages.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;意为：&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;三星推送服务仅为三星设备上的三星服务（三星应用程序，三星链接，三星钱包，三星支付等）提供通知服务。
如果删除三星推送服务，则可能不会收到新的通知消息。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;所以我一直以为，这货是推广告的，没想到还需要他&lt;code&gt;Enable&lt;/code&gt;才能使Samsung Pay联网，真的是.....&lt;/p&gt;
</content:encoded></item><item><title>Github 进行 fork 后与原仓库同步</title><link>https://lwnlh.com/posts/16_github_fork_and_sync_with_the_original_repository/</link><guid isPermaLink="true">https://lwnlh.com/posts/16_github_fork_and_sync_with_the_original_repository/</guid><description>Github 进行 fork 后与原仓库同步</description><pubDate>Wed, 23 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文主要讲述Github进行fork后如何与原仓库同步，即版本合并；其有两种方法，分别为：本地合并、Github合并&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;主要参照：&lt;a href=&quot;https://github.com/selfteaching/the-craft-of-selfteaching/issues/67&quot;&gt;https://github.com/selfteaching/the-craft-of-selfteaching/issues/67&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;一、本地合并&lt;/h2&gt;
&lt;p&gt;适合代码修改较多&lt;/p&gt;
&lt;h3&gt;设置上游代码库(upstream)&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;使用之前fork的&lt;code&gt;ACL4SSR&lt;/code&gt;项目作为例子&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;1.进入本地代码库&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd ~/ACL4SSR
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2.执行&lt;code&gt;git remote -v&lt;/code&gt;命令查看远程仓库路径
若只有以下两行输出，说明你未设置上游代码库(upstream)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;origin  git@github.com:xxxxx/ACL4SSR.git (fetch)
origin  git@github.com:xxxxx/ACL4SSR.git (push)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3.执行&lt;code&gt;git remote add upstream https://github.com/ACL4SSR/ACL4SSR/tree/master&lt;/code&gt;，此命令运行后并不会回显，所以再次运行&lt;code&gt;git remote -v&lt;/code&gt;检查是否成功：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;origin  git@github.com:xxxxx/ACL4SSR.git (fetch)
origin  git@github.com:xxxxx/ACL4SSR.git (push)
upstream        https://github.com/ACL4SSR/ACL4SSR.git (fetch)
upstream        https://github.com/ACL4SSR/ACL4SSR.git (push)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;4.执行命令&lt;code&gt;git status&lt;/code&gt;检查本地是否有未提交的修改。如果有，则把你本地的有效修改，先从本地仓库推送到你的github仓库。最后再执行一次&lt;code&gt;git status&lt;/code&gt;检查本地已无未提交的修改
&lt;strong&gt;第四步每次合并前都要检查一次&lt;/strong&gt;&lt;/p&gt;
&lt;h3&gt;版本合并(merge)&lt;/h3&gt;
&lt;p&gt;5.执行&lt;code&gt;git fetch upstream&lt;/code&gt;抓取上游更新&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;remote: Enumerating objects: 64, done.
remote: Counting objects: 100% (64/64), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 36 (delta 34), reused 36 (delta 34), pack-reused 0
Unpacking objects: 100% (36/36), done.
From https://github.com/ACL4SSR/ACL4SSR
   8f6feb5..749784c  master     -&amp;gt; upstream/master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;6.执行命令&lt;code&gt;git checkout master&lt;/code&gt;切换到&lt;code&gt;master&lt;/code&gt;分支：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Already on &apos;master&apos;
Your branch is up-to-date with &apos;origin/master&apos;.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;7.执行命令&lt;code&gt;git merge upstream/master&lt;/code&gt;合并远程的&lt;code&gt;master分支&lt;/code&gt;：
此时会弹出&lt;code&gt;commit&lt;/code&gt;编辑，不输入或者输入你的更新信息即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Merge made by the &apos;recursive&apos; strategy.
 Clash/BanEasyList.list                |  31 +++++-
 Clash/BanEasyListChina.list           |   8 +-
 Clash/BanEasyPrivacy.list             |  34 ++++++-
 Clash/ChinaDomain.list                |   2 -
 Clash/GeneralClashConfig.yml          |   2 -
 Clash/Providers/BanEasyList.yaml      | 276 ++++++++++++++++++++++++++++++++++++++--------------
 Clash/Providers/BanEasyListChina.yaml |  42 +++++++-
 Clash/Providers/ChinaDomain.yaml      |   2 -
 Clash/Providers/ProxyLite.yaml        |   1 -
 Clash/Providers/ProxyMedia.yaml       |   5 +-
 Clash/Providers/Ruleset/AmazonIp.yaml |  25 +++--
 Clash/Providers/Ruleset/HBO.yaml      |   3 +-
 Clash/Providers/Ruleset/SteamCN.yaml  |   4 +-
 Clash/ProxyLite.list                  |   1 -
 Clash/ProxyMedia.list                 |   5 +-
 Clash/Ruleset/AmazonIp.list           |  25 +++--
 Clash/Ruleset/HBO.list                |   3 +-
 Clash/Ruleset/Instagram.list          |   3 +-
 Clash/Ruleset/SteamCN.list            |   4 +-
 backcn-banAD.acl                      |   2 -
 banAD.acl                             |   1 -
 easylist-banAD.acl                    |  64 +++++++++++-
 nobanAD.acl                           |   1 -
 23 files changed, 414 insertions(+), 130 deletions(-)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;8.执行命令&lt;code&gt;git push&lt;/code&gt;把本地仓库向github仓库（你fork到自己名下的仓库）推送修改&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 515 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
To git@github.com:xxxxx/ACL4SSR.git
   31d85cf..fea1fa0  master -&amp;gt; master
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;至此，你fork的仓库已经和原始仓库保持最新了，并且，你本地修改的文件也不会丢失&lt;/p&gt;
&lt;h2&gt;二、Github合并&lt;/h2&gt;
&lt;p&gt;直接在Github上进行合并，适合修改内容较少的情况&lt;/p&gt;
&lt;h3&gt;发起Pull request&lt;/h3&gt;
&lt;p&gt;在你的仓库单击下图红框的&lt;code&gt;Pull request&lt;/code&gt;
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/15-1.png&quot; alt=&quot;&quot; /&gt;
然后将下图红框&lt;code&gt;1&lt;/code&gt;中的仓库换成你自己的，红框&lt;code&gt;2&lt;/code&gt;中的仓库换成原始仓库，即将&lt;code&gt;1&lt;/code&gt;和&lt;code&gt;2&lt;/code&gt;的内容交换下，然后单击红框&lt;code&gt;3&lt;/code&gt;即可
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/15-2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;版本合并&lt;/h3&gt;
&lt;p&gt;同意下自己的的合并请求即可&lt;/p&gt;
</content:encoded></item><item><title>Clash 自定义分流规则</title><link>https://lwnlh.com/posts/15_clash_custom_triage_rules/</link><guid isPermaLink="true">https://lwnlh.com/posts/15_clash_custom_triage_rules/</guid><description>Clash 自定义分流规则</description><pubDate>Tue, 22 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文主要讲述如何在&lt;code&gt;ACL4SSR&lt;/code&gt;的Clash规则基础上魔改出适合自己的规则配置文件，并方便前文订阅转换的调用&lt;br /&gt;
&lt;code&gt;ACL4SSR&lt;/code&gt;项目地址：&lt;a href=&quot;https://github.com/ACL4SSR/ACL4SSR/tree/master&quot;&gt;https://github.com/ACL4SSR/ACL4SSR/tree/master&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;目录结构&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;ACL4ALL&lt;/code&gt;目录结构如下所示，这里我们主要关注&lt;code&gt;Clash&lt;/code&gt;目录下的&lt;code&gt;Ruleset&lt;/code&gt;目录，以及&lt;code&gt;config&lt;/code&gt;目录，其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;*.list&lt;/code&gt;文件，这是域名/IP列表&lt;/li&gt;
&lt;li&gt;&lt;code&gt;*.ini&lt;/code&gt;文件，为分组相关的配置文件&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;.
├── Clash
│   ├── config
│   ├── Providers
│   │   └── Ruleset
│   └── Ruleset
└── Tool
    ├── Surge转acl工具
    └── SwitchyOmega
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;&lt;code&gt;*.ini&lt;/code&gt;文件结构&lt;/h2&gt;
&lt;p&gt;打开&lt;code&gt;config&lt;/code&gt;目录下的&lt;code&gt;ACL4SSR_Online_Full_AdblockPlus.ini&lt;/code&gt;文件
其大致结构为&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[custom]
;不要随意改变关键字，否则会导致出错
;acl4SSR规则

;去广告：支持
;自动测速：支持
;微软分流：支持
;苹果分流：支持
;增强中国IP段：支持
;增强国外GFW：支持

;设置规则标志位
surge_ruleset=全球直连,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/LocalAreaNetwork.list
......
surge_ruleset=全球直连,https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/Download.list
surge_ruleset=全球直连,[]GEOIP,CN
surge_ruleset=漏网之鱼,[]FINAL
;设置规则标志位

;设置分组标志位
custom_proxy_group=节点选择`select`[]自动选择`[]故障转移`[]负载均衡`[]香港节点`[]台湾节点`[]狮城节点`[]日本节点`[]美国节点`[]韩国节点`[]手动切换`[]DIRECT
custom_proxy_group=手动切换`select`.*
custom_proxy_group=自动选择`url-test`.*`http://www.gstatic.com/generate_204`300
custom_proxy_group=故障转移`fallback`.*`http://www.gstatic.com/generate_204`300
custom_proxy_group=负载均衡`load-balance`.*`http://www.gstatic.com/generate_204`300
custom_proxy_group=电报消息`select`[]节点选择`[]自动选择`[]狮城节点`[]香港节点`[]台湾节点`[]日本节点`[]美国节点`[]韩国节点`[]手动切换`[]DIRECT
......
custom_proxy_group=韩国节点`url-test`(KR|Korea|KOR|首尔|韩|韓)`http://www.gstatic.com/generate_204`300
custom_proxy_group=奈飞节点`select`(NF|奈飞|解锁|Netflix|NETFLIX|Media)
;设置分组标志位

enable_rule_generator=true
overwrite_original_rules=true

;clash_rule_base=https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/GeneralClashConfig.yml

;luck
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;;&lt;/code&gt;后为注释&lt;/li&gt;
&lt;li&gt;&lt;code&gt;surge_ruleset=全球直连,https://xx.list&lt;/code&gt;:&lt;code&gt;surge_ruleset&lt;/code&gt;声明规则列表；&lt;code&gt;全球直连&lt;/code&gt;为分组名称；&lt;code&gt;https://xx.list&lt;/code&gt;为规则列表地址，一般为Github的&lt;code&gt;RAW&lt;/code&gt;地址，如上格式&lt;/li&gt;
&lt;li&gt;custom_proxy_group=节点选择`select`[]自动选择 : &lt;code&gt;custom_proxy_group&lt;/code&gt;声明自定义分组；&lt;code&gt;节点选择&lt;/code&gt;为分组名称；`select为选择模式&lt;/li&gt;
&lt;li&gt;分组模式：
&lt;ul&gt;
&lt;li&gt;`select：选择模式，后加分组或者节点&lt;/li&gt;
&lt;li&gt;`url-test：自动测速模式,选择速度最快的节点，后加节点&lt;/li&gt;
&lt;li&gt;`fallback:故障转移，后加节点&lt;/li&gt;
&lt;li&gt;`load-balance，后加节点&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;(NF|奈飞)：筛选出包含括号内关键字的节点，例如上面的&lt;code&gt;奈飞节点&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;自定义配置&lt;/h2&gt;
&lt;p&gt;fork&lt;code&gt;ACL4SSR&lt;/code&gt;的仓库，然后拉取到你本地参照上面&lt;code&gt;ACL4SSR_Online_Full_AdblockPlus.ini&lt;/code&gt;添加删除修改相关行进行魔改即可，这里说明几点需要注意的地方：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Clash匹配规则是从上至下的，因此，需要将你自定义的规则放在&lt;code&gt;surge_ruleset&lt;/code&gt;的最前面&lt;/li&gt;
&lt;li&gt;规则文件中可能会产生相同IP/域名不同规则的情况，但因为匹配规则从上至下的原因，不要认为规则出现错误，重复只是因为方便作者维护&lt;/li&gt;
&lt;li&gt;检查分组是否正确，不要出现不存在的分组&lt;/li&gt;
&lt;li&gt;使用机场的同学可以直接将&lt;code&gt;负载均衡&lt;/code&gt;分组删除，因为会造成连接数爆炸，同理，&lt;code&gt;自动测试&lt;/code&gt;也少用比较好&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;总结&lt;/h2&gt;
&lt;p&gt;Clash分流规则不同人有不同需求，适合自己才是最好的～
下一篇文章将说明：&lt;code&gt;ACL4SSR&lt;/code&gt;规则更新后如何同步到自己fork的仓库并且不损失自己的配置，实际上就是版本合并啦～&lt;/p&gt;
</content:encoded></item><item><title>自建 Clash 订阅转换</title><link>https://lwnlh.com/posts/14_self-built_clash_subscription_conversion/</link><guid isPermaLink="true">https://lwnlh.com/posts/14_self-built_clash_subscription_conversion/</guid><description>自建 Clash 订阅转换</description><pubDate>Tue, 22 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文主要说明Clash订阅转换：Docker搭建后端处理subconverter，以及前端Sub-Web，并利用Nginx反代&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;2020年12月23日更新：利用&lt;code&gt;Docker-compose&lt;/code&gt;一键部署&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;一、准备工作&lt;/h2&gt;
&lt;p&gt;首先，你需要两个域名，一个给前端，一个给后端使用，本文举例后端：&lt;code&gt;suc.test.com&lt;/code&gt;，前端：&lt;code&gt;sub.test.com&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;二、搭建后端subconverter&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;原始项目地址：&lt;a href=&quot;https://github.com/tindy2013/subconverter&quot;&gt;https://github.com/tindy2013/subconverter&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;修改项目地址：&lt;a href=&quot;https://github.com/stilleshan/subconverter&quot;&gt;https://github.com/stilleshan/subconverter&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;后者相对于原版修改了以下部分：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;去除&lt;code&gt;自动选择 url-test&lt;/code&gt;以解决连接数爆涨问题.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;全球拦截&lt;/code&gt;增加&lt;code&gt;节点选择&lt;/code&gt;,以解决&lt;code&gt;Google Analytics&lt;/code&gt;的访问需求.&lt;/li&gt;
&lt;li&gt;修改时区 镜像默认时区为&lt;code&gt;Asia/Shanghai&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Docker启动&lt;/h3&gt;
&lt;p&gt;Clone至本地&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/stilleshan/subconverter.git
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改 &lt;code&gt;pref.ini&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;api_access_token=123456                     #随意设置
managed_config_prefix=https://suc.test.com  #设置成后端域名
listen=127.0.0.1                            #这里改成 127.0.0.1 进行反代
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重新构建、启动&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker build -t stilleshan/subconverter:latest .
docker run  -d --name=subconverter --restart=always -p 25500:25500 stilleshan/subconverter:latest
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Nginx反代&lt;/h3&gt;
&lt;p&gt;将以下配置写入你的网站&lt;code&gt;conf&lt;/code&gt;中，本文例子为：&lt;code&gt;suc.test.com.conf&lt;/code&gt;，&lt;code&gt;Oneinstack&lt;/code&gt;默认网站配置路径为&lt;code&gt;/usr/local/nginx/conf/vhost&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;location / {
			proxy_pass       http://0.0.0.0:25500;
			proxy_set_header Host      $host;
			proxy_set_header X-Real-IP $remote_addr;
		}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后重载Nginx：&lt;code&gt;service nginx reload&lt;/code&gt;
最后打开测试：&lt;code&gt;https://suc.test.com/sub?target=clash&amp;amp;url=sub_url&lt;/code&gt;
实际上转换只使用后端就足够了，但为了偷懒以及方便选择不同配置还是继续搭建前端&lt;/p&gt;
&lt;h2&gt;三、搭建前端Sub-Web&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;项目地址：&lt;a href=&quot;https://github.com/CareyWang/sub-web&quot;&gt;https://github.com/CareyWang/sub-web&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这里主要说一下如何添加&lt;code&gt;ACL4SSR&lt;/code&gt;配置、自定义配置，简要说明安装过程&lt;/p&gt;
&lt;h3&gt;下载&lt;/h3&gt;
&lt;p&gt;Clone至本地&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/CareyWang/sub-web.git
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;修改相关配置&lt;/h3&gt;
&lt;p&gt;修改&lt;code&gt;/sub-web/src/views/Subconverter.vue&lt;/code&gt;文件
找到大约在257行 &lt;code&gt;backendOptions:&lt;/code&gt;，替换后面的 &lt;code&gt;http://127.0.0.1:25500/sub?&lt;/code&gt;为&lt;code&gt;https://sub.test.com/sub?&lt;/code&gt;
找到下面&lt;code&gt;RemoteConfig:[&lt;/code&gt;，这是自定义规则地址的地方其结构为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;          {
            label: &quot;第一个label&quot;, 
            options: [
              {
                label: &quot;第二个label&quot;,
                value:
                  &quot;第二个label的具体地址&quot;
              }
            ]
          },
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;对应下图：
&lt;img src=&quot;https://dig4.lwnlh.com/images/2020/12/22/2020-12-22_20-27.png&quot; alt=&quot;&quot; /&gt;
这里添加&lt;code&gt;ACL4SSR&lt;/code&gt;的规则配置，只需要将以下配置粘贴过来即可，也可以参照上面结构加入自定义配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        {
            label: &quot;ACL4SSR&quot;,
            options: [
              {
                label: &quot;ACL4SSR_Online 默认版 分组比较全 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_AdblockPlus 更多去广告 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_AdblockPlus.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_NoAuto 无自动测速 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoAuto.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_NoReject 无广告拦截规则 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoReject.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Mini 精简版 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Mini_AdblockPlus.ini 精简版 更多去广告 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_AdblockPlus.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Mini_NoAuto.ini 精简版 不带自动测速 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_NoAuto.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Mini_Fallback.ini 精简版 带故障转移 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_Fallback.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Mini_MultiMode.ini 精简版 自动测速、故障转移、负载均衡 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_MultiMode.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Full 全分组 重度用户使用 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Full_NoAuto.ini 全分组 无自动测速 重度用户使用 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_NoAuto.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Full_AdblockPlus 全分组 重度用户使用 更多去广告 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_AdblockPlus.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Online_Full_Netflix 全分组 重度用户使用 奈飞全量 (与Github同步)&quot;,
                value:
                  &quot;https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_Netflix.ini&quot;
              },
              {
                label: &quot;ACL4SSR 本地 默认版 分组比较全&quot;,
                value: &quot;config/ACL4SSR.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Mini 本地 精简版&quot;,
                value: &quot;config/ACL4SSR_Mini.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Mini_NoAuto.ini 本地 精简版+无自动测速&quot;,
                value: &quot;config/ACL4SSR_Mini_NoAuto.ini&quot;
              },
              {
                label: &quot;ACL4SSR_Mini_Fallback.ini 本地 精简版+fallback&quot;,
                value: &quot;config/ACL4SSR_Mini_Fallback.ini&quot;
              },
              {
                label: &quot;ACL4SSR_BackCN 本地 回国&quot;,
                value: &quot;config/ACL4SSR_BackCN.ini&quot;
              },
              {
                label: &quot;ACL4SSR_NoApple 本地 无苹果分流&quot;,
                value: &quot;config/ACL4SSR_NoApple.ini&quot;
              },
              {
                label: &quot;ACL4SSR_NoAuto 本地 无自动测速 &quot;,
                value: &quot;config/ACL4SSR_NoAuto.ini&quot;
              },
              {
                label: &quot;ACL4SSR_NoAuto_NoApple 本地 无自动测速&amp;amp;无苹果分流&quot;,
                value: &quot;config/ACL4SSR_NoAuto_NoApple.ini&quot;
              },
              {
                label: &quot;ACL4SSR_NoMicrosoft 本地 无微软分流&quot;,
                value: &quot;config/ACL4SSR_NoMicrosoft.ini&quot;
              },
              {
                label: &quot;ACL4SSR_WithGFW 本地 GFW列表&quot;,
                value: &quot;config/ACL4SSR_WithGFW.ini&quot;
              }
            ]
          },
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;安装依赖与打包发布&lt;/h3&gt;
&lt;p&gt;这里需要安装 &lt;code&gt;Node&lt;/code&gt; 与 &lt;code&gt;Yarn&lt;/code&gt;
你可以通过以下命令查看是否安装成功&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;node -v
yarn -v
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装构建依赖项&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yarn install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用 webpack 运行 Web 客户端以进行本地开发&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yarn serve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;浏览器访问 &lt;a href=&quot;http://xn--ip-fr5c86lx7z:8080/&quot;&gt;http://服务器ip:8080/&lt;/a&gt; 应该可以进行前端 sub-web 的预览了。&lt;/p&gt;
&lt;p&gt;打包&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yarn build
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将生成的 &lt;code&gt;dist&lt;/code&gt; 目录复制到你的网站目录下，修改网站 &lt;code&gt;conf&lt;/code&gt;的 &lt;code&gt;root&lt;/code&gt;位置，后加 &lt;code&gt;/dist&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;root /root/sub-web/dist;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;四、Docker-compose一键部署&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;参考Yohane聚聚博客：&lt;a href=&quot;https://yohane.art/development%20notes/2020/12/23/subc.html&quot;&gt;https://yohane.art/development%20notes/2020/12/23/subc.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;创建配置文件&lt;/h3&gt;
&lt;p&gt;新建&lt;code&gt;/root/nginx/conf.d/server.conf&lt;/code&gt;文件，写入以下配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;!/root/nginx/conf.d/server.conf
	
# vhost of subc with proxy
	
server {
        listen 80;
        server_name &amp;lt;domain&amp;gt;;
        location / {
                proxy_pass http://subc:25500;
        }
}

server {
        listen 80;
        server_name &amp;lt;domain&amp;gt;;
        location / {
                proxy_pass http://subweb;
        }        
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;新建&lt;code&gt;/root/subconverter/docker-compose.yml&lt;/code&gt;文件，写入以下配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;!/root/subconverter/docker-compose.yml

version: &quot;3&quot;

services:
  subc:
    hostname: subc
    restart: always
    container_name: subc
    image: tindy2013/subconverter:latest
  subweb:
    hostname: subweb
    restart: always
    container_name: subweb
    image: careywong/subweb:latest
  nginx:
    hostname: nginx
    restart: always
    container_name: nginx
    image: nginx:latest
    ports:
      - &quot;80:80&quot;
      - &quot;443:443&quot;
    links:
      - &quot;subc:subc&quot;
      - &quot;subweb:subweb&quot;
    volumes:
      - /root/nginx/conf.d:/etc/nginx/conf.d
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;启动&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;docker-compose -d
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;五、总结&lt;/h2&gt;
&lt;p&gt;至此，你的Clash订阅转换就搭建好了，如果觉得&lt;code&gt;ALC4ALL&lt;/code&gt;默认的配置文件不适合你，也可以在此基础上魔改出适合自己的规则，并时刻与&lt;code&gt;ALC4ALL&lt;/code&gt;更新的规则同步，这将在后续文章中讲述。&lt;/p&gt;
</content:encoded></item><item><title>利用 SSH 跳板机连接内网服务器</title><link>https://lwnlh.com/posts/13_use_ssh_springboard_to_connect_the_intranet_server/</link><guid isPermaLink="true">https://lwnlh.com/posts/13_use_ssh_springboard_to_connect_the_intranet_server/</guid><description>利用 SSH 跳板机连接内网服务器</description><pubDate>Fri, 11 Sep 2020 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;一、前言&lt;/h2&gt;
&lt;p&gt;由于本地网络环境实在太差，VSCode Remote 连接编译机无限重试，所以就用ssh跳板抢救一下。
所有命令基于&lt;code&gt;open-ssh&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;二、直接连接&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;ssh username@目标机器ip -p 22 -o ProxyCommand=&apos;ssh -p 22 username@跳板机ip -W %h:%p&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例子：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh root@192.168.1.2 -p 22 -o ProxyCommand=&apos;ssh -p 22 root@10.1.1.1 -W %h:%p&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;三、添加&lt;code&gt;config&lt;/code&gt;&lt;/h2&gt;
&lt;p&gt;每次登录都输入上面命令显然很麻烦，所以可以将配置写在&lt;code&gt;~/.ssh/config&lt;/code&gt;里，如果没有这个文件新建一个&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano ~/.ssh/config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;例子：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Host jump                    #任意名字，随便使用
    HostName 192.168.1.1        #这个是跳板机的IP，支持域名
    Port 22                     #跳板机端口
    User username_jump       #跳板机用户

Host target                     #同样，任意名字，随便起
    HostName 192.168.1.2        #真正登陆的服务器，不支持域名必须IP地址
    Port 22                     #服务器的端口
    User username               #服务器的用户
    ProxyCommand ssh jump -W %h:%p
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;四、使用&lt;/h2&gt;
&lt;p&gt;直接输入&lt;code&gt;ssh target&lt;/code&gt;即可，同理连接&lt;code&gt;跳板&lt;/code&gt;直接输入&lt;code&gt;ssh jump&lt;/code&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;参考：&lt;br /&gt;
&lt;a href=&quot;https://outmanzzq.github.io/2018/11/20/ssh-connect-through-springboard/&quot;&gt;ssh 通过跳板机直连跳板机内网服务器&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>在 Linux ( Manjaro ) 上使用 MIDI 键盘</title><link>https://lwnlh.com/posts/12_using_a_midi_keyboard_on_linux_manjaro/</link><guid isPermaLink="true">https://lwnlh.com/posts/12_using_a_midi_keyboard_on_linux_manjaro/</guid><description>在 Linux ( Manjaro ) 上使用 MIDI 键盘</description><pubDate>Sat, 07 Mar 2020 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;记录下在Manjaro上使用MIDI键盘的操作。主要参考&lt;a href=&quot;https://wiki.archlinux.org/index.php/USB_MIDI_keyboards&quot;&gt;Arch wiki&lt;/a&gt;的&lt;code&gt;USB MIDI keyboards&lt;/code&gt;部分。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;准备工作&lt;/h2&gt;
&lt;h3&gt;确认你的声卡驱动为&lt;code&gt;ALSA&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;安装&lt;code&gt;alsa-utils&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S alsa-utils
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输入&lt;code&gt;aseqdump&lt;/code&gt;,看到以下输出则正常,接着&lt;code&gt;Ctrl+C&lt;/code&gt;终止即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Waiting for data at port 128:0. Press Ctrl+C to end.
Source_ Event_________________ Ch _Data__
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;确认你的MIDI键盘与Manjaro正常通信&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;插上你的MIDI键盘，打开电源，输入&lt;code&gt;lsusb&lt;/code&gt;应该能看到以下输出，其中&lt;code&gt;Nektar Impact GX61&lt;/code&gt;即为MIDI键盘
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-1.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;接着输入&lt;code&gt;lsmod | grep usb&lt;/code&gt;应该能看到以下输出，输出中有&lt;code&gt;snd_usb_audio &lt;/code&gt;，&lt;code&gt;snd_usb_lib&lt;/code&gt;即可
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-2.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;再输入&lt;code&gt;aconnect -i&lt;/code&gt;则会列出MIDI所有输入端口，如图所示，需要记下&lt;code&gt;client 20&lt;/code&gt;
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-3.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;输入&lt;code&gt;aseqdump -p 20&lt;/code&gt;，其中&lt;code&gt;20&lt;/code&gt;为上面记下的&lt;code&gt;client 20&lt;/code&gt;，然后敲击键盘，看到如下输出则你的MIDI键盘与Manjaro正常通信
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-4.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;弹奏！&lt;/h2&gt;
&lt;h3&gt;安装软件合成器&lt;code&gt;QSynth&lt;/code&gt;&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;sudo pacman -S qsynth
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下载&lt;code&gt;SoundFont&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;从&lt;a href=&quot;http://soundfonts.narod.ru/&quot;&gt;http://soundfonts.narod.ru/&lt;/a&gt;下载名为&lt;code&gt;Фортепиано&lt;/code&gt;的&lt;code&gt;Piano.zip&lt;/code&gt;解压备用
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-11.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h3&gt;设置&lt;code&gt;QSynth&lt;/code&gt;&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;输入&lt;code&gt;qsynth -a alsa&lt;/code&gt;启动&lt;code&gt;QSynth&lt;/code&gt;
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-10.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;输入点击&lt;code&gt;Setuo&lt;/code&gt;设置下上面下载的音源，个人推荐&lt;code&gt;Collection&lt;/code&gt;,&lt;code&gt;CP-70&lt;/code&gt;,&lt;code&gt;Grand&lt;/code&gt;这三个
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-12.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;输入&lt;code&gt;aconnect -i&lt;/code&gt;查看MIDI输入端口，记下&lt;code&gt;20&lt;/code&gt;
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-8.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;输入&lt;code&gt;aconnect -o&lt;/code&gt;查看MIDI输出端口，找到&lt;code&gt;FLUID Synth&lt;/code&gt;，如果在添加&lt;code&gt;QSynth&lt;/code&gt;中添加了多个配置文件，则会如下所示，否则只有一个输出，记下&lt;code&gt;128&lt;/code&gt;
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/11-9.png&quot; alt=&quot;&quot; /&gt;&lt;/li&gt;
&lt;li&gt;输入&lt;code&gt;aconnect 20 128&lt;/code&gt;，敲击MIDI键盘，Enjoy~&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;备注：每重启次PC或者&lt;code&gt;QSync&lt;/code&gt;都需要重复步骤&lt;code&gt;5&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>图床测试，喵喵喵</title><link>https://lwnlh.com/posts/11_picture_test_mm/</link><guid isPermaLink="true">https://lwnlh.com/posts/11_picture_test_mm/</guid><description>图床测试，喵喵喵</description><pubDate>Mon, 24 Jun 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/__hakurei_reimu_and_kochiya_sanae_touhou_drawn_by_ke_ta__c42685111282da23e5d6ce247542cc9f.png&quot; alt=&quot;__hakurei_reimu_and_kochiya_sanae_touhou_drawn_by_ke_ta__c42685111282da23e5d6ce247542cc9f.png&quot; /&gt;
&lt;img src=&quot;https://dig4.lwnlh.com/image/2022/05/14/__hakurei_reimu_and_kochiya_sanae_touhou_drawn_by_ke_ta__d8b7f3573551e35824aebaed5a979c28.png&quot; alt=&quot;__hakurei_reimu_and_kochiya_sanae_touhou_drawn_by_ke_ta__d8b7f3573551e35824aebaed5a979c28.png&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>添加 Cloudflare CDN 遇到的问题及解决</title><link>https://lwnlh.com/posts/10_add_cloudflare_cdn_problems_and_solutions/</link><guid isPermaLink="true">https://lwnlh.com/posts/10_add_cloudflare_cdn_problems_and_solutions/</guid><description>添加 Cloudflare CDN 遇到的问题及解决</description><pubDate>Wed, 24 Apr 2019 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;给博客迁移到了搬瓦工传家宝上并使用Cloudflare CDN加速中间的一些坑~&lt;/p&gt;
&lt;h1&gt;一 后台管理页面会打不开&lt;/h1&gt;
&lt;p&gt;如果博客到CDN没有启用https，而CDN启用https可能会造成后台管理页面打不开的状况。
解决方法：编辑站点根目录下的&lt;code&gt;config.inc.php&lt;/code&gt;
加入下面这行配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/** 开启 HTTPS */
define(&apos;__TYPECHO_SECURE__&apos;,true);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样后台页面就打开了~&lt;/p&gt;
&lt;h1&gt;二 待续&lt;/h1&gt;
</content:encoded></item><item><title>利用 Pxder 批量下载 Pixiv 你收藏的插画</title><link>https://lwnlh.com/posts/9_use_pxder_to_download_your_illustrations_from_pixiv/</link><guid isPermaLink="true">https://lwnlh.com/posts/9_use_pxder_to_download_your_illustrations_from_pixiv/</guid><description>利用 Pxder 批量下载 Pixiv 你收藏的插画</description><pubDate>Fri, 11 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;Pxder是一款利用Node.js编写的能够批量下载你在P站收藏，或者喜欢的画师插画的下载器，其开源地址为：&lt;a href=&quot;https://github.com/Tsuk1ko/pxder&quot;&gt;https://github.com/Tsuk1ko/pxder&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;本篇主要讲解在Ubuntu16.04下使用，Windows下可参考上面的地址&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;安装Node.js环境&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt-get install -y nodejs
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接着安装Pxder&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm i -g pxder
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;卸载的话运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;npm uninstall -g pxder
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置&lt;/h2&gt;
&lt;p&gt;首先我们需要配置一下账户及下载设置&lt;/p&gt;
&lt;h3&gt;登录&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder --login
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接着输入你的账户密码&lt;/p&gt;
&lt;h3&gt;登出&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder --logout
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下载设置&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder --setting
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后你会看到以下输出&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Pxder Options

[1] Download path	/pixiv        # 下载目录，必须设置
[2] Download thread	5             # 下载线程数
[3] Download timeout	30            # 下载超时
[4] Auto rename		off           # 自动重命名（文件夹）
[5] Proxy		Disable       # 使用代理
[0] Exit

Press a key [1...5 / 0]: 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;输入相关序号进行设置就好，最后输入0退出&lt;/p&gt;
&lt;h2&gt;使用&lt;/h2&gt;
&lt;h3&gt;下载公开收藏&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder -b
# 或
pxder --bookmark
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;插画会被保存在&lt;code&gt;[bookmark] Public&lt;/code&gt;文件夹中&lt;/p&gt;
&lt;h3&gt;下载私密收藏&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder -B
# 或
pxder --bookmark--private
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;插画会被保存在&lt;code&gt;[bookmark] Private&lt;/code&gt;文件夹中&lt;/p&gt;
&lt;h3&gt;下载公开关注的画师的所有作品&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder -f
# 或
pxder --follow
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下载私密关注的画师的所有作品&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder -F
# 或
pxder --follow--private
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下载或更新某画师的所有插画作品&lt;/h3&gt;
&lt;p&gt;使用&lt;code&gt;-u&lt;/code&gt;或&lt;code&gt;--uid&lt;/code&gt;参数，后跟画师的 &lt;code&gt;UID&lt;/code&gt;，可单个可多个，如果多个则用英文半角逗号隔开&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pxder -u uid1,uid2,uid3,...
例：
pxder -u 5899479,724607,11597411
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;更新已下载的画师的画作&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder -U
# 或
pxder --update
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下载指定 PID 插画&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;pxder -p pid1,pid2,pid3,...
例：
pxder -p 70593670,70594912,70595516
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;插画会被保存在&lt;code&gt;PID&lt;/code&gt;文件夹中&lt;/p&gt;
&lt;p&gt;有问题欢迎评论留言～&lt;/p&gt;
</content:encoded></item><item><title>利用 YouTube-dl 优雅地下载 YouTube 视频</title><link>https://lwnlh.com/posts/8_elegantly_download_youtube_videos_with_youtube-dl/</link><guid isPermaLink="true">https://lwnlh.com/posts/8_elegantly_download_youtube_videos_with_youtube-dl/</guid><description>利用 YouTube-dl 优雅地下载 YouTube 视频</description><pubDate>Tue, 08 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;下载的视频仅作为交流学习收藏哦，不要作为商用！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;p&gt;“YouTube-dl”是一个不仅可以下载YouTube视频，还可以下载哔哩哔哩等视频的命令行工具。
其项目地址为&lt;a href=&quot;https://github.com/rg3/youtube-dl&quot;&gt;https://github.com/rg3/youtube-dl&lt;/a&gt;
在这里就说一下如何快速的上手使用～&lt;/p&gt;
&lt;h1&gt;安装&lt;code&gt;ffmpeg&lt;/code&gt;&lt;/h1&gt;
&lt;p&gt;首先需要安装&lt;code&gt;ffmpeg&lt;/code&gt;，因为&lt;code&gt;youtube-dl&lt;/code&gt;下载完成后会自动调用，对视频进行封装。
以下命令基于Ubuntu16.04&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 添加软件源
$ sudo add-apt-repository ppa:jonathonf/ffmpeg-3

# 更新并安装
$ sudo apt update &amp;amp;&amp;amp; sudo apt install ffmpeg libav-tools x264 x265

# 卸载官方源
$ sudo apt autoremove
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果出现&lt;code&gt;add-apt-repository command not found&lt;/code&gt;
运行下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt-get install software-properties-common
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;安装Youtube-dl&lt;/h1&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl 
sudo chmod a+rx /usr/local/bin/youtube-dl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样的话&lt;code&gt;YouTube-dl&lt;/code&gt;就安装完毕了，接下来是基本使用&lt;/p&gt;
&lt;h1&gt;直接下载视频&lt;/h1&gt;
&lt;p&gt;命令格式为&lt;code&gt;youtube-dl [OPTIONS] URL [URL...]&lt;/code&gt;
不带任何参数，则默认下载画质、音质最好的文案。
例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;youtube-dl &quot;https://www.youtube.com/watch?v=l4WNrvVjiTw&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;（似乎4k的视频只会下载1080p，如何选择下载分辨率见下文）&lt;/p&gt;
&lt;h1&gt;直接下载播放列表&lt;/h1&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;youtube-dl &quot;video_url&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;小心硬盘爆炸，哈哈哈哈&lt;/p&gt;
&lt;h1&gt;选择合适的分辨率下载&lt;/h1&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;youtube-dl -F &quot;video_url&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看可选的视、音频格式
运行后会输出以下例子&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[youtube] Bey4XXJAqS8: Downloading webpage
[youtube] Bey4XXJAqS8: Downloading video info webpage
[info] Available formats for Bey4XXJAqS8:
format code  extension  resolution note
249          webm       audio only DASH audio   61k , opus @ 50k, 11.46MiB
250          webm       audio only DASH audio   82k , opus @ 70k, 15.43MiB
171          webm       audio only DASH audio  110k , vorbis@128k, 21.97MiB
140          m4a        audio only DASH audio  129k , m4a_dash container, mp4a.40.2@128k, 26.91MiB
251          webm       audio only DASH audio  156k , opus @160k, 29.94MiB
278          webm       256x144    144p  101k , webm container, vp9, 30fps, video only, 16.33MiB
394          mp4        256x144    144p  107k , av01.0.05M.08, 30fps, video only, 14.61MiB
160          mp4        256x144    144p  115k , avc1.4d400c, 30fps, video only, 11.04MiB
242          webm       426x240    240p  233k , vp9, 30fps, video only, 31.57MiB
395          mp4        426x240    240p  250k , av01.0.05M.08, 30fps, video only, 29.34MiB
133          mp4        426x240    240p  252k , avc1.4d4015, 30fps, video only, 22.91MiB
396          mp4        640x360    360p  437k , av01.0.05M.08, 30fps, video only, 54.59MiB
243          webm       640x360    360p  448k , vp9, 30fps, video only, 60.07MiB
134          mp4        640x360    360p  735k , avc1.4d401e, 30fps, video only, 64.87MiB
244          webm       854x480    480p  804k , vp9, 30fps, video only, 109.78MiB
397          mp4        854x480    480p  838k , av01.0.05M.08, 30fps, video only, 100.78MiB
135          mp4        854x480    480p 1356k , avc1.4d401f, 30fps, video only, 131.16MiB
247          webm       1280x720   720p 1755k , vp9, 30fps, video only, 227.80MiB
398          mp4        1280x720   720p 1794k , av01.0.05M.08, 30fps, video only, 209.23MiB
136          mp4        1280x720   720p 2697k , avc1.4d401f, 30fps, video only, 260.78MiB
248          webm       1920x1080  1080p 3236k , vp9, 30fps, video only, 414.56MiB
137          mp4        1920x1080  1080p 4752k , avc1.640028, 30fps, video only, 481.99MiB
271          webm       2560x1440  1440p 9041k , vp9, 30fps, video only, 1.18GiB
313          webm       3840x2160  2160p 18002k , vp9, 30fps, video only, 2.76GiB
17           3gp        176x144    small   70k , mp4v.20.3, mp4a.40.2@ 24k (22050Hz), 14.93MiB
36           3gp        320x180    small  202k , mp4v.20.3, mp4a.40.2 (22050Hz), 42.88MiB
43           webm       640x360    medium , vp8.0, vorbis@128k, 148.66MiB
18           mp4        640x360    medium  552k , avc1.42001E, mp4a.40.2@ 96k (44100Hz), 116.91MiB
22           mp4        1280x720   hd720 1357k , avc1.64001F, mp4a.40.2@192k (44100Hz) (best)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在这里我们可以看到，默认&lt;code&gt;best&lt;/code&gt;选择的是第22个，只有720p的分辨率，所以在这里想下载4k的视频话，在这了需要运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;youtube-dl -f &apos;313+251&apos; &quot;video_url&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;&apos;313+251&apos;&lt;/code&gt;：&lt;code&gt;313&lt;/code&gt;是视频编号，&lt;code&gt;251&lt;/code&gt;是音频编号&lt;/li&gt;
&lt;li&gt;&lt;code&gt;&quot;video_url&quot;&lt;/code&gt;是你的视频地址
这样，就可以下载你想要的分辨率的视频。
好了，如果有什么问题欢迎下面评论～&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>咕咕咕</title><link>https://lwnlh.com/posts/7_cuckoo/</link><guid isPermaLink="true">https://lwnlh.com/posts/7_cuckoo/</guid><description>咕咕咕</description><pubDate>Sun, 06 Jan 2019 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;人类的本质是什么？ 咕咕咕.....&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;平安夜不吃平安果，吃团子吧～
看过Clannad留言评论举个爪～&lt;/p&gt;
</content:encoded></item><item><title>伪 NAS 利用 VPS 实现备份、下载、串流播放一条龙(中)</title><link>https://lwnlh.com/posts/6_fake_nas_use_vps_to_realize_backup_download_and_streaming_playback_2/</link><guid isPermaLink="true">https://lwnlh.com/posts/6_fake_nas_use_vps_to_realize_backup_download_and_streaming_playback_2/</guid><description>伪 NAS 利用 VPS 实现备份、下载、串流播放一条龙(中)</description><pubDate>Sat, 08 Dec 2018 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文主要讲述Directory Lister、Aria2、Nextcloud的配置问题&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h1&gt;一、Directory Lister篇 来自逗比大佬&lt;/h1&gt;
&lt;h1&gt;不显示文件和目录&lt;/h1&gt;
&lt;p&gt;如果安装 lnmp一键包上传Directory Lister后，Directory Lister不显示文件和目录，那么可能是 PHP函数 &lt;code&gt;scandir &lt;/code&gt;被禁用了，取消禁用即可。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed -i &apos;s/,scandir//g&apos; /usr/local/php/etc/php.ini
# 取消scandir函数禁用
/etc/init.d/php-fpm restart
# 重启 PHP生效
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;简介功能说明&lt;/h2&gt;
&lt;p&gt;使用这个功能，需要打开 &lt;code&gt;resources\themes\bootstrap\index.php&lt;/code&gt; 文件，找到第五行的：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;$md_path = explode(&quot;com&quot;, $md_path_all);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;把 &lt;code&gt;com&lt;/code&gt; 改成你的域名后缀(比如 &lt;code&gt;xxx.cn&lt;/code&gt; 就是改成 &lt;code&gt;cn&lt;/code&gt; )，当初只是自用，现在一开源，我给忘了。&lt;/p&gt;
&lt;p&gt;反正就是每个文件夹下面放一个 &lt;code&gt;README.html&lt;/code&gt; 文件，这个文件里写着 简介说明内容即可。&lt;/p&gt;
&lt;p&gt;为了避免中文乱码，把 &lt;code&gt;README.html&lt;/code&gt; 文件用 &lt;code&gt;UTF-8 无BOM 编码 &lt;/code&gt;保存！&lt;/p&gt;
&lt;h2&gt;文件修改说明&lt;/h2&gt;
&lt;p&gt;文件修改说明修改网站中头部导航标题，去这个文件里搜索 &lt;code&gt;DOUBI Soft&lt;/code&gt; 然后全部替换为自己要改的。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\resources\DirectoryLister.php
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改网站标签栏的标题，去这个文件里把开头 &lt;code&gt;&amp;lt;title&amp;gt; &lt;/code&gt;标签中的&lt;code&gt; DOUBI Soft&lt;/code&gt; 替换为自己要改的。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\resources\themes\bootstrap\index.php
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改网站顶部公告栏内容，去这个文件里搜索 &lt;code&gt;顶部公告栏&lt;/code&gt; 或者找到第 72 行。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\resources\themes\bootstrap\index.php
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;网站头部公共文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\resources\themes\bootstrap\default_header.php
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;网站底部公共文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\resources\themes\bootstrap\default_footer.php
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果想要插入流量统计代码，那只需要把代码写到 &lt;code&gt;default_header.php&lt;/code&gt; 文件内即可。&lt;/p&gt;
&lt;h1&gt;二、Aria2配置&lt;/h1&gt;
&lt;p&gt;这里贴上我的Aria2配置，文件路径&lt;code&gt;/root/.aria2.conf&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## &apos;#&apos;开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ##
## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释  ##

## 文件保存相关 ##
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/data/wwwroot/dd.test.com/download
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
# disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none &amp;lt; falloc ? trunc &amp;lt; prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
# file-allocation=none
# 断点续传
continue=true

## 下载连接相关 ##
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=25
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=20
# 整体下载速度限制, 运行时可修改, 默认:0
# max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0
# max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0
max-overall-upload-limit=1M
# 单个任务上传速度限制, 默认:0
# max-upload-limit=1000
# 禁用IPv6, 默认:false
disable-ipv6=false

## 进度保存相关 ##
# 从会话文件中读取下载任务
input-file=/root/.aria2/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/root/.aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60

## RPC相关设置 ##
# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许非外部访问, 默认:false
rpc-listen-all=true
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
# event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=你自己设置一个密码
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
# rpc-user=&amp;lt;USER&amp;gt;
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
# rpc-passwd=&amp;lt;PASSWD&amp;gt;
# 是否启用 RPC 服务的 SSL/TLS 加密,
# 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接
rpc-secure=true
# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件(.pem/.crt)
rpc-certificate= /usr/local/nginx/conf/ssl/ar.test.com.crt
# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件(.key)
rpc-private-key= /usr/local/nginx/conf/ssl/ar.test.com.key

## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
# bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=true
# 打开IPv6 DHT功能, PT需要禁用
# enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
# dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
# bt-enable-lpd=true
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=true
# 每个种子限速, 对少种的PT很有用, 默认:50K
# bt-request-peer-speed-limit=50K
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=0.000001
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
# force-save=false
# BT校验相关, 默认:true
# bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
# bt-save-metadata=true
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;注意事项&lt;/h1&gt;
&lt;h2&gt;一、保存路径&lt;/h2&gt;
&lt;p&gt;保存路径最好放在&lt;code&gt;Directory Lister&lt;/code&gt;目录下，这样方便直接访问
如果你放在其他目录，&lt;code&gt;Directory Lister&lt;/code&gt;目录下放软链接可能会发生错误。&lt;/p&gt;
&lt;h2&gt;进度保存&lt;/h2&gt;
&lt;p&gt;记得把进度保存相关设置前的注释取消掉，就像配置文件第38~44行&lt;/p&gt;
&lt;h2&gt;RPC相关设置&lt;/h2&gt;
&lt;p&gt;密码在第58行修改
由于我们使用全站https，所以在配置文件第67、69行需要填写你的网站证书路径，按照我的上一篇文章建站的话，把&lt;code&gt;ar.test.com&lt;/code&gt;替换成你的域名即可。&lt;/p&gt;
&lt;h2&gt;定时更新bt-tracker&lt;/h2&gt;
&lt;p&gt;如果你使用逗比大佬的脚本并开启了定时更新bt-tracker，那么会有更新过后Aria2没有启动问题，所以解决方法就是添加一个定时任务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;crontab -e
在0 3 * * 1 /bin/bash /root/aria2.sh update-bt-tracker下添加
2 3 * * 1 /bin/bash service aria2 start
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;保存即可。&lt;/p&gt;
&lt;h1&gt;三、Nextcloud排错&lt;/h1&gt;
&lt;h1&gt;1. PHP 被设置为移除内联块, 这将导致多个核心应用无法访问&lt;/h1&gt;
&lt;p&gt;问题：准备LNMP环境和上面一样，只是在LNMP 1.4和OneinStack安装时选择Nginx环境即可，其它的组件都一样有选择性地安装。如果安装了Zend OPcache，可能在安装时会提示错误：&lt;code&gt;“PHP 被设置为移除内联块, 这将导致多个核心应用无法访问。&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;解决方法：修改&lt;code&gt;php.ini&lt;/code&gt;中Opcache的参数进行修改，如果是Oneinstack的话需要在&lt;code&gt;/usr/local/php/etc/php.d/02-opcache.ini&lt;/code&gt; 中修改。找到此代码并改成：&lt;code&gt;opcache.save_comments=1&lt;/code&gt; ，因为默认是0，改完重启php-fpm就行。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /usr/local/php/etc/php.d/02-opcache.ini
opcache.save_comments=1 #将0改成１
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;2. 出现错误：No input file specified.&lt;/h2&gt;
&lt;p&gt;一般来说，在添加虚拟主机那一步选择&lt;code&gt;rewrite&lt;/code&gt;的时候选择&lt;code&gt;nextcloud&lt;/code&gt;不会出现这个问题，如果还有问题按照以下步骤来解决
编写URL地址重写规则。出现错误：No input file specified.，主要是Nginx还需要自己写重写规则，你可以将以下规则复制粘贴到/usr/local/nginx/conf/vhost/你的网站.conf，具体规则如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# (可选)添加如下header主要为了安全
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection &quot;1; mode=block&quot;;
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    #(可选)为了支持user_webfinger app
    rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
    rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
 
    #日历和联系人，建议加上
    location = /.well-known/carddav {
    return 301 $scheme://$host/remote.php/dav;
    }
    location = /.well-known/caldav {
    return 301 $scheme://$host/remote.php/dav;
    }
    #设置上传文件的最大大小
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;
    #将所有请求转发到index.php上
    location / {
    rewrite ^ /index.php$uri;
    }
    #安全设置，禁止访问部分敏感内容
    location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
    deny all;
    }
    location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
    deny all;
    }
 
    #默认有，替换原来的就行
    location ~ ^/(?:index|remote|public|cron|core/ajax/update|status|ocs/v[12]|updater/.+|ocs-provider/.+)\.php(?:$|/) {
    fastcgi_split_path_info ^(.+\.php)(/.*)$;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_param modHeadersAvailable true;
    fastcgi_param front_controller_active true;
    fastcgi_pass unix:/dev/shm/php-cgi.sock; #这边我改过，参照原来的
    fastcgi_intercept_errors on;
    fastcgi_request_buffering off;
    include fastcgi.conf;
    }
 
    #安全设置，禁止访问部分敏感内容
    location ~ ^/(?:updater|ocs-provider)(?:$|/) {
    try_files $uri/ =404;
    index index.php;
    }
 
    location ~ \.(?:css|js|woff|svg|gif)$ {
    try_files $uri /index.php$uri$is_args$args;
    add_header Cache-Control &quot;public, max-age=15778463&quot;;
    add_header X-Content-Type-Options nosniff;
    add_header X-XSS-Protection &quot;1; mode=block&quot;;
    add_header X-Robots-Tag none;
    add_header X-Download-Options noopen;
    add_header X-Permitted-Cross-Domain-Policies none;
    access_log off;
    }
    location ~ \.(?:png|html|ttf|ico|jpg|jpeg)$ {
    try_files $uri /index.php$uri$is_args$args;
    access_log off;
    }
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;3. 模块‘fileinfo’缺失&lt;/h1&gt;
&lt;p&gt;fileinfo\Memcached\Redis等都可以通过OneinStack一键安装。
具体方法见上篇&lt;/p&gt;
&lt;h1&gt;4. 没有安装 &quot;smbclient&quot;. 无法挂载 &quot;SMB / CIFS&quot;（测试未通过）&lt;/h1&gt;
&lt;p&gt;安装：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt-get install smbclient
apt-get install php-smbclient
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;反正我安装过后问题没解决.....解决问题的朋友们可以在评论区留言&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h1&gt;5. 内存缓存未配置&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;&apos;memcache.local&apos; =&amp;gt; &apos;\OC\Memcache\Redis&apos;,
&apos;memcache.locking&apos; =&amp;gt; &apos;\OC\Memcache\Redis&apos;,
&apos;redis&apos; =&amp;gt; array(
     &apos;host&apos; =&amp;gt; &apos;localhost&apos;,
     &apos;port&apos; =&amp;gt; 6379,
      ),
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;6. 一些文件没有通过完整性检查&lt;/h1&gt;
&lt;p&gt;参数解释如下，自行判读，&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;INVALID_HASH 　　#错误的文件，需要使用正确的替换
EXTRA_FILE 　　　#多余的文件，需要删除
EXCEPTION　　　　 #错误信息
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;在你解压完nextcloud，并把解压后文件移动到网站根目录的时候，记得检查下是否所有文件都移动过去了，因为解压文件里有两个隐藏文件.....&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;7. 三种方式管理后台任务&lt;/h1&gt;
&lt;p&gt;三种方式管理后台任务，默认为&lt;code&gt;AJAX&lt;/code&gt;,但是推荐用 &lt;code&gt;cron&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# www用户添加后台任务
crontab -u www -e
# 填写如下字段，注意目录地址
*/15 * * * * php -f /www/wwwroot/cloud.test.com/ cron.php

# 检查是否添加成功
crontab -u www -l
# 输出如下说明成功
*/15 * * * * php -f /www/wwwroot/cloud.test.com/ cron.php
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Nextcloud出现“内部服务器错误”&lt;/h1&gt;
&lt;p&gt;这个问题的出现是由于文件夹权限设置的不到位。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chown -R www:www  你的网站目录
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这一点很重要！！！&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;参考：&lt;br /&gt;
&lt;a href=&quot;https://github.com/ToyoDAdoubi/DirectoryLister&quot;&gt;一个逗比魔改的Directory Lister~&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://doub.io/shell-jc4/&quot;&gt;『原创』BT/种子/磁力链接下载工具 —— Aria2 一键安装管理脚本&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://wzfou.com/nextcloud-install/&quot;&gt;手动安装NextCloud教程-免费开源的私有云存储网盘可播放图片音乐&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>伪 NAS 利用 VPS 实现备份、下载、串流播放一条龙(下)</title><link>https://lwnlh.com/posts/6_fake_nas_use_vps_to_realize_backup_download_and_streaming_playback_3/</link><guid isPermaLink="true">https://lwnlh.com/posts/6_fake_nas_use_vps_to_realize_backup_download_and_streaming_playback_3/</guid><description>伪 NAS 利用 VPS 实现备份、下载、串流播放一条龙(下)</description><pubDate>Sat, 08 Dec 2018 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本片讲述挂载Google Drive扩展你的VPS硬盘并把Aria2下载后的文件自动上传到Google Drive中等玩法。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;h2&gt;一、安装rclone&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;curl https://rclone.org/install.sh | sudo bash
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;二、初始化配置&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;rclone config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按照下面选择走：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Current remotes:

Name                 Type
====                 ====
gdrive               drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q&amp;gt; n   这里输入n，新建一个
name&amp;gt; test         输入一个名字，记住之后会用到
Type of storage to configure.
Enter a string value. Press Enter for the default (&quot;&quot;).
Choose a number from below, or type in your own value
 1 / Alias for a existing remote
   \ &quot;alias&quot;
 2 / Amazon Drive
   \ &quot;amazon cloud drive&quot;
 3 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
   \ &quot;s3&quot;
 4 / Backblaze B2
   \ &quot;b2&quot;
 5 / Box
   \ &quot;box&quot;
 6 / Cache a remote
   \ &quot;cache&quot;
 7 / Dropbox
   \ &quot;dropbox&quot;
 8 / Encrypt/Decrypt a remote
   \ &quot;crypt&quot;
 9 / FTP Connection
   \ &quot;ftp&quot;
10 / Google Cloud Storage (this is not Google Drive)
   \ &quot;google cloud storage&quot;
11 / Google Drive
   \ &quot;drive&quot;
12 / Hubic
   \ &quot;hubic&quot;
13 / JottaCloud
   \ &quot;jottacloud&quot;
14 / Local Disk
   \ &quot;local&quot;
15 / Mega
   \ &quot;mega&quot;
16 / Microsoft Azure Blob Storage
   \ &quot;azureblob&quot;
17 / Microsoft OneDrive
   \ &quot;onedrive&quot;
18 / OpenDrive
   \ &quot;opendrive&quot;
19 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ &quot;swift&quot;
20 / Pcloud
   \ &quot;pcloud&quot;
21 / QingCloud Object Storage
   \ &quot;qingstor&quot;
22 / SSH/SFTP Connection
   \ &quot;sftp&quot;
23 / Webdav
   \ &quot;webdav&quot;
24 / Yandex Disk
   \ &quot;yandex&quot;
25 / http Connection
   \ &quot;http&quot;
Storage&amp;gt; 11           输入11
Google Application Client Id
Leave blank normally.
Enter a string value. Press Enter for the default (&quot;&quot;).
client_id&amp;gt;            直接回车
Google Application Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default (&quot;&quot;).
client_secret&amp;gt;        直接回车
Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default (&quot;&quot;).
Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
   \ &quot;drive&quot;
 2 / Read-only access to file metadata and file contents.
   \ &quot;drive.readonly&quot;
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ &quot;drive.file&quot;
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ &quot;drive.appfolder&quot;
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ &quot;drive.metadata.readonly&quot;
scope&amp;gt; 1           输入1
ID of the root folder
Leave blank normally.
Fill in to access &quot;Computers&quot; folders. (see docs).
Enter a string value. Press Enter for the default (&quot;&quot;).
root_folder_id&amp;gt;     直接回车
Service Account Credentials JSON file path 
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default (&quot;&quot;).
service_account_file&amp;gt;     直接回车
Edit advanced config? (y/n)
y) Yes
n) No
y/n&amp;gt; n                    输入n
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn&apos;t work
y) Yes
n) No
y/n&amp;gt; n                    输入n
If your browser doesn&apos;t open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offline&amp;amp;client_id=xxxxxxxxxxxxxxxxxxxxxxxxxx
这里会给你一个链接，打开后用你的Google Drive授权就会得到下面一串代码填入即可
Log in and authorize rclone for access
Enter verification code&amp;gt; 4/rQDL5M58Dv_Mjwxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Configure this as a team drive?
y) Yes
n) No
y/n&amp;gt; y                    输入y
Fetching team drive list...
No team drives found in your account--------------------
[test]
type = drive
scope = drive
token = {&quot;access_token&quot;:&quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;,&quot;token_type&quot;:&quot;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&quot;,&quot;expiry&quot;:&quot;2018-12-08T14:45:49.328865767+08:00&quot;}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d&amp;gt; y                 输入y
Current remotes:

Name                 Type
====                 ====
gdrive               drive
test                 drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q&amp;gt; q             输入q退出

&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;三、挂载&lt;/h2&gt;
&lt;h3&gt;1.手动挂载&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# 新建本地文件夹，路径自己定，即下面的LocalFolder
mkdir /root/GoogleDrive
# 挂载为磁盘，下面的DriveName、Folder、LocalFolder参数根据说明自行替换
rclone mount DriveName:Folder LocalFolder --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;2.开机自动挂载&lt;/h3&gt;
&lt;p&gt;新建 &lt;code&gt;/lib/systemd/system/rclone.service&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /lib/systemd/system/rclone.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入，注意 &lt;code&gt;gdrive&lt;/code&gt;后最好跟盘内的文件夹&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description = rclone

[Service]   
User = root
ExecStart = /usr/bin/rclone mount gdrive: /mnt/gdrive --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000 
Restart = on-abort

[Install]
WantedBy = multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重载daemon&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl daemon-reload
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启动Rclone&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl start rclone
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;设置开机自启&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl enable rclone
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;二、Aria2下载完后自动上传&lt;/h2&gt;
&lt;p&gt;这里用到了Aria2的一个&lt;code&gt;on-download-complete&lt;/code&gt;功能，这个功能可以做很多事情，这里只用到了自动上传
新建脚本文件&lt;code&gt;gdupload.sh&lt;/code&gt;，并复制下面代码:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# !/bin/bash
path=&quot;$3&quot; #取原始路径
downloadpath=&apos;/data/wwwroot/dd.test.com/download&apos; #下载目录
rclone=&apos;/data/wwwroot/dd.test.com/cloud&apos;   #rclone挂载的目录

if [ $2 -eq 0 ] #下载文件为0跳出脚本
        then
                exit 0
fi

while true; do  #提取下载文件根路径
    filepath=$path
    path=${path%/*}; 
    if [ &quot;$path&quot; = &quot;$downloadpath&quot; ] &amp;amp;&amp;amp; [ $2 -eq 1 ]
        then
        rclone=${filepath/#$downloadpath/$rclone} #替换路径
        cp -R &quot;${filepath}&quot; &quot;${rclone}&quot;
        exit 0
    elif [ &quot;$path&quot; = &quot;$downloadpath&quot; ]   #文件夹
        then
        cp -R &quot;${filepath}&quot; &quot;${rclone}&quot;/
        exit 0
    fi
done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意：本脚本上传下载文件后并没有删除原文件，因为rclone在上传多文件时，可能会丢文件，所以这个脚本并没有删除原文件&lt;/strong&gt;
如果想要自动删除的话，可以改成下面这样子：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;.....................前面不变
     rclone=${filepath/#$downloadpath/$rclone} #替换路径
        mv -f &quot;${filepath}&quot; &quot;${rclone}&quot;
        exit 0
    elif [ &quot;$path&quot; = &quot;$downloadpath&quot; ] #文件夹
        then
        mv -f &quot;${filepath}&quot; &quot;${rclone}&quot;/
        rm -rf &quot;${filepath}&quot;
        exit 0
    fi
done
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;修改Aria2配置文件&lt;/h3&gt;
&lt;p&gt;首先授权&lt;code&gt;chmod +x gdupload.sh&lt;/code&gt;然后再到Aria2配置文件中加上一行&lt;code&gt;on-download-complete=/root/gdupload.sh&lt;/code&gt;即可，后面为脚本的路径。&lt;/p&gt;
&lt;h2&gt;三、Nextcloud添加外置存储&lt;/h2&gt;
&lt;p&gt;由于我们已经把Google Drive挂载到本地了，所以我们直接添加外置存储即可
首先在Nextcloud中安装&lt;code&gt;外部存储&lt;/code&gt;插件
选择&lt;code&gt;应用&lt;/code&gt;-&lt;code&gt;External storage support&lt;/code&gt;-&lt;code&gt;启用&lt;/code&gt;即可
接着&lt;code&gt;设置&lt;/code&gt;-&lt;code&gt;外部存储&lt;/code&gt;按图所示添加即可
&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxzb3awhgkj31mz053zkn.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;参考&lt;br /&gt;
&lt;a href=&quot;https://www.moerats.com/archives/482/&quot;&gt;使用Aira2下载文件后自动上传到Google Drive网盘&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>利用 OneinStack 搭建 LNMP 网站环境</title><link>https://lwnlh.com/posts/4_use_oneinstack_to_build_website_environment/</link><guid isPermaLink="true">https://lwnlh.com/posts/4_use_oneinstack_to_build_website_environment/</guid><description>利用 OneinStack 搭建 LNMP 网站环境</description><pubDate>Sat, 01 Dec 2018 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;作者言：没啥营养，不看也罢......&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;一、安装&lt;/h1&gt;
&lt;p&gt;这里提供两种方式安装&lt;/p&gt;
&lt;h2&gt;图形化安装&lt;/h2&gt;
&lt;p&gt;这里我们使用 &lt;a href=&quot;https://oneinstack.com/auto/&quot;&gt;官网&lt;/a&gt; 的一键脚本安装。在下图中选择你所需要的功能，然后复制安装命令到你的VPS上运行即可。
&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxr44q36e3j30wd0w9q5n.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;终端安装&lt;/h2&gt;
&lt;p&gt;首先，我们要安装一下所需要的软件包&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt-get -y install wget screen curl python
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接着下载所需要的一键脚本，解压&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget http://mirrors.linuxeye.com/oneinstack.tar.gz
tar xzf oneinstack.tar.gz
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后进入解压后的文件中
执行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;screen -S lnmp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;防止SSH连接中断导致安装失败,最后运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接下来
按照按照提示选择你所需要的组件（又见盗图23333）
&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxr4g2v2ywj318o2m4akq.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;二、添加虚拟主机&lt;/h1&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./vhost.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后按照提示配置你的虚拟主机
&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxr4hgxo0hj318o2707ej.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;三、删除虚拟主机&lt;/h1&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./vhost.sh del
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后按照提示输入即可&lt;/p&gt;
&lt;h1&gt;四、管理服务&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Nginx/Tengine/OpenResty:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service nginx {start|stop|status|restart|reload|configtest}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;MySQL/MariaDB/Percona:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service mysqld {start|stop|restart|reload|status}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;PHP:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service php-fpm {start|stop|restart|reload|status}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Apache:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service httpd {start|restart|stop}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;HHVM:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service supervisord {start|stop|status|restart|reload}
注：hhvm进程交给supervisord管理，了解更多请访问《Supervisor管理hhvm进程》
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Pure-Ftpd:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service pureftpd {start|stop|restart|status}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Redis:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service redis-server {start|stop|status|restart|reload}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Memcached:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service memcached {start|stop|status|restart|reload}
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;五、大版本更新&lt;/h1&gt;
&lt;p&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./upgrade.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;按照提示输入即可&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;参考&lt;/strong&gt;&lt;br /&gt;
&lt;a href=&quot;https://blog.linuxeye.cn/31.html&quot;&gt;lnmp、lamp、lnmpa一键安装包&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://oneinstack.com/download/&quot;&gt;OneinStack&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>伪 NAS 利用 VPS 实现备份、下载、串流播放一条龙(上)</title><link>https://lwnlh.com/posts/5_fake_nas_use_vps_to_realize_backup_download_and_streaming_playback_1/</link><guid isPermaLink="true">https://lwnlh.com/posts/5_fake_nas_use_vps_to_realize_backup_download_and_streaming_playback_1/</guid><description>伪 NAS 利用 VPS 实现备份、下载、串流播放一条龙(上)</description><pubDate>Sat, 01 Dec 2018 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;本文主要讲述使用VPS安装Nextcloud、DirectoryLister、Aria2、AriaNg等服务来实现备份、下载、串流播放等功能......&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;新建虚拟主机&lt;/h1&gt;
&lt;p&gt;首先我们需要新建三个虚拟主机、假设三个虚拟主机网址分别为&lt;code&gt;cloud.test.com&lt;/code&gt;、&lt;code&gt;dd.test.com&lt;/code&gt;、&lt;code&gt;ar.test.com&lt;/code&gt;,
在&lt;code&gt;lnmp&lt;/code&gt;目录下运行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./vhost.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接着根据提示创建即可&lt;/p&gt;
&lt;h1&gt;安装DirectoryLister&lt;/h1&gt;
&lt;p&gt;LNMP创建的网站根目录为&lt;code&gt;/data/wwwroot/dd.test.com&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;官网下载安装&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://www.directorylister.com/&quot;&gt;DirectoryLister官网&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;使用魔改版DirectoryLister&lt;/h2&gt;
&lt;p&gt;这里的魔改版DirectoryLister由&lt;a href=&quot;https://github.com/ToyoDAdoubi/DirectoryLister&quot;&gt;逗比&lt;/a&gt;大佬提供
网站根目录运行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/ToyoDAdoubi/DirectoryLister.git
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;文件结构&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;/data/wwwroot/dd.test.com
├─ resources
│   ├ themes
│   │ └ bootstrap
│   │    └ .....
│   │
│   ├ DirectoryLister.php
│   ├ config.php
│   └ fileTypes.php
│
├ README.html # 文件夹内的 说明简介文件 #
├ index.php
│
├─ 测试文件夹
│   ├ 测试文件.txt
│   └ README.html # 文件夹内的 说明简介文件 #
│
└ 测试文件.txt
  
 绝对路径分别为：
/data/wwwroot/dd.test.com/resources/
/data/wwwroot/dd.test.com/README.html
/data/wwwroot/dd.test.com/index.php
/data/wwwroot/dd.test.com/测试文件夹/
/data/wwwroot/dd.test.com/测试文件.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;一些注意事项见中篇&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;安装Aria2及AriaNG&lt;/h1&gt;
&lt;h2&gt;安装依赖包&lt;/h2&gt;
&lt;p&gt;首先我么需要安装以下依赖包，来使Aria2能够下载图中的文件类型&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install wget screen unzip gcc
sudo apt install -y libgnutls-dev nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev  zlib1g-dev libsqlite3-dev pkg-config
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxrhlf6lebj30nj05cdfy.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;安装Aria2&lt;/h2&gt;
&lt;h3&gt;方式一、手动编译安装&lt;/h3&gt;
&lt;p&gt;运行以下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install auto-apt checkinstall
cd /root
wget https://github.com/aria2/aria2/releases/download/release-1.33.1/aria2-1.33.1.tar.gz
tar xzvf aria2-1.33.1.tar.gz
cd aria2-1.33.1
auto-apt run ./configure
make
checkinstall
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这样会生成一个deb包，卸载和重新安装就非常方便了&lt;/p&gt;
&lt;h3&gt;方式二、一键脚本安装（建议）&lt;/h3&gt;
&lt;p&gt;还是推荐一键脚本安装，比手动编译会少很多问题.....
使用逗比大佬的一键脚本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -N --no-check-certificate https://softs.loan/Bash/aria2.sh &amp;amp;&amp;amp; chmod +x aria2.sh &amp;amp;&amp;amp; bash aria2.sh

# 如果上面这个脚本无法下载，尝试使用备用下载：
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/aria2.sh &amp;amp;&amp;amp; chmod +x aria2.sh &amp;amp;&amp;amp; bash aria2.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;根据脚本提示安装即可&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;其中，&lt;code&gt;aria2.conf&lt;/code&gt;配置文件需要做一些修改，我会另开一篇文章详细说明&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;安装AriaNG&lt;/h1&gt;
&lt;p&gt;到网站根目录，这里是&lt;code&gt;ar.test.com&lt;/code&gt;运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://github.com/mayswind/AriaNg/releases/download/1.0.0/AriaNg-1.0.0.zip
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;之后解压，然后访问你的域名填写Aria2的密钥即可&lt;/p&gt;
&lt;h1&gt;安装Nextcloud&lt;/h1&gt;
&lt;h2&gt;添加MySQL&lt;/h2&gt;
&lt;p&gt;在安装Nextcloud之前，我们需要在MySQL中添加一下账户及数据库
访问你的IP，会出现OneinStack的界面&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxri4shvu9j30zc0j2wgq.jpg&quot; alt=&quot;&quot; /&gt;
点击&lt;code&gt;phpMyAdmin&lt;/code&gt;，登陆后，点击账户，新增用户账户，然后按照如图所示操作
&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxria4fofyj30s90gmwg8.jpg&quot; alt=&quot;&quot; /&gt;
最后点击最下面的&lt;code&gt;执行&lt;/code&gt;
这样，MySQL部分完毕&lt;/p&gt;
&lt;h2&gt;安装Nextcloud&lt;/h2&gt;
&lt;p&gt;首先进入到网站根目录&lt;code&gt;cloud.test.com&lt;/code&gt;
然后下载Nextcloud&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget https://download.nextcloud.com/server/releases/nextcloud-14.0.4.zip
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下载完后解压，输入域名进行接下来的安装即可
至此，Nextcloud安装完毕&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;安装错误等问题见中篇......&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;lt;!--more--&amp;gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;参考：&lt;br /&gt;
&lt;a href=&quot;https://github.com/ToyoDAdoubi/DirectoryLister&quot;&gt;一个逗比魔改的Directory Lister~&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://github.com/mayswind/AriaNg&quot;&gt;AriaNg&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://doub.io/shell-jc4/&quot;&gt;『原创』BT/种子/磁力链接下载工具 —— Aria2 一键安装管理脚本&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>Start</title><link>https://lwnlh.com/posts/1_start/</link><guid isPermaLink="true">https://lwnlh.com/posts/1_start/</guid><description>Start</description><pubDate>Wed, 28 Nov 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;拖延许久，终于下定决心开始写博客。
说是写，倒不如说是向这个世界发出自己的声音，给这个世界留下自己的印记。
就像我们刚降生下来的第一声啼哭，宣告世界，我们来了！
很早之前，就开始酝酿博客的事情了，但却总是认为自己准备不足，于是拖拖拉拉，连域名都到期续了一年......
而现在，是时候了......&lt;/p&gt;
</content:encoded></item><item><title>VPS 选择，测试，升级</title><link>https://lwnlh.com/posts/2_vps_selection_testing_upgrading/</link><guid isPermaLink="true">https://lwnlh.com/posts/2_vps_selection_testing_upgrading/</guid><description>VPS 选择，测试，升级</description><pubDate>Wed, 28 Nov 2018 00:00:00 GMT</pubDate><content:encoded>&lt;blockquote&gt;
&lt;p&gt;作者言&lt;br /&gt;
扶墙向：本篇讲述的是如何选择VPS，以及对购买完后的VPS进行测试及系统升级......&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;VPS的选择&lt;/h1&gt;
&lt;p&gt;如何选择VPS，第一要素自然是是看延迟咯，所以我们先上 &lt;a href=&quot;https://www.msmbps.com/&quot;&gt;这个&lt;/a&gt; 网站测试下你到一些常见的VPS供应商机房的延迟，下面给张图：
&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxnytipiipj30pl0h8tcx.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;测完延迟后就选一款适合你的.....&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;测试网站的开源地址：&lt;a href=&quot;https://github.com/msmbps/msmbps&quot;&gt;https://github.com/msmbps/msmbps&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;VPS的测试&lt;/h1&gt;
&lt;p&gt;这里我们使用&lt;a href=&quot;https://teddysun.com/444.html&quot;&gt;秋水逸冰&lt;/a&gt;大佬的一键测试脚本来进行VPS性能的测试
命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -qO- bench.sh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -Lso- bench.sh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;备注&lt;/strong&gt;
&lt;code&gt;bench.sh&lt;/code&gt; 既是脚本名，同时又是域名。
给个图：
&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxnz4r6nsaj30g20gy0xe.jpg&quot; alt=&quot;&quot; /&gt;
测试完了，感觉还可以就留着，不行的的话就该退款退款，该换就换，千万别凑活着用，给自己找不自在，最后还发工单撕.....&lt;/p&gt;
&lt;h1&gt;系统大版本升级&lt;/h1&gt;
&lt;p&gt;有时候，VPS商家给的系统模板并不是最新的，这时候我们就需要手动升级下系统（本文Ubuntu向）
首先，我们需要升级下软件包&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update
sudo apt-get upgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;接着安装&lt;code&gt;update-manager-core&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install update-manager-core
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后打开文件&lt;code&gt;/etc/update-manager/release-upgrades&lt;/code&gt;，确认&lt;code&gt;Prompt&lt;/code&gt;的值设定为&lt;code&gt;lts&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# Default behavior for the release upgrader.

[DEFAULT]
# Default prompting behavior, valid options:
#
#  never  - Never check for a new release.
#  normal - Check to see if a new release is available.  If more than one new
#           release is found, the release upgrader will attempt to upgrade to
#           the release that immediately succeeds the currently-running
#           release.
#  lts    - Check to see if a new LTS release is available.  The upgrader
#           will attempt to upgrade to the first LTS release available after
#           the currently-running one.  Note that this option should not be
#           used if the currently-running release is not itself an LTS
#           release, since in that case the upgrader won&apos;t be able to
#           determine if a newer release is available.
Prompt=lts
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;确认完毕后，我们需要处理一下可能阻碍升级的依赖关系，所以运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get dist-upgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后，一切准备就绪，使用Ubuntu的发行工具执行升级&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo do-release-upgrade
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo do-release-upgrade -d
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;至此，静待系统升级完毕，期间需要重启系统，重启完毕后，使用&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;lsb_release -a
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以看到你的系统升级后的版本&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;参考&lt;/strong&gt;
&lt;a href=&quot;https://teddysun.com/444.html&quot;&gt;秋水逸冰一键测试脚本bench.sh&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-upgrade-to-ubuntu-16-04-lts&quot;&gt;How To Upgrade to Ubuntu 16.04 LTS&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.daweibro.com/node/154&quot;&gt;Linode VPS从Ubuntu Server 14.04LTS升级到Ubuntu Server 16.04LTS&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>VPS 的加固及优化</title><link>https://lwnlh.com/posts/3_reinforcement_and_optimization_of_vps/</link><guid isPermaLink="true">https://lwnlh.com/posts/3_reinforcement_and_optimization_of_vps/</guid><description>VPS 的加固及优化</description><pubDate>Wed, 28 Nov 2018 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;VPS加固&lt;/h1&gt;
&lt;h2&gt;一、SSH防爆破&lt;/h2&gt;
&lt;p&gt;顾名思义，防止SSH密码被爆破以及减小VPS压力。
这里我们使用&lt;code&gt;fail2ban&lt;/code&gt;，各位应该都听说过这个程序，可以根据SSH登录失败记录来屏蔽某个IP，该脚本有以下几个功能：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;自助修改SSH端口&lt;/li&gt;
&lt;li&gt;自定义SSH尝试连接次数&lt;/li&gt;
&lt;li&gt;自定义最高封禁IP的时间（以小时为单位）&lt;/li&gt;
&lt;li&gt;一键完成SSH防止暴力破解&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;安装&lt;/h3&gt;
&lt;p&gt;运行命令&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget --no-check-certificate https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/fail2ban.sh &amp;amp;&amp;amp; bash fail2ban.sh 2&amp;gt;&amp;amp;1 | tee fail2ban.log
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;根据提示输入相应信息;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;第一步：选择是否修改SSH端口。&lt;/li&gt;
&lt;li&gt;第二步：输入最多尝试输入SSH连接密码的次数&lt;/li&gt;
&lt;li&gt;第三步：输入每个恶意IP的封禁时间（单位：小时）&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;卸载&lt;/h3&gt;
&lt;p&gt;运行命令&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget --no-check-certificate https://raw.githubusercontent.com/FunctionClub/Fail2ban/master/uninstall.sh &amp;amp;&amp;amp; bash uninstall.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;注意事项：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;如果你需要更改SSH端口，请记得在防火墙或者安全组中开放新的SSH端口&lt;/li&gt;
&lt;li&gt;安装完成后请会重启SSH服务，请重新连接SSH会话&lt;/li&gt;
&lt;li&gt;若出现SSH无法连接的情况，请检查是否修改过SSH端口，请填写写改后的正确端口进行连接&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;反正我是没用这个，因为之前有一次把我自己的IP屏蔽了一天，23333&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;二、使用密钥登录VPS&lt;/h2&gt;
&lt;p&gt;密钥的安全性可谓是远大于密码登录，所以，为什么不使用密钥登录呢？还不用担心自己把自己ban掉......&lt;/p&gt;
&lt;h3&gt;生成密钥对&lt;/h3&gt;
&lt;p&gt;在你的VPS或者本地Linux系统运行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ssh-keygen -t rsa
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过上述方式，密钥生成在&lt;code&gt;/root/.ssh&lt;/code&gt;或&lt;code&gt;/你的用户根目录/.ssh&lt;/code&gt;下，分别为私钥和公钥文件，公钥文件&lt;code&gt;id_rsa.pub&lt;/code&gt;就是在接下来需要放置在要VPS的文件，而&lt;code&gt;id_rsa&lt;/code&gt;就是要保存到本地的私钥文件。&lt;/p&gt;
&lt;h3&gt;将密钥保存到VPS&lt;/h3&gt;
&lt;p&gt;我们需要将&lt;code&gt;id_rsa.pub&lt;/code&gt;公钥文件放置到VPS用户主目录&lt;code&gt;/root/.ssh&lt;/code&gt;下，可以使用&lt;code&gt;scp&lt;/code&gt;命令，例：&lt;code&gt;scp 本地文件 用户名@VPS地址：远程文件路径&lt;/code&gt;，之后我们需要进行一下操作&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;将&lt;code&gt;id_rsa.pub&lt;/code&gt;文件，重命名为 &lt;code&gt;authorized_keys&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;执行&lt;code&gt;chmod 600 ./authorized_keys&lt;/code&gt; 命令，修改权限；&lt;/li&gt;
&lt;li&gt;执行命令 &lt;code&gt;sudo nano /etc/ssh/sshd_config&lt;/code&gt;进行配置，将&lt;code&gt;RSAAuthentication&lt;/code&gt; 和 &lt;code&gt;PubkeyAuthentication&lt;/code&gt; 后面的值都改成&lt;code&gt;yes&lt;/code&gt; ，将&lt;code&gt;PasswordAuthentication yes &lt;/code&gt;修改成 &lt;code&gt;PasswordAuthentication no&lt;/code&gt;，然后保存；&lt;/li&gt;
&lt;li&gt;重启sshd服务，Debian/Ubuntu执行&lt;code&gt;sudo /etc/init.d/ssh restart &lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;CentOS执行：&lt;code&gt;sudo /etc/init.d/sshd restart&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;注：centos7重启服务方式与以前不同，请执行&lt;code&gt;systemctl restart sshd.service&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;最后，你就可以使用密钥登录你的VPS了～&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;这是一般VPS的修改方法，但是类似Google Cloud之类的实在你创建实例之前就让你填写公钥的。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;VPS优化&lt;/h1&gt;
&lt;p&gt;这里主要讲解开启魔改版BBR，为什么是魔改版呢？从玄学角度讲因为它比普通版更快呀～&lt;/p&gt;
&lt;h2&gt;普通VPS开启魔改版BBR&lt;/h2&gt;
&lt;p&gt;首先，我们要确认一下VPS是否能开启BBR，可以直接使用此命令进行开启&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget --no-check-certificate -qO &apos;BBR.sh&apos; &apos;https://moeclub.org/attachment/LinuxShell/BBR.sh&apos; &amp;amp;&amp;amp; chmod a+x BBR.sh &amp;amp;&amp;amp; bash BBR.sh -f
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意:执行此命令会自动重启.&lt;/strong&gt;
之后我们执行以下命令安装魔改版BBR&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget --no-check-certificate -qO &apos;BBR_POWERED.sh&apos; &apos;https://moeclub.org/attachment/LinuxShell/BBR_POWERED.sh&apos; &amp;amp;&amp;amp; chmod a+x BBR_POWERED.sh &amp;amp;&amp;amp; bash BBR_POWERED.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后执行&lt;code&gt;lsmod |grep &apos;bbr_powered&apos;&lt;/code&gt;，如返回结果不为空，则安装成功。&lt;/p&gt;
&lt;h2&gt;Google Cloud开启魔改版BBR&lt;/h2&gt;
&lt;p&gt;Google Cloud使用上面方法开启魔改版BBR会失败，原因以后再说，这里先立个Flag......
对于Google Cloud，我们需要使用以下命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;wget -N --no-check-certificate https://raw.githubusercontent.com/FunctionClub/YankeeBBR/master/bbr.sh &amp;amp;&amp;amp; bash bbr.sh install
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装过程中如果出现这张图片，请选择NO 来删除其他内核(原谅我无耻的盗个图)：&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxo0ts498sj30st0j2q3r.jpg&quot; alt=&quot;&quot; /&gt;
然后根据提示重启系统，之后运行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;bash bbr.sh start
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即可启用魔改版BBR。&lt;/p&gt;
&lt;h3&gt;查看魔改BBR状态&lt;/h3&gt;
&lt;p&gt;运行命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sysctl net.ipv4.tcp_available_congestion_control
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果看到有&lt;code&gt;tsunami&lt;/code&gt;就表示开启成功！
&lt;img src=&quot;https://ws1.sinaimg.cn/large/006uw7syly1fxo0wqrkwsj30mp014t8o.jpg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;参考&lt;/strong&gt;
&lt;a href=&quot;https://www.iwwenbo.com/linux-ssh-authorized-keys-login/&quot;&gt;使用SSH密钥登录让Linux VPS服务器更安全&lt;/a&gt;
&lt;a href=&quot;https://moeclub.org/2017/06/24/278/?v=417&quot;&gt;Debian/Ubuntu TCP BBR 改进版/增强版/魔改版&lt;/a&gt;
&lt;a href=&quot;https://ylws.me/tech/68.html&quot;&gt;魔改版BBR一键安装脚本 For Debian8 / Ubuntu16 +&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item></channel></rss>