<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>实用技术、工具 on lategege 的技术博客</title><link>https://lategege.com/categories/%E5%AE%9E%E7%94%A8%E6%8A%80%E6%9C%AF%E5%B7%A5%E5%85%B7/</link><description>Recent content in 实用技术、工具 on lategege 的技术博客</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 06 Apr 2026 06:07:10 +0000</lastBuildDate><atom:link href="https://lategege.com/categories/%E5%AE%9E%E7%94%A8%E6%8A%80%E6%9C%AF%E5%B7%A5%E5%85%B7/index.xml" rel="self" type="application/rss+xml"/><item><title>谷歌手机bootloader模式下fastboot命令不生效的问题</title><link>https://lategege.com/p/%E8%B0%B7%E6%AD%8C%E6%89%8B%E6%9C%BAbootloader%E6%A8%A1%E5%BC%8F%E4%B8%8Bfastboot%E5%91%BD%E4%BB%A4%E4%B8%8D%E7%94%9F%E6%95%88%E7%9A%84%E9%97%AE%E9%A2%98/</link><pubDate>Mon, 06 Apr 2026 06:07:10 +0000</pubDate><guid>https://lategege.com/p/%E8%B0%B7%E6%AD%8C%E6%89%8B%E6%9C%BAbootloader%E6%A8%A1%E5%BC%8F%E4%B8%8Bfastboot%E5%91%BD%E4%BB%A4%E4%B8%8D%E7%94%9F%E6%95%88%E7%9A%84%E9%97%AE%E9%A2%98/</guid><description>&lt;p&gt;最近给谷歌pixel6升级了android 16系统，本来想刷一个面具root.img,但是fastboot devices无论如何都没响应，可明明我手机已经进入了fastboot模式界面。&lt;/p&gt;
&lt;p&gt;我mac系统不应该有usb驱动问题，adb一切正常，我切换到windows，在设备管理器中没有看到设备，换了好几根数据线(被这里坑了，我都是华为数据线)，都不行。&lt;/p&gt;
&lt;p&gt;我都怀疑是不是bootloader内部的usb协议驱动出现了问题，但转念一想，这玩意出问题的话，大概率bootloader都启动不了，然后我尝试网上搜索找谷歌手机进入edl的办法，看看能不能通过一些芯片级线刷工具来刷一下bootloader，搞了半天搜不到谷歌手机进入edl的办法。&lt;/p&gt;
&lt;p&gt;第二天，我回顾昨天的经历，还是不死心，我使用谷歌的c to c线试一下，因为我的台式机没有c口，所以只能连上笔记本的c口，这一试，当我敲下fastboot devices的时候，屏幕上完好的出现了设备名称，搞了半天原来是数据线的问题，我又尝试了小米的数据线，发现小米的usb c数据线居然也可以用，华为的数据线在谷歌手机上，使用adb 没问题，但是进入fastboot模式后就无法使用命令了。&lt;/p&gt;
&lt;p&gt;总结: 谷歌手机用fastboot 不能使用华为数据线。&lt;/p&gt;</description></item><item><title>lobe-chat安装mcp插件调用mcp服务(playwright)</title><link>https://lategege.com/p/lobe-chat%E5%AE%89%E8%A3%85mcp%E6%8F%92%E4%BB%B6%E8%B0%83%E7%94%A8mcp%E6%9C%8D%E5%8A%A1-playwright/</link><pubDate>Tue, 30 Sep 2025 13:47:54 +0000</pubDate><guid>https://lategege.com/p/lobe-chat%E5%AE%89%E8%A3%85mcp%E6%8F%92%E4%BB%B6%E8%B0%83%E7%94%A8mcp%E6%9C%8D%E5%8A%A1-playwright/</guid><description>&lt;p&gt;之前已经介绍过完整的&lt;a href="https://lategege.com/p/lobe-chat-database数据库版最新本地部署指南-含知识库/"&gt;lobe-chat-database数据库版最新本地部署指南(含知识库)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;lobe-chat提供了mcp的支持，mcp提供调用计算机中各种程序执行相关操作的能力，lobe-chat作为mcp的客户端，我们需要部署mcp服务端。&lt;/p&gt;
&lt;img alt="8759b0ef405e26d28fb875390f5dc503.png" height="238" src="https://img.lategege.com:30443/images/2025/09/30/77be2dd5b865.png" width="741"/&gt;
&lt;p&gt; 
见上图，在lobe的mcp插件安装的界面可以看到两种接入方式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;它支持Steamable HTTP 流式通信来连接MCP服务（我们以这种方式为例来部署一个MCP服务并来连接），&lt;/li&gt;
&lt;li&gt;还有一种STDIO是桌面版lobe-chat应用使用的，如果你安装了桌面lobe-chat那么可以直接安装lobe-chat mcp插件市场的插件，自动启动mcp服务，不过这不是我想要的，这种傻瓜式的部署你甚至无法对mcp服务做个性化配置，不过它也有优点，就是快，毕竟lobe-chat和mcp不经过网络传输，没有协议的开销，所以最终还是根据自己需求来决定采用哪种方式调用MCP服务。&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;一、在任意主机部署一款MCP服务&lt;/h5&gt;
&lt;p&gt;前提是你要找一个mcp服务，我找了一款比较知名的服务，项目叫playwright-mcp，它具备自动调用浏览器对网站进行自动操作的能力(输入，点击，搜索等)，官网网址： &lt;a href="https://github.com/microsoft/playwright-mcp"&gt;https://github.com/microsoft/playwright-mcp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;阅读上面的部署文档：&lt;/p&gt;
&lt;img alt="68cce18f1a375cd3323095fd8e806eac.png" height="501" src="https://img.lategege.com:30443/images/2025/09/30/26a251acea6a.png" width="689"/&gt;
&lt;p&gt; 
要部署一个带配置的本地playwright-mcp服务，只要执行：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;npx @playwright/mcp@latest --config path/to/config.json&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这个config.json没有提供示例，不过它提供了Configuration file schema 配置约束文档，我将这个约束配置文档丢给AI，让它生成了一份默认的配置文件，然后我根据需要自己做了修改。&lt;/p&gt;
&lt;p&gt;config.json&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-json"&gt;{
 "browser": {
 "browserName": "chromium",
 "isolated": false,
 "userDataDir": "./user-data",
 "launchOptions": {
 "channel": "chrome",
 "headless": false,
 "executablePath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"
 },
 "contextOptions": {
 "viewport": { "width": 1280, "height": 720 }
 },
 "cdpEndpoint": "",
 "remoteEndpoint": ""
 },
 "server": {
 "port": 8931,
 "host": "192.168.0.40"
 },
 "capabilities": [
 "tabs",
 "install",
 "pdf",
 "vision"
 ],
 "outputDir": "./output",
 "network": {
 "allowedOrigins": ["*"],
 "blockedOrigins": []
 },
 "imageResponses": "allow"
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我修改了headless为false，executablePath调用我主机上的chrome浏览器，如果不修改你看不到浏览器执行的画面，你可以根据自己需要配置，“host”: “192.168.0.40” ，这个改成你自己的主机ip地址，或者"0.0.0.0"也可以，不要写成localhost，不然只能本机调用。&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;#将config.json放入一个文件夹比如~/Downloads
#安装的前提是你电脑上已经安装了node,版本&amp;gt;=18
cd ~/Downloads
npx @playwright/mcp@latest --config ./config.json&lt;/code&gt;&lt;/pre&gt;
&lt;img alt="06004f64cc54364e72d21b02ca9da545.png" height="269" src="https://img.lategege.com:30443/images/2025/09/30/450c20e36b22.png" width="713"/&gt;
&lt;p&gt; 
执行完成可以看到服务已经启动。&lt;/p&gt;
&lt;h5&gt;二、在Lobe-Chat中添加MCP服务&lt;/h5&gt;
&lt;p&gt;在lobe-chat中打开添加自定义插件界面 可以选择快速导入JSON配置，就是上面服务启动后给出的客户端配置：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-json"&gt;{
 "mcpServers": {
 "playwright": {
 "url": "http://192.168.0.40:8931/mcp"
 }
 }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;导入后，点击测试，右侧会显示这个mcp服务提供的api列表，后面大模型会直接调用api来来访问你部署的mcp服务。&lt;/p&gt;
&lt;img alt="3f9e88f25dfaa3d4d93dd22537f46aee.png" height="373" src="https://img.lategege.com:30443/images/2025/09/30/5d87daab92d7.png" width="812"/&gt;
&lt;p&gt; 
下面在插件中启动你的插件&lt;/p&gt;
&lt;img alt="dffd93b1461abccab37c05b4f09933fb.png" height="422" src="https://img.lategege.com:30443/images/2025/09/30/781978e2fa32.png" width="428"/&gt;
&lt;h5&gt;三、使用MCP&lt;/h5&gt;
&lt;p&gt;在聊天框中和ai对话，让它调用mcp，当然模型要选择有函数调用能力的，我这里选择了硅基流动的DeepSeek-V3.1模型&lt;/p&gt;
&lt;p&gt;我向大模型发送了下面这句话：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;使用mcp帮我打开https://zh.1lib.sk/ ，搜索一本小说，小说名称仙逆，帮我下载一本，保存在mcp服务器即可不需要传过来&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;我看到大模型打开了我的浏览器，访问了https://zh.1lib.sk/&lt;/p&gt;
&lt;p&gt; &lt;img alt="12.png" height="544" src="https://img.lategege.com:30443/images/2025/09/30/6a29974f3bcf.png" width="837"/&gt;&lt;/p&gt;
&lt;p&gt;接着它执行了搜索，找到了仙逆这本小说
 &lt;img alt="122.png" height="505" src="https://img.lategege.com:30443/images/2025/09/30/bf5051729d75.png" width="841"/&gt;&lt;/p&gt;
&lt;p&gt;不过由于我限额用完了，下载没能完成，但不可思议的事情发生了&lt;/p&gt;
&lt;p&gt; &lt;img alt="221.png" height="498" src="https://img.lategege.com:30443/images/2025/09/30/11a39280421a.png" width="843"/&gt;&lt;/p&gt;
&lt;p&gt;它居然要尝试创建账户，或使用其他下载方式，此时token已经消耗了10万，我立马终止了测试。 &lt;/p&gt;
&lt;img alt="344.png" height="195" src="https://img.lategege.com:30443/images/2025/09/30/98d33629f492.png" width="861"/&gt;
&lt;p&gt; 
这种网站操作的mcp服务对token的消耗是巨大的，一个不小心，你的api的余额就见底了，所以谨慎使用，除非你本地部署的模型，这样可以肆无忌惮的使用了。&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;最后，你可以部署任何你自己想要的mcp服务，通过lobe-chat的调用能力来实现你自己的需求。&lt;/p&gt;</description></item><item><title>lobe-chat-database数据库版最新本地部署指南(含知识库)</title><link>https://lategege.com/p/lobe-chat-database%E6%95%B0%E6%8D%AE%E5%BA%93%E7%89%88%E6%9C%80%E6%96%B0%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97-%E5%90%AB%E7%9F%A5%E8%AF%86%E5%BA%93/</link><pubDate>Tue, 30 Sep 2025 02:40:24 +0000</pubDate><guid>https://lategege.com/p/lobe-chat-database%E6%95%B0%E6%8D%AE%E5%BA%93%E7%89%88%E6%9C%80%E6%96%B0%E6%9C%AC%E5%9C%B0%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97-%E5%90%AB%E7%9F%A5%E8%AF%86%E5%BA%93/</guid><description>&lt;p&gt;参考官方教程：&lt;a href="https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose"&gt;使用 Docker Compose 部署 LobeChat 服务端数据库版本&lt;/a&gt;&lt;/p&gt;
&lt;h6&gt;一、在一台支持bash环境的机器上执行，需要安装好curl&lt;/h6&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;bash &amp;lt;(curl -fsSL https://lobe.li/setup.sh) -l zh_CN&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;它首先会下载四个文件，分别是&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;#环境变量文件, 用于docker容器
.env
#casdoor鉴权服务配置
init_data.json
#docker核心配置脚本
docker-compose.yml
#搜索服务配置文
searxng-settings.yml&lt;/code&gt;&lt;/pre&gt;
&lt;img alt="1.png" class="jop-noMdConv" height="518" src="https://img.lategege.com:30443/images/2025/09/30/c5e59e2c3c11.png" width="562"/&gt;
&lt;p&gt;执行过程中它会提示选择哪种模式，我们选择最正式的模式，也就是域名模式，重新生成密钥和数据库默认都是y，接着输入三个域名:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;https://lobe.mydomain.com:9443 用于访问lobe-chat
https://casdoor.mydomain.com:9443 用于访问casdoor鉴权服务
https://minio.mydomain.com:9443 用于访问minio对象存储&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这里根据自己购买的域名进行修改，如果你部署的目标是vps等云主机，那你可以不加端口号，采用默认的443端口，如果你是部署在家庭网络那还是带上端口号，因为宽带封443端口，家庭公网ip无法通过443来访问。&lt;/p&gt;
&lt;h6&gt;二、配置域名反代和DNS服务&lt;/h6&gt;
&lt;p&gt;你可以使用你的反向代理服务（如NginxProxyManager,Lucky,雷池Waf、群晖、宝塔、飞牛等） 配好域名证书，协议:https，监听9443(根据上面你填入的端口来)&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;lobe.mydomain.com --&amp;gt; http://你实际部署主机IP:3210
casdoor.mydomain.com --&amp;gt; http://你实际部署主机IP:8000
minio.mydomain.com --&amp;gt; http://你实际部署主机IP:9000&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;局域网中DNS服务或者本机Host配置(没有购买域名或者想要访问提速的情况)：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;lobe.mydomain.com 反向代理主机IP
casdoor.mydomain.com 反向代理主机IP
minio.mydomain.com 反向代理主机IP&lt;/code&gt;&lt;/pre&gt;
&lt;h6&gt;三、修改配置生成的文件&lt;/h6&gt;
&lt;p&gt;为了支持lobe-chat使用知识库，其中一个很关键的服务是向量数据分块，而这个服务lobe-chat官方默认调用的是openai的模型，国内使用openai非常麻烦，并且模型收费，国内的替代方案是使用硅基流动的免费模型bge-m3(又快又好)。当然最佳方案是本地化部署ollama，使用ollama来调用bge-m3模型(在你有gpu服务器的情况下可以选择)。&lt;/p&gt;
&lt;p&gt;我这里选择硅基流动提供的模型，&lt;a href="https://siliconflow.cn/"&gt;https://siliconflow.cn/&lt;/a&gt; 注册账号—&amp;gt;API密钥—&amp;gt;新建API密钥-----&amp;gt;复制密钥 sk开头&lt;/p&gt;
&lt;p&gt;修改.env文件&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;#先删掉没用的注释并新增
#配置上面注册的硅基流动API密钥
SILICONCLOUD_API_KEY=sk-xxxxxxxxxxxxxxxxxxx
#固定API地址
SILICONCLOUD_PROXY_URL=https://api.siliconflow.cn/v1/
#配置默认的嵌入向量模型
DEFAULT_FILES_CONFIG=embedding_model=siliconcloud/BAAI/bge-m3
&lt;p&gt;#如果是自己部署ollama，按下面配置
#ENABLED_OLLAMA=1&lt;br&gt;
#OLLAMA_PROXY_URL=自建的服务地址
#DEFAULT_FILES_CONFIG=embedding_model=ollama/BAAI/bge-m3
#&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-下面不用改&lt;/p&gt;
&lt;p&gt;LOBE_PORT=3210
CASDOOR_PORT=8000
MINIO_PORT=9000
APP_URL=https://https://lobe.mydomain.com:9443
AUTH_URL=https://https://lobe.mydomain.com:9443/api/auth&lt;/p&gt;
&lt;h1 id="postgres-相关也即-db-必须的环境变量"&gt;Postgres 相关，也即 DB 必须的环境变量
&lt;/h1&gt;&lt;p&gt;LOBE_DB_NAME=lobechat
POSTGRES_PASSWORD=uWNZugjBqixf8dxC&lt;/p&gt;
&lt;p&gt;AUTH_CASDOOR_ISSUER=https://casdoor.mydomain.com:9443&lt;/p&gt;
&lt;h1 id="casdoor-secret"&gt;Casdoor secret
&lt;/h1&gt;&lt;p&gt;AUTH_CASDOOR_ID=a387a4892ee19b1a2249
AUTH_CASDOOR_SECRET=3dc06e2a73ff2ddcb2fd59e3d4392a67
CASDOOR_WEBHOOK_SECRET=casdoor-secret&lt;/p&gt;
&lt;h1 id="minio-s3-配置"&gt;MinIO S3 配置
&lt;/h1&gt;&lt;p&gt;MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=b5cea6ea&lt;/p&gt;
&lt;h1 id="在下方配置-minio-中添加的桶"&gt;在下方配置 minio 中添加的桶
&lt;/h1&gt;&lt;p&gt;S3_PUBLIC_DOMAIN=https://https://minio.mydomain.com:9443
S3_ENDPOINT=https://https://minio.mydomain.com:9443
MINIO_LOBE_BUCKET=lobe&lt;/p&gt;
&lt;h1 id="为-casdoor-配置"&gt;为 casdoor 配置
&lt;/h1&gt;&lt;p&gt;origin=https://casdoor.mydomain.com:9443&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;修改docker-compose.yml&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;###这里把日志搜集、看板服务都删了，没什么用
name: lobe-chat-database
services:
 network-service:
 image: alpine
 container_name: lobe-network
 restart: always
 ports:
 - '${MINIO_PORT}:${MINIO_PORT}' # MinIO API
 - '9001:9001' # MinIO Console
 - '${CASDOOR_PORT}:${CASDOOR_PORT}' # Casdoor
 - '${LOBE_PORT}:3210' # LobeChat
 command: tail -f /dev/null
 networks:
 - lobe-network
 postgresql:
 image: pgvector/pgvector:pg17
 container_name: lobe-postgres
 ports:
 - '5432:5432'
 volumes:
 - './data:/var/lib/postgresql/data'
 environment:
 - 'POSTGRES_DB=${LOBE_DB_NAME}'
 - 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD}'
 healthcheck:
 test: ['CMD-SHELL', 'pg_isready -U postgres']
 interval: 5s
 timeout: 5s
 retries: 5
 restart: always
 networks:
 - lobe-network
 minio:
 image: minio/minio:RELEASE.2025-04-22T22-12-26Z
 container_name: lobe-minio
 network_mode: 'service:network-service'
 volumes:
 - './s3_data:/etc/minio/data'
 environment:
 - 'MINIO_API_CORS_ALLOW_ORIGIN=*'
 env_file:
 - .env
 restart: always
 entrypoint: &amp;gt;
 /bin/sh -c "
 minio server /etc/minio/data --address ':${MINIO_PORT}' --console-address ':9001' &amp;amp;
 MINIO_PID=\$!
 while ! curl -s http://localhost:${MINIO_PORT}/minio/health/live; do
 echo 'Waiting for MinIO to start...'
 sleep 1
 done
 sleep 5
 mc alias set myminio http://localhost:${MINIO_PORT} ${MINIO_ROOT_USER} ${MINIO_ROOT_PASSWORD}
 echo 'Creating bucket ${MINIO_LOBE_BUCKET}'
 mc mb myminio/${MINIO_LOBE_BUCKET}
 wait \$MINIO_PID
 "
 casdoor:
 image: casbin/casdoor:v2.13.0
 container_name: lobe-casdoor
 entrypoint: /bin/sh -c './server --createDatabase=true'
 network_mode: 'service:network-service'
 depends_on:
 postgresql:
 condition: service_healthy
 environment:
 httpport: ${CASDOOR_PORT}
 RUNNING_IN_DOCKER: 'true'
 driverName: 'postgres'
 dataSourceName: 'user=postgres password=${POSTGRES_PASSWORD} host=postgresql port=5432 sslmode=disable dbname=casdoor'
 runmode: 'dev'
 volumes:
 - ./init_data.json:/init_data.json
 env_file:
 - .env
 searxng:
 image: searxng/searxng
 container_name: lobe-searxng
 volumes:
 - './searxng-settings.yml:/etc/searxng/settings.yml'
 environment:
 - 'SEARXNG_SETTINGS_FILE=/etc/searxng/settings.yml'
 restart: always
 networks:
 - lobe-network
 env_file:
 - .env
 lobe:
 image: lobehub/lobe-chat-database
 container_name: lobe-chat
 network_mode: 'service:network-service'
 depends_on:
 postgresql:
 condition: service_healthy
 network-service:
 condition: service_started
 minio:
 condition: service_started
 casdoor:
 condition: service_started
 environment:
 - 'NEXT_AUTH_SSO_PROVIDERS=casdoor'
 - 'KEY_VAULTS_SECRET=Kix2wcUONd4CX51E/ZPAd36BqM4wzJgKjPtz2sGztqQ='
 - 'NEXT_AUTH_SECRET=NX2kaPE923dt6BL2U8e9oSre5RfoT7hg'
 - 'DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgresql:5432/${LOBE_DB_NAME}'
 - 'S3_BUCKET=${MINIO_LOBE_BUCKET}'
 - 'S3_ENABLE_PATH_STYLE=1'
 - 'S3_ACCESS_KEY=${MINIO_ROOT_USER}'
 - 'S3_ACCESS_KEY_ID=${MINIO_ROOT_USER}'
 - 'S3_SECRET_ACCESS_KEY=${MINIO_ROOT_PASSWORD}'
 - 'LLM_VISION_IMAGE_USE_BASE64=1'
 - 'S3_SET_ACL=0'
 - 'SEARXNG_URL=http://searxng:8080'
 env_file:
 - .env
 restart: always
 entrypoint: &amp;gt;
 /bin/sh -c "
 /bin/node /app/startServer.js &amp;amp;
 LOBE_PID=\$!
 sleep 3
 if [ $(wget --timeout=5 --spider --server-response ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2&amp;gt;&amp;amp;1 | grep -c 'HTTP/1.1 200 OK') -eq 0 ]; then
 echo '⚠️Warning: Unable to fetch OIDC configuration from Casdoor'
 echo 'Request URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration'
 echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration'
 echo ''
 echo '⚠️注意：无法从 Casdoor 获取 OIDC 配置'
 echo '请求 URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration'
 echo '了解更多：https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration'
 echo ''
 else
 if ! wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2&amp;gt;&amp;amp;1 | grep 'issuer' | grep ${AUTH_CASDOOR_ISSUER}; then
 printf '❌Error: The Auth issuer is conflict, Issuer in OIDC configuration is: %s' \$(wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2&amp;gt;&amp;amp;1 | grep -E 'issuer.*' | awk -F '\"' '{print \$4}')
 echo ' , but the issuer in .env file is: ${AUTH_CASDOOR_ISSUER} '
 echo 'Request URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration'
 echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration'
 echo ''
 printf '❌错误：Auth 的 issuer 冲突，OIDC 配置中的 issuer 是：%s' \$(wget -O - --timeout=5 ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration 2&amp;gt;&amp;amp;1 | grep -E 'issuer.*' | awk -F '\"' '{print \$4}')
 echo ' , 但 .env 文件中的 issuer 是：${AUTH_CASDOOR_ISSUER} '
 echo '请求 URL: ${AUTH_CASDOOR_ISSUER}/.well-known/openid-configuration'
 echo '了解更多：https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration'
 echo ''
 fi
 fi
 if [ $(wget --timeout=5 --spider --server-response ${S3_ENDPOINT}/minio/health/live 2&amp;gt;&amp;amp;1 | grep -c 'HTTP/1.1 200 OK') -eq 0 ]; then
 echo '⚠️Warning: Unable to fetch MinIO health status'
 echo 'Request URL: ${S3_ENDPOINT}/minio/health/live'
 echo 'Read more at: https://lobehub.com/docs/self-hosting/server-database/docker-compose#necessary-configuration'
 echo ''
 echo '⚠️注意：无法获取 MinIO 健康状态'
 echo '请求 URL: ${S3_ENDPOINT}/minio/health/live'
 echo '了解更多：https://lobehub.com/zh/docs/self-hosting/server-database/docker-compose#necessary-configuration'
 echo ''
 fi
 wait \$LOBE_PID
 "
volumes:
 data:
 driver: local
 s3_data:
 driver: local
networks:
 lobe-network:
 driver: bridge&lt;/code&gt;&lt;/pre&gt;
&lt;h6&gt;四、正式部署&lt;/h6&gt;
&lt;p&gt;下面以群晖7.2 docker为例来部署，其他系统下大同小异。&lt;/p&gt;
&lt;p&gt;1、在docker目录下新建lobe文件夹，在其中创建data、s3_data目录&lt;/p&gt;
&lt;p&gt;2、将上面四个文件都上传上来，得到的目录文件如下图。&lt;/p&gt;
&lt;img alt="c4f5ae13485d3a556efab5a922b6c1e8.png" class="jop-noMdConv" height="329" src="https://img.lategege.com:30443/images/2025/09/30/12a25c2d191a.png" width="345"/&gt;
&lt;p&gt;3、打开Container Manager 新建项目名:lobe-chat 随意，路径 /docker/lobe,使用现有compose 4、一直下一步，等待构建完成。&lt;/p&gt;
&lt;h6&gt;五、实测&lt;/h6&gt;
&lt;p&gt;登录：&lt;a href="https://lobe.mydomain.com:9443"&gt;https://lobe.mydomain.com:9443&lt;/a&gt; 会提示登录，使用你第一步中获得的lobe账号密码登录。&lt;/p&gt;
&lt;img alt="291ecb70a8f7a125ce11e836036aeb87.png" class="jop-noMdConv" height="405" src="https://img.lategege.com:30443/images/2025/09/30/60f07f3f6ccc.png" width="398"/&gt;
&lt;p&gt;点击左上角的图像点应用设置，正常来说就能看到SiliconCloud（硅基流动）已经是可用状态，你可以在右边窗口挑选一些模型来测试，尽量选一些免费的吧(后面带free的)。&lt;/p&gt;
&lt;img alt="2.png" class="jop-noMdConv" height="235" src="https://img.lategege.com:30443/images/2025/09/30/7d5215942501.png" width="585"/&gt;
&lt;p&gt;测试下对话聊天&lt;/p&gt;
&lt;img alt="f19d32b259765e24278b05ed7bc23867.png" class="jop-noMdConv" height="223" src="https://img.lategege.com:30443/images/2025/09/30/0fca46da4b99.png" width="589"/&gt;
&lt;p&gt;测试知识库 在左侧选择文件，下面添加知识库，名称自己随意，我就随便上传一份文档来测试。&lt;/p&gt;
&lt;img alt="283782f487d9ff26652bb98ec6500a99.png" class="jop-noMdConv" height="67" src="https://img.lategege.com:30443/images/2025/09/30/bd418732f23e.png" width="595"/&gt;
&lt;p&gt;上传上去后点击分块，SiliconCloud的bge-m3模型会执行文件向量化并保存到向量数据库pgvector中&lt;/p&gt;
&lt;img alt="323803bef3d595e206af1b06ec0527c0.png" class="jop-noMdConv" height="563" src="https://img.lategege.com:30443/images/2025/09/30/dfd8fd2e802e.png" width="599"/&gt;
&lt;p&gt; 
先打开知识库选项然后提问，模型就会自动分析文档给出答案。&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;补充：&lt;/p&gt;
&lt;p&gt;如果容器已经启动，你要修改.env文件，你需要把容器都删除，然后重新构建才能生效。&lt;/p&gt;
&lt;p&gt;lobechat依赖的主要服务:&lt;/p&gt;
&lt;p&gt;pgvector/pgvector:pg17 保存登录信息、lobe配置信息、文档的向量数据等&lt;/p&gt;
&lt;p&gt;minio/minio:RELEASE.2025-04-22T22-12-26Z 保存上传的文件&lt;/p&gt;
&lt;p&gt;casbin/casdoor:v2.13.0 权限认证&lt;/p&gt;
&lt;p&gt;searxng/searxng 联网搜索，在聊天对话中可以开启联网搜索&lt;/p&gt;
&lt;p&gt;minio官方选择RELEASE.2025-04-22T22-12-26Z这个版本的原因是，新版本的web界面删除了创建密钥等核心功能，所以对象存储我没有使用它，我实际使用的是之前部署的rustfs，lobechat完全支持兼容s3的对象存储。&lt;/p&gt;
&lt;p&gt;casdoor 这项目谈不上好坏，只能说很杂，对lobechat来说，实现完整用户系统太重了，不得已选择其他sso产品来实现多用户登录，其实casdoor只用在本地lobechat上来说有点重了。&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;下面列出官方依赖服务的支持文档&lt;/p&gt;
&lt;p&gt;对象存储支持列表  &lt;a href="https://lobehub.com/zh/docs/self-hosting/advanced/s3"&gt;https://lobehub.com/zh/docs/self-hosting/advanced/s3&lt;/a&gt;    &lt;a href="https://lobehub.com/zh/docs/self-hosting/environment-variables/s3"&gt;https://lobehub.com/zh/docs/self-hosting/environment-variables/s3&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;鉴权服务支持列表  &lt;a href="https://lobehub.com/zh/docs/self-hosting/advanced/auth"&gt;https://lobehub.com/zh/docs/self-hosting/advanced/auth&lt;/a&gt;  &lt;a href="https://lobehub.com/zh/docs/self-hosting/environment-variables/auth"&gt;https://lobehub.com/zh/docs/self-hosting/environment-variables/auth&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;联网搜索服务支持列表  &lt;a href="https://lobehub.com/zh/docs/self-hosting/advanced/online-search"&gt;https://lobehub.com/zh/docs/self-hosting/advanced/online-search&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;模型服务商 &lt;a href="https://lobehub.com/zh/docs/self-hosting/environment-variables/model-provider"&gt;https://lobehub.com/zh/docs/self-hosting/environment-variables/model-provider&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;基础变量 &lt;a href="https://lobehub.com/zh/docs/self-hosting/environment-variables/basic"&gt;https://lobehub.com/zh/docs/self-hosting/environment-variables/basic&lt;/a&gt;&lt;/p&gt;</description></item><item><title>sameersbn/gitlab docker升级至18.0(迁移postgresql14到16）</title><link>https://lategege.com/p/sameersbn-gitlab-docker%E5%8D%87%E7%BA%A7%E8%87%B318-0-%E8%BF%81%E7%A7%BBpostgresql14%E5%88%B016/</link><pubDate>Fri, 23 May 2025 13:57:03 +0000</pubDate><guid>https://lategege.com/p/sameersbn-gitlab-docker%E5%8D%87%E7%BA%A7%E8%87%B318-0-%E8%BF%81%E7%A7%BBpostgresql14%E5%88%B016/</guid><description>&lt;p&gt;sameersbn/gitlab目前已经升级至18.0，从17升至18需要升级postgresql,我原来的版本是14,需要升级到16，当然不升也能用，但是会有提示让你升级到16.试过直接更换docker postgresql版本为16，会报错，以下方法适用于任何版本的postgresql升级。&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;第一步先开一个16的docker容器
docker run -v 你的postgresql16的目录(空目录即可):/var/lib/postgresql:Z --restart always -e DB_USER=用户名 -e DB_PASS=密码 -e DB_NAME=数据库名称 -e DB_EXTENSION=pg_trgm,btree_gist kkimurak/sameersbn-postgresql:16
&lt;p&gt;第二步创建postgresql14容器，映射目录指向14的数据目录
docker run -v 你的postgresql14的目录:/var/lib/postgresql:Z &amp;ndash;restart always -e DB_USER=用户名 -e DB_PASS=密码 -e DB_NAME=数据库名称 -e DB_EXTENSION=pg_trgm,btree_gist sameersbn/postgresql:14&lt;/p&gt;
&lt;p&gt;第三步备份原来的14数据库成sql语句
docker exec -e PGPASSWORD=密码 -t postgresql14的容器名 pg_dump -U 用户名 -d 数据库名称 &amp;gt; backup.sql&lt;/p&gt;
&lt;p&gt;第四步把14备份出来的sql导入16的容器
docker cp backup.sql postgresql16的容器名/backup.sql&lt;/p&gt;
&lt;p&gt;第五步执行恢复数据
docker exec -e PGPASSWORD=密码 -i postgresql16的容器名 psql -U 用户名 -d 数据库名称 -f /backup.sql&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;最后docker compose gitlab就可以使用新生成的16数据开启容器了。&lt;/p&gt;</description></item><item><title>docker nexus 从3.6X.X 到3.78.2 升级迁移指南</title><link>https://lategege.com/p/docker-nexus-%E4%BB%8E3-6x-x-%E5%88%B03-78-2-%E5%8D%87%E7%BA%A7%E8%BF%81%E7%A7%BB%E6%8C%87%E5%8D%97/</link><pubDate>Wed, 26 Mar 2025 17:19:46 +0000</pubDate><guid>https://lategege.com/p/docker-nexus-%E4%BB%8E3-6x-x-%E5%88%B03-78-2-%E5%8D%87%E7%BA%A7%E8%BF%81%E7%A7%BB%E6%8C%87%E5%8D%97/</guid><description>&lt;p&gt;一、nexus 自 3.70.0 以上版本不再支持传统的OrientDB 数据库，必须使用H2或者PostgreSQL数据库，个人用户建议使用轻量级的H2,所以要从3.XX升级到最新的3.78.2，必须迁移旧的数据库，迁移过程其实很简单，尤其是对于docker部署的nexus来说。&lt;/p&gt;
&lt;p&gt;二、迁移过程分为以下几步：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;备份原来的nexus容器数据&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#路径根据自己容器映射地址来
cp -r /mnt/nexus/data /mnt/nexus/data.bak&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;先升级至3.70.0,此版本既支持OrientDB也支持H2数据库，是我们升级至最新版本的过度版本，只有这个版本下才有对应的迁移工具包能够使用,这一步直接拉取docker镜像然后重新根据之前配置启动容器即可。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo docker pull sonatype/nexus3:3.70.0
#停止原来的nexus容器并删除，启动新镜像容器，这一步(参数因人而异)，下面只做参考
sudo docker stop nexus3
sudo docker rm nexus3
sudo docker run -d --restart=always -p 8081:8081 --name nexus3 -v /data:/nexus-data sonatype/nexus3:3.70.0&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;nexus 3.70.0容器启动后，先导出原来的数据文件，然后下载&lt;a href="https://download.sonatype.com/nexus/nxrm3-migrator/nexus-db-migrator-3.70.4-02.jar" title="迁移工具"&gt;迁移工具&lt;/a&gt;按照官方文档进行备份和迁移。
此过程官方有完整的操作文档 &lt;a href="https://help.sonatype.com/en/migrating-to-a-new-database.html#migrating-from-orientdb-to-h2-162010"&gt;https://help.sonatype.com/en/migrating-to-a-new-database.html#migrating-from-orientdb-to-h2-162010&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;接下来重启nexus 3.70.0这个容器看是否正常，如果一切正常，说明已切换为H2数据库，docker直接升级至最新版即可。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo docker pull sonatype/nexus3:3.78.2-java17-alpine
#停止原来的nexus容器并删除，启动新镜像容器，这一步(参数因人而异)，下面只做参考
sudo docker stop nexus3
sudo docker rm nexus3
sudo docker run -d --restart=always -p 8081:8081 --name nexus3 -v /data:/nexus-data sonatype/nexus3:3.78.2-java17-alpine&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;最新版本可能会出现一个黄色警告，需要添加自定义密钥文件,添加方式官方文档https://help.sonatype.com/en/re-encryption-in-nexus-repository.html，
文档中最后一步re-encrypt按照下面第六步操作即可。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;## nexus Nexus was not configured with an encryption key and is using the Default key.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在配置文件和环境变量中添加任选其一即可！然后重启容器。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;最后登录后台通过API重置下密钥，如下图,secretKeyId就是你上面定义的json文件中的id，点击请求警告就消除了。&lt;/p&gt;
&lt;img height="400" src="https://img.lategege.com:30443/images/2025/03/27/81666c6cf22d.png" width="537.6"/&gt;
&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>npm npx cnpm yarn pnpm nodejs包管理乱局</title><link>https://lategege.com/p/npm-npx-cnpm-yarn-pnpm-nodejs%E5%8C%85%E7%AE%A1%E7%90%86%E4%B9%B1%E5%B1%80/</link><pubDate>Sun, 07 Apr 2024 10:50:53 +0000</pubDate><guid>https://lategege.com/p/npm-npx-cnpm-yarn-pnpm-nodejs%E5%8C%85%E7%AE%A1%E7%90%86%E4%B9%B1%E5%B1%80/</guid><description>&lt;p&gt;对于前端项目如vue、react大多由nodejs环境来构建编译，事实上，nodejs做的事就是将vue、react代码翻译成html,css,js，浏览器最终也只能运行html,css,js，随着nodejs版本的演进，包管理可谓是一团乱麻。作为一名资深工程师，有时候避免不了跑跑前端开源项目，但是一直非常困惑，这个项目用npm,另一个项目用yarm，别的又用了其他，这尼玛变来变去，花样太多了，我觉得本质上就是一开始包管理器没有设计好，java有maven、gradle ，python 有 pip，go 有mod，rust 有cargo,从没听说包管理器名字都换了- -！&lt;/p&gt;
&lt;p&gt;面对这乱局，偶尔会接触前端项目的我，也只能水一篇文章了，也方便后期查阅，因为实在记不住~&lt;/p&gt;
&lt;p&gt;npm: nodejs官方包管理器,默认从官网下载https://www.npmjs.org/
npx: nodejs 执行器，本质就是npm run,执行方便而已
cnpm: 本质和npm一样，只是包会从国内仓库下载
yarn:相对于npm有性能优化，包管理扁平化，而不是嵌套依赖。
pnpm:更进一步的磁盘占用优化，通过软硬连接管理，同时会有差分管理，下载更新速度快，节省磁盘空间。&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;特征/工具&lt;/th&gt;
&lt;th&gt;npm&lt;/th&gt;
&lt;th&gt;Yarn&lt;/th&gt;
&lt;th&gt;cnpm&lt;/th&gt;
&lt;th&gt;pnpm&lt;/th&gt;
&lt;th&gt;npx&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;时间&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;td&gt;2016&lt;/td&gt;
&lt;td&gt;未知&lt;/td&gt;
&lt;td&gt;2016&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;特点&lt;/td&gt;
&lt;td&gt;Node.js的官方包管理器，广泛使用。支持大量包和版本，易于入门。&lt;/td&gt;
&lt;td&gt;由Facebook开发，注重速度和包的稳定安全。使用锁文件确保依赖一致性。&lt;/td&gt;
&lt;td&gt;针对中国开发者的npm镜像，提高在中国大陆地区的访问速度和安装效率。&lt;/td&gt;
&lt;td&gt;侧重于性能和空间节省，通过硬链接和符号链接来重用包，减少冗余。&lt;/td&gt;
&lt;td&gt;npm的包运行器，允许直接执行npm仓库中的包而不需要全局安装。&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;性能对比&lt;/td&gt;
&lt;td&gt;标准基准，较慢&lt;/td&gt;
&lt;td&gt;相对更快，通过并行下载和更好的缓存管理优化性能&lt;/td&gt;
&lt;td&gt;依赖于npm，性能提升主要来源于镜像的使用&lt;/td&gt;
&lt;td&gt;在多项目中重用包，节省空间和安装时间，性能优异&lt;/td&gt;
&lt;td&gt;适用于执行单次任务，避免全局安装，性能取决于npm&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;使用说明/工具&lt;/th&gt;
&lt;th&gt;npm&lt;/th&gt;
&lt;th&gt;Yarn&lt;/th&gt;
&lt;th&gt;cnpm&lt;/th&gt;
&lt;th&gt;pnpm&lt;/th&gt;
&lt;th&gt;npx&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;安装包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm install package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn add package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm install package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm add package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;安装特定版本包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm install package_name@version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn add package_name@version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm install package_name@version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm add package_name@version&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;全局安装包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm install -g package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn global add package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm install -g package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm add -g package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;更新包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm update package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn upgrade package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm update package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm update package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;卸载包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm uninstall package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn remove package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm uninstall package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm remove package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;列出已安装包&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm list&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;运行脚本&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm run script_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn run script_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm run script_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm run script_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npx script_name&lt;/code&gt; (执行项目中或远程的npm包命令)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;创建项目&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm init&lt;/code&gt; 或 &lt;code&gt;npm init project_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn init&lt;/code&gt; 或 &lt;code&gt;yarn create project_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm init&lt;/code&gt; 或 &lt;code&gt;cnpm init project_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm init&lt;/code&gt; 或 &lt;code&gt;pnpm create project_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;查看包信息&lt;/td&gt;
&lt;td&gt;&lt;code&gt;npm view package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;yarn info package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;cnpm view package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;pnpm info package_name&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;官方文档：
npm: &lt;a href="https://docs.npmjs.com/"&gt;https://docs.npmjs.com/&lt;/a&gt;
Yarn: ttps://classic.yarnpkg.com/en/docs
cnpm: 和npm一致
pnpm: &lt;a href="https://pnpm.io/"&gt;https://pnpm.io/&lt;/a&gt;
npx: npm文档中包含npx使用说明&lt;/p&gt;</description></item><item><title>android 闲置手机如何变废为宝(云手机服务器)</title><link>https://lategege.com/p/android-%E9%97%B2%E7%BD%AE%E6%89%8B%E6%9C%BA%E5%A6%82%E4%BD%95%E5%8F%98%E5%BA%9F%E4%B8%BA%E5%AE%9D-%E4%BA%91%E6%89%8B%E6%9C%BA%E6%9C%8D%E5%8A%A1%E5%99%A8/</link><pubDate>Sat, 06 Apr 2024 14:26:47 +0000</pubDate><guid>https://lategege.com/p/android-%E9%97%B2%E7%BD%AE%E6%89%8B%E6%9C%BA%E5%A6%82%E4%BD%95%E5%8F%98%E5%BA%9F%E4%B8%BA%E5%AE%9D-%E4%BA%91%E6%89%8B%E6%9C%BA%E6%9C%8D%E5%8A%A1%E5%99%A8/</guid><description>&lt;p&gt;闲置android手机尤其是具备root权限的手机作为一台服务器是比较不错的选择。&lt;/p&gt;
&lt;p&gt;既然是云手机服务器，那就要解决两个核心痛点。&lt;/p&gt;
&lt;p&gt;一、电池问题，作为服务器，长时间充电是不可取的，虽然现在手机都有过冲保护，但随着手机电量不断消耗，手机还是会在不停的充电，电池要不了多久就会废掉，那拆除电池可行吗？可行是可行，成本太高，费时费力，那有没有别的方法，经过亲自实验，最佳的方法是使用智能插座，而不是安装magisk模块来控制，我装过很多控制充电的模块，效果都不理想，根本无法有效阻断冲断电，可能是兼容性不佳。利用一个智能插座设置定时开关合理安排手机充电和断电，每天设定固定时间段即可，和自己使用手机充电没什么区别，这种方法最简单有效。&lt;/p&gt;
&lt;p&gt;二、远程控制问题，作为服务器，不可能还拿着个屏幕去操作，肯定是要远程操作，局域网互联是必须的，广域网的话有公网ip，只要端口映射即可。我实践过rustdesk，效果不理想，远控流畅度不行，流畅性最佳的是android 的scrcpy 投屏，在电脑上连接，延迟就跟玩触屏似的，不建议使用任何第三方远控软件，一是不安全，二是流畅性不行。scrcpy在android11以后能支持声音的，所以很完美。但是scrcpy是建立在adb 的基础上的，难道手机还要usb插电脑上？肯定不是，我们使用无线adb即可。但是问题又来了，无线adb 需要adb 执行一条指定端口的命令。每次重启后就失效了，人在外面的话发生重启的话就失去连接了，必须要开机 让他执行，如果手机已经root装上了面具magisk，那这事就会非常容易。
只要在/data/adb/post-fs-data.d 新建一个脚本 adb-net.sh,内容如下:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;stop adbd
setprop service.adb.tcp.port 5555&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你是LG手机，可以参考我的这篇来开启root安装magisk，其他手机其实也差不多
&lt;a href="https://lategege.com/p/android-抓包系列一-开启root/" title="android 抓包系列一(开启root)"&gt;android 抓包系列一(开启root)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;进入/data/adb/post-fs-data.d 目录 赋予权限chmod +xr ./adb-net.sh
那么开机就会设置adb 端口，我们通过adb connect 手机ip:5555 就能连接手机，接着执行scrcpy就能投屏到电脑上
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/ce87526f0a77.png"/&gt;&lt;/p&gt;
&lt;p&gt;三、解决完电脑控制手机，手机怎么控制手机，还好有一个开源项目叫&lt;a href="https://gitlab.com/las2mile/scrcpy-android/raw/master/release/scrcpy-release.apk" title="scrcpy-android"&gt;scrcpy-android&lt;/a&gt;
安装它，打开输入要控制手机的ip地址即可，虽然没有电脑端那么流畅，但是也够用，比起其他android端控制软件好太多了。
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/bbd25d6d2643.png"/&gt;&lt;/p&gt;
&lt;p&gt;四、如果要在外网控制家里的手机，你需要把手机的5555端口映射出去，比如ikuai路由就去网络设置--&amp;gt;端口映射中去添加，添加完成后外网访问和内网只是ip要换成你公网ip的地址，其他都一样，如果你的家庭宽带没有公网ip，又想在外网访问，你可以尝试使用手机的ipv6地址或者借助一些内网穿透软件来实现。&lt;/p&gt;
&lt;p&gt;五、解决完上面这些问题，还有个问题是有些应用在投屏的时候会检测出来，给你展示一个黑屏，比如一些敏感的二维码信息，如支付宝的付款码，paypal的二维码等等，如果看不到这些信息，那就不完美了，在android 10以前是没问题的，之后就加入了录屏、投屏的安全检测机制，这时候需要关闭这个机制才行。在LXPOSED中有这么一个模块，下载地址：&lt;a href="https://github.com/Xposed-Modules-Repo/com.varuns2002.disable_flag_secure/releases"&gt;https://github.com/Xposed-Modules-Repo/com.varuns2002.disable_flag_secure/releases&lt;/a&gt;，
安装重启就可以解决这个问题，前提是已经安装了Magisk和LXPOSED,没有安装的可以参考我的这篇文章：
&lt;a href="https://lategege.com/p/android-抓包系列二-安装magisk模块隐藏root/" title="android 抓包系列二(安装magisk模块隐藏root)"&gt;android 抓包系列二(安装magisk模块隐藏root)&lt;/a&gt;&lt;/p&gt;</description></item><item><title>android 抓包系列五(过代理检测)</title><link>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E4%BA%94-%E8%BF%87%E4%BB%A3%E7%90%86%E6%A3%80%E6%B5%8B/</link><pubDate>Sat, 06 Apr 2024 13:43:57 +0000</pubDate><guid>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E4%BA%94-%E8%BF%87%E4%BB%A3%E7%90%86%E6%A3%80%E6%B5%8B/</guid><description>&lt;p&gt;如果还未过证书锁定，可以参考前篇 &lt;a href="https://lategege.com/p/android-抓包系列四-过证书锁定ssl-pinning/" title="android 抓包系列四(过证书锁定SSL Pinning)"&gt;android 抓包系列四(过证书锁定SSL Pinning)&lt;/a&gt;
有些应用会检测系统是否设置了代理，如果设置就不让使用，还有些如flutter项目压根不经过代理，除非自己设置，像这些应用的包是抓取不到的，针对这种问题需要过代理检测，那只能使用vpn，通过vpn将数据转发出去，这里通过 clash meta来解决,google play下载 Clash Meta for Android，你也可以去github下载：
&lt;a href="https://github.com/MetaCubeX/ClashMetaForAndroid/releases"&gt;https://github.com/MetaCubeX/ClashMetaForAndroid/releases&lt;/a&gt;
然后新建一份config.yaml,自定义规则如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-yaml"&gt;#tproxy-port: 7890
bind-address: '*'
mixed-port: 7892
redir-port: 7893
allow-lan: true
mode: Global
log-level: silent
ipv6: false
external-controller: 0.0.0.0:9090
&lt;p&gt;profile:
store-selected: true
store-fake-ip: false&lt;/p&gt;
&lt;p&gt;tun:
enable: true
device: Meta
stack: system #or gvisor
dns-hijack:
- &amp;lsquo;any:53&amp;rsquo;
auto-route: true #加上
auto-detect-interface: true #加上&lt;/p&gt;
&lt;p&gt;dns:
enable: true
listen: 0.0.0.0:1053
ipv6: false
enhanced-mode: redir-host
nameserver:
- 114.114.114.114
- 8.8.8.8&lt;/p&gt;
&lt;p&gt;proxies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;name: Proxy_HTTP
&lt;h1 id="server-处修改为你的抓包软件设备的-ip"&gt;server 处修改为你的抓包软件设备的 IP
&lt;/h1&gt;server: 192.168.x.x
&lt;h1 id="抓包软件的端口"&gt;抓包软件的端口
&lt;/h1&gt;port: xxxx
&lt;h1 id="抓包软件的代理类型"&gt;抓包软件的代理类型
&lt;/h1&gt;type: http&lt;/li&gt;
&lt;li&gt;name: Proxy_Socks5
server: 192.168.x.x
port: xxxx
type: socks5&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;proxy-groups:&lt;/p&gt;
&lt;p&gt;rules:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;DOMAIN-SUFFIX,ip6-localhost,DIRECT&lt;/li&gt;
&lt;li&gt;DOMAIN-SUFFIX,ip6-loopback,DIRECT&lt;/li&gt;
&lt;li&gt;DOMAIN-SUFFIX,lan,DIRECT&lt;/li&gt;
&lt;li&gt;DOMAIN-SUFFIX,localhost,DIRECT&lt;/li&gt;
&lt;li&gt;IP-CIDR,0.0.0.0/8,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR,10.0.0.0/8,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR,100.64.0.0/10,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR,127.0.0.0/8,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR,172.16.0.0/12,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR,192.168.0.0/16,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR,198.18.0.0/16,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR,224.0.0.0/4,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR6,::1/128,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR6,fc00::/7,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR6,fe80::/10,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;IP-CIDR6,fd00::/8,DIRECT,no-resolve&lt;/li&gt;
&lt;li&gt;MATCH,Proxy_HTTP
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上面修改成你的抓包软件的地址和端口，然后上传到clash-meta中，或者你可以保存到服务器如nginx,github,gitlab等等，通过url的方式加载都可以。
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/26a2fd0a0ab1.png"/&gt;
代理规则选则Proxy_HTTP ，然后运行&lt;/p&gt;
&lt;p&gt;这个时候 你所有的流量以VPN的形式全部流向你的抓包软件，即使是flutter应用，也无法逃脱。
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/cfc5e866bb88.png"/&gt;&lt;/p&gt;
&lt;p&gt;还有很多app如果是双向证书验证，那就没办法了，更有甚者vpn也会被检测到幕后使用了代理，具体怎么检测未知，不过我想经过了代理的流量和不经过代理肯定会有区别，也许就是这小小的区别让他们检测出来的吧，正所谓道高一尺魔高一丈，具体问题还需要具体分析。&lt;/p&gt;
&lt;p&gt;本篇是android抓包系列的完结篇，抓包不仅可以作为测试用途，还能够查看手机哪些软件在偷偷上报数据，只要走http、https协议，普通抓包软件都能让他们现行，然后配合上家庭路由器的域名黑名单屏蔽它们的上报,统计和埋点这些请求无疑会泄漏隐私和偷跑流量，只要在dns层面拦截，它们就访问不了服务器，而且这些玩意都是耗电大户，无论是国内和国外都如此，谷歌框架上报的接口也非常多，只是频次没有国内软件那么频繁。&lt;/p&gt;</description></item><item><title>android 抓包系列四(过证书锁定SSL Pinning)</title><link>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E5%9B%9B-%E8%BF%87%E8%AF%81%E4%B9%A6%E9%94%81%E5%AE%9Assl-pinning/</link><pubDate>Sat, 06 Apr 2024 13:21:45 +0000</pubDate><guid>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E5%9B%9B-%E8%BF%87%E8%AF%81%E4%B9%A6%E9%94%81%E5%AE%9Assl-pinning/</guid><description>&lt;p&gt;还未处理信任证书的小伙伴可以看前篇&lt;a href="https://lategege.com/p/android-抓包系列三-信任证书/" title="android 抓包系列三(信任证书)"&gt;android 抓包系列三(信任证书)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;有些应用使用SSL Pinning，也就是将服务器证书内置到客户端，也就是不需要去信任系统证书，自己和自己玩，它不管系统证书是什么，要绕过它需要安装一个 LSPOSED模块。
&lt;a href="https://github.com/mobile46/TrustMeAlready/releases" title="TrustMeAlready "&gt;TrustMeAlready &lt;/a&gt;
安装完成在LXPOSED --&amp;gt;模块中启用即可。&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/a03c5b40c63f.png"/&gt;&lt;/p&gt;
&lt;p&gt;TrustMeAlreay通过hook方式解决证书信任问题。&lt;/p&gt;
&lt;p&gt;下一篇：&lt;a href="https://lategege.com/p/android-抓包系列五-过代理检测/" title="android 抓包系列五(过代理检测)"&gt;android 抓包系列五(过代理检测)&lt;/a&gt;&lt;/p&gt;</description></item><item><title>android 抓包系列三(信任证书)</title><link>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E4%B8%89-%E4%BF%A1%E4%BB%BB%E8%AF%81%E4%B9%A6/</link><pubDate>Sat, 06 Apr 2024 13:10:09 +0000</pubDate><guid>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E4%B8%89-%E4%BF%A1%E4%BB%BB%E8%AF%81%E4%B9%A6/</guid><description>&lt;p&gt;还未安装magisk和隐藏root的小伙伴可以参考系列第二篇: android 抓包系列二(安装magisk模块隐藏root)&lt;a href="https://lategege.com/p/android-抓包系列二-安装magisk模块隐藏root/" title="android 抓包系列二(安装magisk模块隐藏root)"&gt;android 抓包系列二(安装magisk模块隐藏root)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;首先，抓包软件的证书我们要把它们变成系统证书，android7.0+无法信任用户证书，有什么办法将用户证书放入系统内部呢？我的系统是android12,直接push是无法push的，不过还是有办法。&lt;/p&gt;
&lt;p&gt;先获取到抓包软件证书，
Fiddler: wifi--&amp;gt;修改代理，连接你的代理,打开手机浏览器访问 ip:端口号，在页面中选择下载证书。
Charles : 同理，访问chls.pro/ssl 下载证书
Mitmproxy: &lt;a href="http://mitm.it"&gt;http://mitm.it&lt;/a&gt; 下载证书
其他软件大同小异，下载的证书会在手机的/sdcard/Download文件夹内，将证书导出&lt;/p&gt;
&lt;p&gt;在电脑上获取到证书的哈希值
openssl x509 -inform PEM -subject_hash_old -in 证书文件
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/1edd339d614d.png"/&gt;
然后将证书重命名为 e5c3944b.0 具体多少看你的值，下面脚本中也替换下你自己的文件名
将该证书导入手机/data/local/tmp/目录
然后新建一个inject-system-cert.sh脚本，脚本内容如下：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;# inject-system-cert.sh
set -e # Fail on error
# Create a separate temp directory, to hold the current certificates
# Without this, when we add the mount we can't read the current certs anymore.
mkdir -m 700 /data/local/tmp/ca-copy
# Copy out the existing certificates
cp /system/etc/security/cacerts/* /data/local/tmp/ca-copy/
# Create the in-memory mount on top of the system certs folder
mount -t tmpfs tmpfs /system/etc/security/cacerts
# Copy the existing certs back into the tmpfs mount, so we keep trusting them
mv /data/local/tmp/ca-copy/* /system/etc/security/cacerts/
# Copy our new cert in, so we trust that too
cp /data/local/tmp/e5c3944b.0 /system/etc/security/cacerts/
# Update the perms &amp;amp; selinux context labels, so everything is as readable as before
chown root:root /system/etc/security/cacerts/*
chmod 644 /system/etc/security/cacerts/*
chcon u:object_r:system_file:s0 /system/etc/security/cacerts/*
# Delete the temp cert directory &amp;amp; this script itself
rm -r /data/local/tmp/ca-copy
# rm ${injectionScriptPath}
echo "System cert successfully injected"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将inject-system-cert.sh 文件导入手机/data/adb/post-fs-data.d目录，该目录是开机启动的
执行chmod +rx ./inject-system-cert.sh 修改为可读可执行，开机的时候就会将你的证书安装进系统。&lt;/p&gt;
&lt;p&gt;重启后，你的抓包软件证书就成为系统证书了，如果不需要成为系统证书，只要将inject-system-cert.sh的权限改为不可执行就可以了，不需要删除脚本。chmod -x ./inject-system-cert.sh&lt;/p&gt;
&lt;p&gt;因为安装了shamiko，所以不要安装网上的那个可以自动安装证书的模块，会不可用，采用这种脚本的方式是最好的。&lt;/p&gt;
&lt;p&gt;下一篇&lt;a href="https://lategege.com/p/android-抓包系列四-过证书锁定ssl-pinning/" title=" android 抓包系列四(过证书锁定SSL Pinning) "&gt; android 抓包系列四(过证书锁定SSL Pinning) &lt;/a&gt;&lt;/p&gt;</description></item><item><title>android 抓包系列二(安装magisk模块隐藏root)</title><link>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E4%BA%8C-%E5%AE%89%E8%A3%85magisk%E6%A8%A1%E5%9D%97%E9%9A%90%E8%97%8Froot/</link><pubDate>Sat, 06 Apr 2024 12:48:46 +0000</pubDate><guid>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E4%BA%8C-%E5%AE%89%E8%A3%85magisk%E6%A8%A1%E5%9D%97%E9%9A%90%E8%97%8Froot/</guid><description>&lt;p&gt;如果手机还没有root安装magisk的小伙伴，可以参考第一篇文章 &lt;a href="https://lategege.com/p/android-抓包系列一-开启root/" title="android 抓包系列一(开启root)"&gt;android 抓包系列一(开启root)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;安装了magisk之后，想要完美的抓包，首先需要隐藏root,因为很多应用会检测手机是不是root了，隐藏root分为隐藏magisk自身、隐藏root、隐藏非常明显的root应用。&lt;/p&gt;
&lt;p&gt;一、针对隐藏magisk自身，它magisk本身自带的功能，进入设置--&amp;gt;Magisk--&amp;gt;在Zygisk中运行Magisk勾选，24版本以后支持的，开启是因为后面的隐藏root模块需要它开启，然后先隐藏自身---&amp;gt;App-&amp;gt;隐藏Magisk应用，随便起个不起眼的名字就行。
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/af905bd53f46.png"/&gt;&lt;/p&gt;
&lt;p&gt;二、安装shamiko模块
&lt;a href="https://github.com/LSPosed/LSPosed.github.io/releases/tag/shamiko-300"&gt;https://github.com/LSPosed/LSPosed.github.io/releases/tag/shamiko-300&lt;/a&gt; 下载压缩包&lt;/p&gt;
&lt;p&gt;进入magdisk 从本地安装
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/7733a2bd53b7.png"/&gt;&lt;/p&gt;
&lt;p&gt;建议开启白名单模式，就是默认全部隐藏，但是一旦全部隐藏就不能赋予新的root权限，旧的还是会保留，所以如果有应用需要root权限，先授予，然后再打开白名单模式，打开方式是进入手机/data/adb/shamiko，创建 whitelist 文件，不是文件夹！创建方式可以使用adb ,赋予adb root权限即可，或者使用&lt;a href="https://www.coolapk.com/apk/bin.mt.plus" title="MT管理器"&gt;MT管理器&lt;/a&gt; 同样要授予root权限，重启生效。&lt;/p&gt;
&lt;p&gt;三、安装LSPosed模块
&lt;a href="https://github.com/LSPosed/LSPosed/releases"&gt;https://github.com/LSPosed/LSPosed/releases&lt;/a&gt; 下载压缩包再Magisk中安装，安装完成后安装隐藏应用列表
&lt;a href="https://github.com/Xposed-Modules-Repo/com.tsng.hidemyapplist/releases"&gt;https://github.com/Xposed-Modules-Repo/com.tsng.hidemyapplist/releases&lt;/a&gt; 就是一个app，不过是LSPosed模块的app,安装后LSPosed会自动识别，然后进入模块内针对所有app都隐藏&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/e30858d50bca.png"/&gt;，然后重启。&lt;/p&gt;
&lt;p&gt;至此，隐藏root结束。&lt;/p&gt;
&lt;p&gt;下一篇 ： &lt;a href="https://lategege.com/p/android-抓包系列三-信任证书/" title="android 抓包系列三(信任证书)"&gt;android 抓包系列三(信任证书)&lt;/a&gt;&lt;/p&gt;</description></item><item><title>android 抓包系列一(开启root)</title><link>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E4%B8%80-%E5%BC%80%E5%90%AFroot/</link><pubDate>Sat, 06 Apr 2024 12:13:45 +0000</pubDate><guid>https://lategege.com/p/android-%E6%8A%93%E5%8C%85%E7%B3%BB%E5%88%97%E4%B8%80-%E5%BC%80%E5%90%AFroot/</guid><description>&lt;p&gt;众所周知，android7.0+后，用户证书不被信任，因此使用抓包软件无法有效获取https的数据，下面是常用的抓包软件下载地址:
Fiddler &lt;a href="https://www.telerik.com/download/fiddler-everywhere"&gt;https://www.telerik.com/download/fiddler-everywhere&lt;/a&gt;
Charles &lt;a href="https://www.charlesproxy.com/download/"&gt;https://www.charlesproxy.com/download/&lt;/a&gt;
Mitmproxy &lt;a href="https://mitmproxy.org/downloads/"&gt;https://mitmproxy.org/downloads/&lt;/a&gt;
Wireshark &lt;a href="https://www.wireshark.org/"&gt;https://www.wireshark.org/&lt;/a&gt;
Burp Suite &lt;a href="https://portswigger.net/burp/releases"&gt;https://portswigger.net/burp/releases&lt;/a&gt;
我是mac电脑，所以使用的是Charles,你可以按需选择。&lt;/p&gt;
&lt;p&gt;在android7.0+以上想要抓包，首先需要做的事那就是root,root后你就能无限制地修改系统配置，包括将用户证书变成系统证书，从而使应用信任证书来实现抓包。&lt;/p&gt;
&lt;p&gt;我使用的手机是LGV50韩版，骁龙855处理器，自带谷歌全家桶，更新到了android 12系统，目前用来做云手机用，为什么我不选择虚拟机，而是选择实体机呢？其实虚拟机我也玩过，什么网易mumu，包括云手机redroid，想要完美绕过虚拟机检测是不存在的，而且都是x86模拟的，即使有gpu加速，性能损失是必然，主要原因是折腾到最后可能未必能满足将来未知的需求，比如过虚拟机检测等。大厂的云手机方案大多基于华为鲲鹏、ft2000等 arm服务器处理器，这些玩意对个人而言没有完整的开源解决方案，个人去架设费时费力还费钱。一块板子就上千，海鲜市场一两百捡个洋垃圾手机不香么？个人建议骁龙845+以上都可以，如国内品牌的海外版，LG,一加,Pixel系列等，注意必须是无锁，而非运营商定制款，不然不能root，可玩性就几乎没有了。&lt;/p&gt;
&lt;p&gt;目前主流的root方案就是安装magisk来接管root权限，在安装magisk之前，需要解锁bootloader, LG的解锁方式还是有些麻烦的，闲麻烦的小伙伴直接买台解锁过的就行了，如果没有解锁，大致流程如下：
一、解开OEM---&amp;gt;进开发者模式
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/eda0eba1ee0a.png"/&gt;
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/bd00d376af06.png"/&gt;&lt;/p&gt;
&lt;p&gt;二、找台windows电脑，安装高通9008驱动和软件，mac系统可以使用parallels desktop 安装windows虚拟机来使用，所有软件到这里下载：
&lt;a href="https://wwk.lanzouj.com/b00rmw7qhi"&gt;https://wwk.lanzouj.com/b00rmw7qhi&lt;/a&gt;
密码:d9ju
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/90b086140f5f.png"/&gt;&lt;/p&gt;
&lt;p&gt;三、安装完成，打开QFIL这个软件，手机进入9008模式
进入9008:
手机usb连接电脑，如果windows是虚拟机，将usb端口映射给虚拟机后操作，按住音量减和电源键，在看到屏幕黑屏后不松手再点按音量加键，直到软件识别到端口号
SelectPort选择连接的手机端口
Select Build Type选择Flat Build
Select Programmer选择下载好的LGE855 Firehose文件
右下角Storage Type选择ufs
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/06ae797f11ef.png"/&gt;&lt;/p&gt;
&lt;p&gt;先把下面分区先备份一下：
Tools-&amp;gt;Partition Manager 弹出分区包含下面6个分区，全部先备份，备份选择Read Data,备份好会有备份路径显示，将文件拷贝出来保存。
刷入工程文件(Load Image 找到对应的工程文件刷入):
将 xbl_a.image刷入 xbl_a、xbl_b 这两个分区
将xbl_config_a 刷入 xbl_config_a/xbl_config_b 这两个分区
将V500ES_abl_a.image 刷入abl_a/abl_b 这两个分区&lt;/p&gt;
&lt;p&gt;四、进入fastboot模式(同时按住音量减和电源键)
windows下安装fastboot驱动，打开adb工具箱目录，在此目录下用cmd打开，输入fastboot devices,看到设备证明设备连接着，输入fastboot oem unlock 手机跳转到解锁界面，音量键选择解锁后确认，至此解锁完成，重启会进入警告页面。
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/ba6a7d34374e.png"/&gt;&lt;/p&gt;
&lt;p&gt;五、继续进入QFIL软件，手机进入9008模式，可以将之前备份的6个分区全部写回去，顺便把boot_a ,boot_b这两个分区备份出来，面具magisk要处理。&lt;/p&gt;
&lt;p&gt;六、重启手机进入android系统，安装面具到android系统
&lt;a href="https://github.com/topjohnwu/Magisk/releases"&gt;https://github.com/topjohnwu/Magisk/releases&lt;/a&gt; 下载个最新版
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/6f609675f0db.png"/&gt;
点击安装(修补boot分区),将刚刚备份的boot_a,boot_b导入手机，然后都让面具修补，两个都修补完成后，再次进入9008模式，将修补好的分别刷入boot_a,boot_b分区中，当然你也可以通过fastboot命令刷，效果是一样的，你也可以选择安装twrp分区，我没安装是因为怕进不了download模式，毕竟进入download模式可以救砖。&lt;/p&gt;
&lt;p&gt;七、重启后，面具的超级权限就解锁了，至此root过程完成。
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/04/06/99eadf7d8e41.png"/&gt;&lt;/p&gt;
&lt;p&gt;其他品牌的手机root可能会方便很多，比如pixel系列、一加手机，不需要刷这刷那的，执行几行命令就解锁了，具体可以搜索相关教程。&lt;/p&gt;
&lt;p&gt;下一篇&lt;a href="https://lategege.com/p/android-抓包系列二-安装magisk模块隐藏root/" title=" android 抓包系列二(安装magisk模块隐藏root)"&gt; android 抓包系列二(安装magisk模块隐藏root)&lt;/a&gt;&lt;/p&gt;</description></item><item><title>家庭ipv6的安全和防护(路由器配置ACL策略)</title><link>https://lategege.com/p/%E5%AE%B6%E5%BA%ADipv6%E7%9A%84%E5%AE%89%E5%85%A8%E5%92%8C%E9%98%B2%E6%8A%A4-%E8%B7%AF%E7%94%B1%E5%99%A8%E9%85%8D%E7%BD%AEacl%E7%AD%96%E7%95%A5/</link><pubDate>Sun, 24 Mar 2024 07:00:03 +0000</pubDate><guid>https://lategege.com/p/%E5%AE%B6%E5%BA%ADipv6%E7%9A%84%E5%AE%89%E5%85%A8%E5%92%8C%E9%98%B2%E6%8A%A4-%E8%B7%AF%E7%94%B1%E5%99%A8%E9%85%8D%E7%BD%AEacl%E7%AD%96%E7%95%A5/</guid><description>&lt;p&gt;家庭宽带使用ipv6虽然解决了没有公网ipv4地址带来的问题，但是也暴露了一些安全问题，而这些安全问题常常容易被忽视。&lt;/p&gt;
&lt;p&gt;在我们家庭局域网内部每一个设备都分配了一个公网ipv6地址的前提下，所有设备都暴露在外网，这势必造成了一定安全隐患，虽然说ipv6的地址池似乎无穷无尽，黑客扫描需要花费大量时间，并且针对家庭的攻击，没有利益可图，而且运营商会定期改变宽带的ipv6地址，换言之，家庭ipv6被攻击的可能性不是很大。&lt;/p&gt;
&lt;p&gt;即使如此，哪怕是万分之一的被攻击可能，我们的安全意识也一定要提高，而且有些小伙伴为了外部访问内网方便，做了ipv6的ddns，这种做法无疑将整台设备暴露出去了,因为定期更换ipv6地址没用了，你的域名就是你家庭内网的入口，而且域名非常容易暴露，本来黑客扫描地址不易，偏偏你提供了域名，他们就跳过扫描直接攻击了。面对这种使用场景，由于你不知道你的那台设备是否提供了有漏洞的ipv6服务，也就无法阻止被攻击。&lt;/p&gt;
&lt;p&gt;所以无论如何，路由器层面访问控制策略就非常有必要了，以下是ikuai路由针对ipv6防火墙的一些配置说明，点击爱快路由界面的安全设置----&amp;gt;ACL规则-----&amp;gt;添加，就会出现如下图所示界面。&lt;/p&gt;
&lt;img height="380" src="https://img.lategege.com:30443/images/2024/03/24/a4d945acad75.png" width="500"/&gt;
&lt;img height="470" src="https://img.lategege.com:30443/images/2024/03/24/27f64d0f1f6f.png" width="500"/&gt;
&lt;p&gt;协议栈: 固定选择ipv6&lt;/p&gt;
&lt;p&gt;协议: TCP\UDP\任意，如果选择任意就不能针对端口做限制，所以需要tcp和udp分别配置。&lt;/p&gt;
&lt;p&gt;动作:允许\阻断，就是字面意思，一般情况下先配置一条总的阻断规则，然后再配一条特定的允许规则。&lt;/p&gt;
&lt;p&gt;方向:转发\进 (转发是路由器接收到内网或外网的数据把数据进行转发发动作，进指内网或外网进路由)，这里一般都是配置转发即可。&lt;/p&gt;
&lt;p&gt;连接方向匹配：原始方向\应答方向\关闭 (原始方向：请求发起方。应答方向:请求响应方。 关闭：不匹配方向)&lt;/p&gt;
&lt;p&gt;源地址、目的地址：(源地址：请求发起方地址，目的地址：请求响应方地址)在ipv6中这两项我个人认为不用配置，因为ipv6地址实在太多，针对地址配置规则在家庭宽带中意义不大，就算我们知道很清晰的前缀，作为程序员的我来说，家庭宽带性能也很重要，个人认为从数据包中解析出ipv6地址并且做匹配这件事本身相对于接口和端口来说，时间复杂度虽然一致，但是单次匹配的算力是比较大的，这是理论上来说的，实际损耗可能微乎其微,如果确实有这方面需要那就也配上好了。&lt;/p&gt;
&lt;p&gt;源端口、目的端口:（源端口：请求发起方端口。应答方：请求响应方端口）。&lt;/p&gt;
&lt;p&gt;进接口、出接口:( wan 外部接口还是lan 内部接口) : 这两个非常实用，使用这个可以很好的让外部网络无法访问我们内部的设备。&lt;/p&gt;
&lt;h5&gt;需求一：禁止外部网络通过ipv6访问所有内部设备,可以这么配置&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;一条规则ACL规则： 协议栈: ipv6 ,协议:任意，动作：阻断，方向：转发，连接方向匹配：原始方向，源地址、目的地址都不配，源端口、目的端口都不配，进接口选择wan,有几个wan就勾几个，出接口：任意。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;有小伙伴会疑惑这条规则会不会影响内部访问外面的ipv6,答案是不影响，因为你从家里连接外部，你家庭设备处于lan中，进接口就是lan,不匹配这条规则，你该得到的响应数据还是会响应给你。除非你把链接方向匹配改成了关闭，此时你收不到回来的数据。&lt;/p&gt;
&lt;h5&gt;需求二：放行pt、bt 端口&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;一条TCP-ACL规则： 协议栈: ipv6 ,协议:tcp，动作：允许，方向：转发，连接方向匹配：原始方向，源地址、目的地址都不配，源端口不配，目的端口填入你PT\BT端口，进接口选择wan,有几个wan就勾几个，出接口：任意。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一条UDP-ACL规则： 协议栈: ipv6 ,协议:udp，动作：允许，方向：转发，连接方向匹配：原始方向，源地址、目的地址都不配，源端口不配，目的端口填入你PT\BT端口，进接口选择wan,有几个wan就勾几个，出接口：任意。&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;上面的配置规则就是让外部的网络允许访问内部网络的某个端口，无论你内部哪台机器开了bt、pt都适用，因为是根据端口匹配，所以其他端口全都不会放行，相对安全。&lt;/p&gt;
&lt;h5&gt;需求三：放行家庭服务器端口，和放行PT\BT端口一致，只要改下端口号。&lt;/h5&gt;
&lt;h5&gt;需求四：允许特定运营商网络访问内部网络。&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;一条ACL规则： 协议栈: ipv6 ,协议:任意，动作：允许，方向：转发，连接方向匹配：原始方向，源地址填写允许访问的IP分组，目的地址不配，源端口、目的端口不配，进接口、出接口：任意。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;各大运营商的ipv6地址段可以去网上找，然后在爱快的网络设置--&amp;gt;终端分组设置--&amp;gt;ipv6分组中可以配置。&lt;/p&gt;</description></item><item><title>Minimal ID photo 2.0.0 released</title><link>https://lategege.com/p/minimal-id-photo-2-0-0-released/</link><pubDate>Wed, 20 Mar 2024 12:02:25 +0000</pubDate><guid>https://lategege.com/p/minimal-id-photo-2-0-0-released/</guid><description>&lt;h4&gt;Version 2.0.0 changelog:&lt;/h4&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;1、Optimized one key generation certificate photo interface&lt;/li&gt;
&lt;li&gt;2、Theme Color Optimization&lt;/li&gt;
&lt;li&gt;3、Add AI face changing and photo repair modules&lt;/li&gt;
&lt;li&gt;4、Add theme and language Settings&lt;/li&gt;
&lt;li&gt;5、Unified overall style&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h5&gt;Download address:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;mac version (supports MacOS 11 BigSur+) : &lt;a href="https://cloud.lategege.com:9443/s/pQT3"&gt;Mac&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;windows version (supports Win10/Win11)：&lt;a href="https://cloud.lategege.com:9443/s/mocy"&gt;Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;android version (supports android 6.0+): &lt;a href="https://cloud.lategege.com:9443/s/yNIp"&gt;Android&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ios version(supports ios12+): To be determined&lt;/li&gt;
&lt;li&gt;linux version: Hold off for now&lt;/li&gt;
&lt;li&gt;web version:Do not publish&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a href="https://lategege.com/p/极简证件照3-0-0发布/" title="Introduction to Chinese"&gt;Introduction in Chinese&lt;/a&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;h5&gt;Example image for Android version 2.0.0 (same for other platforms)&lt;/h5&gt;
&lt;h5&gt;One-click repair function:&lt;/h5&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/03/20/WechatIMG152.jpg" width="378"/&gt;
&lt;hr/&gt;
&lt;h5&gt;AI face swapping feature:&lt;/h5&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/03/20/WechatIMG153.jpg" width="378"/&gt;
&lt;hr/&gt;
&lt;h5&gt;One key production function:&lt;/h5&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/03/20/WechatIMG154.jpg" width="378"/&gt;
&lt;h5&gt;Supports switching topics and languages:&lt;/h5&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/03/20/WechatIMG155.jpg" width="378"/&gt;</description></item><item><title>极简证件照3.0.0发布</title><link>https://lategege.com/p/%E6%9E%81%E7%AE%80%E8%AF%81%E4%BB%B6%E7%85%A73-0-0%E5%8F%91%E5%B8%83/</link><pubDate>Wed, 20 Mar 2024 11:38:24 +0000</pubDate><guid>https://lategege.com/p/%E6%9E%81%E7%AE%80%E8%AF%81%E4%BB%B6%E7%85%A73-0-0%E5%8F%91%E5%B8%83/</guid><description>&lt;h4&gt;3.0.0版本更新日志:&lt;/h4&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;1、新增我的模块&lt;/li&gt;
&lt;li&gt;2、新增证件一键矫正功能&lt;/li&gt;
&lt;li&gt;3、我的模块可查看余额和充值&lt;/li&gt;
&lt;li&gt;4、新增兑换码系统&lt;/li&gt;
&lt;/ul&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/09/30/WechatIMG47.jpg" width="378"/&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/09/30/WechatIMG48.jpg" width="378"/&gt;
&lt;h5&gt;下载地址:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;mac版(支持MacOS 11 BigSur+)：&lt;a href="https://cloud.lategege.com:9443/s/QMFP" title="下载"&gt;mac版下载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;windows版(支持Win10/Win11)：&lt;a href="https://cloud.lategege.com:9443/s/GgH6" title="免安装版下载"&gt;windows版下载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;android版(支持android 6.0+): &lt;a href="https://cloud.lategege.com:9443/s/vos5" title="apk下载"&gt;android版下载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ios版(支持ios12+): 待定&lt;/li&gt;
&lt;li&gt;linux版: 暂不发布&lt;/li&gt;
&lt;li&gt;web版: 不发布&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;免费使用体验兑换码:666666(含10次通用一键功能)，永久有效，一个终端只能兑换一次！&lt;/strong&gt;
&lt;em&gt;欢迎大家对本软件提出各类宝贵意见，一旦意见被采纳将获得本软件永久免费使用权!&lt;/em&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;h4&gt;2.0.0版本更新日志:&lt;/h4&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;1、优化了一键生成证件照界面&lt;/li&gt;
&lt;li&gt;2、主题颜色优化&lt;/li&gt;
&lt;li&gt;3、新增AI换脸、照片修复模块&lt;/li&gt;
&lt;li&gt;4、新增主题、语言设置&lt;/li&gt;
&lt;li&gt;5、统一整体风格&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;iframe allowfullscreen="true" border="0" frameborder="no" framespacing="0" height="600" scrolling="no" src="//player.bilibili.com/player.html?aid=1652679726&amp;amp;bvid=BV1tE421g7hV&amp;amp;cid=1490896667&amp;amp;p=1" width="300"&gt; &lt;/iframe&gt;
&lt;h5&gt;下载地址:&lt;/h5&gt;
&lt;ul&gt;
&lt;li&gt;mac版(支持MacOS 11 BigSur+)：&lt;a href="https://cloud.lategege.com:9443/s/QMFP" title="下载"&gt;mac版下载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;windows版(支持Win10/Win11)：&lt;a href="https://cloud.lategege.com:9443/s/GgH6" title="免安装版下载"&gt;windows版下载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;android版(支持android 6.0+): &lt;a href="https://cloud.lategege.com:9443/s/vos5" title="apk下载"&gt;android版下载&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ios版(支持ios12+): 待定&lt;/li&gt;
&lt;li&gt;linux版: 暂不发布&lt;/li&gt;
&lt;li&gt;web版: 不发布&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;a href="https://lategege.com/p/minimal-id-photo-2-0-0-released/" title="英语介绍"&gt;英语介绍&lt;/a&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;h5&gt;2.0.0版本Android端 示例图片(其他平台同)&lt;/h5&gt;
&lt;h5&gt;一键修复功能：&lt;/h5&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/03/20/1.jpg" width="378"/&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/03/20/2.jpg" width="378"/&gt;
&lt;hr/&gt;
&lt;h5&gt;AI换脸功能:&lt;/h5&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/03/20/3.jpg" width="378"/&gt;
&lt;hr/&gt;
&lt;h5&gt;一键制作功能:&lt;/h5&gt;
&lt;img height="840" src="https://img.lategege.com:30443/images/2024/03/20/4.jpg" width="378"/&gt;
&lt;h5&gt;支持切换主题和语言:&lt;/h5&gt;
&lt;img height="840/" src="https://img.lategege.com:30443/images/2024/03/20/WechatIMG155.jpg" width="378"/&gt;</description></item><item><title>Minimalist ID Photo - Real One click to make ID photo (independent development work)</title><link>https://lategege.com/p/minimalist-id-photo-real-one-click-to-make-id-photo-independent-development-work/</link><pubDate>Sun, 10 Mar 2024 13:21:55 +0000</pubDate><guid>https://lategege.com/p/minimalist-id-photo-real-one-click-to-make-id-photo-independent-development-work/</guid><description>&lt;p&gt;If you have a need to make a certificate photo, and need to make and print it very quickly and easily, then I have developed a minimal certificate photo may meet your needs！&lt;/p&gt;
&lt;p&gt;This is an application designed and developed by myself, aiming at the development of the majority of people with ID photo needs, the application does not need to manually login, all elements are integrated in a page, there is no need for various functions, the background is commonly used in three kinds, the size is commonly used in 5 kinds, (in fact, the most commonly used is only 2 kinds, 1 inch and 2 inch) generation only needs two steps, that is, to click two buttons.&lt;/p&gt;
&lt;p&gt;1: Open the app and select (all clients supported) or take a photo (IOS and Android only)
2: One key to generate, one key to save.&lt;/p&gt;
&lt;p&gt;After saving, there will be a 6-inch printable photo and a separate ID photo in the photo album. Those who have a printer at home can select the 6-inch photo in the photo album to print. The whole process will not exceed 3 minutes.&lt;/p&gt;
&lt;p&gt;Here's a screenshot of the MacOS version applied (the theme will follow the system (black or white) on other platforms, and both Chinese and English are supported):&lt;/p&gt;
&lt;img height="867" src="https://img.lategege.com:30443/images/web/2024/3-10/mac-main-eng.png" width="900"/&gt;
&lt;p&gt;You only need to pay a small fee, you can help you quickly produce the ID photo you need, save you your time, this is the meaning of the existence of the minimalist ID photo! (It is recommended to choose the original photo with clear background color and character color. In addition, the server will not save the photo data, please be aware that)&lt;/p&gt;
&lt;p&gt;Here's a screenshot of the payment app for MacOS:&lt;/p&gt;
&lt;img height="925" src="https://img.lategege.com:30443/images/web/2024/3-10/pay-mac-eng.png" width="900"/&gt;
&lt;p&gt;The result is as follows:&lt;/p&gt;
&lt;img height="807" src="https://img.lategege.com:30443/images/web/2024/3-10/relsult.webp" width="900"/&gt;
&lt;p&gt;MinID Photo Download:
macos(macos 11 BigSur+):&lt;a href="https://cloud.lategege.com:9443/s/YEhR"&gt;https://cloud.lategege.com:9443/s/YEhR&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;windows(Win10/Win11)：&lt;a href="https://cloud.lategege.com:9443/s/P9uG"&gt;https://cloud.lategege.com:9443/s/P9uG&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;android(android 6.0+): &lt;a href="https://cloud.lategege.com:9443/s/VOie"&gt;https://cloud.lategege.com:9443/s/VOie&lt;/a&gt;&lt;/p&gt;</description></item><item><title>极简证件照--真正的一键制作证件照(独立开发作品)</title><link>https://lategege.com/p/%E6%9E%81%E7%AE%80%E8%AF%81%E4%BB%B6%E7%85%A7-%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B8%80%E9%94%AE%E5%88%B6%E4%BD%9C%E8%AF%81%E4%BB%B6%E7%85%A7-%E7%8B%AC%E7%AB%8B%E5%BC%80%E5%8F%91%E4%BD%9C%E5%93%81/</link><pubDate>Sun, 10 Mar 2024 11:52:16 +0000</pubDate><guid>https://lategege.com/p/%E6%9E%81%E7%AE%80%E8%AF%81%E4%BB%B6%E7%85%A7-%E7%9C%9F%E6%AD%A3%E7%9A%84%E4%B8%80%E9%94%AE%E5%88%B6%E4%BD%9C%E8%AF%81%E4%BB%B6%E7%85%A7-%E7%8B%AC%E7%AB%8B%E5%BC%80%E5%8F%91%E4%BD%9C%E5%93%81/</guid><description>&lt;p&gt;作为一个普通公民，有时候去办点事就要用到证件照，面对这个需求，这个时候可能会有几种选择。&lt;/p&gt;
&lt;p&gt;1:去照相馆拍照打印，然后电子档拷贝到U盘中备用，这是最原始的方案。
2:下载证件照APP,然后拍摄制作。&lt;/p&gt;
&lt;p&gt;1方案费事费力，2方案最直接，但是市面上的众多证件照APP操作繁琐，不能直面核心需求，花里胡哨的功能太多，我们的核心诉求只是一张证件照而已，无论是电子档还是纸质的，我们并不想花时间浪费在App操作的学习上，然而市面上的众多APP在你制作完成想要保存的时候，收费来了，而且不便宜，少则10元，多则20几元不等。&lt;/p&gt;
&lt;p&gt;为了解决目前证件照制作的核心痛点，极简证件照诞生了，这是一款本人设计开发的应用，旨在为广大有证件照需求的人士开发，应用无需要手动登录，全部元素融合在一个页面，功能无需繁多，背景就是常用的三种，尺寸就是常用的5种，(事实上最常用的仅仅是2种，1寸和2寸)生成只需两步，也就是点两个按钮即可。&lt;/p&gt;
&lt;p&gt;1：打开应用，选择(支持所有客户端)或者拍一张照片(只支持IOS和Android)
2:一键生成，一键保存。&lt;/p&gt;
&lt;p&gt;保存完成后相册中会有一张6寸可打印照和一张单独的证件照，家里有打印机的小伙伴可以在相册中选中6寸的去打印，整个过程不会超过3分钟。&lt;/p&gt;
&lt;p&gt;应用MacOS版截图如下(其他平台也一致，主题会跟随系统(黑或者白)，支持中英文系统):&lt;/p&gt;
&lt;img height="760" src="https://img.lategege.com:30443/images/web//2024/3-10/mac-main.png" width="900"/&gt;
&lt;p&gt;当然，软件制作相当不易，时间精力、服务器成本这些都是要付出很多，所以适当收费我才有动力去不断更新，不断制作出更优秀的极简软件，但是我的收费绝对远低于市场价，收费方式按制作次数收费，也就是几毛钱一次，用一点小钱来节省目标用户的宝贵时间，这才是极简证件照存在的意义！别人9元只能保存一次，在我这里你能制作20次。(虽然每次付费只有几毛钱，但是在选择原始照片的时候还是建议大家的背景颜色和人物颜色要分明些，这样生成的效果会很好，软件不存在手动PS或者美颜，所有不是极简操作的功能我都不会去做，另外，服务器不会保存照片数据，请知悉)&lt;/p&gt;
&lt;p&gt;应用MacOS版付费截图如下:&lt;/p&gt;
&lt;img height="1068" src="https://img.lategege.com:30443/images/web/2024/3-10/pay-mac-ch.png" width="900"/&gt;
&lt;p&gt;制作效果如下：&lt;/p&gt;
&lt;img height="807" src="https://img.lategege.com:30443/images/web/2024/3-10/relsult.webp" width="900"/&gt;
&lt;p&gt;极简证件照下载地址:
mac版(支持MacOS 11 BigSur+)：&lt;a href="https://cloud.lategege.com:9443/s/YEhR"&gt;https://cloud.lategege.com:9443/s/YEhR&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;windows版(支持Win10/Win11)：&lt;a href="https://cloud.lategege.com:9443/s/P9uG"&gt;https://cloud.lategege.com:9443/s/P9uG&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;android版(支持android 6.0+): &lt;a href="https://cloud.lategege.com:9443/s/VOie"&gt;https://cloud.lategege.com:9443/s/VOie&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Docker compose部署最新版Apisix网关(二）</title><link>https://lategege.com/p/docker-compose%E9%83%A8%E7%BD%B2%E6%9C%80%E6%96%B0%E7%89%88apisix%E7%BD%91%E5%85%B3-%E4%BA%8C/</link><pubDate>Mon, 29 Jan 2024 17:50:40 +0000</pubDate><guid>https://lategege.com/p/docker-compose%E9%83%A8%E7%BD%B2%E6%9C%80%E6%96%B0%E7%89%88apisix%E7%BD%91%E5%85%B3-%E4%BA%8C/</guid><description>&lt;p&gt;当部署完成之后，需要在apisix-dashboard中进行一些配置
部署参考前一篇: &lt;a href="https://lategege.com/p/docker-compose部署最新版apisix网关-一/" title="Docker compose部署最新版Apisix网关(一）"&gt;Docker compose部署最新版Apisix网关(一）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;一、首先访问apisix-dashboard网页端
&lt;a href="http://ip:dashboard端口"&gt;http://ip:dashboard端口&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;输入你在上篇中修改的用户名密码登录管理后台。
第一个问题你会发现仪表盘配置了地址，无法正常显示，因为默认不允许加载frame
需要修改apisix-dashboard/conf.yaml&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;conf:
 listen:
 host: 0.0.0.0 # `manager api` listening ip or host name
 port: 9000 # `manager api` listening port
 etcd:
 endpoints: # supports defining multiple etcd host addresses for an etcd cluster
 - etcd:2379
###添加以下内容
 security:
 content_security_policy: "frame-src *;"
.....&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后停掉容器重启后在管理后台输入grafana的ip和端口就能正常显示了，效果如下：
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/01/30/c299ccd4257e.png"/&gt;&lt;/p&gt;
&lt;p&gt;二、路由配置就相当于nginx写路由策略，图形化操作很方便，上游就相当于描述你的api服务器，这些配置你实操几遍就知道了，去搜索怎么配置不如实际操作验证来的快。&lt;/p&gt;
&lt;p&gt;三、证书这一块有个坑，泛域名证书虽然能上传，但是匹配会有问题，可能是我的泛域名既包含泛域名，也包含顶级域名的缘故。系统可能只能匹配一个，但是证书中却对应两个，因为管理端UI界面无法输入你的域名，在你泛域名证书上传出现问题的时候，你需要通过api来上传你的证书，指定泛域名即可。
api请求如下:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd 到你的证书所在目录
&lt;p&gt;curl http://替换为apisix的ip:替换为apisix的管理端口/apisix/admin/ssls/1 &lt;br&gt;
-H &amp;lsquo;X-API-KEY: 替换成你修改的admin_key&amp;rsquo; -X PUT -d '
{
&amp;ldquo;cert&amp;rdquo; : &amp;ldquo;&amp;rsquo;&amp;quot;$(cat 替换成你的证书公钥)&amp;rdquo;&amp;rsquo;&amp;quot;,
&amp;ldquo;key&amp;rdquo;: &amp;ldquo;&amp;rsquo;&amp;quot;$(cat 替换成你的证书私钥)&amp;rdquo;&amp;rsquo;&amp;quot;,
&amp;ldquo;snis&amp;rdquo;: [&amp;ldquo;你的泛域名&amp;rdquo;]
}&amp;rsquo;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;完成后再证书列表中就会有显示
&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/01/30/d75156ff6a46.png"/&gt;&lt;/p&gt;
&lt;p&gt;你就可以使用你的域名做https路由了，现在直接暴露在外网的没人会有http，所以这一步也是刚需。&lt;/p&gt;
&lt;p&gt;四、踩完以上两个坑后就可以愉快的配置了，该使用什么插件就自己配置，多使用就能很快熟练了。&lt;/p&gt;</description></item><item><title>Docker compose部署最新版Apisix网关(一）</title><link>https://lategege.com/p/docker-compose%E9%83%A8%E7%BD%B2%E6%9C%80%E6%96%B0%E7%89%88apisix%E7%BD%91%E5%85%B3-%E4%B8%80/</link><pubDate>Mon, 29 Jan 2024 17:13:18 +0000</pubDate><guid>https://lategege.com/p/docker-compose%E9%83%A8%E7%BD%B2%E6%9C%80%E6%96%B0%E7%89%88apisix%E7%BD%91%E5%85%B3-%E4%B8%80/</guid><description>&lt;p&gt;高性能且具备一系列安全策略的网关对于承载具体业务至关重要，对于个人开发者而言，你的入口更是决定着你收益的稳定性，因此，选择一款合适的Api网关来承载自身不断扩展的业务就成了首要任务，在对比了Nginx、Kong、Tyk、Gloo、Apache Apisix之后，果断入坑apisix, apisix无论在性能、配置效率、还是功能层面，都领先其他产品，尽管在使用的时候遇到了很多坑，官方的文档也很糟乱，不过在部署完成后，就不需要管那些了。&lt;/p&gt;
&lt;p&gt;部署apisix首选docker compose方式，可以在官方的github上面下载demo&lt;/p&gt;
&lt;p&gt;一、克隆仓库&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone https://github.com/apache/apisix-docker.git
cd example 
&lt;p&gt;##其中docker-compose.yml就是部署需要的文件，由于官网的这份compose中没有dashboard容器，而部署apisix的目的就是为了方便配置，所以dashboard是必须的，我在官网基础上加入了dashboard
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;二、拷贝dashboard配置文件
将all-in-one中apisix-dashboard文件夹拷贝到example目录中，下面dashboard容器需要挂载使用&lt;/p&gt;
&lt;p&gt;三、编写compose文件
最终修改后的docker-compose.yml 如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: "3"
&lt;p&gt;services:
apisix:
##这边写死为最新的版本
image: apache/apisix:3.8.0-debian
restart: always
volumes:
- ./apisix_conf/config.yaml:/usr/local/apisix/conf/config.yaml:ro
depends_on:
- etcd
##network_mode: host
#9180 admin port, 9080 api端口,9443 https端口
ports:
- &amp;ldquo;9180:9180/tcp&amp;rdquo;
- &amp;ldquo;9080:9080/tcp&amp;rdquo;
- &amp;ldquo;9091:9091/tcp&amp;rdquo;
- &amp;ldquo;9443:9443/tcp&amp;rdquo;
- &amp;ldquo;9092:9092/tcp&amp;rdquo;
networks:
apisix:&lt;/p&gt;
&lt;p&gt;etcd:
image: bitnami/etcd:3.5.11
restart: always
volumes:
- etcd_data:/bitnami/etcd
environment:
ETCD_ENABLE_V2: &amp;ldquo;true&amp;rdquo;
ALLOW_NONE_AUTHENTICATION: &amp;ldquo;yes&amp;rdquo;
ETCD_ADVERTISE_CLIENT_URLS: &amp;ldquo;http://etcd:2379&amp;rdquo;
ETCD_LISTEN_CLIENT_URLS: &amp;ldquo;http://0.0.0.0:2379&amp;rdquo;
ports:
- &amp;ldquo;2379:2379/tcp&amp;rdquo;
networks:
apisix:
##这是新增的，注意必须别用3.0.1有bug,插件市场是加载不出来的
dashboard:
image: &amp;ldquo;apache/apisix-dashboard:3.0.0-centos&amp;rdquo;
restart: always
depends_on:
- etcd
volumes:
##这里的配置文件使用all-in-one/apisix-dashboard/conf.yaml即可
- ./apisix-dashboard/conf.yaml:/usr/local/apisix-dashboard/conf/conf.yaml:ro
ports:
- &amp;ldquo;9000:9000/tcp&amp;rdquo;
networks:
- apisix
###测试用的服务，测完负载均衡可删除
web1:
image: nginx:1.19.0-alpine
restart: always
volumes:
- ./upstream/web1.conf:/etc/nginx/nginx.conf
ports:
- &amp;ldquo;8081:80/tcp&amp;rdquo;
environment:
- NGINX_PORT=80
networks:
apisix:
###测试用的服务，测完负载均衡可删除
web2:
image: nginx:1.19.0-alpine
restart: always
volumes:
- ./upstream/web2.conf:/etc/nginx/nginx.conf
ports:
- &amp;ldquo;8082:80/tcp&amp;rdquo;
environment:
- NGINX_PORT=80
networks:
apisix:
###监控工具，很有必要
prometheus:
image: prom/prometheus:v2.25.0
restart: always
volumes:
- ./prometheus_conf/prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- &amp;ldquo;9090:9090&amp;rdquo;
networks:
apisix:
###上面这个监控工具的图形化展示，很有必要
grafana:
image: grafana/grafana:7.3.7
restart: always
ports:
- &amp;ldquo;3000:3000&amp;rdquo;
volumes:
- &amp;ldquo;./grafana_conf/provisioning:/etc/grafana/provisioning&amp;rdquo;
- &amp;ldquo;./grafana_conf/dashboards:/var/lib/grafana/dashboards&amp;rdquo;
- &amp;ldquo;./grafana_conf/config/grafana.ini:/etc/grafana/grafana.ini&amp;rdquo;
networks:
apisix:
####使用独立的网络名为apisix
networks:
apisix:
driver: bridge&lt;/p&gt;
&lt;p&gt;volumes:
etcd_data:
driver: local&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;四、如果只是跑起来试一下，以上就OK了，接着就是启动&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;##在当前目录下执行，前提是安装了docker和compose
docker-compose -p docker-apisix up -d&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;五、如果要用到生产环境，有几个地方必须要改一下
apisix_conf/config.yaml中&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; .......
 admin_key:
 ##这个名称也最好改掉
 - name: "admin"
 ##这个key改掉，随便找个md5工具，输个字符串，输出32位哈希值即可使用
 key: edd1c9f034335f136f87ad84b625c8f1
 role: admin # admin: manage all configuration data
 ##名称最好也改掉
 - name: "viewer"
 ##上面都改了，这边也干脆改下
 key: 4054f7cf07e344346cd3f287985e76a2
 role: viewer
.......&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;apisix-dashboard/conf.yaml中&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;authentication:
 secret:
 ##看了注释，这个secret也改掉
 secret # secret for jwt token generation.
 # NOTE: Highly recommended to modify this value to protect `manager api`.
 # if it's default value, when `manager api` start, it will generate a random string to replace it.
 expire_time: 3600 # jwt token expire time, in second
 users:
 ###这四个值都改掉，随便你怎么定义，这是dashboard管理页面要输入的地址
 - username: admin # username and password for login `manager api`
 password: admin
 - username: user
 password: user&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;web1、web2两个容器可以删掉，留着没必要，docker-compose.yaml文件中配置删除即可。
另外更安全的做法是把端口全部改掉，一是因为apisix使用到的端口很常见，很难避免不与其他服务端口冲突。
如果没有冲突，或者你的端口不会暴露到公网，不改也没事，但是暴露到公网的端口尽量改掉。
修改端口只要修改docker-compose.yaml中的冒号前面部分，至于配置中的端口号大部分都不需要改，因为他们同属于一个网络组，他们内部通信使用容器端口是可以访问的。&lt;/p&gt;
&lt;p&gt;注意点：
apisix-dashboard:3.0.0请使用3.0.0版本，不要用最新的3.0.1，有插件显示空白bug,这个问题在github issue中有人提到。&lt;/p&gt;
&lt;p&gt;具体配置请看第二篇&lt;a href="https://lategege.com/p/docker-compose部署最新版apisix网关-二/" title=" Docker compose部署最新版Apisix网关(二）"&gt; Docker compose部署最新版Apisix网关(二）&lt;/a&gt;&lt;/p&gt;</description></item><item><title>各操作系统应用图标ICON尺寸规格说明</title><link>https://lategege.com/p/%E5%90%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%BA%94%E7%94%A8%E5%9B%BE%E6%A0%87icon%E5%B0%BA%E5%AF%B8%E8%A7%84%E6%A0%BC%E8%AF%B4%E6%98%8E/</link><pubDate>Sun, 28 Jan 2024 18:17:34 +0000</pubDate><guid>https://lategege.com/p/%E5%90%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%BA%94%E7%94%A8%E5%9B%BE%E6%A0%87icon%E5%B0%BA%E5%AF%B8%E8%A7%84%E6%A0%BC%E8%AF%B4%E6%98%8E/</guid><description>&lt;p&gt;开发者要确保应用在每一种平台都能实现优良展示效果，就必须掌握并遵守各个操作系统对应用图标尺寸的具体要求。以下内容将逐一向您解读在macOS、iOS、Windows、Android系统中，有关应用图标的规定尺寸。&lt;/p&gt;
&lt;h2&gt;macOS 应用图标所需各尺寸&lt;/h2&gt;
&lt;p&gt;在macOS系统里，应用图标需要采用.icns文件，即一个包括多个尺寸版本的图标文件。为适配不同的展示场合，推荐的图标尺寸 include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16x16px&lt;/li&gt;
&lt;li&gt;32x32px&lt;/li&gt;
&lt;li&gt;64x64px（32x32px 的 @2x）&lt;/li&gt;
&lt;li&gt;128x128px&lt;/li&gt;
&lt;li&gt;256x256px&lt;/li&gt;
&lt;li&gt;512x512px&lt;/li&gt;
&lt;li&gt;1024x1024px（512x512px 的 @2x） （顶级显示）&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些储备尺寸确保图标无论是在Dock栏，还是在Finder，亦或是App Store里均能正确呈现。&lt;/p&gt;
&lt;h2&gt;iOS 设备的应用图表规范大小&lt;/h2&gt;
&lt;p&gt;iOS的平台涵盖了iPhone与iPad，它们因为各自的屏幕尺寸和分辨率位置需要符合一定大小参数的图标。一下是iOS平台下几种常见的图标尺寸规格：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;iPhone&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;App 图标（主屏幕）：180x180px (@3x)，120x120px (@2x)&lt;/li&gt;
&lt;li&gt;App 图标（App Store）：1024x1024px&lt;/li&gt;
&lt;li&gt;小型Widget：102x102px (@3x)，68x68px (@2x)&lt;/li&gt;
&lt;li&gt;中型Widget：204x204px (@3x)，136x136px (@2x)&lt;/li&gt;
&lt;li&gt;大型Widget：306x306px (@3x)，204x204px (@2x)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;iPad&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;App 图标：167x167px (@2x for Pro), 152x152px (@2x)&lt;/li&gt;
&lt;li&gt;小型Widget：155x155px (@2x)&lt;/li&gt;
&lt;li&gt;中型Widget：310x310px (@2x)&lt;/li&gt;
&lt;li&gt;大型Widget：465x465px (@2x)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Apple Watch&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;App 图标：102x102px (38mm), 117x117px (42mm), 102x102px (40mm), 117x117px (44mm)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这里的"2x"和"3x"指展示密度不同 - "2x"针对高像素视网膜屏，"3x"指更高等级像素的超视网膜屏。&lt;/p&gt;
&lt;h2&gt;Windows 系统应用图表详尺寸信息&lt;/h2&gt;
&lt;p&gt;Windows系统一般用.ico格式来储存应用图标，与.icns类似，也能在一个图标文件中揉合几种尺寸。以下为Windows推荐的图标尺寸：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;16x16px&lt;/li&gt;
&lt;li&gt;32x32px&lt;/li&gt;
&lt;li&gt;48x48px&lt;/li&gt;
&lt;li&gt;64x64px&lt;/li&gt;
&lt;li&gt;128x128px&lt;/li&gt;
&lt;li&gt;256x256px&lt;/li&gt;
&lt;li&gt;小图标：16x16px, 32x32px&lt;/li&gt;
&lt;li&gt;中图标：48x48px&lt;/li&gt;
&lt;li&gt;大图标：256x256px&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;在Windows移动系统中，还包括了磁贴设计 icon 的其他几个建议尺寸：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;应用列表中的图标：44x44px&lt;/li&gt;
&lt;li&gt;小磁贴 – 71x71px&lt;/li&gt;
&lt;li&gt;中磁贴 – 150x150px&lt;/li&gt;
&lt;li&gt;宽磁贴 – 310x150px&lt;/li&gt;
&lt;li&gt;大磁贴 – 310x310px&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Android 平台上的标准图标尺寸&lt;/h2&gt;
&lt;p&gt;由于Android设备的屏幕密度范围极广，从ldpi（最低）延伸至xxxhdpi（最高），因此安卓图标尺寸需兼顾不同密度。以下所推标准尺寸即基于此适配：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;mdpi（标清）: 48x48px&lt;/li&gt;
&lt;li&gt;hdpi: 72x72px&lt;/li&gt;
&lt;li&gt;xhdpi: 96x96px&lt;/li&gt;
&lt;li&gt;xxhdpi: 144x144px&lt;/li&gt;
&lt;li&gt;xxxhdpi: 192x192px&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;此外，为了在Google Play商店中展示，应用需额外提供一种512x512px的大分辨率图标。&lt;/p&gt;</description></item><item><title>PVE中群晖虚拟机硬盘扩容的完整指南</title><link>https://lategege.com/p/pve%E4%B8%AD%E7%BE%A4%E6%99%96%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%A1%AC%E7%9B%98%E6%89%A9%E5%AE%B9%E7%9A%84%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97/</link><pubDate>Sun, 28 Jan 2024 17:59:23 +0000</pubDate><guid>https://lategege.com/p/pve%E4%B8%AD%E7%BE%A4%E6%99%96%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%A1%AC%E7%9B%98%E6%89%A9%E5%AE%B9%E7%9A%84%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97/</guid><description>&lt;h3&gt;准备工作&lt;/h3&gt;
&lt;p&gt;在一切开始之前，请把握以下要点:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;保障有充裕的物理硬盘空间供群晖虚拟机使用。&lt;/li&gt;
&lt;li&gt;提前备份现有群晖系统，预防数据意外丢失。&lt;/li&gt;
&lt;li&gt;确选择先关闭群晖虚拟机。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;步骤1：增大虚拟硬盘&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;登陆入PVE的Web操作页面。&lt;/li&gt;
&lt;li&gt;在左边的资源视图中定位所使用的群晖虚拟机并点击。&lt;/li&gt;
&lt;li&gt;跳转至“硬件”页签，选中待扩充的硬盘设备后点选“编辑”。&lt;/li&gt;
&lt;li&gt;在“大小”选项中录入期望的磁盘值，并执行“调整”。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;步骤2：查看群晖VM中硬盘大小是否更改&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;启动群晖虚拟机。&lt;/li&gt;
&lt;li&gt;进入群晖的在线管理控制台。&lt;/li&gt;
&lt;li&gt;启动并运行“存储管理器”应用。&lt;/li&gt;
&lt;li&gt;于“HDD/SDD”标签页里查询硬盘空间大小。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;步骤3：开启SSH并通过命令行完成扩容&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;首先，确保群晖系统中SSH服务被启用。&lt;/li&gt;
&lt;li&gt;使用SSH客户端连接到您的Virtual DSM。&lt;/li&gt;
&lt;li&gt;登录后，借助相关的命令行操作完成系统存储空间的调整。
&lt;pre&gt;&lt;code class="language-shell"&gt;ls /dev/sd* 查看硬盘
sudo fdisk /dev/sdb 假设要扩容的是sdb 这块硬盘，按p查看信息
sudo parted /dev/sdb resizepart 3 100% //指sdb3
sudo parted /dev/sdb resizepart 3 100% //指sdb5&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;回到群晖存储管理器，在对应的硬盘上面点击扩容即可&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;要点提醒&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;增加的虚拟硬盘空间并不会自行融入已存在的卷，这需要依赖头两个步骤手工进行卷的扩展。&lt;/li&gt;
&lt;li&gt;不要在虚拟机负载重大任务时进行扩容，以降最少潜在风险。&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Gitlab CI/CD Gitlab runner的优势</title><link>https://lategege.com/p/gitlab-ci-cd-gitlab-runner%E7%9A%84%E4%BC%98%E5%8A%BF/</link><pubDate>Sun, 28 Jan 2024 13:34:25 +0000</pubDate><guid>https://lategege.com/p/gitlab-ci-cd-gitlab-runner%E7%9A%84%E4%BC%98%E5%8A%BF/</guid><description>&lt;p&gt;作为开发者，可持续集成可以大大提高生产效率，有时候软件基础设施的建设应该是优先于coding执行的，为什么这么说呢？想象一下在一个糟糕的编译环境中，或者你用一台十几年前的电脑来开发程序，还没开始就凉了一大半了，无论做前端，后端，嵌入式，移动端甚至其他，良好的基础设置永远可以提升效率。&lt;/p&gt;
&lt;p&gt;所谓开发环境，最起码，你要有一台用着不卡的电脑，接着你需要能够使你的代码能够生成目标程序，你如果使用windows开发ios，亦或者使用mac开发windows程序，这两者之间势必要做一个很艰难的取舍，然而借助CI/CD你就不需要这样的烦恼，有的小伙伴喜欢使用github，自然而然github action成了首选，但是github是微软的，我们应该将代码安全放在首位，所以自建gitlab很有必要，因为gitlab其实就相当于私有化的github,github能做的，gitlab也能做，而且不差，数据完全掌握在自己手中，其中一个关键的功能gitlab-runner非常强大，集成也非常方便,每个平台下面，几行命令就可以将你的计算机安装并注册为gitlab-runner。&lt;/p&gt;
&lt;hr/&gt;
&lt;h5&gt;一、目标系统安装&lt;/h5&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/01/28/3e71f14c11b0.png"/&gt;&lt;/p&gt;
&lt;h5&gt;二、注册&lt;/h5&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2024/01/28/ef047dd02edb.png"/&gt;&lt;/p&gt;
&lt;h5&gt;三、在项目根目录下编写.gitlab-ci.yml&lt;/h5&gt;
&lt;p&gt;官网给出了详细的说明文档，怎么使用就取决于自己了
&lt;a href="https://docs.gitlab.com/16.8/ee/ci/yaml/index.html"&gt;https://docs.gitlab.com/16.8/ee/ci/yaml/index.html&lt;/a&gt;&lt;/p&gt;
&lt;h5&gt;四、gitlab-runner的优势&lt;/h5&gt;
&lt;p&gt;1、配置简单方便
2、和gitlab无缝衔接,编译结果自动会邮件通知
3、完全私有化，安全有保障
4、响应非常及时，提交修改即进入流水线作业
5、搭配PVE虚拟化系统，可以做到一台物理主机，全平台编译
6、支持并发作业&lt;/p&gt;</description></item><item><title>wukong_robot接入FunAsr和Chatglm3-6b</title><link>https://lategege.com/p/wukong_robot%E6%8E%A5%E5%85%A5funasr%E5%92%8Cchatglm3-6b/</link><pubDate>Sun, 26 Nov 2023 15:12:27 +0000</pubDate><guid>https://lategege.com/p/wukong_robot%E6%8E%A5%E5%85%A5funasr%E5%92%8Cchatglm3-6b/</guid><description>&lt;p&gt;现在人工智能依旧火爆，大模型层出不穷，一直很想将ai和语音交互结合起来，一开始打算入手小爱音箱通过开源项目xiaogpt玩一玩，经过分析它的实现原理大致如下：
1、通过小米service轮询小爱对话记录
2、将对话发给chatgpt,通过小米service将小爱设为mute
3、chatgpt回复后通过小米service调用小爱tts播报内容
整个过程相当于做了拦截处理，虽能实现，但是不够优雅，其核心流程掌控在小米手中，所以放弃这种方式。&lt;/p&gt;
&lt;p&gt;还有一个开源项目wukong_robot，它具备定制能力，完全可以自己编码实现整套语音控制流程，非常自由，而且它的内部功能已经很完善了，热衷开源的我当然会在此基础上定制我的功能。&lt;/p&gt;
&lt;p&gt;1、首先运行该项目需要解决的问题是python版本兼容问题，我的版本是3.10+，所以运行报错，经过分析得出是watchdog版本太旧了，升级成最新的就好。&lt;/p&gt;
&lt;p&gt;2、其次我之前看到达摩院出了一个FunAsr语音识别模型，想集成一下，但是wukong_robot的FunAsr功能是直接加载模型运行，这种方式对我来说不太灵活，我加入了FunAsr的wss集成方式，你可以在任意一台服务器部署FunAsr服务，官方的部署方式需要docker运行后再进入容器执行服务，比较麻烦，针对这个，我编写了Dockerfile脚本，让容器运行自动启动服务，有需要去我github下载：&lt;a href="https://github.com/lategege/FunAsr"&gt;https://github.com/lategege/FunAsr&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3、需要可以接入chatglm3-6b，因为这个模型在我另一台服务器中已经部署好了，官方demo是支持openai的api部署的，但是wukong_robot的openai模块有点小问题，新版的openai库去除了proxy方法，所以需要稍微改动下，还有一些地方要做小改动才能兼容chatglm3-6b的openai接口，大体上差不多。&lt;/p&gt;
&lt;p&gt;针对上面的改造我已经提交到我的github仓库:&lt;a href="https://github.com/lategege/wukong-robot"&gt;https://github.com/lategege/wukong-robot&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;完成上面改造后我还写了插件接入了nastool 通过语音来下载电影等，这部分就不放出来了，就是个小玩意，自此，我发现这个项目中唯一闭源的一块是baidu unit ，它作为NLU存在，事实上有它我们可以更方便定制控制，后面可以将它替换为longchain，从而实现整个语音机器人链条全部使用开源技术，不受制于任何一家公司。&lt;/p&gt;</description></item><item><title>docker jellyfin 使用ipv6观看电视直播</title><link>https://lategege.com/p/docker-jellyfin-%E4%BD%BF%E7%94%A8ipv6%E8%A7%82%E7%9C%8B%E7%94%B5%E8%A7%86%E7%9B%B4%E6%92%AD/</link><pubDate>Tue, 14 Nov 2023 15:21:17 +0000</pubDate><guid>https://lategege.com/p/docker-jellyfin-%E4%BD%BF%E7%94%A8ipv6%E8%A7%82%E7%9C%8B%E7%94%B5%E8%A7%86%E7%9B%B4%E6%92%AD/</guid><description>&lt;p&gt;jellyfin是支持iptv直播的，为什么要使用ipv6，那是因为网上ipv6的播放源响应速度是非常快的，ipv4的播放源就跟拖拉机似的，几乎不能用，所以开启docker jellyfin的ipv6就是关键，为什么我不用套件呢，要折腾那么多为了搞定docker的ipv6是因为docker更容易管理和迁移，套件的文件管理不透明，包括配置，挂载等等都是比较繁琐的，所以能用docker还是要使用docker。&lt;/p&gt;
&lt;p&gt;群晖7.2下docker开启ipv6 可以看我上一篇文章：
&lt;a href="https://lategege.com/p/群晖7-2-docker-开启-ipv6/"&gt;群晖7.2 docker 开启 ipv6&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;个人搜集了一些jellyfin可以使用的直播源，已经在我的&lt;a href="https://github.com/lategege/iptv-source"&gt;github&lt;/a&gt;公开，如下：&lt;/p&gt;
&lt;p&gt;iptv6播放源(推荐使用) &lt;a href="https://raw.githubusercontent.com/lategege/iptv-source/main/iptv6.m3u"&gt;https://raw.githubusercontent.com/lategege/iptv-source/main/iptv6.m3u&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ipv6-4K播放源(推荐使用) &lt;a href="https://raw.githubusercontent.com/lategege/iptv-source/main/iptv6-4k.m3u"&gt;https://raw.githubusercontent.com/lategege/iptv-source/main/iptv6-4k.m3u&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;ipv4播放源(不推荐) &lt;a href="https://raw.githubusercontent.com/lategege/iptv-source/main/iptv4.m3u"&gt;https://raw.githubusercontent.com/lategege/iptv-source/main/iptv4.m3u&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;苏州四个频道播放源 &lt;a href="https://raw.githubusercontent.com/lategege/iptv-source/main/iptv4-sz.m3u"&gt;https://raw.githubusercontent.com/lategege/iptv-source/main/iptv4-sz.m3u&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用方式很简单，打开jellyfin-&amp;gt;控制台-&amp;gt;电视直播-&amp;gt;添加
&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/14/640b687015ae.png"/&gt;&lt;/p&gt;
&lt;p&gt;还可以添加电视节目单，方便看电视预告 &lt;a href="http://epg.51zmt.top:8000/e.xml"&gt;http://epg.51zmt.top:8000/e.xml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/14/8feaa716130f.png"/&gt;&lt;/p&gt;
&lt;p&gt;效果如下：
&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/14/f898ad9db92a.png"/&gt;
&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/14/0ac99b1f2ad6.png"/&gt;&lt;/p&gt;
&lt;p&gt;使用了ipv6后明显看电视直播速度上升了一大截！&lt;/p&gt;</description></item><item><title>群晖7.2 docker 开启 ipv6</title><link>https://lategege.com/p/%E7%BE%A4%E6%99%967-2-docker-%E5%BC%80%E5%90%AF-ipv6/</link><pubDate>Tue, 14 Nov 2023 15:00:41 +0000</pubDate><guid>https://lategege.com/p/%E7%BE%A4%E6%99%967-2-docker-%E5%BC%80%E5%90%AF-ipv6/</guid><description>&lt;p&gt;有这个需求是因为我要用docker的jellyfin来播放ipv6的iptv源，也就是必须要让docker容器获取到能够和外界通信的ipv6地址。&lt;/p&gt;
&lt;p&gt;事实上，让容器获取ipv6，无非就两种方式&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;一种是直接使用host网络&lt;/li&gt;
&lt;li&gt;另一种则是建立ipv6子网，通过nat6来通信，又或是macvlan，这两种看做是同一种&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;让我选择，必然是第一种，因为容器使用ipv6的需求不是很多，为数不多的容器使用host网络，只要端口之间没有什么冲突，几乎没啥风险，于是很快就操作起来，实操千万种曹尼玛，结果的发现却让人哭笑不得。&lt;/p&gt;
&lt;p&gt;1.首先打开路由器的ipv6功能，让群晖获取ipv6，没啥问题。&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/14/fda5c58d4544.png"/&gt;&lt;/p&gt;
&lt;p&gt;2.打开群晖7.2的docker套件也就是Container Manager-&amp;gt;网络，查看host，什么鬼，ipv6 已禁用！！！&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/14/2acf3b359b89.png"/&gt;&lt;/p&gt;
&lt;p&gt;3.好吧，搜索引擎用起来，搜索怎么把群晖docker host的ipv6给打开，搜了一大圈也没发现群晖7.2下面的解决方案，但是7.2以前的版本到有很多开启方式。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;有说 /etc/docker/daemon.json 加入 { "ipv6":true,"fixed-cidr-v6":"xxxxx"...}的，
然后systemctl restart docker，群晖7.2的该目录下根本没有此文件，那就创建吧，
执行 systemctl restart docker , no such service，人家群晖7.2根本不是这样玩的，
好吧，就算成功重启了，群晖7.2真的会去加载这个daemon.json吗？我看未必，
还是要运行环境下去分析才能知道。
&lt;p&gt;又看到有的博主说了/usr/syno/etc/packages/Docker/dockerd.json，
加入&amp;quot;ipv6&amp;quot;:true,&amp;ldquo;fixed-cidr-v6&amp;rdquo;:&amp;ldquo;你的ipv6地址&amp;rdquo;，然后重启。 - -！
群晖7.2下不再称呼Docker了，而是ContainerManager，所以正确的目录为
群晖7.2docker 配置目录为
/var/packages/ContainerManager/etc/dockerd.json
/usr/syno/etc/packages/ContainerManager/dockerd.json
/volume1/@appconf/ContainerManager/dockerd.json(这个要看你docker安装在哪个磁盘)
三个目录其实配置文件都是同一份，随便修改哪个都行，于是一顿操作，然后运行重启
systemctl restart pkgctl-ContainerManager
或者去界面上ContainerManager套件停用再开启
或者synopkgctl stop ContainerManager，synopkgctl start ContainerManager
这三种都是重启方式，都是一样的效果，结果刚重启，dockerd.json中&amp;quot;ipv6&amp;quot;:true 消失不见了，
这尼玛肯定有程序处理了，然后分析搜索，看到老外找到了罪魁祸首是
/var/packages/ContainerManager/scripts/start-stop-status,
这个脚本中 $DockerUpdaterBin postinst updatedockerdconf &amp;ldquo;$(get_install_volume_type)&amp;rdquo;
这一行把ipv6:true 干掉了，然后注释掉，老外还写了脚本- -！当然是针对老版本群晖的，
老外脚本如下：&lt;/p&gt;
&lt;p&gt;#!/bin/sh
synopkgctl stop Docker
sed -i &amp;rsquo;s/^[^#]&lt;em&gt;[[:space:]]&lt;/em&gt;$DockerUpdaterBin postinst updatedockerdconf &amp;ldquo;$(get_install_volume_type)&amp;rdquo;/#&amp;amp;/&amp;rsquo; /var/packages/Docker/scripts/start-stop-status
sed -i &amp;lsquo;1a\ &amp;ldquo;ipv6&amp;rdquo; : true,&amp;rsquo; /var/packages/Docker/etc/dockerd.json
synopkgctl start Docker&lt;/p&gt;
&lt;p&gt;在实验阶段我当然不会使用脚本，不是不信任老外的脚本，上面这段脚本我看了，没有任何问题，
但我习惯没解决问题之前手动，然后按照上面脚本的思路改了，然后重启。结果&amp;quot;ipv6&amp;quot;:true是保住了，
特么的host还是禁用状态，其中一个网桥却有个ipv6，但是host都禁掉了，网桥有ipv6有个毛用，也是不能通信的。&lt;/p&gt;
&lt;p&gt;最后我把/var/packages/ContainerManager这个目录下的文件仔细的分析了下，
包括各个目录的作用，没什么头绪，把之前所有的工作全部还原。&lt;/p&gt;
&lt;p&gt;到最后也不管了，你禁用ipv6我也要把容器挂你host网络上试试。这一试就特么搞定了，
原来host ipv6显示禁用是假像，容器挂上host就能使用host的ipv6地址通信，
也就是群晖的ipv6地址，瞬间奔溃，搞了一天，最后发现什么都不用干！！&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; jellyfin:
 image: jellyfin/jellyfin:latest
 container_name: jellyfin-nvidia
 restart: always
 environment:
 - TZ=Asia/Shanghai
 - NVIDIA_DRIVER_CAPABILITIES=all
 - NVIDIA_VISIBLE_DEVICES=all
 network_mode: "host" //compose只要加入这行就能使用host,同时把端口映射屏蔽
 #ports:
 # - 8096:8096&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这件事背后可能是群晖ContainerManager的一个bug,界面显示ipv6已禁用，实际却可以使用。还有一种可能是群晖不希望你使用host网络，故意为之，说不定他希望我们使用web station套件做ipv6的反向代理，但是反向代理确实可以解决外部来访问容器，但是容器内部要和外界ipv6通信是办不到的，比如jellyfin要播放ipv6的iptv源，那就必须要让jellyfin有ipv6地址才能通信。&lt;/p&gt;
&lt;p&gt;最后进入容器验证ipv6通信是否正常：&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/14/3fd1826fe964.png"/&gt;&lt;/p&gt;
&lt;p&gt;毫无意外，通信正常！&lt;/p&gt;</description></item><item><title>jellyfin解决封面乱码和字幕乱码</title><link>https://lategege.com/p/jellyfin%E8%A7%A3%E5%86%B3%E5%B0%81%E9%9D%A2%E4%B9%B1%E7%A0%81%E5%92%8C%E5%AD%97%E5%B9%95%E4%B9%B1%E7%A0%81/</link><pubDate>Wed, 08 Nov 2023 09:29:32 +0000</pubDate><guid>https://lategege.com/p/jellyfin%E8%A7%A3%E5%86%B3%E5%B0%81%E9%9D%A2%E4%B9%B1%E7%A0%81%E5%92%8C%E5%AD%97%E5%B9%95%E4%B9%B1%E7%A0%81/</guid><description>&lt;p&gt;&lt;strong&gt;封面乱码&lt;/strong&gt;&lt;/p&gt;
第一种 (不推荐，容器更新后会失效)
&lt;p&gt;1.进入docker bash&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt update
apt install fonts-noto-cjk-extra&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2.重启docker jellyfin&lt;/p&gt;
&lt;p&gt;3.删除封面，重新扫描媒体库即可。&lt;/p&gt;
&lt;p&gt;第二种(推荐，不会随着容器更新而失效)&lt;/p&gt;
&lt;p&gt;1.创建一个新的挂载路径fonts/dejavu 指向容器内路径 /usr/share/fonts/truetype/dejavu&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;容器内有以下字体文件，这些字体是不支持中文显示的，我们要把这些字体替换掉
DejaVuSans-Bold.ttf
DejaVuSans.ttf
DejaVuSansMono-Bold.ttf
DejaVuSansMono.ttf
DejaVuSerif-Bold.ttf
DejaVuSerif.ttf&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2.去网上下一个自己喜欢的风格并且支持简体中文的字体，比如这个：
&lt;a href="https://github.com/notofonts/noto-cjk/releases"&gt;https://github.com/notofonts/noto-cjk/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3.在字体文件中选一个复制6份，重命名为以上文件名，然后将这几个字体复制进fonts/dejavu目录&lt;/p&gt;
&lt;p&gt;4.重启docker jellyfin，删除封面，重新扫描媒体库即可。&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;strong&gt;字幕乱码&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;1.挂载路径下的config中创建fonts文件夹&lt;/p&gt;
&lt;p&gt;2.下载字体包 &lt;a href="https://raw.githubusercontent.com/CodePlayer/webfont-noto/master/release/NotoSansCJKsc-hinted-standard.zip" title="Noto Sans SC woff2"&gt;Noto Sans SC woff2&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;3.解压包，将 NotoSansCJKsc-Medium.woff2 放入fonts目录&lt;/p&gt;
&lt;p&gt;4.切换到控制台--&amp;gt;播放--&amp;gt;勾选启用备用字体，填入路径/config/fonts路径，保存即可。&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/08/241c98b6bf3b.png"/&gt;&lt;/p&gt;</description></item><item><title>视频、音频、图片下载神器you-get安装使用</title><link>https://lategege.com/p/%E8%A7%86%E9%A2%91-%E9%9F%B3%E9%A2%91-%E5%9B%BE%E7%89%87%E4%B8%8B%E8%BD%BD%E7%A5%9E%E5%99%A8you-get%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8/</link><pubDate>Tue, 07 Nov 2023 11:23:16 +0000</pubDate><guid>https://lategege.com/p/%E8%A7%86%E9%A2%91-%E9%9F%B3%E9%A2%91-%E5%9B%BE%E7%89%87%E4%B8%8B%E8%BD%BD%E7%A5%9E%E5%99%A8you-get%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8/</guid><description>&lt;p&gt;you-get是一款用命令下载多媒体的开源工具，它可以下载视频、音频、图片，支持Youtube、bilibili、爱奇艺等众多网站。&lt;/p&gt;
&lt;hr/&gt;
&lt;h5&gt;安装&lt;/h5&gt;
&lt;p&gt;安装前置条件：
Python &amp;gt;=3.7.4
FFmpeg &amp;gt;=1.0&lt;/p&gt;
&lt;p&gt;推荐安装方式:
1、克隆仓库 &lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone git://github.com/soimort/you-get.git&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;2、进入仓库目录，执行安装脚本&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./setup.py install&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;mac便捷安装方式：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;brew install you-get&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;freebsd便捷安装方式:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pkg install you-get&lt;/code&gt;&lt;/pre&gt;
&lt;hr/&gt;
&lt;h5&gt;使用&lt;/h5&gt;
&lt;p&gt;查看视频信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;you-get -i "https://www.bilibili.com/video/BV1Ay4y1w7q6/?spm_id_from=333.1007.tianma.3-2-8.click&amp;amp;vd_source=862a7e0613a42d0792251e7655dfac95"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/11/07/7df202b25bf0.png"/&gt;&lt;/p&gt;
&lt;p&gt;可以根据提示下载&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;you-get --format=dash-flv480 "https://www.bilibili.com/video/BV1Ay4y1w7q6/?spm_id_from=333.1007.tianma.3-2-8.click&amp;amp;vd_source=862a7e0613a42d0792251e7655dfac95"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;或者直接使用默认方式下载&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;you-get "https://www.bilibili.com/video/BV1Ay4y1w7q6/?spm_id_from=333.1007.tianma.3-2-8.click&amp;amp;vd_source=862a7e0613a42d0792251e7655dfac95"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;你也可以指定下载目录(-o 目录)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;you-get --format=dash-flv480 -o ~/Downloads "https://www.bilibili.com/video/BV1Ay4y1w7q6/?spm_id_from=333.1007.tianma.3-2-8.click&amp;amp;vd_source=862a7e0613a42d0792251e7655dfac95"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用 -u / --json 获取视频源下载地址信息&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;you-get -u "https://www.bilibili.com/video/BV1Ay4y1w7q6/?spm_id_from=333.1007.tianma.3-2-8.click&amp;amp;vd_source=862a7e0613a42d0792251e7655dfac95"
you-get --json "https://www.bilibili.com/video/BV1Ay4y1w7q6/?spm_id_from=333.1007.tianma.3-2-8.click&amp;amp;vd_source=862a7e0613a42d0792251e7655dfac95"&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;以上就是you-get的使用方式&lt;/p&gt;
&lt;p&gt;另外，you-get支持以下站点：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align="center"&gt;Site&lt;/th&gt;
&lt;th align="left"&gt;URL&lt;/th&gt;
&lt;th align="center"&gt;Videos?&lt;/th&gt;
&lt;th align="center"&gt;Images?&lt;/th&gt;
&lt;th align="center"&gt;Audios?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;YouTube&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.youtube.com/" rel="nofollow"&gt;https://www.youtube.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;Twitter&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://twitter.com/" rel="nofollow"&gt;https://twitter.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;VK&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://vk.com/" rel="nofollow"&gt;http://vk.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Vine&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://vine.co/" rel="nofollow"&gt;https://vine.co/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Vimeo&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://vimeo.com/" rel="nofollow"&gt;https://vimeo.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Veoh&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.veoh.com/" rel="nofollow"&gt;http://www.veoh.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;Tumblr&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.tumblr.com/" rel="nofollow"&gt;https://www.tumblr.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;TED&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.ted.com/" rel="nofollow"&gt;http://www.ted.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;SoundCloud&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://soundcloud.com/" rel="nofollow"&gt;https://soundcloud.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;SHOWROOM&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.showroom-live.com/" rel="nofollow"&gt;https://www.showroom-live.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Pinterest&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.pinterest.com/" rel="nofollow"&gt;https://www.pinterest.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;MTV81&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.mtv81.com/" rel="nofollow"&gt;http://www.mtv81.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Mixcloud&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.mixcloud.com/" rel="nofollow"&gt;https://www.mixcloud.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Metacafe&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.metacafe.com/" rel="nofollow"&gt;http://www.metacafe.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Magisto&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.magisto.com/" rel="nofollow"&gt;http://www.magisto.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Khan Academy&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.khanacademy.org/" rel="nofollow"&gt;https://www.khanacademy.org/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Internet Archive&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://archive.org/" rel="nofollow"&gt;https://archive.org/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;Instagram&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://instagram.com/" rel="nofollow"&gt;https://instagram.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;InfoQ&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.infoq.com/presentations/" rel="nofollow"&gt;http://www.infoq.com/presentations/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Imgur&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://imgur.com/" rel="nofollow"&gt;http://imgur.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Heavy Music Archive&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.heavy-music.ru/" rel="nofollow"&gt;http://www.heavy-music.ru/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Freesound&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.freesound.org/" rel="nofollow"&gt;http://www.freesound.org/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Flickr&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.flickr.com/" rel="nofollow"&gt;https://www.flickr.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;FC2 Video&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://video.fc2.com/" rel="nofollow"&gt;http://video.fc2.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Facebook&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.facebook.com/" rel="nofollow"&gt;https://www.facebook.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;eHow&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.ehow.com/" rel="nofollow"&gt;http://www.ehow.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Dailymotion&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.dailymotion.com/" rel="nofollow"&gt;http://www.dailymotion.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Coub&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://coub.com/" rel="nofollow"&gt;http://coub.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;CBS&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.cbs.com/" rel="nofollow"&gt;http://www.cbs.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Bandcamp&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://bandcamp.com/" rel="nofollow"&gt;http://bandcamp.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;AliveThai&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://alive.in.th/" rel="nofollow"&gt;http://alive.in.th/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;interest.me&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://ch.interest.me/tvn" rel="nofollow"&gt;http://ch.interest.me/tvn&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;755&lt;br/&gt;ナナゴーゴー&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://7gogo.jp/" rel="nofollow"&gt;http://7gogo.jp/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;niconico&lt;br/&gt;ニコニコ動画&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.nicovideo.jp/" rel="nofollow"&gt;http://www.nicovideo.jp/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;163&lt;br/&gt;网易视频&lt;br/&gt;网易云音乐&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://v.163.com/" rel="nofollow"&gt;http://v.163.com/&lt;/a&gt;&lt;br/&gt;&lt;a href="http://music.163.com/" rel="nofollow"&gt;http://music.163.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;56网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.56.com/" rel="nofollow"&gt;http://www.56.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;AcFun&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.acfun.cn/" rel="nofollow"&gt;http://www.acfun.cn/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;Baidu&lt;br/&gt;百度贴吧&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://tieba.baidu.com/" rel="nofollow"&gt;http://tieba.baidu.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;爆米花网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.baomihua.com/" rel="nofollow"&gt;http://www.baomihua.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;bilibili&lt;br/&gt;哔哩哔哩&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.bilibili.com/" rel="nofollow"&gt;http://www.bilibili.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;豆瓣&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.douban.com/" rel="nofollow"&gt;http://www.douban.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;斗鱼&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.douyutv.com/" rel="nofollow"&gt;http://www.douyutv.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;凤凰视频&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://v.ifeng.com/" rel="nofollow"&gt;http://v.ifeng.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;风行网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.fun.tv/" rel="nofollow"&gt;http://www.fun.tv/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;iQIYI&lt;br/&gt;爱奇艺&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.iqiyi.com/" rel="nofollow"&gt;http://www.iqiyi.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;激动网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.joy.cn/" rel="nofollow"&gt;http://www.joy.cn/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;酷6网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.ku6.com/" rel="nofollow"&gt;http://www.ku6.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;酷狗音乐&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.kugou.com/" rel="nofollow"&gt;http://www.kugou.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;酷我音乐&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.kuwo.cn/" rel="nofollow"&gt;http://www.kuwo.cn/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;乐视网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.le.com/" rel="nofollow"&gt;http://www.le.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;荔枝FM&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.lizhi.fm/" rel="nofollow"&gt;http://www.lizhi.fm/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;懒人听书&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.lrts.me/" rel="nofollow"&gt;http://www.lrts.me/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;秒拍&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.miaopai.com/" rel="nofollow"&gt;http://www.miaopai.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;MioMio弹幕网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.miomio.tv/" rel="nofollow"&gt;http://www.miomio.tv/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;MissEvan&lt;br/&gt;猫耳FM&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.missevan.com/" rel="nofollow"&gt;http://www.missevan.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;痞客邦&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.pixnet.net/" rel="nofollow"&gt;https://www.pixnet.net/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;PPTV聚力&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.pptv.com/" rel="nofollow"&gt;http://www.pptv.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;齐鲁网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://v.iqilu.com/" rel="nofollow"&gt;http://v.iqilu.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;QQ&lt;br/&gt;腾讯视频&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://v.qq.com/" rel="nofollow"&gt;http://v.qq.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;企鹅直播&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://live.qq.com/" rel="nofollow"&gt;http://live.qq.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Sina&lt;br/&gt;新浪视频&lt;br/&gt;微博秒拍视频&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://video.sina.com.cn/" rel="nofollow"&gt;http://video.sina.com.cn/&lt;/a&gt;&lt;br/&gt;&lt;a href="http://video.weibo.com/" rel="nofollow"&gt;http://video.weibo.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Sohu&lt;br/&gt;搜狐视频&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://tv.sohu.com/" rel="nofollow"&gt;http://tv.sohu.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;Tudou&lt;br/&gt;土豆&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.tudou.com/" rel="nofollow"&gt;http://www.tudou.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;阳光卫视&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.isuntv.com/" rel="nofollow"&gt;http://www.isuntv.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;&lt;strong&gt;Youku&lt;br/&gt;优酷&lt;/strong&gt;&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.youku.com/" rel="nofollow"&gt;http://www.youku.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;战旗TV&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.zhanqi.tv/lives" rel="nofollow"&gt;http://www.zhanqi.tv/lives&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;央视网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.cntv.cn/" rel="nofollow"&gt;http://www.cntv.cn/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;Naver&lt;br/&gt;네이버&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://tvcast.naver.com/" rel="nofollow"&gt;http://tvcast.naver.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;芒果TV&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.mgtv.com/" rel="nofollow"&gt;http://www.mgtv.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;火猫TV&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.huomao.com/" rel="nofollow"&gt;http://www.huomao.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;阳光宽频网&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://www.365yg.com/" rel="nofollow"&gt;http://www.365yg.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;西瓜视频&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.ixigua.com/" rel="nofollow"&gt;https://www.ixigua.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;新片场&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.xinpianchang.com/" rel="nofollow"&gt;https://www.xinpianchang.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;快手&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.kuaishou.com/" rel="nofollow"&gt;https://www.kuaishou.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;抖音&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.douyin.com/" rel="nofollow"&gt;https://www.douyin.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;TikTok&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.tiktok.com/" rel="nofollow"&gt;https://www.tiktok.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;中国体育(TV)&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="http://v.zhibo.tv/" rel="nofollow"&gt;http://v.zhibo.tv/&lt;/a&gt; &lt;br/&gt;&lt;a href="http://video.zhibo.tv/" rel="nofollow"&gt;http://video.zhibo.tv/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td align="center"&gt;知乎&lt;/td&gt;
&lt;td align="left"&gt;&lt;a href="https://www.zhihu.com/" rel="nofollow"&gt;https://www.zhihu.com/&lt;/a&gt;&lt;/td&gt;
&lt;td align="center"&gt;✓&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;td align="center"&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;其他详细信息可见github仓库:&lt;a href="https://github.com/soimort/you-get"&gt;https://github.com/soimort/you-get&lt;/a&gt;&lt;/p&gt;</description></item><item><title>记一次运营商dns被劫持事件</title><link>https://lategege.com/p/%E8%AE%B0%E4%B8%80%E6%AC%A1%E8%BF%90%E8%90%A5%E5%95%86dns%E8%A2%AB%E5%8A%AB%E6%8C%81%E4%BA%8B%E4%BB%B6/</link><pubDate>Wed, 25 Oct 2023 15:42:58 +0000</pubDate><guid>https://lategege.com/p/%E8%AE%B0%E4%B8%80%E6%AC%A1%E8%BF%90%E8%90%A5%E5%95%86dns%E8%A2%AB%E5%8A%AB%E6%8C%81%E4%BA%8B%E4%BB%B6/</guid><description>&lt;p&gt;最近发现家里百度网盘访问不了了，现象如下图所示，不知道究竟是证书被劫持还是dns被劫持。&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/10/25/440fead28579.png"/&gt;&lt;/p&gt;
&lt;p&gt;先ping pan.baidu.com 得到ip地址为111.206.211.22，查询为北京联通，有点疑惑？&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/10/25/1f7641df6fb5.png"/&gt;&lt;/p&gt;
&lt;p&gt;去dns查询站点查询外部获取的地址：&lt;a href="https://myssl.com/dns_check.html"&gt;https://myssl.com/dns_check.html&lt;/a&gt; 得到结果 : 111.63.96.53&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/10/25/d7ac7c0c34b8.png"/&gt;&lt;/p&gt;
&lt;p&gt;最终判断运营商dns大概率被劫持了，无奈下进入软路由smartdns强行反劫持&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/10/25/3bb9b7857d76.png"/&gt;&lt;/p&gt;
&lt;p&gt;最后重启dnsmaq, ping 下pan.baidu.com,指向正确&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/10/25/8a2644f3d2cd.png"/&gt;&lt;/p&gt;
&lt;p&gt;网盘访问恢复正常！&lt;/p&gt;</description></item><item><title>笔记软件推荐Joplin</title><link>https://lategege.com/p/%E7%AC%94%E8%AE%B0%E8%BD%AF%E4%BB%B6%E6%8E%A8%E8%8D%90joplin/</link><pubDate>Fri, 22 Sep 2023 00:51:37 +0000</pubDate><guid>https://lategege.com/p/%E7%AC%94%E8%AE%B0%E8%BD%AF%E4%BB%B6%E6%8E%A8%E8%8D%90joplin/</guid><description>&lt;p&gt;体验过很多笔记软件,最终还是选择了Joplin，选择它有以下几点原因。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;开源，可以自建服务，自建的服务可支持创建多账号，可以为身边需要的人开设独立账号互不干扰，当然也可以使用webdav同步，这就失去了多账号和管理的特性。&lt;/li&gt;
&lt;li&gt;支持markdown,并且支持左右布局(左边编写，右边展示效果)这一点对markdown来说尤为重要，还支持富文本编译模式(不常用)。&lt;/li&gt;
&lt;li&gt;编辑页面简约，没有花里胡哨的东西，非常轻量级的编辑器，打开速度比较快，支持扩展插件。&lt;/li&gt;
&lt;li&gt;笔记可以创建树状结构，这点很重要，它非常便于知识的归类。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;效果如图：&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/09/22/3c609b95dd75.png"/&gt;&lt;/p&gt;
&lt;p&gt;Joplin相对于群晖note station来说，它支持markdown , 同时软件打开的速度比note station快很多，树状的目录结构也是note station不具备的，但是note station有一项功能是Joplin没有的，那就是单笔记加密功能，所以note station也有它使用的场景，比如一些重要的资料可以保存在note station并且加密，对于普通的学习笔记，Joplin是更好的选择，在自建服务得加持下，可以轻松将笔记分享给别人。&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;官方下载地址：&lt;a href="https://joplinapp.org"&gt;https://joplinapp.org&lt;/a&gt;
github源码地址:&lt;a href="https://github.com/laurent22/joplin"&gt;https://github.com/laurent22/joplin&lt;/a&gt;
插件地址：&lt;a href="https://github.com/joplin/plugins"&gt;https://github.com/joplin/plugins&lt;/a&gt;
服务自建教程网上非常多，这里提供下docker环境下的部署文本。&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-yaml"&gt;### docker-compose.yaml
version: '3'
services:
 db:
 image: postgres:15
 volumes:
 - ./data/postgres:/var/lib/postgresql/data
 ports:
 - "5432:5432"
 restart: unless-stopped
 environment:
 - POSTGRES_PASSWORD=joplin
 - POSTGRES_USER=joplin
 - POSTGRES_DB=joplin
 app:
 image: joplin/server:latest
 depends_on:
 - db
 ports:
 - "$替换你想使用的端口号:$替换你想使用的端口号"
 restart: unless-stopped
 environment:
 - APP_PORT=$替换你想使用的端口号
 - APP_BASE_URL=$替换成你对外公开的网址
 - DB_CLIENT=pg
 - POSTGRES_PASSWORD=joplin
 - POSTGRES_DATABASE=joplin
 - POSTGRES_USER=joplin
 - POSTGRES_PORT=5432
 - POSTGRES_HOST=$替换docker宿主的ip&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;##docker-compose部署服务,访问你的joplin服务，有默认账户密码，登录后修改下即可。
账户名：admin@localhost
密码：admin&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>解决xrdp远程 连接ubuntu声音播放问题</title><link>https://lategege.com/p/%E8%A7%A3%E5%86%B3xrdp%E8%BF%9C%E7%A8%8B-%E8%BF%9E%E6%8E%A5ubuntu%E5%A3%B0%E9%9F%B3%E6%92%AD%E6%94%BE%E9%97%AE%E9%A2%98/</link><pubDate>Sun, 17 Sep 2023 02:28:05 +0000</pubDate><guid>https://lategege.com/p/%E8%A7%A3%E5%86%B3xrdp%E8%BF%9C%E7%A8%8B-%E8%BF%9E%E6%8E%A5ubuntu%E5%A3%B0%E9%9F%B3%E6%92%AD%E6%94%BE%E9%97%AE%E9%A2%98/</guid><description>&lt;p&gt;xrdp连接ubuntu 需要借助pulseaudio模块，安装过程比较繁琐，不过老外编写了一键脚本，脚本目前为止已经更新到v1.4.7
&lt;a href="https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.4.7.zip" title="xRDP – Easy install xRDP on Ubuntu 18.04,20.04,22.04,22.10, 23.04 (Script Version 1.4.7)"&gt;xRDP – Easy install xRDP on Ubuntu 18.04,20.04,22.04,22.10, 23.04 (Script Version 1.4.7)&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#1. 可以通过wget下载脚本
wget https://www.c-nergy.be/downloads/xRDP/xrdp-installer-1.4.7.zip
#2.解压
unzip xrdp-installer-1.4.7.zip
#3.授权
chmod +x ./xrdp-installer-1.4.7.sh
#4.执行sound模块安装，安装过程不要使用sudo, 安装过程如果有报错，请换回官方源，国内源可能无法安装pulseaudio模块
./xrdp-installer-1.4.7.sh -s
#完成后重启，通过xrdp连接ubuntu发现声音可以正常播放了.&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/09/17/b426c0d36071.png"/&gt;&lt;/p&gt;
&lt;p&gt;老外博客：&lt;a href="https://c-nergy.be/blog/?cat=79"&gt;https://c-nergy.be/blog/?cat=79&lt;/a&gt;&lt;/p&gt;</description></item><item><title>nec7代(m710q)小主机魔改bios支持e3v5处理器</title><link>https://lategege.com/p/nec7%E4%BB%A3-m710q-%E5%B0%8F%E4%B8%BB%E6%9C%BA%E9%AD%94%E6%94%B9bios%E6%94%AF%E6%8C%81e3v5%E5%A4%84%E7%90%86%E5%99%A8/</link><pubDate>Sun, 20 Aug 2023 15:57:07 +0000</pubDate><guid>https://lategege.com/p/nec7%E4%BB%A3-m710q-%E5%B0%8F%E4%B8%BB%E6%9C%BA%E9%AD%94%E6%94%B9bios%E6%94%AF%E6%8C%81e3v5%E5%A4%84%E7%90%86%E5%99%A8/</guid><description>&lt;p&gt;需要准备工具&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;编程器
&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/08/20/8246efc78239.png"/&gt;&lt;/li&gt;
&lt;li&gt;编程器驱动以及读写bios软件(购买编程器卖家会给)&lt;/li&gt;
&lt;li&gt;D大的批处理脚本
链接: &lt;a href="https://pan.baidu.com/s/1HMkAL0dTZ5UU5ONFIsAAqQ"&gt;https://pan.baidu.com/s/1HMkAL0dTZ5UU5ONFIsAAqQ&lt;/a&gt; 提取码: 5v88
如果只要支持 e3v5,只要使用网盘中XeonBGA.7z这个批处理程序&lt;/li&gt;
&lt;li&gt;nec7小主机一台(红色方框的就是bios芯片)
&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/08/20/fe850ad19a3f.png"/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;p&gt;操作步骤如下:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用编程器读出BIOS，命名为BIOS.BIN，放入XeonBGA目录&lt;/li&gt;
&lt;li&gt;双击XeonBGA目录下的_3_Patch_FD_ME.bat执行批处理，&lt;/li&gt;
&lt;li&gt;将BION.BIN刷回.&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>群晖7.2 docker-compose部署jellyfin(开启Intel核显硬解)</title><link>https://lategege.com/p/%E7%BE%A4%E6%99%967-2-docker-compose%E9%83%A8%E7%BD%B2jellyfin-%E5%BC%80%E5%90%AFintel%E6%A0%B8%E6%98%BE%E7%A1%AC%E8%A7%A3/</link><pubDate>Tue, 15 Aug 2023 02:41:47 +0000</pubDate><guid>https://lategege.com/p/%E7%BE%A4%E6%99%967-2-docker-compose%E9%83%A8%E7%BD%B2jellyfin-%E5%BC%80%E5%90%AFintel%E6%A0%B8%E6%98%BE%E7%A1%AC%E8%A7%A3/</guid><description>&lt;p&gt;有了docker-compose，jellyfin实现硬解就不需要ssh登录群晖了，因为可以使用device设备映射配置，原来的图形界面是不支持设备映射的，比较繁琐，群晖7.2支持了docker-compose，只要你确保你的群晖已经驱动了英特尔核显，那么就不需要再去命令行下启动docker了。&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;打开container manager，点开项目-&amp;gt;新增，创建jellyfin的项目，选个路径，将以下配置输入，为避免影视资源权限问题，请提前将你的影视路径设为everyone可读可写权限。&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-yaml"&gt;version: '3'
services:
 jellyfin:
 image: jellyfin/jellyfin:latest
 container_name: jellyfin
 volumes:
 - ./config:/config
 - ./cache:/cache
 - 替换成你的影视资源路径:/media
 devices:
 - /dev/dri:/dev/dri #需要硬解的配置
 ports:
 - "8096:8096"
 restart: always&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/08/15/b1805ac558c9.png"/&gt;&lt;/p&gt;
&lt;p&gt;启动你就能运行jellyfin了，访问你8096的jellyfin创建完管理员账户密码，切换到控制台-&amp;gt;播放-&amp;gt;选择VAAPI,在对应的硬件解码上打勾，不打钩就会使用软件解码。&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/08/15/684943a6e172.png"/&gt;&lt;/p&gt;
&lt;p&gt;以下是intel 核显支持的编解码格式表，根据具体型号打开具体的格式，不要全部勾选，不支持的打开了会播放不了。&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/08/15/a4326c6a4188.png"/&gt;&lt;/p&gt;
&lt;p&gt;想要完美支持就要选择HD610及以上核显，当然这里的完美只是相对了，因为这些核显全都不支持谷歌最新的AV1编解码,AV1编码才是未来，它开源免费，压缩效率大大提升而没有牺牲画面质量，但目前还未普及，从intel 11代带核显的cpu起，已经支持硬解AV1了，当然主流的nvidia30系、amd6000系列也都支持，奈何群晖并没有相关核显驱动，强迫症用户表示很难受，不过未来群晖8.0，9.0早晚会支持。&lt;/p&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/08/15/3beb1512d069.png"/&gt;&lt;/p&gt;</description></item><item><title>HD P530和HD 530解码能力区别</title><link>https://lategege.com/p/hd-p530%E5%92%8Chd-530%E8%A7%A3%E7%A0%81%E8%83%BD%E5%8A%9B%E5%8C%BA%E5%88%AB/</link><pubDate>Mon, 14 Aug 2023 05:42:38 +0000</pubDate><guid>https://lategege.com/p/hd-p530%E5%92%8Chd-530%E8%A7%A3%E7%A0%81%E8%83%BD%E5%8A%9B%E5%8C%BA%E5%88%AB/</guid><description>&lt;p&gt;最近搭了台PVE黑群晖，正纳闷着P530核显怎么硬解不了HEVC 10bit，百度搜到的都是P530等同于HD530,还有些博客的表格中P530显示支持HEVC 10BIT，直到我谷歌搜索出来才知道原来它们之间是有区别的，真是坑，在此记录一下！&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;E3 1225V5核显P530 &lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/08/14/053a602b6df1.png"/&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;6代普通核显HD530&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;&lt;img alt="file" src="https://img.lategege.com:30443/images/2023/08/14/adf9e2f725de.png"/&gt;&lt;/p&gt;</description></item><item><title>WordPress Markdown插件支持图片上传到chevereto</title><link>https://lategege.com/p/wordpress-markdown%E6%8F%92%E4%BB%B6%E6%94%AF%E6%8C%81%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0%E5%88%B0chevereto/</link><pubDate>Sat, 12 Aug 2023 04:40:31 +0000</pubDate><guid>https://lategege.com/p/wordpress-markdown%E6%8F%92%E4%BB%B6%E6%94%AF%E6%8C%81%E5%9B%BE%E7%89%87%E4%B8%8A%E4%BC%A0%E5%88%B0chevereto/</guid><description>&lt;p&gt;WordPress 最受欢迎的md插件是githuber-md，该插件是完全开源的，在我使用过程中发现图片上传只支持国外的一些公开的图床，国内使用不是很友好，而我部署的图床是开源的Chevereto,所以想着自己写点代码支持一下，于是fork一下代码，写完测试了一下就提交了，有需要的朋友可以去我的github上去取 &lt;a href="https://github.com/lategege/githuber-md"&gt;https://github.com/lategege/githuber-md&lt;/a&gt; ，我也向原作者提交了merge request，合入后官方插件就会支持，在此之前可以先按照我仓库的手动修改。&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;使用方式很简单，管理后台，设置-&amp;gt;WP Githuber MD -&amp;gt;找到对应的配置，选中chevereto, 填入你的chevereto api url , chevereto api key-&amp;gt;保存即可。
&lt;img alt="file" src="https://img.lategege.com:30443/images/web/2023/8-12/1.webp"/&gt;&lt;/p&gt;</description></item><item><title>群晖7.2部署最新的gitlab16.2.3</title><link>https://lategege.com/p/%E7%BE%A4%E6%99%967-2%E9%83%A8%E7%BD%B2%E6%9C%80%E6%96%B0%E7%9A%84gitlab16-2-3/</link><pubDate>Thu, 10 Aug 2023 04:14:09 +0000</pubDate><guid>https://lategege.com/p/%E7%BE%A4%E6%99%967-2%E9%83%A8%E7%BD%B2%E6%9C%80%E6%96%B0%E7%9A%84gitlab16-2-3/</guid><description>&lt;p&gt;在群晖6.x中是有gitlab套件的，但是7.x群晖官方移除了套件的支持，目前最适合在群晖7.2中部署gitlab的方式就是docker,而且是docker-compose,群晖7.2刚支持docker-compose,就可以用起来了， 有了它，部署gitlab变得超级简单。&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;使用docker部署gitlab，有两种选择：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;官方的gitlab-ce，&lt;/li&gt;
&lt;li&gt;第三方的docker镜像&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;老实说，官方的gitlab-ce超级难用，部署后各种链接问题，像我需要https又不想用gitlab自身的反向代理的时候，配置就会变得乱七八糟，一份gitlab.rb里边一大堆注释掉的都是配置，还有其他文件也要配合着改，而第三方的gitlab简单配置下就能完美使用，在群晖6.x的时候，它的套件也是用的第三方gitlab，其实就是这个：
&lt;a href="https://github.com/sameersbn/docker-gitlab"&gt;https://github.com/sameersbn/docker-gitlab&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;这个项目紧跟gitlab官方的脚本，版本号也是一直在更新，我的群晖6.2中gitlab版本还只是13.2,现在已经是16.2了。&lt;/p&gt;
&lt;p&gt;sameersbn gitlab也提供了compose文件 &lt;a href="https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml"&gt;https://raw.githubusercontent.com/sameersbn/docker-gitlab/master/docker-compose.yml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;其中有个坑，postgresql版本它指定了12，是有问题的，然而它们没有制作13的postgresql,但是他们却有14和15，所以用14是没有问题的，15会有问题，所以compose文件需要改动下,可以参照下面的填写：&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-yaml"&gt;version: '2.3'
&lt;p&gt;services:
redis:
restart: always
image: redis:6.2.6
command:
- &amp;ndash;loglevel warning
volumes:
#这边改成相对路径,相对于你compose文件而言，提前创建好redis-data文件夹
#- redis-data:/data:Z
- ./redis-data:/data:Z&lt;/p&gt;
&lt;p&gt;postgresql:
restart: always
#这里要改动下
#image: sameersbn/postgresql:12-20200524
image: sameersbn/postgresql:14
volumes:
#这边改成相对路径,相对于你compose文件而言，提前创建好postgresql-data文件夹,这个如果有权限问题，就ssh进入群晖将此文件夹权限改为700
#- postgresql-data:/var/lib/postgresql:Z
- ./postgresql-data:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm,btree_gist&lt;/p&gt;
&lt;p&gt;gitlab:
restart: always
image: sameersbn/gitlab:16.2.3
depends_on:
- redis
- postgresql
ports:
#端口号根据自己需求来改
- &amp;ldquo;10080:80&amp;rdquo;
- &amp;ldquo;10022:22&amp;rdquo;
volumes:
#这边改成相对路径,相对于你compose文件而言，提前创建好gitlab-data文件夹
#- gitlab-data:/home/git/data:Z
- ./gitlab-data:/home/git/data:Z
healthcheck:
test: [&amp;ldquo;CMD&amp;rdquo;, &amp;ldquo;/usr/local/sbin/healthcheck&amp;rdquo;]
interval: 5m
timeout: 10s
retries: 3
start_period: 5m
environment:
- DEBUG=false&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production

- REDIS_HOST=redis
- REDIS_PORT=6379
 # 时区似乎不支持上海，我改成了重庆
 #- TZ=Asia/Kolkata
 #- GITLAB_TIMEZONE=Kolkata
- TZ=Asia/Chongqing
- GITLAB_TIMEZONE=Chongqing

 #这边要用https 所以要打开
#- GITLAB_HTTPS=false
- GITLAB_HTTPS=true
- SSL_SELF_SIGNED=false

 #填写你的域名
- GITLAB_HOST=localhost
 #填写你反向代理监听的端口
- GITLAB_PORT=10080
 #填写你映射的 ssh端口
- GITLAB_SSH_PORT=10022
- GITLAB_RELATIVE_URL_ROOT=
 #这三个值你可以从旧版的群晖gitlab套件中的docker环境变量中复制过来，如果你真要做迁移的话，需要保证和旧的完全一致，如果全新安装也可以复制过来，或者自己去生成也行
- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string

 #设置你的root密码
- GITLAB_ROOT_PASSWORD=你的root密码
 #设置你的root账户的邮箱
- GITLAB_ROOT_EMAIL=你的root邮箱

- GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
- GITLAB_NOTIFY_PUSHER=false

- GITLAB_EMAIL=notifications@example.com
- GITLAB_EMAIL_REPLY_TO=noreply@example.com
- GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com

- GITLAB_BACKUP_SCHEDULE=daily
- GITLAB_BACKUP_TIME=01:00
 #这边配置邮件通知服务,很有必要，当你开放注册的时候，别人就能收到邮箱，还有其他邮件通知都能发送，以qq邮箱为例，下面只要改两个参数即可，其它不用动
- SMTP_ENABLED=true
- SMTP_DOMAIN=smtp.qq.com
- SMTP_HOST=smtp.qq.com
- SMTP_PORT=587
- SMTP_USER=你的qq邮箱
- SMTP_PASS=你的qq授权码
- SMTP_STARTTLS=true
- SMTP_AUTHENTICATION=login
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;#后面一直到最后所有基本上不需要配置，除非真的有需求，可以把参数留着，docker-compose支持参数留空，用到的时候再填写
- IMAP_ENABLED=false
- IMAP_HOST=imap.gmail.com
- IMAP_PORT=993
- &lt;a class="link" href="mailto:IMAP_USER=mailer@example.com" &gt;IMAP_USER=mailer@example.com&lt;/a&gt;
- IMAP_PASS=password
- IMAP_SSL=true
- IMAP_STARTTLS=false&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;- OAUTH_ENABLED=false
- OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
- OAUTH_ALLOW_SSO=
- OAUTH_BLOCK_AUTO_CREATED_USERS=true
- OAUTH_AUTO_LINK_LDAP_USER=false
- OAUTH_AUTO_LINK_SAML_USER=false
- OAUTH_EXTERNAL_PROVIDERS=

- OAUTH_CAS3_LABEL=cas3
- OAUTH_CAS3_SERVER=
- OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
- OAUTH_CAS3_LOGIN_URL=/cas/login
- OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
- OAUTH_CAS3_LOGOUT_URL=/cas/logout

- OAUTH_GOOGLE_API_KEY=
- OAUTH_GOOGLE_APP_SECRET=
- OAUTH_GOOGLE_RESTRICT_DOMAIN=

- OAUTH_FACEBOOK_API_KEY=
- OAUTH_FACEBOOK_APP_SECRET=

- OAUTH_TWITTER_API_KEY=
- OAUTH_TWITTER_APP_SECRET=

- OAUTH_GITHUB_API_KEY=
- OAUTH_GITHUB_APP_SECRET=
- OAUTH_GITHUB_URL=
- OAUTH_GITHUB_VERIFY_SSL=

- OAUTH_GITLAB_API_KEY=
- OAUTH_GITLAB_APP_SECRET=

- OAUTH_BITBUCKET_API_KEY=
- OAUTH_BITBUCKET_APP_SECRET=
- OAUTH_BITBUCKET_URL=

- OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
- OAUTH_SAML_IDP_CERT_FINGERPRINT=
- OAUTH_SAML_IDP_SSO_TARGET_URL=
- OAUTH_SAML_ISSUER=
- OAUTH_SAML_LABEL=&amp;quot;Our SAML Provider&amp;quot;
- OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
- OAUTH_SAML_GROUPS_ATTRIBUTE=
- OAUTH_SAML_EXTERNAL_GROUPS=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=

- OAUTH_CROWD_SERVER_URL=
- OAUTH_CROWD_APP_NAME=
- OAUTH_CROWD_APP_PASSWORD=

- OAUTH_AUTH0_CLIENT_ID=
- OAUTH_AUTH0_CLIENT_SECRET=
- OAUTH_AUTH0_DOMAIN=
- OAUTH_AUTH0_SCOPE=

- OAUTH_AZURE_API_KEY=
- OAUTH_AZURE_API_SECRET=
- OAUTH_AZURE_TENANT_ID=&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;改完后命名为docker-compose.yml传入群晖的docker项目中，然后点启动即可。&lt;/p&gt;</description></item><item><title>docker apache2 解决跨域问题</title><link>https://lategege.com/p/docker-apache2-%E8%A7%A3%E5%86%B3%E8%B7%A8%E5%9F%9F%E9%97%AE%E9%A2%98/</link><pubDate>Wed, 09 Aug 2023 02:39:27 +0000</pubDate><guid>https://lategege.com/p/docker-apache2-%E8%A7%A3%E5%86%B3%E8%B7%A8%E5%9F%9F%E9%97%AE%E9%A2%98/</guid><description>&lt;p&gt;docker apache2容器要开启跨域需要修改配置&lt;/p&gt;
&lt;hr/&gt;
&lt;ol&gt;
&lt;li&gt;打开容器的bash命令窗口，在默认的/etc/apache2/apache2.conf中加入配置
&lt;pre&gt;&lt;code&gt;&amp;lt;Directory /var/www/&amp;gt;
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
#加入这一行
Header set Access-Control-Allow-Origin "*"
&amp;lt;/Directory&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;打开Header模块
&lt;code&gt; a2enmod headers &lt;/code&gt;&lt;/li&gt;
&lt;li&gt;重启apache2
&lt;code&gt; service apahce2 restart &lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;p&gt;为了后面升级，可以挂载配置文件，将/etc/apache2/apache2.conf从容器中拷贝至宿主机，将/etc/apache2/mods-enabled/headers.load拷贝至宿主机，该配置就是执行a2enmod headers 所生成的，然后配置映射。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;宿主机路径/apache2.conf:/etc/apache2/apache2.conf
宿主机路径/headers.load:/etc/apache2/mods-enabled/headers.load&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;后面即使容器升级配置也不会丢失，就一劳永逸了。&lt;/p&gt;</description></item><item><title>docker构建镜像推送到自建nexus3仓库</title><link>https://lategege.com/p/docker%E6%9E%84%E5%BB%BA%E9%95%9C%E5%83%8F%E6%8E%A8%E9%80%81%E5%88%B0%E8%87%AA%E5%BB%BAnexus3%E4%BB%93%E5%BA%93/</link><pubDate>Sun, 06 Aug 2023 13:30:42 +0000</pubDate><guid>https://lategege.com/p/docker%E6%9E%84%E5%BB%BA%E9%95%9C%E5%83%8F%E6%8E%A8%E9%80%81%E5%88%B0%E8%87%AA%E5%BB%BAnexus3%E4%BB%93%E5%BA%93/</guid><description>&lt;p&gt;本文以谷歌图片压缩开源项目squoosh为例，制作docker镜像并推送至nexus3仓库&lt;/p&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;一、squoosh工程是纯网站应用，所以docker容器只要基于nginx即可，先克隆代码到本地
&lt;pre&gt;&lt;code class="language-shell"&gt;git clone https://github.com/GoogleChromeLabs/squoosh.git
#进入squoosh
cd squoosh &lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;二、在当前目录下创建文件并编辑，文件名保存为Dockerfile
&lt;pre&gt;&lt;code class="language-shell"&gt;FROM nginx:alpine
ENV PORT=80
ENV NGINX_PORT=${PORT}
COPY ./build /usr/share/nginx/html&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;三、登录你的nexus3私服
&lt;pre&gt;&lt;code class="language-shell"&gt;#假设你的nexus3私服地址为:lategege.com, docker仓库的端口为6666，使用的协议为https 账号为admin 密码为123
docker login lategege.com:6666 -u admin -p 123&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;四、构建并推送镜像
&lt;pre&gt;&lt;code class="language-shell"&gt;docker build -t lategege.com:6666/squoosh .
docker push lategege.com:6666/squoosh&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;五、退出登录
&lt;pre&gt;&lt;code class="language-shell"&gt;docker logout lategege.com:6666&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;使用nexus3中的镜像就很简单了&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;portainer.io : 如果用portainer.io管理docker,那在settings-&amp;gt;Registries-&amp;gt;Add registry-&amp;gt;选择Custom registry，自定义一个名称，填入你的docker 地址，用户名密码即可。&lt;/li&gt;
&lt;li&gt;群晖: 注册表-&amp;gt;设置-&amp;gt;新增 填写相关地址用户名信息即可，并点击使用，在注册表中就可以看到你所有docker镜像了.&lt;/li&gt;
&lt;li&gt;在添加完仓库后就可以使用图形界面操作，如果用命令就按下面的操作。&lt;/li&gt;
&lt;li&gt;
&lt;pre&gt;&lt;code class="language-shell"&gt;#拉取
docker pull lategege.com:6666/squoosh
#运行
docker run -d --name squoosh -p 8080:80 lategege.com:6666/squoosh &lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;p&gt;访问ip:端口 你就能得到一个部署在自己服务器的在线图片压缩工具了，以后有图片压缩需求就可以使用它了。&lt;/p&gt;</description></item><item><title>PVE8开启vgpu显卡虚拟化(基于Tesla P4)</title><link>https://lategege.com/p/pve8%E5%BC%80%E5%90%AFvgpu%E6%98%BE%E5%8D%A1%E8%99%9A%E6%8B%9F%E5%8C%96-%E5%9F%BA%E4%BA%8Etesla-p4/</link><pubDate>Sun, 06 Aug 2023 08:35:43 +0000</pubDate><guid>https://lategege.com/p/pve8%E5%BC%80%E5%90%AFvgpu%E6%98%BE%E5%8D%A1%E8%99%9A%E6%8B%9F%E5%8C%96-%E5%9F%BA%E4%BA%8Etesla-p4/</guid><description>&lt;p&gt;Tesla系列显卡真是垃圾佬的福音,很久以上上万的卡，现在几百块就能收到，不仅可以炼丹，还可以玩游戏，甚至可以给PVE用作vgpu，来实现云桌面，云游戏。博主先后买过P40和P4，面对250W功耗的24G显存的P40，显然它更适合炼丹，P4 TDP 75W，1060的性能表现，它的最佳用途其实不是个人桌面的游戏显卡，而是虚拟化云主机使用，而搭配上一台低功耗主机，做all in one 是非常不错的选择，任何一个虚拟机想要硬解或者游戏，都可以分配一个vgpu来使用，8g显存的P4, 如果分配2G显存，可以供4个虚拟机使用，分配1G可以供8个虚拟机使用，一般来说普通游戏2G已足够。&lt;/p&gt;
&lt;p&gt;一、PVE8的安装&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;镜像下载，地址：&lt;a href="https://enterprise.proxmox.com/iso/"&gt;https://enterprise.proxmox.com/iso/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;安装过程略&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;二、PVE配置开启硬件直通&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;前提条件：主板BIOS开启VT-D&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;ol&gt;
&lt;li&gt;登录PVE后台，进入shell管理终端&lt;/li&gt;
&lt;li&gt;开启iommu
&lt;pre&gt;&lt;code class="language-shell"&gt;vim /etc/default/grub
#找到
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
#intel cpu 改为：
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
#amd cpu改为：
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;更新grub
&lt;pre&gt;&lt;code class="language-shell"&gt;update-grub&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;加载vfio模块
&lt;pre&gt;&lt;code class="language-shell"&gt;echo vfio &amp;gt;&amp;gt; /etc/modules
echo vfio_iommu_type1 &amp;gt;&amp;gt; /etc/modules
echo vfio_pci &amp;gt;&amp;gt; /etc/modules
echo vfio_virqfd &amp;gt;&amp;gt; /etc/modules&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;更新内核参数
&lt;pre&gt;&lt;code class="language-shell"&gt;update-initramfs -k all -u&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;屏蔽系统中的开源显卡驱动避免开启显卡被系统加载
&lt;pre&gt;&lt;code class="language-shell"&gt;#AMD显卡
echo "blacklist radeon" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
echo "blacklist amdgpu" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
#NVIDIA显卡
echo "blacklist nouveau" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
echo "blacklist nvidiafb" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
#INTEL核显
echo "blacklist snd_hda_intel" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
echo "blacklist snd_hda_codec_hdmi" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf
echo "blacklist i915" &amp;gt;&amp;gt; /etc/modprobe.d/blacklist.conf &lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;ol&gt;
&lt;li&gt;更新内核并重启
&lt;pre&gt;&lt;code class="language-shell"&gt;update-initramfs -k all -u &lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;p&gt;三、安装nvidia显卡宿主机vgpu驱动&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;注意，这个驱动不是常规的驱动，需要去nvidia官网注册企业账号才能下载到，PVE8的内核为6.2，可以安装最新的535驱动，如果不想注册企业号，可以去网上搜索下载。&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/20.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;
&lt;ol&gt;
&lt;li&gt;将PVE需要安装的驱动传如PVE中，方法很多，可以通过scp或者ssh工具软件或者修改后缀名为iso，直接用pve后台传进去。
2.安装显卡驱动需要用到的依赖
&lt;pre&gt;&lt;code class="language-shell"&gt;apt install build-essential dkms mdevctl pve-headers-$(uname -r)&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;安装驱动并重启
&lt;pre&gt;&lt;code class="language-shell"&gt;#进入驱动所在目录
#r如果安装了显卡驱动，先卸载
./NVIDIA-Linux-x86_64-535.54.06-vgpu-kvm.run --uninstall
sudo apt-get remove --purge nvidia-*
###卸载后安装
chmod +x NVIDIA-Linux-x86_64-535.54.06-vgpu-kvm.run
./NVIDIA-Linux-x86_64-535.54.06-vgpu-kvm.run
#重启pve
reboot&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;验证是否安装成功，若正常显示下图所示，证明安装成功
&lt;pre&gt;&lt;code class="language-shell"&gt;nvidia-smi&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/21.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;四、创建虚拟机，这里以WIN11为例，在虚拟机中安装vgpu驱动&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;创建虚拟机过程略，在创建完成后添加PCI设备，如下图
&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/22.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;
&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/23.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/li&gt;
&lt;li&gt;打开win11虚拟机，将上面提到的虚拟机vgpu驱动传入win11,然后双击安装，过程略
&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/24.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/li&gt;
&lt;li&gt;装好以后重启设备管理器就识别了
&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/26.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;p&gt;五、搭建nvidia vgpu授权服务&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;服务需要用到证书，所以搭建之前要自己创建证书，可以使用任何一台安装完openssl的机器创建，创建过程如下
&lt;pre&gt;&lt;code class="language-shell"&gt;WORKING_DIR=/opt/docker/fastapi-dls/cert
mkdir -p $WORKING_DIR
cd $WORKING_DIR
# create instance private and public key for singing JWT's
openssl genrsa -out $WORKING_DIR/instance.private.pem 2048
openssl rsa -in $WORKING_DIR/instance.private.pem -outform PEM -pubout -out $WORKING_DIR/instance.public.pem
# create ssl certificate for integrated webserver (uvicorn) - because clients rely on ssl
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout $WORKING_DIR/webserver.key -out $WORKING_DIR/webserver.crt&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;运行docker fastapi-dls服务
&lt;pre&gt;&lt;code class="language-shell"&gt;docker run -e DLS_URL=替换成你的ip地址 -e DLS_PORT=443 -p 443:443 -v $WORKING_DIR:/app/cert collinwebdesigns/fastapi-dls:latest&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;访问你服务得https://ip地址，查看服务是否运行
1.win11下载证书，用浏览器访问 &lt;a href="https://ip地址/-/client-token"&gt;https://ip地址/-/client-token&lt;/a&gt; ，下载后放入C:\Program Files\NVIDIA Corporation\vGPU Licensing\ClientConfigToken\这个目录&lt;/li&gt;
&lt;li&gt;重启win11&lt;/li&gt;
&lt;li&gt;击右下角的nvidia图标，看到如下图所示就证明授权成功
&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/25.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;ul&gt;
&lt;li&gt;如果是linux系统，执行下面命令即可
&lt;pre&gt;&lt;code class="language-shell"&gt;curl --insecure -L -X GET https://&amp;lt;dls-hostname-or-ip&amp;gt;/-/client-token -o /etc/nvidia/ClientConfigToken/client_configuration_token_$(date '+%d-%m-%Y-%H-%M-%S').tok
# or
wget --no-check-certificate -O /etc/nvidia/ClientConfigToken/client_configuration_token_$(date '+%d-%m-%Y-%H-%M-%S').tok https://&amp;lt;dls-hostname-or-ip&amp;gt;/-/client-token&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;其他细节其实可以查看https://ip/-/readme&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;p&gt;至此，你可以愉快的玩耍了！&lt;/p&gt;</description></item><item><title>Intel vpro(iAMT) Intel ME远程管理实战</title><link>https://lategege.com/p/intel-vpro-iamt-intel-me%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86%E5%AE%9E%E6%88%98/</link><pubDate>Sun, 06 Aug 2023 04:27:18 +0000</pubDate><guid>https://lategege.com/p/intel-vpro-iamt-intel-me%E8%BF%9C%E7%A8%8B%E7%AE%A1%E7%90%86%E5%AE%9E%E6%88%98/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;之前对于Intel的远程管理比较陌生，服务器的远程管理一般都以IPMI为主，最近想折腾下Intel的远程管理，普通用户使用到iAMT的少之又少，一般中大型企业的IT才会去使用这些技术。所以网上的资料也比较少，经过一番折腾后，终于使用这个技术实现了远控，包括(远程开关机，查看系统信息，远程安装操作系统等）。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;实现iAMT的前提是你的计算机需要支持才行，这里的支持指CPU、主板、网卡都需要支持vpro并且主板bios中有AMT的配置选项，而且开启AMT后可在开机过程中按F6(通常)来对AMT进行进一步配置(MEBx配置)。ME是实现AMT所必须的，它不在cpu芯片中，而在主板中，所以主板如果不带ME功能，必然不能实现远程管理，即使有的普通家用主板有ME的固件，但是bios中也没有任何开启AMT的选项，也就无法实现远程控制。综上所述，如果要折腾，可以去选择一些带vpro字样的品牌机或者工作站准系统，比如我实操的就是一台惠普的工作站。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;下面以我这台惠普工作站来举例实现远程管理。(备注：AMT必须使用核显或者板载支持vpro的显卡，另外主板bios上一定要配置核显输出)&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;操作之前建议将bios和me固件升级至最新版本，惠普的me固件如果对应的型号下找不到，可以去这里找：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;a href="https://support.hp.com/us-en/document/ish_5671060-5671118-16/hpsbhf03771"&gt;https://support.hp.com/us-en/document/ish_5671060-5671118-16/hpsbhf03771&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、被控端配置&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、BIOS开启AMT&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;进入bios-&amp;gt;先进-&amp;gt;Remote Management Options&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/1.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;勾选主动管理技术AMT -&amp;gt;ESC-&amp;gt;保存重启&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/2.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/200"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、配置MEBx&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;开机按F6进入MEBx管理，MEBx Login-&amp;gt;默认密码为admin 初次需要修改一下，修改规则必须首字母大写！如果买的二手主板，扣下纽扣电池1分钟后装上就会恢复bios设置，这时候使用默认密码即可。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/3.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;登录后进入Intel AMT Configuration&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/4.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;找到wired lan ipv4 configration 配置静态ip，根据自己的情况配置，这个ip就是你amt的远程管理ip，需要记住&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/5.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;找到Uer Consent -&amp;gt; User Opt-in 改为NONE，这一项决定远程桌面连接的时候是否需要确认密码，NONE表示不需要。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/6.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/560/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;最后需要激活下网络访问Activate Network Access，退出即完成所有配置。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/7.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/560/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、控制端操作&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、如果是简单的控制开机关机，那么只要网页操作，访问你配置的ip:16992, 这个端口是AMT固定的。具体样式如下，网页端无法显示远程桌面。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/12.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、如果是macOS端，可以使用MeshCommander，体验会比网页端好很多，下载地址：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;a href="https://github.com/gomesjj/MeshCommander/releases/tag/dmg"&gt;https://github.com/gomesjj/MeshCommander/releases/tag/dmg&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;下面是mac上使用MeshCommander客户端软件的展示效果&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;显示远程画面&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/8.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;挂载本地ISO镜像，实现远程安装操作系统，我的这个PVE系统就是远程安装的。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/10.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;挂载完成还可以选择重启到CDROM，这样直接就可以进入安装界面，非常方便。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-6/11.png?imageView2/0/format/png/q/75|watermark/2/text/5Y2a5a6iOiBodHRwOi8vbGF0ZWdlZ2UuY29t/font/5b6u6L2v6ZuF6buR/fontsize/660/fill/I0ZGRkZGRg==/dissolve/100/gravity/SouthEast/dx/20/dy/20"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;要实现远程画面输出，前提你的受控端必须要连一个显示器，或者主板的显示接口上面插一个显卡欺骗器，拼多多几块钱包邮。如果不接显示器或者显卡欺骗器，远程桌面就是黑屏，什么都看不到。这是AMT技术和IPMI的区别之一，IPMI是不需要连接显示屏的。除此之外，AMT没有单独的管理网口，他和操作系统共用了同一个网口，这也是为什么AMT需要支持AMT的网卡才能使用的原因，我猜测底层肯定是虚拟了一个网卡才得以实现一个网口既可以分配管理ip，也可以供操作系统使用。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、如果你是其他操作系统，可以使用MeshCommander nodejs来实现。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;项目地址：&lt;a href="https://github.com/Ylianst/MeshCommander" rel="noreferrer noopener" target="_blank"&gt;https://github.com/Ylianst/MeshCommander&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt; mkdir meshcommander
 cd meshcommander
 npm install meshcommander
 node node_modules\meshcommander&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;执行后后台会运行一个本地服务，访问&lt;a href="http://127.0.0.1:3000/"&gt;http://127.0.0.1:3000&lt;/a&gt;即可通过浏览器远程管理了，这种方式也能使用远程桌面，效果等同于安装客户端。但是访问的时候提示找不到中文包，你可以将浏览器优先显示英文，chrome-&amp;gt;设置-&amp;gt;语言-&amp;gt;将首选语言把英语排在第一重启浏览器即可。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;4、MeshCommander官网的安装包下载目前都是显示404，不知道为什么，不过官网上面也推荐MeshCommander nodejs方式，只是客户端安装包无法下载，有兴趣的朋友可以前去查看，地址：&lt;a href="https://www.meshcommander.com/meshcommander" rel="noreferrer noopener" target="_blank"&gt;https://www.meshcommander.com/meshcommander&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>stable-diffusion-webui 参数说明文档</title><link>https://lategege.com/p/stable-diffusion-webui-%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3/</link><pubDate>Wed, 02 Aug 2023 09:22:21 +0000</pubDate><guid>https://lategege.com/p/stable-diffusion-webui-%E5%8F%82%E6%95%B0%E8%AF%B4%E6%98%8E%E6%96%87%E6%A1%A3/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;配置类参数:&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;-h, --help：显示帮助信息并退出。&lt;br/&gt;--exit：安装后立即终止。&lt;br/&gt;--data-dir：指定存储所有用户数据的基本路径，默认为"./"。&lt;br/&gt;--config：用于构建模型的配置文件路径，默认为 "configs/stable-diffusion/v1-inference.yaml"。&lt;br/&gt;--ckpt：稳定扩散模型的检查点路径；如果指定，该检查点将被添加到检查点列表并加载。&lt;br/&gt;--ckpt-dir：稳定扩散检查点的目录路径。&lt;br/&gt;--no-download-sd-model：即使没有找到模型，也不下载SD1.5模型。&lt;br/&gt;--vae-dir：变分自编码器模型的路径。&lt;br/&gt;--gfpgan-dir：GFPGAN目录。&lt;br/&gt;--gfpgan-model：GFPGAN模型文件名。&lt;br/&gt;--codeformer-models-path：Codeformer模型文件的目录路径。&lt;br/&gt;--gfpgan-models-path：GFPGAN模型文件的目录路径。&lt;br/&gt;--esrgan-models-path：ESRGAN模型文件的目录路径。&lt;br/&gt;--bsrgan-models-path：BSRGAN模型文件的目录路径。&lt;br/&gt;--realesrgan-models-path：RealESRGAN模型文件的目录路径。&lt;br/&gt;--scunet-models-path：ScuNET模型文件的目录路径。&lt;br/&gt;--swinir-models-path：SwinIR和SwinIR v2模型文件的目录路径。&lt;br/&gt;--ldsr-models-path：LDSR模型文件的目录路径。&lt;br/&gt;--lora-dir：Lora网络的目录路径。&lt;br/&gt;--clip-models-path：CLIP模型文件的目录路径。&lt;br/&gt;--embeddings-dir：用于文本逆向的嵌入目录，默认为 "embeddings"。&lt;br/&gt;--textual-inversion-templates-dir：文本逆向模板的目录。&lt;br/&gt;--hypernetwork-dir：超网络目录。&lt;br/&gt;--localizations-dir：本地化目录。&lt;br/&gt;--styles-file：用于样式的文件名，默认为 "styles.csv"。&lt;br/&gt;--ui-config-file：用于UI配置的文件名，默认为 "ui-config.json"。&lt;br/&gt;--no-progressbar-hiding：不隐藏Gradio UI中的进度条（默认隐藏，因为在浏览器中使用硬件加速会降低机器学习速度）。&lt;br/&gt;--max-batch-count：UI的最大批次计数值，默认为16。&lt;br/&gt;--ui-settings-file：用于UI设置的文件名，默认为 "config.json"。&lt;br/&gt;--allow-code：允许从Web UI执行自定义脚本。&lt;br/&gt;--share：使用Gradio的share=True，并使UI通过其网站访问（对我来说不起作用，但您可能会更幸运）。&lt;br/&gt;--listen：使用0.0.0.0作为服务器名称启动Gradio，允许响应网络请求。&lt;br/&gt;--port：使用给定的服务器端口启动Gradio，需要根/管理员权限才能使用1024以下的端口，默认为7860（如果可用）。 34. --hide-ui-dir-config：从Web UI中隐藏目录配置。&lt;br/&gt;--freeze-settings：禁用编辑设置。&lt;br/&gt;--enable-insecure-extension-access：无论其他选项如何，都启用扩展选项卡。&lt;br/&gt;--gradio-debug：使用--debug选项启动Gradio。&lt;br/&gt;--gradio-auth：设置Gradio身份验证，如 "username:password"；或逗号分隔多个，如 "u1:p1,u2:p2,u3:p3"。&lt;br/&gt;--gradio-auth-path：设置Gradio身份验证文件路径，例如 "/path/to/auth/file"，与--gradio-auth的格式相同。&lt;br/&gt;--disable-console-progressbars：不在控制台输出进度条。&lt;br/&gt;--enable-console-prompts：在使用txt2img和img2img生成时，在控制台打印提示。&lt;br/&gt;--api：使用API启动Web UI。&lt;br/&gt;--api-auth：设置API身份验证，如 "username:password"；或逗号分隔多个，如 "u1:p1,u2:p2,u3:p3"。&lt;br/&gt;--api-log：启用所有API请求的日志记录。&lt;br/&gt;--nowebui：仅启动API，不启动UI。&lt;br/&gt;--ui-debug-mode：不加载模型以快速启动UI。&lt;br/&gt;--device-id：选择要使用的默认CUDA设备（可能需要在此之前设置CUDA_VISIBLE_DEVICES=0,1等环境变量）。&lt;br/&gt;--administrator：管理员权限。&lt;br/&gt;--cors-allow-origins：以逗号分隔的列表形式允许的CORS来源（无空格）。&lt;br/&gt;--cors-allow-origins-regex：以单个正则表达式的形式允许的CORS来源。&lt;br/&gt;--tls-keyfile：部分启用TLS，需要--tls-certfile才能完全生效。&lt;br/&gt;--tls-certfile：部分启用TLS，需要--tls-keyfile才能完全生效。&lt;br/&gt;--server-name：设置服务器主机名。&lt;br/&gt;--gradio-queue：使用Gradio队列；实验性选项；破坏重新启动UI按钮。&lt;br/&gt;--skip-version-check：不检查torch和xformers的版本。&lt;br/&gt;--no-hashing：禁用检查点的sha256哈希，以提高加载性能。&lt;br/&gt;性能类参数&lt;br/&gt;--xformers：启用xformers以加速跨注意层。&lt;br/&gt;--reinstall-xformers：强制重新安装xformers。在升级后使用，但升级后请移除，否则将一直重装xformers。&lt;br/&gt;--force-enable-xformers：无论检查代码是否认为可以运行，都强制启用xformers的跨注意层；如果运行失败，请勿提交错误报告。&lt;br/&gt;--opt-split-attention：强制启用Doggettx的跨注意层优化。默认情况下，对于启用CUDA的系统，此选项已开启。&lt;br/&gt;--opt-split-attention-invokeai：强制启用InvokeAI的跨注意层优化。默认情况下，当CUDA不可用时，此选项已开启。&lt;br/&gt;--opt-split-attention-v1：启用旧版本的分割注意力优化，该版本不会消耗所有可用的显存。&lt;br/&gt;--opt-sub-quad-attention：启用内存高效的子二次交叉注意力层优化。&lt;br/&gt;--sub-quad-q-chunk-size：子二次交叉注意力层优化使用的查询块大小。&lt;br/&gt;--sub-quad-kv-chunk-size：子二次交叉注意力层优化使用的kv块大小。&lt;br/&gt;--sub-quad-chunk-threshold：子二次交叉注意力层优化使用的显存使用率阈值。&lt;br/&gt;--opt-channelslast：为4d张量启用备选布局，仅在具有Tensor核心的Nvidia显卡（16xx及更高版本）上可能导致更快的推理。&lt;br/&gt;--disable-opt-split-attention：强制禁用跨注意层优化。&lt;br/&gt;--disable-nan-check：不检查生成的图像/潜在空间是否包含nan值；在持续集成中运行时无需检查点。&lt;br/&gt;--use-cpu：对指定模块使用CPU作为torch设备。&lt;br/&gt;--no-half：不将模型切换为16位浮点数。&lt;br/&gt;--precision：以此精度进行评估。&lt;br/&gt;--no-half-vae：不将VAE模型切换为16位浮点数。&lt;br/&gt;--upcast-sampling：向上采样。与 --no-half 无效。通常产生与 --no-half 类似的结果，但在使用较少内存的情况下性能更好。&lt;br/&gt;--medvram：启用稳定扩散模型优化，牺牲一点速度以减少显存使用。&lt;br/&gt;--lowvram：启用稳定扩散模型优化，牺牲大量速度以极低的显存使用。&lt;br/&gt;--lowram：将稳定扩散检查点权重加载到显存而非RAM。&lt;br/&gt;--always-batch-cond-uncond：禁用使用 --medvram 或 --lowvram 时为节省内存而启用的条件/无条件批处理。&lt;br/&gt;通用类参数&lt;br/&gt;--autolaunch：在启动时使用系统的默认浏览器打开WebUI URL。&lt;br/&gt;--theme：在WebUI中使用指定的主题（“light”或“dark”）。如果未指定，则使用浏览器的默认主题。&lt;br/&gt;--use-textbox-seed：在UI中使用文本框输入种子（没有上/下箭头，但可以输入长种子）。&lt;br/&gt;--disable-safe-unpickle：禁用对PyTorch模型的恶意代码检查。&lt;br/&gt;--ngrok：用于ngrok的自动令牌，是gradio --share的替代方案。&lt;br/&gt;--ngrok-region：ngrok应该在其中启动的区域。&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-2/1.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2023/8-2/2.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;附上两张ai图&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>Mac虚拟机Parallels Desktop 破解</title><link>https://lategege.com/p/mac%E8%99%9A%E6%8B%9F%E6%9C%BAparallels-desktop-%E7%A0%B4%E8%A7%A3/</link><pubDate>Thu, 04 May 2023 03:02:54 +0000</pubDate><guid>https://lategege.com/p/mac%E8%99%9A%E6%8B%9F%E6%9C%BAparallels-desktop-%E7%A0%B4%E8%A7%A3/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;按照下面github提供的方式操作。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;p&gt;&lt;del&gt;&lt;a href="https://github.com/dreamncn/ParallelsDesktopCrack"&gt;https://github.com/dreamncn/ParallelsDesktopCrack&lt;/a&gt;&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;github作者关闭了仓库，请移步这篇博文 &lt;a href="https://luoxx.top/archives/pd-18-active" title=" https://luoxx.top/archives/pd-18-active"&gt; https://luoxx.top/archives/pd-18-active&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Chatglm、Stable Diffusion webui反向代理配置</title><link>https://lategege.com/p/chatglm-stable-diffusion-webui%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE/</link><pubDate>Thu, 04 May 2023 02:23:50 +0000</pubDate><guid>https://lategege.com/p/chatglm-stable-diffusion-webui%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;最近在研究AI模型部署，遇到了一些问题，其中一个就是开放外网访问，像Chatglm、Stable Diffusion的webui普遍采用了Gradio这个高度封装的AI WebUI服务。Gradio如果不修改，默认启动后只会监听127.0.0.1，也就是只能本机使用，而对于局域网其他机器来说，肯定是需要访问的，所以需要修改启动脚本，这个启动脚本在不同模型的WebUI中配置大同小异，本质上都是最后在下面的代码中加入了server_name=0.0.0.0&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;//最终启动都会调用如下函数
demo.queue().launch(inbrowser=True&lt;mark class="has-inline-color has-accent-color" style="background-color:rgba(0, 0, 0, 0)"&gt;,&lt;strong&gt;&lt;em&gt;server_name=0.0.0.0&lt;/em&gt;&lt;/strong&gt;&lt;/mark&gt;)&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、针对Chatglm，使用方式就是修改目录下面的web_demo.py，找到上面的代码增加server_name即可&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、针对Stable Diffusion webui 则可以通过命令参数传入，如果是linux用户，执行./webui.sh --server-name 0.0.0.0 即可&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;上面虽然打通了局域网访问，但是外网访问还需要配置一下，虽然可以通过gradio的share=True参数达到外网访问效果，但是这种效果的本质是内网穿透，是连接到gradio服务器去实现的。如果家里有公网ip，又不想通过别人的服务器来实现，那就需要配置一个反向代理。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;反向代理一般就是nginx，像gradio这种服务，除了http服务外还有websocket服务，所以nginx需要配置两项，一项是默认的location / ，另一项是websocket的 location /queue&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;server {
 listen 你对外的端口号(ipv4) ssl;
 listen [::]:你对外的端口号(ipv6) ssl;
 server_name 你对外ip地址或者域名;
 ssl_certificate 你的证书链;
 ssl_certificate_key 你的私钥地址;
 location / {
 proxy_connect_timeout 60;
 proxy_read_timeout 60;
 proxy_send_timeout 60;
 proxy_intercept_errors off;
 proxy_http_version 1.1;
 proxy_set_header Host $http_host;
 proxy_set_header X-Real-IP $remote_addr;
 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 proxy_set_header X-Forwarded-Proto $scheme;
 proxy_pass webui服务的地址:端口号;
&lt;pre&gt;&lt;code&gt;}
location /queue {
 proxy_pass webui服务的地址:端口号;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection Upgrade;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;为什么websocket要配置location /queue 呢，这是我通过浏览器请求的wss地址分析得出的，Gradio的wss都会走/queue这个路径，proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection Upgrade;可以理解为将https协议升级为wss协议。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;通过上面的配置，我们就可以在外网愉快的访问家里部署的AI WEBUI了。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>mac系统免费支持ntfs读写</title><link>https://lategege.com/p/mac%E7%B3%BB%E7%BB%9F%E5%85%8D%E8%B4%B9%E6%94%AF%E6%8C%81ntfs%E8%AF%BB%E5%86%99/</link><pubDate>Sun, 12 Mar 2023 03:23:21 +0000</pubDate><guid>https://lategege.com/p/mac%E7%B3%BB%E7%BB%9F%E5%85%8D%E8%B4%B9%E6%94%AF%E6%8C%81ntfs%E8%AF%BB%E5%86%99/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、安装homebrew，以下选择一种即可&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;使用ruby安装
/usr/bin/ruby -e "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install)"
&lt;p&gt;bash环境安装
/bin/bash -c &amp;ldquo;$(curl -fsSL &lt;a class="link" href="https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh%29%22" target="_blank" rel="noopener"
 &gt;https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;zsh环境安装
/bin/zsh -c &amp;ldquo;$(curl -fsSL &lt;a class="link" href="https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh%29%22" target="_blank" rel="noopener"
 &gt;https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"&lt;/a&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、安装macfuse&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;brew install macfuse&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、安装ntfs-3g&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;brew tap gromgit/homebrew-fuse
brew install ntfs-3g-mac
&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;4、挂载ntfs盘&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;#查看U盘对应的分区名
diskutil list
&lt;p&gt;#root用户
sudo -s&lt;/p&gt;
&lt;p&gt;#卸载U盘分区
umount /dev/disk4s1&lt;/p&gt;
&lt;p&gt;#通过mount_ntfs挂载u盘
mount_ntfs -o rw,nobrowse /dev/disk4s1 /Volumes/EXT
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;!-- /wp:code --&gt;</description></item><item><title>mac版docker容器添加磁盘挂载</title><link>https://lategege.com/p/mac%E7%89%88docker%E5%AE%B9%E5%99%A8%E6%B7%BB%E5%8A%A0%E7%A3%81%E7%9B%98%E6%8C%82%E8%BD%BD/</link><pubDate>Sun, 29 Jan 2023 07:49:28 +0000</pubDate><guid>https://lategege.com/p/mac%E7%89%88docker%E5%AE%B9%E5%99%A8%E6%B7%BB%E5%8A%A0%E7%A3%81%E7%9B%98%E6%8C%82%E8%BD%BD/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、运行容器 docker inspect 容器id 查看 容器信息并记录。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、mac下面 ~/Library/Containers/com.docker.docker/Data/vms/0/tty &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;如果有tty: &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;cd ~/Library/Containers/com.docker.docker/Data/vms/0/
screen tty&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;如果没有tty:&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;docker run -it --privileged --pid=host 8652b9f0cb4c nsenter -t 1 -m -u -n -i sh&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;其中8652b9f0cb4c是镜像id&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;mac中的docker有两层虚拟机，两者的目的都是进入docker第一层虚拟机来修改docker配置&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、修改容器配置&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;$ vi /var/lib/docker/containers/{容器id}/config.v2.json
$ vi /var/lib/docker/containers/{容器id}/hostconfig.json&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在config.v2.json的MountPoints节点下添加挂载信息,可参考如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt; "/etc/xxx": {
 "Source": "/data/xxx",
 "Destination": "/etc/xxx",
 "RW": true,
 "Name": "",
 "Driver": "",
 "Type": "bind",
 "Propagation": "rprivate",
 "Spec": {
 "Type": "bind",
 "Source": "/data/xxx",
 "Target": "/etc/xxx/"
 },
 "SkipMountpointCreation": false
 }&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在hostconfig.json的Binds节点添加挂载信息，可参考如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt; "/data/xxx:/etc/xxx/"&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四、修改后一定要保存，保存后关闭docker,然后重启启动运行容器即可。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>mac版docker开启virtiofs提升100%IO效率</title><link>https://lategege.com/p/mac%E7%89%88docker%E5%BC%80%E5%90%AFvirtiofs%E6%8F%90%E5%8D%87100-io%E6%95%88%E7%8E%87/</link><pubDate>Wed, 21 Sep 2022 02:49:19 +0000</pubDate><guid>https://lategege.com/p/mac%E7%89%88docker%E5%BC%80%E5%90%AFvirtiofs%E6%8F%90%E5%8D%87100-io%E6%95%88%E7%8E%87/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、开启方式如下图：Experimental features -&amp;gt; Enable VirtosFs...&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/9-21/1.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、未开启前写入速度测试(测试硬盘为Nvme协议的西数SN730)，平均17.4m/s&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/9-21/2.png"/&gt;&lt;figcaption&gt;三、开启后43.8m/s，提升了一倍还多。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/9-21/3.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四、开启这个docker实验功能的目的是为了提升编译android源码的效率，实测确实编译效率提升显著。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;另外该实验功能在使用sed 命令操作有时候会遇到权限问题，通过升级sed 版本至sed 4.8即可解决。sed 4.8已经修复了这个问题，下载地址：https://savannah.gnu.org/forum/forum.php?forum_id=9647&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>mac快速安装homebrew</title><link>https://lategege.com/p/mac%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85homebrew/</link><pubDate>Fri, 09 Sep 2022 02:57:39 +0000</pubDate><guid>https://lategege.com/p/mac%E5%BF%AB%E9%80%9F%E5%AE%89%E8%A3%85homebrew/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;所有在国内使用以下地址安装&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;苹果电脑 常规安装脚本（推荐 完全体 几分钟安装完成）： /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;苹果电脑 极速安装脚本（精简版 几秒钟安装完成）： /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" speed&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;苹果电脑 卸载脚本： /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>docker部署轻量git服务器(gitea)</title><link>https://lategege.com/p/docker%E9%83%A8%E7%BD%B2%E8%BD%BB%E9%87%8Fgit%E6%9C%8D%E5%8A%A1%E5%99%A8-gitea/</link><pubDate>Fri, 09 Sep 2022 02:55:24 +0000</pubDate><guid>https://lategege.com/p/docker%E9%83%A8%E7%BD%B2%E8%BD%BB%E9%87%8Fgit%E6%9C%8D%E5%8A%A1%E5%99%A8-gitea/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、安装docker略。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、docker run -d --privileged=true --name=gitea -p 2021:22 -p 9000:3000 -v /home/late/gitstore:/data gitea/gitea:latest&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、sudo docker run -itd --name mysql-git -p 3306:3306 -e MYSQL_ROOT_PASSWORD=12345 mysql&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四、进入docker中的mysql&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;//local git&lt;br/&gt;CREATE USER 'gituser' IDENTIFIED BY 'gitpwd';&lt;br/&gt;CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';&lt;br/&gt;GRANT ALL PRIVILEGES ON giteadb.* TO 'gituser';&lt;br/&gt;FLUSH PRIVILEGES;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;五、http://ip地址:9000 进入后台&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>git常用命令大全</title><link>https://lategege.com/p/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E5%A4%A7%E5%85%A8/</link><pubDate>Mon, 04 Jul 2022 13:01:40 +0000</pubDate><guid>https://lategege.com/p/git%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E5%A4%A7%E5%85%A8/</guid><description>&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;一、配置用户名、邮箱
git config --global user.name "late"
git config --global user.email "late@lategege.com"

二、查看配置信息、配置本地git config、配置全局git config
git config --list
git config -e
git config -e --global

三、将当前目录用作git仓库、使用指定目录用作git仓库
git init
git init 目录名

四、添加文件到git仓库
git add . //所有文件
git add *.java //所有java文件
git add xx.java //指定java文件

五、提交修改至本地git仓库
git commit -m '描述信息'

六、克隆远程仓库、克隆到指定目录
git clone http://xxxxxx/xxx.git
git clone http://xxxxxx/xxx.git 目录

七、查看仓库当前的状态，显示变更文件
git status

八、比较不同的文件
git diff

九、回退版本
git reset --hard 提交hash码

十、将文件从暂存区和工作区删除 、恢复删除文件
git rm
git restore ./

十一、移动或重命名工作区文件
git mv

十二、查看提交日志
git log

十三、以列表形式查看历史修改
git blame 文件名

十四、获取更新
git fetch

十五、拉取并合并
git pull

十六、推送并合并
git push 远程主机名 本地分支名:远程分支名 (本地远程名称一致可省略)

十七、创建分支
git branch 分支名

十八、切换分支
git checkout 分支名

十九、合并分支
git merge 分支名(分支名为要将哪个分支合并到当前分支)

二十、查看分支
git branch //本地
git branch -a //所有
git branch -r //远程

二十一、有冲突合并处理:
git add 文件名、git status -s 、git commit

二十二、打标签、查看标签、用log查看标签、带标签信息打标签
git tag -a v1.0
git tag
git log --decorate
git tag -a xxxxx -m 'xxxxxxx'





&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>docker(docker-compose)搭建chevereto图床</title><link>https://lategege.com/p/docker-docker-compose-%E6%90%AD%E5%BB%BAchevereto%E5%9B%BE%E5%BA%8A/</link><pubDate>Fri, 18 Feb 2022 12:52:44 +0000</pubDate><guid>https://lategege.com/p/docker-docker-compose-%E6%90%AD%E5%BB%BAchevereto%E5%9B%BE%E5%BA%8A/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;docker搭建chevereto图床，最方便的是使用docker-compose，搭建步骤如下:&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、安装docker-compose:&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;&lt;code&gt;git clone https:&lt;em&gt;//github.com/docker/compose/releases/download/1.28.2/docker-compose-Linux-x86_64 -O /usr/local/bin/docker-compose&lt;/em&gt;&lt;/code&gt;
&lt;code&gt;chmod +x /usr/local/bin/docker-compose&lt;/code&gt;
&lt;code&gt;docker-compose --version&lt;/code&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、ssh登录服务器，touch docker-compose.yaml&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;version: '3'
&lt;p&gt;services:
db:
image: mariadb
volumes:
- database:/var/lib/mysql:rw
restart: always
networks:
- private
environment:
MYSQL_ROOT_PASSWORD: chevereto
MYSQL_DATABASE: chevereto
MYSQL_USER: chevereto
MYSQL_PASSWORD: chevereto&lt;/p&gt;
&lt;p&gt;chevereto:
depends_on:
- db
image: nmtan/chevereto
restart: always
networks:
- private
environment:
CHEVERETO_DB_HOST: db
CHEVERETO_DB_USERNAME: chevereto
CHEVERETO_DB_PASSWORD: chevereto
CHEVERETO_DB_NAME: chevereto
CHEVERETO_DB_PREFIX: che_
volumes:
- chevereto-images:/var/www/html/images:rw
- chevereto-config:/var/www/html:rw
ports:
- 9000:80&lt;/p&gt;
&lt;p&gt;networks:
private:
volumes:
database:
chevereto-images:
chevereto-config:&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、在当前目录下执行docker-compose up -d &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四、访问ip:9000即可&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;五、配置去除上传大小限制，打开chevereto-config目录，编辑隐藏文件.htaccess，在最后一行&amp;lt;IfModule&amp;gt;前面添加如下配置：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;php_value post_max_size 64M
php_value upload_max_filesize 64M
php_value max_execution_time 100000000
php_value memory_limit 2048M
php_value upload_threads 8&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;六、可以在后台仪表盘--》设置--〉网站-》图片上传-〉最大上传大小中修改&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>win10无盘安装与无盘启动系列ikuai(dhcp)+nas(tftp、iscsi)+ipxe终结篇无盘启动win10</title><link>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%BB%88%E7%BB%93%E7%AF%87%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8win10/</link><pubDate>Fri, 14 Jan 2022 13:11:53 +0000</pubDate><guid>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%BB%88%E7%BB%93%E7%AF%87%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8win10/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在无盘安装win10后，来到最终无盘启动win10的实现篇，首先安装到iscsi和从iscsi引导，ipxe所做的事情是不一样的，所以我们要写一个脚本，命名为bootwin10.ipxe,内容如下:&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;#!ipxe
&lt;p&gt;sanboot iscsi:192.168.0.104:::1:iqn.2000-01.com.synology:ipxe.os
exit&lt;/pre&gt;&lt;/p&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;没错，就这么简单，意思就是从iscsi磁盘引导，然后退出，结束ipxe的使命，同样将脚本放入www目录，通过chain来执行，输入&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;chain http://192.168.0.104:9000/bootwin10.ipxe&lt;/pre&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/22.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;熟悉的loading画面&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/20.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;熟悉的桌面&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/21.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;上网冲个浪&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/23.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;至此，win10的无盘安装和无盘引导完结了，前前后后花了几天时间学习摸索、实验，这个过程中也学到了很多知识，最终把我实现的整个过程变成文章，希望能帮到想要学习无盘技术的小伙伴们。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>win10无盘安装与无盘启动系列ikuai(dhcp)+nas(tftp、iscsi)+ipxe第七篇引导安装</title><link>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%B8%83%E7%AF%87%E5%BC%95%E5%AF%BC%E5%AE%89%E8%A3%85/</link><pubDate>Fri, 14 Jan 2022 12:51:18 +0000</pubDate><guid>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%B8%83%E7%AF%87%E5%BC%95%E5%AF%BC%E5%AE%89%E8%A3%85/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;有了前面这些铺垫，下面终于要进入到实际引导安装环节了，本来我可以写一堆脚本，一起放入到文件夹，笼统的说一下操作，但是为了让读者深刻理解引导流程，我的无盘安装系列教程采用了循序渐进的方式，一步一步操作来达到目的，包括目前ipxe脚本都没准备，目的就是为了让读者知道脚本该怎么写才能达到我们想要的效果，现在我们需要找一台物理机或者一台虚拟机，我这边的测试机是PVE下的一台虚拟机，配置如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/1.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;建立后我删除了硬盘，网卡选择了e1000，这块网卡能跑满千兆，从群晖读取的时候速度很重要，我局域网环境就是千兆环境，bios选择默认seabios 也就是传统引导方式，选项当中的引导顺序把网卡排第一位，理论上来说我启动这台虚拟机，网卡就会进入PXE环境，PXE从爱快的dhcp服务器自动获取IP以及net-server和启动文件名称是 undionly.kpxe ，从来连接群晖的tftp文件夹中的undionly.kpxe并进入ipxe环境.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/2.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;看实际引导，事实也是如此，只不过进入ipxe之后不知道该干什么了，我们按ctrl+b进入ipxe命令模式，输入dhcp再次获取到ip地址，为什么要再获取一遍，因为从pxe环境进入ipxe环境，之前的信息全部丢失，包括网卡的ip地址，所以要获取一下ip地址，这样才能和外部联系。这里怎么才能启动pe呢，答案是通过http，ipxe可以执行一个后缀名为.ipxe的脚本，可以通过http形式链式调用，所以我们需要写一个脚本放在http目录下，让ipxe执行。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这个脚本命名为bootPE.ipxe ，脚本内容如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;#!ipxe
&lt;p&gt;kernel /PE/wimboot
initrd /PE/media/Boot/BCD BCD
initrd /PE/media/Boot/boot.sdi boot.sdi
initrd /PE/media/sources/boot.wim boot.wim
boot&lt;/pre&gt;&lt;/p&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;将脚本放入www目录下，这个脚本什么意思呢，它的作用是通过wimboot这个内核文件去加载PE映像文件，那iscsi目录谁负责挂载，是PE还是ipxe，PE挂载的话默认有iscsi客户端吗？显然是没有的，但是PE环境下却可以通过命令挂载smb，也就是PE可以挂载win10安装文件顺便执行。但是磁盘需要交给ipxe去挂载，这样在PE环境下安装win10才有磁盘出现。所以在引导PE之前，我们需要先挂载ISCSI磁盘。再定义一个脚本，命名为mountISCSI_bootPE.ipxe&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;#!ipxe
 sanhook iscsi:192.168.0.104:::1:iqn.2000-01.com.synology:ipxe.os
 prompt -k 0x197e -t 10000 Press F12 to install Windows... || exit
 chain bootPE.ipxe&lt;/pre&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;将该脚本一并放入www目录下，该脚本的意思是先挂载iscsi 通过sanhook命令挂载，格式如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;iscsi:群晖ip地址:::1:你建立的iscsi的iqn名称 特别注意中间:::1: 这个数字是根据你IQN的编号来的，具体查看请见下图。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/3.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt; prompt -k 0x197e -t 10000 Press F12 to install Windows... || exit 的意思是按F12进入下一句指令，如果超过10s就退出。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt; chain bootPE.ipxe 的意思是链式调用刚刚写好的bootPE.ipxe来引导PE系统，因为这两个文件都放在www这个同级目录下，所以可以直接调用，放完以后www目录结构如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/4.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;切回虚拟机命令终端，ipxe此时是已经获取到了ip地址，具备通信能力，下一步是调用http中写好的ipxe脚本，我们通过&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt; chain http://192.168.0.104:9000/mountISCSI_bootPE.ipxe&lt;/pre&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;来挂载iscsi并且启动PE.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/5.png"/&gt;&lt;figcaption&gt;输入命令，挂载引导&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/6.png"/&gt;&lt;figcaption&gt;提示iscsi硬盘已挂载，按F12进入安装windows的pe&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/7.png"/&gt;&lt;figcaption&gt;pe引导正常，boot.wim 100%后进入PE&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/8.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;终于进入了熟悉又陌生的PE系统了，陌生是因为它就一个命令窗口，不过对于我们安装系统来说足够了，前面挂载的iscsi在PE中已经可以识别了，我们只要执行win10安装就可以在磁盘目录看到了。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;由于win10所有安装文件存放在群晖，群晖通过smb协议给到PE系统，所以我们在PE系统需要挂载SMB盘，要通过命令&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;net use \\192.168.0.104\public\win10&lt;/pre&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt; 挂载win10所在目录 输入用户名和密码，会有提示成功信息。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/9.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;执行win10安装，输入&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;\\192.168.0.104\public\win10\setup.exe&lt;/pre&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/10.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;期待已久的 win10安装界面出现&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/11.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;随便选个版本&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-15/12.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这边的磁盘就是群晖的ISCSI磁盘，我们将系统装入主分区，一路下一步，后面的操作没有任何难度了，安装完毕后就重启系统，至此PE安装WIN10到iscsi磁盘结束。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;补充：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;文中所涉及到的命令请参考IPXE文档 &lt;a href="https://ipxe.org/cmd" rel="noreferrer noopener" target="_blank"&gt;https://ipxe.org/cmd&lt;/a&gt; , 我没有将这个安装过程写成自动化的脚本，而是用手动输入来替换，可以让读者更直白的看到整个过程，后面做自动化只要参考ipxe写一个脚本，基本没什么难度，我看到网上很多文章都只是给一堆脚本，让阅读的人不明所以，而我却是一个要知其所以然的人，所以我也想让我的读者可以知其所以然。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>win10无盘安装与无盘启动系列ikuai(dhcp)+nas(tftp、iscsi)+ipxe第六篇准备文件放入对应目录</title><link>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E5%85%AD%E7%AF%87%E5%87%86%E5%A4%87%E6%96%87%E4%BB%B6%E6%94%BE%E5%85%A5%E5%AF%B9%E5%BA%94%E7%9B%AE%E5%BD%95/</link><pubDate>Fri, 14 Jan 2022 11:38:23 +0000</pubDate><guid>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E5%85%AD%E7%AF%87%E5%87%86%E5%A4%87%E6%96%87%E4%BB%B6%E6%94%BE%E5%85%A5%E5%AF%B9%E5%BA%94%E7%9B%AE%E5%BD%95/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在群晖开启了所有服务后，接下来就是准备文件放入各个目录了&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、tftp目录下放入undionly.kpxe&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-13/7.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、www也就是http服务目录下放入制作好的PE系统，建一个PE文件夹，media文件夹一整个全部放入，另外一个是wimboot文件，这个文件是ipxe官方提供，和ipxe一样是ipxe开源的一个引导pe系统所必须的一个文件，下载地址：&lt;a href="https://github.com/ipxe/wimboot/releases" rel="noreferrer noopener" target="_blank"&gt;https://github.com/ipxe/wimboot/releases&lt;/a&gt; ，同样放入PE文件夹，该目录会通过ipxe引导进来进入pe&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-13/8.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、下载镜像，因为ipxe iscsi安装win10是有条件的，需要用英文版的win10，不然会在安装第二阶段会报一个驱动无法安装的问题，所以这里下载1607版本 英语版的win10系统，在msdn网站下载:&lt;a href="https://msdn.itellyou.cn/" rel="noreferrer noopener" target="_blank"&gt;https://msdn.itellyou.cn/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-13/6.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;将win10 iso文件装载出来，将里边的文件全部复制到群晖目录，我在群晖下单独建立了一个目录public，在public目录建立win10目录，用来存放win10系统安装文件，将文件全部复制到这个文件目录下,该目录会通过smb协议在pe中挂载从而直接执行setup.exe程序实现安装。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-13/9.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;</description></item><item><title>win10无盘安装与无盘启动系列ikuai(dhcp)+nas(tftp、iscsi)+ipxe第五篇群晖nas服务配置</title><link>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%BA%94%E7%AF%87%E7%BE%A4%E6%99%96nas%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AE/</link><pubDate>Fri, 14 Jan 2022 11:14:37 +0000</pubDate><guid>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%BA%94%E7%AF%87%E7%BE%A4%E6%99%96nas%E6%9C%8D%E5%8A%A1%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在ipxe固件准备好之后，我们来到群晖页面，将服务一个一个开启。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、打开tftp，文件服务--&amp;gt;tftp启用tftp服务，根文件夹选择一个，将上篇编译好的undionly.kpxe放入这个目录中&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-13/3.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、安装web station，开启http服务，这个http服务器主要存放PE系统文件和ipxe配置文件。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-13/4.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;进入webstation--&amp;gt;虚拟主机--&amp;gt;基于端口，勾选http，这里选择9000端口，后面https可配可不配，我们后面的操作基于9000端口，文档根目录选择一个，下面两个hsts\http/2可勾可不勾。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-13/5.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、开启iscsi&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;创建iscsi磁盘可参考我的另一篇文章的前面部分，创建完之后什么都不用做，记住IQN名称，等待后面使用，iscsi磁盘主要是安装win10使用。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:embed {"url":"https://www.lategege.com/?p=661","type":"wp-embed","providerNameSlug":"late哥哥笔记"} --&gt;
&lt;figure class="wp-block-embed is-type-wp-embed is-provider-late哥哥笔记 wp-block-embed-late哥哥笔记"&gt;&lt;div class="wp-block-embed__wrapper"&gt;
https://www.lategege.com/?p=661
&lt;/div&gt;&lt;/figure&gt;
&lt;!-- /wp:embed --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四、开启smb服务&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;参考另一篇文章当中smb开启部分，smb文件目录主要存放win10的安装文件。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:embed {"url":"https://www.lategege.com/?p=466","type":"wp-embed","providerNameSlug":"late哥哥笔记"} --&gt;
&lt;figure class="wp-block-embed is-type-wp-embed is-provider-late哥哥笔记 wp-block-embed-late哥哥笔记"&gt;&lt;div class="wp-block-embed__wrapper"&gt;
https://www.lategege.com/?p=466
&lt;/div&gt;&lt;/figure&gt;
&lt;!-- /wp:embed --&gt;</description></item><item><title>win10无盘安装与无盘启动系列ikuai(dhcp)+nas(tftp、iscsi)+ipxe第四篇ipxe编译</title><link>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E5%9B%9B%E7%AF%87ipxe%E7%BC%96%E8%AF%91/</link><pubDate>Fri, 14 Jan 2022 10:43:50 +0000</pubDate><guid>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E5%9B%9B%E7%AF%87ipxe%E7%BC%96%E8%AF%91/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;该系列教程主要谈谈无盘安装win10和无盘启动win10技术，整体的理论知识和技术实现思路可以翻阅我的第一篇博文。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:embed {"url":"https://www.lategege.com/?p=699","type":"wp-embed","providerNameSlug":"late哥哥笔记"} --&gt;
&lt;figure class="wp-block-embed is-type-wp-embed is-provider-late哥哥笔记 wp-block-embed-late哥哥笔记"&gt;&lt;div class="wp-block-embed__wrapper"&gt;
https://www.lategege.com/?p=699
&lt;/div&gt;&lt;/figure&gt;
&lt;!-- /wp:embed --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;作为无盘引导的核心技术就是IPXE了，ipxe官网地址：https://ipxe.org/&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;其实除了ipxe具备支持http功能外，syslinux 包中的pxelinux，文件名pxelinux.0，它也是一个强大的引导工具支持配置文件,配置文件默认为pxelinux.cfg/default，不过因为ipxe官网文档比较齐全，而且可以自己编译，相当于自己想怎么改就怎么改，ipxe配置文件以.ipxe结尾。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;通过ipxe官网了解到编译过程，我是在ubuntu20.04环境下编译的，以root身份登录&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;需要依赖这些工具或软件包&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:list --&gt;
&lt;ul&gt;&lt;li&gt;gcc&lt;/li&gt;&lt;li&gt;binutils&lt;/li&gt;&lt;li&gt;make&lt;/li&gt;&lt;li&gt;perl&lt;/li&gt;&lt;li&gt;liblzma or xz header files&lt;/li&gt;&lt;li&gt;mtools&lt;/li&gt;&lt;li&gt;mkisofs or genisoimage or xorrisofs (needed only for building .iso images)&lt;/li&gt;&lt;li&gt;syslinux&lt;/li&gt;&lt;/ul&gt;
&lt;!-- /wp:list --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;具体操作如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;#更新软件源
apt update
#安装依赖
apt install gcc binutils make perl liblzma-dev mtools mkisofs syslinux
#拉代码
git clone git://git.ipxe.org/ipxe.git
#编译
 make bin/undionly.kpxe&lt;/pre&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;因为ipxe是一个固件，所以编译后它的实体有很多种类型，有iso、usb格式的(刷入u盘的)，rom格式的(刷入网卡芯片)，有通过pxe传统链式引导的就是上面的undionly.kpxe，有用于efi引导的ipxe.efi，这些全部都是ipxe固件，只是格式不同而已，我采用的是传统引导并且通过PXE进入ipxe，所以要编译成undionly.kpxe，详细的编译编译方式参考ipxe官网：&lt;a href="https://ipxe.org/download" rel="noreferrer noopener" target="_blank"&gt;https://ipxe.org/download&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;确定了ipxe引导文件名称这一点，爱快dhcp的option67配置就确定了，也就是75:6e:64:69:6f:6e:6c:79:2e:6b:70:78:65&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;只要群晖开启tftp,将编译成的undionly.kpxe传入tftp根目录，爱快dhcp两个字段配置好，局域网中同网段的主机开启pxe启动后就会获取到tftp服务器地址和启动文件名，从而进入ipxe环境。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;补充：如果你的虚拟机或者物理机选择了uefi启动模式，那么你的ipxe需要编译成ipxe.efi，make bin-x86_64-efi/ipxe.efi，此时，爱快option67就要根据ipxe.efi这个名称去填写了。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>win10无盘安装与无盘启动系列ikuai(dhcp)+nas(tftp、iscsi)+ipxe第三篇ikuai(dhcp配置)</title><link>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%B8%89%E7%AF%87ikuai-dhcp%E9%85%8D%E7%BD%AE/</link><pubDate>Fri, 14 Jan 2022 09:40:14 +0000</pubDate><guid>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%B8%89%E7%AF%87ikuai-dhcp%E9%85%8D%E7%BD%AE/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;该系列教程主要谈谈无盘安装win10和无盘启动win10技术，整体的理论知识和技术实现思路可以翻阅我的第一篇博文。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:embed {"url":"https://www.lategege.com/?p=699","type":"wp-embed","providerNameSlug":"late哥哥笔记"} --&gt;
&lt;figure class="wp-block-embed is-type-wp-embed is-provider-late哥哥笔记 wp-block-embed-late哥哥笔记"&gt;&lt;div class="wp-block-embed__wrapper"&gt;
https://www.lategege.com/?p=699
&lt;/div&gt;&lt;/figure&gt;
&lt;!-- /wp:embed --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;制作完PE，我们来开启服务，根据第一篇文章的技术思路，我们先开启ikuai dhcp的通告服务。如下图所示，在爱快dhcp服务端配置中有一个自定义DHCP选项，非常容易被忽略，这个选项就可以配置通告tftp服务器地址和PXE引导文件的名称，这个不是爱快独有的，这是dhcp协议的标准，dhcp除了定义了dns、ip地址段、有效期等字段外，还有非常多的扩展字段可以使用，每一个字段都有含义，其中net server指你的tftp服务器地址是什么，option67指的是你tftp服务器中的启动文件名是什么，这是dhcp协议的规定，根据爱快的文档，需要将启动文件名转换成16进制，并且俩俩用冒号隔开，例如你的启动文件名是boot.kpxe，对应的option67应该填写62:6f:6f:74:2e:6b:70:78:65，转换工具网站：&lt;a href="http://www.ab126.com/goju/1711.html" rel="noreferrer noopener" target="_blank"&gt;http://www.ab126.com/goju/1711.html&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-13/1.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;如果你需要详细了解dhcp各个扩展字段的作用，可查看爱快官网，&lt;a href="https://www.ikuai8.com/zhic/ymgn/lyym/wlsz/dhcp.html" rel="noreferrer noopener" target="_blank"&gt;https://www.ikuai8.com/zhic/ymgn/lyym/wlsz/dhcp.html&lt;/a&gt; &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;爱快所提供的字段也只不过是dhcp扩展字段的一小部分，也就是如果你用openwrt或者其他可以自定义填写dhcp扩展的路由器，那就可以使用dhcp所有的扩展字段&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;全部字段的说明可查看博客：&lt;a href="https://blog.csdn.net/liangdsing/article/details/62231315" rel="noreferrer noopener" target="_blank"&gt;https://blog.csdn.net/liangdsing/article/details/62231315&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;dhcp服务在无盘引导的下的角色是通告ipxe引导，从而让网卡的pxe去引导ipxe，从而使得网卡进入ipxe环境，具备访问http\iscsi的能力。有点绕，其实就是引导接力，引导接力是我自己想出来的，我觉得比较贴切，这里有点像汇编语言进入C语言来实现更高级的功能。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;pxe支持tftp,所以当电脑启动进入pxe，它就能获取到爱快dhcp通告的tftp服务地址和启动文件名，从而加载tftp服务器上的ipxe引导文件，进入ipxe的世界。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;我的tftp服务器是用群晖的tftp服务，所以爱快的next server要填写群晖的ip地址，文件名可以先不设置，等后面讲完ipxe编译后再设置，群晖tftp开启很简单，只需要勾选一下，群晖相关服务的开启教程会放在下一篇文章中。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>win10无盘安装与无盘启动系列ikuai(dhcp)+nas(tftp、iscsi)+ipxe第二篇winPE制作</title><link>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%BA%8C%E7%AF%87winpe%E5%88%B6%E4%BD%9C/</link><pubDate>Fri, 14 Jan 2022 09:09:16 +0000</pubDate><guid>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%BA%8C%E7%AF%87winpe%E5%88%B6%E4%BD%9C/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;该系列教程主要谈谈无盘安装win10和无盘启动win10技术，整体的理论知识和技术实现思路可以翻阅我的第一篇博文。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:embed {"url":"https://www.lategege.com/?p=699","type":"wp-embed","providerNameSlug":"late哥哥笔记"} --&gt;
&lt;figure class="wp-block-embed is-type-wp-embed is-provider-late哥哥笔记 wp-block-embed-late哥哥笔记"&gt;&lt;div class="wp-block-embed__wrapper"&gt;
https://www.lategege.com/?p=699
&lt;/div&gt;&lt;/figure&gt;
&lt;!-- /wp:embed --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;为什么要自己制作winPE?一个是因为根据ipxe官方文档指导:&lt;a href="https://ipxe.org/howto/winpe" rel="noreferrer noopener" target="_blank"&gt;https://ipxe.org/howto/winpe&lt;/a&gt;，另一个原因是干脆连带学习下怎么制作PE系统，市面上那么多winPE系统，但是还没自己上手制作过，正好折腾一回也不错。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;随着版本的升级，我们不能只看IPXE的指引，还要结合微软最新的文档，所以制作方式需要去微软官方查看，地址:&lt;a href="https://support.microsoft.com/en-us/windows/adk-download-for-windows-10-2a0b7ff2-79b7-b989-f727-43ae506e36ad" rel="noreferrer noopener" target="_blank"&gt;https://support.microsoft.com/en-us/windows/adk-download-for-windows-10-2a0b7ff2-79b7-b989-f727-43ae506e36ad&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-14/1.png"/&gt;&lt;figcaption&gt;根据文档提示，我们要制作PE需要安装一个ADK的套件，全称Assessment and Deployment Kit&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;评估部署工具，中文翻译出来有点奇怪，不过没关系，我们下载下来安装到自己电脑，安装过程就是一路下一步即可，你如果像我一样改变了默认的安装目录，后面要像我这样修改环境变量，我是安装到了D盘，下面我会按照我的安装路径来说明环境变量的配置。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-14/2.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;进入D:\windowsADK\Assessment and Deployment Kit\Windows Preinstallation Environment，看到copype.cmd 这个就是生成PE的脚本文件。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;右键编辑copype.cmd，看到WinPERoot，以这个名字为变量名去计算机--》属性--》高级系统设置--》环境变量中添加环境变量，变量值修改为D:\windowsADK\Assessment and Deployment Kit\Windows Preinstallation Environment，如下图所示&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-14/3.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;还需要添加一个OSCDImgRoot环境变量，指向D:\windowsADK\Assessment and Deployment Kit\Deployment Tools，按照图片中复制一行将...\...\去掉，不然找不到路径，如下图所示。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-14/4.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;strong&gt;&lt;span class="has-inline-color" style="color:#e60742"&gt;注意：以上环境变量是根据我的安装路径添加的，实际操作必须安装自己的安装路径来添加。&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-14/5.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;添加完环境变量就可以来生成PE文件了，以管理员身份执行cmd，按照上面图片的操作进入 D:\windowsADK\Assessment and Deployment Kit\Windows Preinstallation Environment 目录。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;执行copype.cmd amd64 tmp 就能够在当前目录的tmp目录下生成PE引导等系统文件了。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;copype.cmd 后面跟要生成哪个架构的，有两个一个是amd64 是64位PE，一个是x86 是32位PE，根据自己想要安装32位还是64位按需选择，后面一个是生成在哪里，该目录会自动创建。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-14/6.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2022/1-14/7.png"/&gt;&lt;figcaption&gt;tmp目录下的media就是IPXE引导所需的PE系统，生成PE的工作就算完成了。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;补充：如果需要往PE中添加驱动，可以参考以下命令。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:group --&gt;
&lt;div class="wp-block-group"&gt;&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Dism /Mount-Image /ImageFile:D:\test\media\sources\boot.wim /index:1 /MountDir:D:\test\mount&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这一条命令是将PE的映像文件挂在到电脑上的一个目录上&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;dism /image:D:\test\mount /add-driver /driver:D:\test\e1000 /recurse&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这一条命令是将e1000驱动添加进这个挂在的目录&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;Dism /Unmount-Image /MountDir:D:\test\mount /Commit&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这一条命令就是提交映像修改并取消挂载，执行完成后原来的boot.wim会改变。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;要生成ISO文件这些工具都集成在ADK套件中，还有微软生成的PE引导完成后是命令行的不带图形界面的，需要添加图形界面可以详细翻阅微软的官方文档ADK--&amp;gt;PE相关内容，市面上的PE镜像都是这么做出来的，仔细研究后你也能做一个自己的WINPE。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;&lt;/div&gt;
&lt;!-- /wp:group --&gt;</description></item><item><title>win10无盘安装与无盘启动系列ikuai(dhcp)+nas(tftp、iscsi)+ipxe第一篇知识储备</title><link>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%B8%80%E7%AF%87%E7%9F%A5%E8%AF%86%E5%82%A8%E5%A4%87/</link><pubDate>Thu, 13 Jan 2022 12:16:15 +0000</pubDate><guid>https://lategege.com/p/win10%E6%97%A0%E7%9B%98%E5%AE%89%E8%A3%85%E4%B8%8E%E6%97%A0%E7%9B%98%E5%90%AF%E5%8A%A8%E7%B3%BB%E5%88%97ikuai-dhcp-nas-tftp-iscsi-ipxe%E7%AC%AC%E4%B8%80%E7%AF%87%E7%9F%A5%E8%AF%86%E5%82%A8%E5%A4%87/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;无盘启动在早年间的网吧盛行，对于那段历史中使用到了哪些集成化的软件，我不清楚也不想去了解，且不说那些软件收费与否、兼容性怎么样，即使完全免费，我也是不会用的，因为我不知道这些软件安全性如何，更重要的原因是我喜欢折腾，同样的，我知道网上有tiny pxe server这种集成好的程序，它的内部其实就是ipxe方案，只是作者把众多工具揉在一起了，如果使用它就要按照它的套路去配置，而且有些服务我不需要，再者，它是一款windows下的软件，用它得开一台windows服务器，我是不能接受得。之所以选择win10无盘而不是linux无盘，是因为win10比linux复杂很多，linux的安装不需要借助PE，只要启动安装镜像就能够安装，win10在ipxe环境下必须要PE才能安装。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;研究无盘启动技术的原因是因为在很多次虚拟机或者物理机的系统安装中总是会有这么一项LAN启动或者PXE，当时也没太关注，后来就想试着折腾折腾，这一折腾就是连续的几天几夜，研究pxe究竟是怎么回事，整个引导的流程是怎么样的，市面上有哪些网络引导技术？我该怎么实现无盘安装与启动？因为这些技术涉及面很广，所以博客会分很多篇去写，大致会将我所研究的一些技术点、知识点以及实现给罗列清楚，有些名词我会使用我自己的语言去解释。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;首先聊一聊系统的启动流程，说到启动流程对于底层硬件来说就一套流程，但是我们在软件层面分为BIOS以及UEFI。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;BIOS：Basic Input Output System 基本的输入输出系统&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;UEFI: Unified Extensible Firmware Interface 统一可扩展的固件接口&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;两者的区别:bios闭塞，uefi开放、支持键鼠操作。 &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;其实常说的BIOS、UEFI，本质上他们都是固件，都固化在主板的CMOS芯片中，BIOS固件只支持传统引导也就是常说的BIOS引导。UEFI固件既支持传统引导，也支持UEFI引导，两者可以在UEFI固件中选择启用与否。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;其实这两个概念现在越来越模糊，因为计算机启动出现的那个界面，人们普遍已经习惯称作BIOS，刷BIOS就是刷主板固件，这个层面上来说UEFI就是BIOS。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;当计算机电源按下的那一刻，发生了一系列事情，大致如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;POST(power on self test 开机自检)--&amp;gt;进入BIOS(传统BIOS或者UEFI)--&amp;gt;BOOT SEQUENCE(选择启动载体)---&amp;gt;加载MBR的bootloader(传统BIOS)或者寻找分区中的efi文件(UEFI引导)&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;如果是centos系统的传统bios引导在加载mbr的时候就将引导交给了grub，如果是efi引导就会交给grub.efi，计算机引导就是一个接力的过程,cmos固件接过第一棒，后面和系统相关的bootloader接过第二棒，接着就加载内核、临时文件系统、载入文件系统驱动，挂载根文件系统、载入所有硬件驱动、启动初始程序等操作。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在BOOT SEQUENCE阶段，除了选择U盘、磁盘，大部分主板都支持BOOT ON LAN 也就是PXE(preboot execute environment）预引导处理环境.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;PXE其实是网卡的一个固件，烧录在网卡的芯片中，如果BIOS选择PXE启动，就会将引导交给网卡处理，PXE是通过TFTP客户端去TFTP服务端获取引导文件来引导的，它只支持TFTP，TFTP的传输速度很慢，由此就诞生了IPXE。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;ipxe官方网站:&lt;a href="https://ipxe.org/start" rel="noreferrer noopener" target="_blank"&gt;https://ipxe.org/start&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;IPXE是gpxe的升级版，它是一个开源的网络引导固件，请注意，它是一个固件，所以它可以烧录进网卡的芯片中去替换PXE来支持IPXE的新特性，前提是网卡支持。当然它也可以通过PXE的TFTP来进行引导接力，从而从PXE进入到IPXE，它既支持传统引导也支持UEFI引导，两者需要使用不同的引导文件。IPXE 支持http\https\iscsi\dns\tftp\elf\aoe等众多协议，也就是它可以使用http协议进行引导接力，这比tftp传输效率提高了非常多，在线安装系统的效率提高不少，因为支持iscsi，所以无盘启动就可以实现，配置ipxe可以分为编译期和运行期，在编译期可以通过指定脚本来配置参数，运行期可以通过命令或者链式调用指定脚本来间接配置引导。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;NETBOOT.XYZ 这个本质上是开源的ipxe配置脚本，它帮你完成了很多ipxe的配置，可以帮助你更方便的使用IPXE，在学习编辑ipxe脚本的时候可以作为参考。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;要实现win10无盘安装与无盘启动，涉及的技术主要有以下这些：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;dhcp服务端-----使用爱快软路由的dhcp服务(配置option67、next-server 来宣告tftp服务器的信息)&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;tftp服务端------使用群晖tftp服务，放置ipxe引导文件&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;iscsi服务器----- 使用群晖iscsi服务，当作win10网络系统盘，涉及安装和安装完成后的引导&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;ipxe技术----- 从pxe进入ipxe引导--&amp;gt;pe引导--&amp;gt;载入网络iso文件，加载iscsi磁盘，安装windows至iscsi，最后从iscsi磁盘引导进入windows10&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;smb服务器---使用群晖smb服务，负责安装镜像加载&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;win10 pe制作-----微软官方的制作PE工具，ADK套件，地址:&lt;a href="https://support.microsoft.com/en-us/windows/adk-download-for-windows-10-2a0b7ff2-79b7-b989-f727-43ae506e36ad" rel="noreferrer noopener" target="_blank"&gt;https://support.microsoft.com/en-us/windows/adk-download-for-windows-10-2a0b7ff2-79b7-b989-f727-43ae506e36ad&lt;/a&gt;，PE负责win10安装&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;http服务---使用群晖webstation，http服务主要放ipxe脚本和winPe相关文件&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;实验机(物理机或者虚拟机一台支持PXE启动)-----负责测试。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;前面已经提到启动环境分bios传统引导和uefi引导，所以流程也分两套，其实很接近，只是使用的引导文件不同，这里以传统引导流程来实现，流程如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;物理机或虚拟机启用BIOS引导---进入PXE环境---加载TFTP的ipxe引导文件---ipxe通过http加载winPe---winPe挂载iscsi磁盘，挂载win10安装盘，将win10安装进iscsi磁盘，重启后pxe进入ipxe，ipxe引导iscsi磁盘进入win10系统，win10无盘启动完成。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>ubuntu 20.04 server lvm管理磁盘导致容量减半</title><link>https://lategege.com/p/ubuntu-20-04-server-lvm%E7%AE%A1%E7%90%86%E7%A3%81%E7%9B%98%E5%AF%BC%E8%87%B4%E5%AE%B9%E9%87%8F%E5%87%8F%E5%8D%8A/</link><pubDate>Fri, 07 Jan 2022 12:48:08 +0000</pubDate><guid>https://lategege.com/p/ubuntu-20-04-server-lvm%E7%AE%A1%E7%90%86%E7%A3%81%E7%9B%98%E5%AF%BC%E8%87%B4%E5%AE%B9%E9%87%8F%E5%87%8F%E5%8D%8A/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;我在一台小主机上装了ubuntu20.04 server，这台主机的硬盘是128g，但是使用df -h 查看磁盘占用发现磁盘竟然只有分到58g，如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;Filesystem Size Used Avail Use% Mounted on
udev 1.6G 0 1.6G 0% /dev
tmpfs 336M 1.7M 335M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 58G 8.9G 46G 17% /
tmpfs 1.7G 0 1.7G 0% /dev/shm
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup
/dev/loop1 62M 62M 0 100% /snap/core20/1270
/dev/sda2 976M 115M 795M 13% /boot
/dev/loop0 56M 56M 0 100% /snap/core18/2128
/dev/loop2 71M 71M 0 100% /snap/lxd/21029
/dev/sda1 511M 5.3M 506M 2% /boot/efi
/dev/loop4 3.7M 3.7M 0 100% /snap/stress-ng/6356
/dev/loop3 33M 33M 0 100% /snap/snapd/12704
/dev/loop5 117M 117M 0 100% /snap/docker/1125
tmpfs 336M 8.0K 336M 1% /run/user/115
/dev/loop6 44M 44M 0 100% /snap/snapd/14295
/dev/loop7 56M 56M 0 100% /snap/core18/2253
/dev/loop8 68M 68M 0 100% /snap/lxd/21835
tmpfs 336M 12K 336M 1% /run/user/1000
tmpfs 336M 0 336M 0% /run/user/0&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;后来才知道ubuntu server默认采用了lvm磁盘模式，在这种模式下的物理磁盘上层被引入了逻辑磁盘的概念，ubuntu预留了一半空间未分配到逻辑卷组当中，可以通过一些命令来对逻辑卷扩容。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;执行lsblk可以列出块设备，包含了硬盘和硬盘的所有分区以及逻辑分区：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 55.4M 1 loop /snap/core18/2128
loop1 7:1 0 61.9M 1 loop /snap/core20/1270
loop2 7:2 0 70.3M 1 loop /snap/lxd/21029
loop3 7:3 0 32.3M 1 loop /snap/snapd/12704
loop4 7:4 0 3.6M 1 loop /snap/stress-ng/6356
loop5 7:5 0 116.6M 1 loop /snap/docker/1125
loop6 7:6 0 43.3M 1 loop /snap/snapd/14295
loop7 7:7 0 55.5M 1 loop /snap/core18/2253
loop8 7:8 0 67.2M 1 loop /snap/lxd/21835
sda 8:0 0 119.2G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 117.8G 0 part
 └─ubuntu--vg-ubuntu--lv 253:0 0 58.9G 0 lvm /&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;执行vgdisplay，显示逻辑卷组分配情况，有一半空间没有分配。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt; --- Volume group ---
 VG Name ubuntu-vg
 System ID
 Format lvm2
 Metadata Areas 1
 Metadata Sequence No 2
 VG Access read/write
 VG Status resizable
 MAX LV 0
 Cur LV 1
 Open LV 1
 Max PV 0
 Cur PV 1
 Act PV 1
 VG Size &amp;lt;117.74 GiB
 PE Size 4.00 MiB
 Total PE 30141
 Alloc PE / Size 15071 / 58.87 GiB
 Free PE / Size 15070 / &amp;lt;58.87 GiB
 VG UUID prbHqx-ySU0-4XLL-pest-xH4t-W1Uk-kjIH9d&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;通过以下命令榨干剩余磁盘空间&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;sudo &lt;meta charset="utf-8"/&gt;lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv (扩容至百分之百)&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 执行重新计算&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;补充:&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;lvextend -L 80G /dev/mapper/ubuntu--vg-ubuntu--lv //扩展到80G，如果原来大于80就减少，如果原来小于80就增大
lvextend -L +20G /dev/mapper/ubuntu--vg-ubuntu--lv //扩容20G
lvreduce -L -20G /dev/mapper/ubuntu--vg-ubuntu--lv //减小20G&lt;/pre&gt;
&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>让华为平板(matepad pro)作为电脑扩展屏使用</title><link>https://lategege.com/p/%E8%AE%A9%E5%8D%8E%E4%B8%BA%E5%B9%B3%E6%9D%BF-matepad-pro-%E4%BD%9C%E4%B8%BA%E7%94%B5%E8%84%91%E6%89%A9%E5%B1%95%E5%B1%8F%E4%BD%BF%E7%94%A8/</link><pubDate>Sat, 18 Dec 2021 04:17:36 +0000</pubDate><guid>https://lategege.com/p/%E8%AE%A9%E5%8D%8E%E4%B8%BA%E5%B9%B3%E6%9D%BF-matepad-pro-%E4%BD%9C%E4%B8%BA%E7%94%B5%E8%84%91%E6%89%A9%E5%B1%95%E5%B1%8F%E4%BD%BF%E7%94%A8/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在电脑上安装完华为电脑管家之后，如果你还有一台华为平板电脑，那么你就可以使用这台平板当作扩展显示器来用。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;详细支持的平台型号和系统以及要求可以查看华为的官方文档：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;a href="https://consumer.huawei.com/cn/support/huaweishareonehop/specs/"&gt;https://consumer.huawei.com/cn/support/huaweishareonehop/specs/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;如果你的非华为电脑没有安装华为电脑管家，可以移步我的非华为电脑开启多屏协同功能博文，文章贴在下面了。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:embed {"url":"https://www.lategege.com/?p=629","type":"wp-embed","providerNameSlug":"late哥哥笔记"} --&gt;
&lt;figure class="wp-block-embed is-type-wp-embed is-provider-late哥哥笔记 wp-block-embed-late哥哥笔记"&gt;&lt;div class="wp-block-embed__wrapper"&gt;
https://www.lategege.com/?p=629
&lt;/div&gt;&lt;figcaption&gt;以下开始具体步骤：&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:embed --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、打开华为电脑管家--&amp;gt; 切换到我的设备，点击连接&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-18/1.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;如果显示一直在查找，说明你的蓝牙设备可能不太支持无线连接，那可以切换成有线方式，将平台和电脑通过数据线连接在一起。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-18/2.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、连接完成，平台自动给出提示，点击连接&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-18/3.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、电脑上给出提示，点连接&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-18/4.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四，连接成功后，你的华为平板就变成了你电脑的第二屏&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-18/5.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;屏幕有三种模式：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;第一种镜像模式是和电脑的桌面保持一致&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;第二种扩展是将平板当作第二块显示器来用&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;第三种共享是平板还是平板的系统，只不过你可以使用电脑的鼠标键盘来操作，互相之间也可以传递文件，非常方便。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>一张图告诉你华为多屏协同怎么使用</title><link>https://lategege.com/p/%E4%B8%80%E5%BC%A0%E5%9B%BE%E5%91%8A%E8%AF%89%E4%BD%A0%E5%8D%8E%E4%B8%BA%E5%A4%9A%E5%B1%8F%E5%8D%8F%E5%90%8C%E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8/</link><pubDate>Thu, 16 Dec 2021 13:21:29 +0000</pubDate><guid>https://lategege.com/p/%E4%B8%80%E5%BC%A0%E5%9B%BE%E5%91%8A%E8%AF%89%E4%BD%A0%E5%8D%8E%E4%B8%BA%E5%A4%9A%E5%B1%8F%E5%8D%8F%E5%90%8C%E6%80%8E%E4%B9%88%E4%BD%BF%E7%94%A8/</guid><description>&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-16/20.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这张图基本涵盖了华为多屏协同的大部分功能，下面列举具体功能。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、电脑端可以备份手机相册、视频，同时可以浏览查看手机文件&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、电脑端可以使用使用手机网络上网、类似与手机开wifi热点&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、电脑端快捷键ctrl+alt+q可以打开智慧搜索，输入关键字可以搜索手机中的文件、视频、相片&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;4、电脑端操作部分app，可以开启多窗口，截图中的b站app和今日头条app就是多窗口模式下打开的。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;5、手机端可以对电脑截屏和录频&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;6、手机端可以获取电脑的文件&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;以下是图片中没有表现出来的功能：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;7、手机文件或者照片长按可以拖拽复制到电脑中。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;8、同样电脑中的文件或者相册可以拖动到手机中，打开文件管理或者相册app就可以看到&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;9、电脑中拖动图片到手机微信聊天窗口可以直接发送&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;10、另外当手机通过app播放音乐时默认使用了电脑的声音输出&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;.....其他功能待发掘...&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-16/21.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>非华为电脑可以开启多屏协同吗？</title><link>https://lategege.com/p/%E9%9D%9E%E5%8D%8E%E4%B8%BA%E7%94%B5%E8%84%91%E5%8F%AF%E4%BB%A5%E5%BC%80%E5%90%AF%E5%A4%9A%E5%B1%8F%E5%8D%8F%E5%90%8C%E5%90%97/</link><pubDate>Thu, 16 Dec 2021 12:34:10 +0000</pubDate><guid>https://lategege.com/p/%E9%9D%9E%E5%8D%8E%E4%B8%BA%E7%94%B5%E8%84%91%E5%8F%AF%E4%BB%A5%E5%BC%80%E5%90%AF%E5%A4%9A%E5%B1%8F%E5%8D%8F%E5%90%8C%E5%90%97/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;非华为电脑也能够开启多屏协同，不过有几个前提条件：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、电脑必须是win10或者win11(Linux、mac、win7就别想了)&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、电脑需要有wifi和蓝牙，基本上现在的笔记本都有，部分台式机也有，没有的可以通过PCIE插槽扩展一块。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、需要有一个支持多屏协同的华为手机，不知道没事，可以查这个表&lt;a href="https://consumer.huawei.com/cn/support/content/zh-cn00772967/" rel="noreferrer noopener" target="_blank"&gt;https://consumer.huawei.com/cn/support/content/zh-cn00772967/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;有了上面这些前提条件，我们就可以开搞了，花几分钟时间就完全可以开启多屏协同，当然还必须要做到碰一碰就可以连接，没有碰一碰的多屏协同是没有灵魂的，所以请打开拼多多，搜索 nfc贴纸&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"width":295,"height":655,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large is-resized"&gt;&lt;img alt="" height="655" src="https://img.lategege.com:30443/images/web/2021/12-16/1.png" width="295"/&gt;&lt;figcaption&gt;选择你中意的贴纸下单吧，几块钱买不了吃亏。到货后贴到你的机箱或者笔记本上，贴哪里无所谓，主要的是贴的自己满意就好。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-16/2.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;下面用到的软件都上传网盘了，大家可以从网盘下载。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;链接：https://pan.baidu.com/s/1Ufop4hsd6bl10aFSvPbPug&lt;br/&gt;提取码：hoqs&lt;br/&gt;--来自百度网盘超级会员V5的分享&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-16/3.png"/&gt;&lt;figcaption&gt;把这三个软件下载下来，然后打开HUAWEIPCMaanger11.1.6.31直装版，一路下一步，直到安装好，华为电脑管家安装软件.exe下载好先别动，一碰传助手在你的华为手机上先安装好。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-16/4.png"/&gt;&lt;figcaption&gt;装好好桌面会出现华为电脑管家，打开电脑管家，选择我的设备，点击开启多屏协同。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"width":743,"height":465,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large is-resized"&gt;&lt;img alt="" height="465" src="https://img.lategege.com:30443/images/web/2021/12-16/5.png" width="743"/&gt;&lt;figcaption&gt;确保电脑的wifi和蓝牙是打开状态，这边会自动查找你的手机，查不到无所谓，点击左上方的二维码&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"width":743,"height":463,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large is-resized"&gt;&lt;img alt="" height="463" src="https://img.lategege.com:30443/images/web/2021/12-16/6.png" width="743"/&gt;&lt;figcaption&gt;在手机上打开浏览器点击扫一扫图片，扫一扫。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"width":283,"height":628,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large is-resized"&gt;&lt;img alt="" height="628" src="https://img.lategege.com:30443/images/web/2021/12-16/10.png" width="283"/&gt;&lt;figcaption&gt;手机上弹出提示后点连接&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-16/7.png"/&gt;&lt;figcaption&gt;连接后电脑展示手机窗口，这个时候多屏协同成功，下面就是使用NFC贴纸了。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-16/8.png"/&gt;&lt;figcaption&gt;打开刚刚下载好的 华为电脑管家安装软件.exe 点击自动生成nfc标签二维码，然后别动&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"width":300,"height":666,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large is-resized"&gt;&lt;img alt="" height="666" src="https://img.lategege.com:30443/images/web/2021/12-16/9.png" width="300"/&gt;&lt;figcaption&gt;确保手机打开NFC，没有打开就打开&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"width":323,"height":717,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large is-resized"&gt;&lt;img alt="" height="717" src="https://img.lategege.com:30443/images/web/2021/12-16/12.png" width="323"/&gt;&lt;figcaption&gt;手机上打开之前安装的一碰传助手，扫一扫刚刚电脑管家生成的二维码。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"width":308,"height":683,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large is-resized"&gt;&lt;img alt="" height="683" src="https://img.lategege.com:30443/images/web/2021/12-16/11.png" width="308"/&gt;&lt;figcaption&gt;接着把你手机和NFC标签做近距离接触，然后NFC贴纸就写入成功了。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/12-16/13.png"/&gt;&lt;figcaption&gt;以后连接电脑只需要碰一碰就可以了，碰之前确保电脑打开了wifi和蓝牙，手机也打开了wifi和蓝牙，后面就可以愉快的玩耍了。&lt;/figcaption&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;</description></item><item><title>最简单的Let's Encrypt免费SSL证书申请方式</title><link>https://lategege.com/p/%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84let-s-encrypt%E5%85%8D%E8%B4%B9ssl%E8%AF%81%E4%B9%A6%E7%94%B3%E8%AF%B7%E6%96%B9%E5%BC%8F/</link><pubDate>Wed, 11 Aug 2021 02:20:23 +0000</pubDate><guid>https://lategege.com/p/%E6%9C%80%E7%AE%80%E5%8D%95%E7%9A%84let-s-encrypt%E5%85%8D%E8%B4%B9ssl%E8%AF%81%E4%B9%A6%E7%94%B3%E8%AF%B7%E6%96%B9%E5%BC%8F/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;要申请免费的let’s encrypt证书，最简单快捷的方式就是使用工具acme，要使用acme，不要去看别人网上写的教程，因为acme是不断在更新的，我们要找到acme的github仓库去看官方发布的教程，这样即使acme再怎么更新，教程也都是最新的。&lt;br/&gt;acme官方github地址:&lt;a href="https://github.com/acmesh-official/acme.sh"&gt;https://github.com/acmesh-official/acme.sh&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>一个可以在线编辑16进制的工具网站</title><link>https://lategege.com/p/%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%BA%BF%E7%BC%96%E8%BE%9116%E8%BF%9B%E5%88%B6%E7%9A%84%E5%B7%A5%E5%85%B7%E7%BD%91%E7%AB%99/</link><pubDate>Mon, 19 Jul 2021 02:52:06 +0000</pubDate><guid>https://lategege.com/p/%E4%B8%80%E4%B8%AA%E5%8F%AF%E4%BB%A5%E5%9C%A8%E7%BA%BF%E7%BC%96%E8%BE%9116%E8%BF%9B%E5%88%B6%E7%9A%84%E5%B7%A5%E5%85%B7%E7%BD%91%E7%AB%99/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;a href="https://hexed.it/"&gt;https://hexed.it/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>使用爱快软路由抓取app访问网站的域名</title><link>https://lategege.com/p/%E4%BD%BF%E7%94%A8%E7%88%B1%E5%BF%AB%E8%BD%AF%E8%B7%AF%E7%94%B1%E6%8A%93%E5%8F%96app%E8%AE%BF%E9%97%AE%E7%BD%91%E7%AB%99%E7%9A%84%E5%9F%9F%E5%90%8D/</link><pubDate>Fri, 28 May 2021 02:30:58 +0000</pubDate><guid>https://lategege.com/p/%E4%BD%BF%E7%94%A8%E7%88%B1%E5%BF%AB%E8%BD%AF%E8%B7%AF%E7%94%B1%E6%8A%93%E5%8F%96app%E8%AE%BF%E9%97%AE%E7%BD%91%E7%AB%99%E7%9A%84%E5%9F%9F%E5%90%8D/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、使用爱快软路由抓app访问域名信息以及抓包(tcp、udp)的前提条件：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、需要你搭建完爱快软路由，详见 &lt;a href="https://lategege.com/p/群晖虚拟机安装爱快软路由-ikuai-并设置成旁路由/"&gt;群晖下搭建爱快软路由教程&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、在同一个局域网环境内&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、有一台实体手机或者PC上面的虚拟机(如网易的mumu, genymotion模拟器等)&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、这里以genymotion模拟器为例，在爱快的行为记录管理中开启网址浏览记录&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;a href="https://img.lategege.com:30443/images/web/2021/5-28/11.png" rel="noopener noreferrer" target="_blank"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/5-28/11.png"/&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、打开genymotion模拟器(安装过程略)配置network mode 为 bridge模式&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;a href="https://img.lategege.com:30443/images/web/2021/5-28/12.png" rel="noopener noreferrer" target="_blank"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/5-28/12.png"/&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四、打开模拟器，设置静态ip地址 ，网关设置成爱快的ip地址&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;a href="https://img.lategege.com:30443/images/web/2021/5-28/13.png" rel="noopener noreferrer" target="_blank"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/5-28/13.png"/&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;五、在app中访问app，然后进入爱快后台，查看网址浏览记录，所有网址清晰可见&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;a href="https://img.lategege.com:30443/images/web/2021/5-28/14.png" rel="noopener noreferrer" target="_blank"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/5-28/14.png"/&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;六、如果需要抓取更详细的网络包，就进入爱快应用工具中的抓包工具，选择要抓包设备的ip地址，点击开始抓包，然后点文件下载。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;a href="https://img.lategege.com:30443/images/web/2021/5-28/15.png" rel="noopener noreferrer" target="_blank"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/5-28/15.png"/&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;七、使用wireshark软件就能查看抓包的内容了，非常方便。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;a href="https://img.lategege.com:30443/images/web/2021/5-28/16.jpg" rel="noopener noreferrer" target="_blank"&gt;&lt;img alt="" src="https://img.lategege.com:30443/images/web/2021/5-28/16.jpg"/&gt;&lt;/a&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;抓取app的域名的使用场景是在一些电脑端的finddler、charles等抓包软件无法抓取域名的情况下的一种替代方式，造成这些抓包工具无法抓取的原因比如okhttp设置了noproxy等，但爱快抓域名的方式比较局限，如果要获取详细的http\https的数据，还是要借助抓包软件，那只能在android端寻找突破口了，比如反编译apk，在android机上安装xposed框架等解决方案。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这种抓包方式使用了路由器抓包，对比单台电脑依靠单独软件抓包，其抓包范围更广泛，爱快软路由在流控、抓包、过滤等方面还是很不错的，如果要做一些简单的监控，可以加一个ap，网关设置成爱快ip地址，该ap下的所有设备的浏览行为就能一目了然的展现了。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>wordpress使用对象存储后图片加载速度对比</title><link>https://lategege.com/p/wordpress%E4%BD%BF%E7%94%A8%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8%E5%90%8E%E5%9B%BE%E7%89%87%E5%8A%A0%E8%BD%BD%E9%80%9F%E5%BA%A6%E5%AF%B9%E6%AF%94/</link><pubDate>Mon, 10 May 2021 12:00:13 +0000</pubDate><guid>https://lategege.com/p/wordpress%E4%BD%BF%E7%94%A8%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8%E5%90%8E%E5%9B%BE%E7%89%87%E5%8A%A0%E8%BD%BD%E9%80%9F%E5%BA%A6%E5%AF%B9%E6%AF%94/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;今天写的文章 &lt;a href="https://lategege.com/p/鸿蒙deveco-studio初体验/"&gt;鸿蒙deveco-studio初体验&lt;/a&gt;，其中文章的所有图片使用了七牛对象存储。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一年前写的文章 &lt;a href="https://lategege.com/p/proxmox-6-2-安装黑苹果macos-10-15-5-clover-opencore双引导/"&gt;Proxmox 6.2 安装黑苹果macOS 10.15.5（clover、opencore双引导)&lt;/a&gt; 直接后台上传图片至vps，所以图片的加载速度严重依赖vps的带宽。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;两者在图片的加载速度方面一目了然，这其实和vps的带宽有很大关系，1M的带宽加载图片必然不会快，所以在图片非常多的时候，文章的整体阅读体验就不会很理想了。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;其实对于wordpress的优化方案还有很多，主要有这三种图片内存缓存、对象存储、cdn。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;第一个图片内存缓存只是本机优化，主要优化了文件io，在操作系统层面，小文件的io其实是很耗时的，有了内存缓存，减少了磁盘io，文件在内存中的读写是非常快的，但是依旧会受限于带宽能力。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;第二个对象存储就是把碎片文件的读写交给了第三方，专业的对象存储读写能力毋庸置疑，七牛对象存储又可以白嫖，挺好。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;第三个cdn的作用主要是优化不同地域客户端的的响应速度，代价较高，个人博客显得没有必要，除非量到达一个等级，收益大的个人站点有必要使用。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>wordpress博客docker迁移</title><link>https://lategege.com/p/wordpress%E5%8D%9A%E5%AE%A2docker%E8%BF%81%E7%A7%BB/</link><pubDate>Thu, 15 Apr 2021 13:31:10 +0000</pubDate><guid>https://lategege.com/p/wordpress%E5%8D%9A%E5%AE%A2docker%E8%BF%81%E7%A7%BB/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;由于阿里云主机还有一个多月就要过期了，续费的年费高达上千，有点无法接受，于是果断买了ucloud主机三年，新用户价只要二百多元，域名也快过期了，直接续费三年也是二百多元。我的云主机主要是放博客用的，带宽配置有限，也仅限于放博客。如果宽带开放80、443端口，我压根不会用云主机，家庭的虚拟化服务器比云主机性能强太多，而且低功耗一年费不了多少电。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;由于切换云主机服务商，博客的迁移就自然而然需要做了，之前没做过这种事，不过大概知道怎么做。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;因为我的博客是用docker容器执行的，而且为了支持https，我改动了wordpress:php7.4这个容器中的配置，mysql:5.7也是一个容器，mysql只要复制下数据库就行&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、在原来的阿里云服务器中执行：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;//查看wordpress容器
docker ps
&lt;p&gt;//查询到的容器id commit一下保存容器成新镜像
docker commit -a “late&amp;quot; -m “update&amp;quot; 9d620b152a2a wordpress:2021-4-15&lt;/p&gt;
&lt;p&gt;//将新镜像保存为文件 准备传输到新的服务器
docker save -o wordpress.tar wordpress:2021-4-15&lt;/p&gt;
&lt;p&gt;//保存wordpress数据 和 mysql数据
//wordpress挂载信息 wordpress:/var/www/html
//mysql挂载信息 mysql-data:/var/lib/mysql mysql-conf:/etc/mysql
//以上数据都在这个目录下 /var/lib/docker/volumes 此目录下的所有文件打包
tar -czvf data.tar.gz /var/lib/docker/volumes
&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、在新的服务器中&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;//安装docker
yum install docker-ce
&lt;p&gt;//启动docker
systemctl start docker
//开机启动
systemctl enable docker&lt;/p&gt;
&lt;p&gt;//scp 拉取旧服务器上的wordpress镜像和数据
scp 服务用户名:ip:/路径/文件名 ~&lt;/p&gt;
&lt;p&gt;//将数据放入主机的/var/lib/docker/volumes中&lt;/p&gt;
&lt;p&gt;//将wordpress镜像载入docker
docker load &amp;ndash;input wordpress.tar&lt;/p&gt;
&lt;p&gt;//mysql:5.7就在docker仓库拉一下就行了 我是通过blog-compose.yml部署容器的，所以事先准备好这个文件，因为在以前早就编好了，所以拿来改下wordpress的镜像名称就能用了
docker stack deploy -c ./blog-compose.yml blog&lt;/p&gt;
&lt;p&gt;//安装nginx 阿里云的nginx使用的是docker 新服务器准备直接装在宿主机中，方便。
yum install nginx&lt;/p&gt;
&lt;p&gt;//将之前服务器nginx的配置和ssl证书也传过来就可以开启了&lt;/p&gt;
&lt;p&gt;nginx start&lt;/p&gt;
&lt;p&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、域名解析为新的服务器外网ip地址即可完成整个迁移。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>mac安装jenkins和nexus</title><link>https://lategege.com/p/mac%E5%AE%89%E8%A3%85jenkins%E5%92%8Cnexus/</link><pubDate>Mon, 01 Mar 2021 02:59:42 +0000</pubDate><guid>https://lategege.com/p/mac%E5%AE%89%E8%A3%85jenkins%E5%92%8Cnexus/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、安装home-brew&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;/usr/bin/ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;br/&gt;2、安装Jenkins &amp;amp; nexus&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;brew install jenkins
brew install nexus &lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、启动jenkis &amp;amp; nexus &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;brew services start jenkins
brew services start nexus &lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt; 4、获取jenkins初始密码 &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;a href="http://localhost:8080"&gt;http://localhost:8080&lt;/a&gt; 访问Jenkins&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt; &lt;a href="http://localhost:8081/nexus"&gt;http://localhost:8081/nexus&lt;/a&gt; 默认账号密码 admin/admin123 &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;5、停止Jenkins &amp;amp; nexus &lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:code --&gt;
&lt;pre class="wp-block-code"&gt;&lt;code&gt;brew services stop jenkins brew services stop nexus&lt;/code&gt;&lt;/pre&gt;
&lt;!-- /wp:code --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>证件照背景替换工具</title><link>https://lategege.com/p/%E8%AF%81%E4%BB%B6%E7%85%A7%E8%83%8C%E6%99%AF%E6%9B%BF%E6%8D%A2%E5%B7%A5%E5%85%B7/</link><pubDate>Tue, 08 Dec 2020 07:03:48 +0000</pubDate><guid>https://lategege.com/p/%E8%AF%81%E4%BB%B6%E7%85%A7%E8%83%8C%E6%99%AF%E6%9B%BF%E6%8D%A2%E5%B7%A5%E5%85%B7/</guid><description>&lt;p&gt;&lt;del&gt;&lt;a href="https://www.tooleyes.com/embed/id_photo.html"&gt;https://www.tooleyes.com/embed/id_photo.html&lt;/a&gt;&lt;/del&gt;已失效&lt;/p&gt;
&lt;!-- wp:heading {"level":4} --&gt;
&lt;h4&gt;证件照换底色工具使用帮助:&lt;/h4&gt;
&lt;!-- /wp:heading --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;声明：本工具证件照换底色代码、版权归ToolEyes所有。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;事项：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;（1）、原背景色：系统自动识别，如果有误差可以人工选择以便于更精准的自动替换；&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;（2）、新背景色：需要将原来照片替换的目标背景色，默认为蓝色，可以任意选择；&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;（3）、容差：可以拖动调节，用来微调新照片以确保达到最佳效果；&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;v2.0版本更新，优化浏览器兼容性、新证件照下载、UI等。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>GIF图片在线制作工具</title><link>https://lategege.com/p/gif%E5%9B%BE%E7%89%87%E5%9C%A8%E7%BA%BF%E5%88%B6%E4%BD%9C%E5%B7%A5%E5%85%B7/</link><pubDate>Tue, 08 Dec 2020 06:58:56 +0000</pubDate><guid>https://lategege.com/p/gif%E5%9B%BE%E7%89%87%E5%9C%A8%E7%BA%BF%E5%88%B6%E4%BD%9C%E5%B7%A5%E5%85%B7/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;进入详情页可在线制作GIF图片。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;p&gt;&lt;del&gt;&lt;a href="https://www.tooleyes.com/embed/gif_maker.html"&gt;https://www.tooleyes.com/embed/gif_maker.html&lt;/a&gt;&lt;/del&gt;已失效&lt;/p&gt;
&lt;!-- wp:heading {"level":4} --&gt;
&lt;h4&gt;gif制作工具使用帮助:&lt;/h4&gt;
&lt;!-- /wp:heading --&gt;
&lt;!-- wp:heading {"level":3} --&gt;
&lt;h3&gt;一、功能介绍&lt;/h3&gt;
&lt;!-- /wp:heading --&gt;
&lt;!-- wp:image --&gt;
&lt;figure class="wp-block-image"&gt;&lt;img alt="" src="https://www.tooleyes.com/static/web/makegif2020032709040542.gif"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、&lt;strong&gt;多张静态图片合成动态图片&lt;/strong&gt;:可添加多张图片，设置参数后生成动画&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、&lt;strong&gt;多张动图合成一张&lt;/strong&gt;:可添加多张gif动态图片，设置参数后生成动画&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、&lt;strong&gt;gif图片编辑&lt;/strong&gt;:将原始GIF图片添加后点击生成按钮可以插入删除帧和修改速度和大小&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;4、&lt;strong&gt;视频转gif动态图片&lt;/strong&gt;:添加要转换的视频，点击抓取即可获取视频转动画&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;5、&lt;strong&gt;flash转gif动态图片&lt;/strong&gt;:添加要转换的flash，点击抓取即可获取flash转动画&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;6、&lt;strong&gt;摄像头拍摄gif&lt;/strong&gt;:点击摄像头抓图按钮，就可以开始抓取摄像头拍摄的动画&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;7、&lt;strong&gt;jpgpng等图片转gif&lt;/strong&gt;:添加需要转换的图片，点击生成即可&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;8、&lt;strong&gt;gif动态图片压缩优化&lt;/strong&gt;:自动对制作的gif图片进行删除多余帧、擦除重复像素、使用全局调色板等优化压缩&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;9、&lt;strong&gt;图片大小修改&lt;/strong&gt;:添加图片后，输入需要修改的图片高宽后点击生成即可&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:heading {"level":3} --&gt;
&lt;h3&gt;二、常见问题&lt;/h3&gt;
&lt;!-- /wp:heading --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、&lt;strong&gt;为什么我添加不了文件？&lt;/strong&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;可能浏览器版本过低或禁用了javascript，可以下载最新版本的浏览器(推荐chrome、火狐等支持HTML5的浏览器)或开启javascript&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、&lt;strong&gt;为什么我制作的图片和原始图片有差异？&lt;/strong&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;默认对制作的gif进行删除多余帧、擦除重复数据优化，如果优化后图片差异较大，可以取消选择&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>全球天气可视化</title><link>https://lategege.com/p/%E5%85%A8%E7%90%83%E5%A4%A9%E6%B0%94%E5%8F%AF%E8%A7%86%E5%8C%96/</link><pubDate>Tue, 08 Dec 2020 06:54:48 +0000</pubDate><guid>https://lategege.com/p/%E5%85%A8%E7%90%83%E5%A4%A9%E6%B0%94%E5%8F%AF%E8%A7%86%E5%8C%96/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;进入详情页面可查看全球天气的可视化界面，资源由GFS / NCEP /美国国家气象局提供。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:html --&gt;
&lt;p&gt;&lt;del&gt;&lt;a href="https://www.tooleyes.com/embed/weather_forecast"&gt;https://www.tooleyes.com/embed/weather_forecast&lt;/a&gt;.&lt;/del&gt; 已失效&lt;/p&gt;
&lt;!-- /wp:html --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>windows开启远程桌面</title><link>https://lategege.com/p/windows%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2/</link><pubDate>Fri, 20 Nov 2020 08:19:06 +0000</pubDate><guid>https://lategege.com/p/windows%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;之前写过mac系统怎么开启远程桌面，这一篇来介绍windows的远程桌面开启方式。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、右击我的电脑，属性，点击高级设置。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":310,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-310" src="https://img.lategege.com:30443/images/web/uploads/2020/11/SDROPX_BH4EMUVG-1024x650.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、切换到远程选项，在远程桌面的单选框中勾选 允许远程连接到此计算机，点击应用并确定退出。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":309,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-309" src="https://img.lategege.com:30443/images/web/uploads/2020/11/1MPNKMSV530_H3-877x1024.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、经过以上两个步骤，如果是局域网环境，基本上已经可以连接了，如果还是无法连接，请查看是否是防火墙拦截了，操作如下，进入控制面板，点击windows defender防火墙。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":312,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-312" src="https://img.lategege.com:30443/images/web/uploads/2020/11/2Z50DMVPHQR__QXQA.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四、查找远程桌面，在远程桌面前面打钩，并确认。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":311,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-311" src="https://img.lategege.com:30443/images/web/uploads/2020/11/NQ2YPS5JQ_9_LEC.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;五、如果防火墙应用无法点开，还有如下办法：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、按win键+R，打开调用窗口；&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、输入gpedit.msc，打开组策的窗口；&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、进入计算机配置-管理模版-网络-网络连接-windows防火墙-标准配置文件-windows防火墙：允许入站远程桌面例外，双击，默认为未配置，选择“已启用”。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;六、总结放大招&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;其实win10自从有了搜索之后，以上的步骤显得有些繁琐了，我们直接使用win10任务栏的搜索功能，搜索远程桌面会出来很多选项，第一个远程桌面连接程序不是让这台电脑开启远程桌面的，而是一个可以连接其他windows 电脑的远程工具，下面有远程桌面设置选项，点开把开关打开就开启远程桌面了。现在的windows系统已经不是以前的那种需要记住很多操作的系统了，我们如果善于利用windows的搜索功能，我们会发现很多东西并不需要记忆，模糊搜索，尝试点一下，也许就是你想要的。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;最后，如果你要在外网环境下访问你的电脑，你需要在路由器中配置端口映射，前提是你得有一个公网ip，哪怕是动态的，不然你只能做内网穿透才能进行外部网络访问你的计算机。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>mac系统开启远程桌面和远程ssh登录</title><link>https://lategege.com/p/mac%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E8%BF%9C%E7%A8%8Bssh%E7%99%BB%E5%BD%95/</link><pubDate>Fri, 06 Nov 2020 03:31:48 +0000</pubDate><guid>https://lategege.com/p/mac%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%90%AF%E8%BF%9C%E7%A8%8B%E6%A1%8C%E9%9D%A2%E5%92%8C%E8%BF%9C%E7%A8%8Bssh%E7%99%BB%E5%BD%95/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;不少小伙伴在工作当中需要控制办公室的mac电脑，一般会采用方便的teamviewer工具，但其实如果自己能配置公司路由器的话，最好的方式是mac系统自带的远程桌面服务。下面就介绍下如何在mac系统下开启远程桌面和远程ssh登录功能。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、选择左上角苹果图标进入系统偏好设置&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":274,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-274" src="https://img.lategege.com:30443/images/web/uploads/2020/11/1-2.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;二、点击“共享”按钮&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":275,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-275" src="https://img.lategege.com:30443/images/web/uploads/2020/11/2-2-1024x861.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;三、在窗口中勾选屏幕共享和远程登录&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":276,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-276" src="https://img.lategege.com:30443/images/web/uploads/2020/11/3-1-1024x794.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这里注意下屏幕共享对应的是远程桌面控制功能，而远程登录对应的是远程ssh登录功能。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;如果你只需要远程桌面控制，那只需要勾选屏幕共享。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;如果你只需要远程命令终端ssh登录，那只需要勾选远程登录。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;四、使用另外的电脑进行远程登录，这里以另一台mac为例&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;按住command+空格键 呼出聚焦搜索，输入屏幕共享&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":277,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-277" src="https://img.lategege.com:30443/images/web/uploads/2020/11/截屏2020-11-06-11.26.47-1024x212.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;打开屏幕共享软件，并输入vnc://远程mac的ip地址&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":278,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-278" src="https://img.lategege.com:30443/images/web/uploads/2020/11/截屏2020-11-06-11.27.29.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt; 输入远程mac的用户名和密码即可登录。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":279,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-279" src="https://img.lategege.com:30443/images/web/uploads/2020/11/截屏2020-11-06-11.28.34.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;五、如果只需要ssh后台登录&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在命令终端输入ssh 用户名@ip地址 输入密码即可进入&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":281,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-281" src="https://img.lategege.com:30443/images/web/uploads/2020/11/34-1024x691.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;windows、ubuntu等其他操作系统要远程控制mac 可以下载TightVNC 这个软件&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;总结：mac开启远程桌面还是很方便的，演示中只是在局域网环境，如果是外网环境且有公网ip，则需要在路由器做端口映射，mac远程桌面其实就是vnc服务，默认端口是5900。如果没有公网ip或者无法控制路由器，则需要做内网穿透。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>群晖docker部署imageproxy图片裁剪服务</title><link>https://lategege.com/p/%E7%BE%A4%E6%99%96docker%E9%83%A8%E7%BD%B2imageproxy%E5%9B%BE%E7%89%87%E8%A3%81%E5%89%AA%E6%9C%8D%E5%8A%A1/</link><pubDate>Thu, 05 Nov 2020 03:09:07 +0000</pubDate><guid>https://lategege.com/p/%E7%BE%A4%E6%99%96docker%E9%83%A8%E7%BD%B2imageproxy%E5%9B%BE%E7%89%87%E8%A3%81%E5%89%AA%E6%9C%8D%E5%8A%A1/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;一、什么是图片裁剪服务？图片裁剪服务的用途。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;做网站开发或者app开发的时候，页面图片中尺寸比例不一，如果运营作图人员为每一个比例都做一个图片，无疑增加了时间成本。为了解决这个问题，就引出了图片裁剪服务。市面上各种编程语言写的图片裁剪服务有很多，nginx也有相关模块可以使用。这里介绍imageproxy这个服务的部署，搭建环境为群晖docker。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;对于imageproxy这个镜像的介绍可见 &lt;a href="https://registry.hub.docker.com/r/willnorris/imageproxy/"&gt;https://registry.hub.docker.com/r/willnorris/imageproxy/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;首先进入群晖管理页面点击docker套件，选中注册表，搜索imageproxy 第一个willnorris/imageproxy双击下载&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":265,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-265" src="https://img.lategege.com:30443/images/web/uploads/2020/11/1-1-1024x547.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"id":266,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-266" src="https://img.lategege.com:30443/images/web/uploads/2020/11/2-1-1024x547.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;下载完成在映像中出现对应容器镜像，双击进行配置&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":267,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-267" src="https://img.lategege.com:30443/images/web/uploads/2020/11/3.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;端口设置，本地端口改成8080&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":268,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-268" src="https://img.lategege.com:30443/images/web/uploads/2020/11/4.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;切换到环境菜单 在命令中填入-addr 0.0.0.0:8080&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;点击应用，启动容器。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;启动后测试裁剪效果 输入http://群晖ip地址:8080/100x100/原图片链接&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;我的测试地址为http://192.168.0.228:8080/100x100/https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3150312678,1466937360&amp;amp;fm=26&amp;amp;gp=0.jpg&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;效果如图:&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;裁剪过后：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":269,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-269" src="https://img.lategege.com:30443/images/web/uploads/2020/11/11.jpg"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;未经过裁剪的原链接图片：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":270,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-270" src="https://img.lategege.com:30443/images/web/uploads/2020/11/12.jpg"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;这里只是简单部署并测试效果。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;更多使用方式请查看&lt;a href="https://registry.hub.docker.com/r/willnorris/imageproxy/"&gt;https://registry.hub.docker.com/r/willnorris/imageproxy/&lt;/a&gt; 介绍&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>wordpress文章中加入浏览次数</title><link>https://lategege.com/p/wordpress%E6%96%87%E7%AB%A0%E4%B8%AD%E5%8A%A0%E5%85%A5%E6%B5%8F%E8%A7%88%E6%AC%A1%E6%95%B0/</link><pubDate>Wed, 04 Nov 2020 07:55:04 +0000</pubDate><guid>https://lategege.com/p/wordpress%E6%96%87%E7%AB%A0%E4%B8%AD%E5%8A%A0%E5%85%A5%E6%B5%8F%E8%A7%88%E6%AC%A1%E6%95%B0/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;第一步：安装WP-PostViews插件并启用&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":258,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-258" src="https://img.lategege.com:30443/images/web/uploads/2020/11/1-1024x567.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;第二部：查看该插件用法&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":259,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-259" src="https://img.lategege.com:30443/images/web/uploads/2020/11/2-941x1024.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;可以看到只要红框框里的代码添加到你安装主题目录中的某个php文件即可.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;我以我安装的generatepress主题为例，因为我要添加在文章的作者后面，所以只需要将该代码添加至auth相关代码的下面，位置见下图&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":260,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-260" src="https://img.lategege.com:30443/images/web/uploads/2020/11/3-1024x369.jpg"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;效果如下：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":261,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-261" src="https://img.lategege.com:30443/images/web/uploads/2020/11/4.jpg"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"id":262,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-262" src="https://img.lategege.com:30443/images/web/uploads/2020/11/5.jpg"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;</description></item><item><title>mac终端下使用screen</title><link>https://lategege.com/p/mac%E7%BB%88%E7%AB%AF%E4%B8%8B%E4%BD%BF%E7%94%A8screen/</link><pubDate>Tue, 03 Nov 2020 00:50:19 +0000</pubDate><guid>https://lategege.com/p/mac%E7%BB%88%E7%AB%AF%E4%B8%8B%E4%BD%BF%E7%94%A8screen/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;1、创建screen会话窗口&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;screen -S 会话窗口名&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;2、窗口重命名&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在screen窗口状态下 按 ctrl +a ,然后按shift+a 提示输入新的窗口名，输入后按回车&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;3、脱离screen使其后台运行&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;在screen窗口状态下按 ctrl +a ,然后按 d ，脱离screen窗口&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;4、查看screen窗口列表&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;screen -ls 列表的每一条 以 进程id.窗口名 (窗口状态) 命名&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;5、进入之前脱离的screen窗口&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;screen -r 进程id&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;6、从一个窗口更换另一个窗口&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;screen -x 窗口名&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;7、移除dead的screen窗口&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;screen -wipe 进程id&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>mac视频下载神器:downie 4</title><link>https://lategege.com/p/mac%E8%A7%86%E9%A2%91%E4%B8%8B%E8%BD%BD%E7%A5%9E%E5%99%A8-downie-4/</link><pubDate>Tue, 08 Sep 2020 02:02:51 +0000</pubDate><guid>https://lategege.com/p/mac%E8%A7%86%E9%A2%91%E4%B8%8B%E8%BD%BD%E7%A5%9E%E5%99%A8-downie-4/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;macOS 平台出色的在线视频下载工具 Downie 发布了 4.0 版本，包括全新的 UI 设计，更快的速度、更多的自定义、拖拽下载等新功能。&lt;a href="https://store.lizhi.io/site/products/id/280?cid=jxlwguir" rel="noreferrer noopener" target="_blank"&gt;Downie 4&lt;/a&gt; 支持超过 1000 个视频站点，包括 YouTube、爱奇艺、土豆、Bilibili、优酷、网易云音乐等等，都能下载。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;下载地址:&lt;a href="http://www.pc6.com/mac/112659.html"&gt;http://www.pc6.com/mac/112659.html&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>INFO-SPIDER 爬虫工具箱</title><link>https://lategege.com/p/info-spider-%E7%88%AC%E8%99%AB%E5%B7%A5%E5%85%B7%E7%AE%B1/</link><pubDate>Wed, 19 Aug 2020 02:12:17 +0000</pubDate><guid>https://lategege.com/p/info-spider-%E7%88%AC%E8%99%AB%E5%B7%A5%E5%85%B7%E7%AE%B1/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;a href="https://github.com/kangvcar/InfoSpider"&gt;https://github.com/kangvcar/InfoSpider&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;INFO-SPIDER 是一个集众多数据源于一身的爬虫工具箱，旨在安全快捷的帮助用户拿回自己的数据，工具代码开源，流程透明。并提供数据分析功能，基于用户数据生成图表文件，使得用户更直观、深入了解自己的信息。 目前支持数据源包括GitHub、QQ邮箱、网易邮箱、阿里邮箱、新浪邮箱、Hotmail邮箱、Outlook邮箱、京东、淘宝、支付宝、中国移动、中国联通、中国电信、知乎、哔哩哔哩、网易云音乐、QQ好友、QQ群、生成朋友圈相册、浏览器浏览历史、12306、博客园、CSDN博客、开源中国博客、简书。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>实用网站推荐</title><link>https://lategege.com/p/%E5%AE%9E%E7%94%A8%E7%BD%91%E7%AB%99%E6%8E%A8%E8%8D%90/</link><pubDate>Tue, 16 Jun 2020 01:33:06 +0000</pubDate><guid>https://lategege.com/p/%E5%AE%9E%E7%94%A8%E7%BD%91%E7%AB%99%E6%8E%A8%E8%8D%90/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;大数据导航：&lt;a href="http://hao.199it.com/" rel="noreferrer noopener" target="_blank"&gt;http://hao.199it.com/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;果汁排行榜：&lt;a href="http://guozhivip.com/rank/" rel="noreferrer noopener" target="_blank"&gt;http://guozhivip.com/rank/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;千亿像素看中国：&lt;a href="http://www.bigpixel.cn/index.html" rel="noreferrer noopener" target="_blank"&gt;http://www.bigpixel.cn/index.html&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;文字云生成器：&lt;a href="https://www.weiciyun.com/" rel="noreferrer noopener" target="_blank"&gt;https://www.weiciyun.com/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;世界历史：&lt;a href="https://www.allhistory.com/" rel="noreferrer noopener" target="_blank"&gt;https://www.allhistory.com/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;发现中国：&lt;a href="https://www.ageeye.cn/" rel="noreferrer noopener" target="_blank"&gt;https://www.ageeye.cn/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;网盘搜索：&lt;a href="https://www.chaonengso.com/" rel="noreferrer noopener" target="_blank"&gt;https://www.chaonengso.com/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;影视：&lt;a href="http://www.taotaoxiang.cc/" rel="noreferrer noopener" target="_blank"&gt;http://www.taotaoxiang.cc/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item><item><title>好用到爆的ssh桌面终端--electerm(免费开源)</title><link>https://lategege.com/p/%E5%A5%BD%E7%94%A8%E5%88%B0%E7%88%86%E7%9A%84ssh%E6%A1%8C%E9%9D%A2%E7%BB%88%E7%AB%AF-electerm-%E5%85%8D%E8%B4%B9%E5%BC%80%E6%BA%90/</link><pubDate>Sun, 07 Jun 2020 01:46:56 +0000</pubDate><guid>https://lategege.com/p/%E5%A5%BD%E7%94%A8%E5%88%B0%E7%88%86%E7%9A%84ssh%E6%A1%8C%E9%9D%A2%E7%BB%88%E7%AB%AF-electerm-%E5%85%8D%E8%B4%B9%E5%BC%80%E6%BA%90/</guid><description>&lt;!-- wp:paragraph --&gt;
&lt;p&gt;之前 我的mac电脑ssh 连接都是通过自带的命令终端，随着虚拟机的增多，感觉效率越来越低，windows系统下有xshell，mac下始终找不到一个合适的，期间有一款finalshell ，因为闭源 不敢用。直到近期发现了这个---electerm.&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;electerm是一款开源免费的ssh客户端，官网：&lt;a href="https://electerm.html5beta.com/"&gt;https://electerm.html5beta.com/&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;github: &lt;a href="https://github.com/electerm/electerm"&gt;https://github.com/electerm/electerm&lt;/a&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;优点：跨平台，支持linux\mac\windows系统，ssh\sftp切换便捷，编辑服务器文件非常方便，支持gist同步，不同系统之间终于可以互相同步了，虽然我还没用过哈哈。&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:image {"id":83,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-83" src="https://img.lategege.com:30443/images/web/uploads/2020/06/electerm.gif"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:image {"id":84,"sizeSlug":"large"} --&gt;
&lt;figure class="wp-block-image size-large"&gt;&lt;img alt="" class="wp-image-84" src="https://img.lategege.com:30443/images/web/uploads/2020/06/2-1024x714.png"/&gt;&lt;/figure&gt;
&lt;!-- /wp:image --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;下载安装方式：&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;
&lt;!-- wp:heading --&gt;
&lt;h2&gt;Download/install&lt;/h2&gt;
&lt;!-- /wp:heading --&gt;
&lt;!-- wp:list --&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="https://electerm.github.io/electerm"&gt;https://electerm.github.io/electerm&lt;/a&gt;&lt;/li&gt;&lt;li&gt;From release: &lt;a href="https://github.com/electerm/electerm/releases"&gt;https://github.com/electerm/electerm/releases&lt;/a&gt;&lt;/li&gt;&lt;li&gt;For some linux OS, rpm pack may not work, you can try the &lt;code&gt;.snap&lt;/code&gt; release.&lt;/li&gt;&lt;li&gt;For Mac user: &lt;code&gt;brew cask install electerm&lt;/code&gt;&lt;/li&gt;&lt;li&gt;With snap: &lt;code&gt;sudo snap install electerm&lt;/code&gt;&lt;/li&gt;&lt;li&gt;For Deepin Linux user, you can find it from App store.&lt;/li&gt;&lt;li&gt;Install from npm&lt;/li&gt;&lt;/ul&gt;
&lt;!-- /wp:list --&gt;
&lt;!-- wp:preformatted --&gt;
&lt;pre class="wp-block-preformatted"&gt;npm i -g electerm
&lt;h1 id="after-install-it-will-open-at-once-for-windows-and-linux"&gt;after install it will open at once for windows and linux,
&lt;/h1&gt;&lt;h1 id="for-mac-will-open-the-drag-to-install-panel"&gt;for mac, will open the drag to install panel&lt;/pre&gt;
&lt;/h1&gt;&lt;!-- /wp:preformatted --&gt;
&lt;!-- wp:paragraph --&gt;
&lt;p&gt;&lt;/p&gt;
&lt;!-- /wp:paragraph --&gt;</description></item></channel></rss>