<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>庆灵</title><description>博客小站</description><link>https://iiii.fun/</link><language>zh_CN</language><item><title>在 PE 中迁移 Users 到新磁盘（仅 GUID 链接方案）</title><link>https://iiii.fun/posts/win/migrate-users-guid/</link><guid isPermaLink="true">https://iiii.fun/posts/win/migrate-users-guid/</guid><description>在 PE 环境安全迁移 Windows Users 目录，只使用 Volume GUID 建立 Junction，避免盘符依赖</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;这篇只保留 &lt;strong&gt;GUID 建链&lt;/strong&gt; 方案，不使用目标盘符（如 &lt;code&gt;D:\Users&lt;/code&gt;）做链接目标。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;方案前提&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;你在 PE 里操作，系统盘与目标盘在 PE 下盘符可能变化（例如 &lt;code&gt;E:&lt;/code&gt;、&lt;code&gt;F:&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;复制阶段可以使用 PE 盘符，但 &lt;strong&gt;建立链接时只用 Volume GUID&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;全程在管理员 CMD 执行。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h1&gt;第一步：确认源路径与目标路径（PE 下）&lt;/h1&gt;
&lt;p&gt;假设：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;PE 下系统盘（源）是 &lt;code&gt;E:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;PE 下目标盘是 &lt;code&gt;F:&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;需要迁移 &lt;code&gt;E:\Users&lt;/code&gt; 到 &lt;code&gt;F:\Users&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;第二步：复制 Users（保留权限与所有者）&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;robocopy &quot;E:\Users&quot; &quot;F:\Users&quot; /E /COPYALL /DCOPY:DAT /XJD /R:1 /W:3 /MT:8 /TEE /LOG:&quot;F:\users-migrate.log&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参数说明（重点）：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/E&lt;/code&gt;：复制所有子目录（含空目录）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/COPYALL&lt;/code&gt;：复制数据、属性、时间戳、ACL、所有者、审核信息。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/DCOPY:DAT&lt;/code&gt;：目录也复制数据/属性/时间戳，减少权限与时间信息偏差。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/XJD&lt;/code&gt;：排除目录联接，避免递归复制到链接导致死循环。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/R:1&lt;/code&gt;：失败重试 1 次（已按你的要求改为 1）。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/W:3&lt;/code&gt;：每次重试等待 3 秒。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/MT:8&lt;/code&gt;：8 线程复制，速度更稳定。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/TEE&lt;/code&gt;：屏幕与日志同时输出。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/LOG:&quot;F:\users-migrate.log&quot;&lt;/code&gt;：输出完整日志，便于回看失败文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;第三步：保留旧目录备份&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;ren &quot;E:\Users&quot; &quot;Users.bak&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;第四步：获取目标卷 GUID&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;mountvol
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在输出中找到目标盘对应的 GUID，例如：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\\?\Volume{adc12345-1234-1234-1234-123456789abc}\
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;第五步：仅用 GUID 建立 Junction&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;mklink /J &quot;E:\Users&quot; &quot;\\?\Volume{adc12345-1234-1234-1234-123456789abc}\Users&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参数说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/J&lt;/code&gt;：创建目录联接（Junction）。&lt;/li&gt;
&lt;li&gt;第一个路径 &lt;code&gt;&quot;E:\Users&quot;&lt;/code&gt;：系统盘下要恢复出来的 &lt;code&gt;Users&lt;/code&gt; 入口。&lt;/li&gt;
&lt;li&gt;第二个路径 &lt;code&gt;&quot;\\?\Volume{...}\Users&quot;&lt;/code&gt;：真实目标目录，使用卷 GUID，不依赖盘符映射。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;第六步：检查与重启&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;在 PE 中进入 &lt;code&gt;E:\Users&lt;/code&gt;，确认能看到目标盘中的用户目录内容。&lt;/li&gt;
&lt;li&gt;重启并进入 Windows，验证桌面、用户配置、应用是否正常。&lt;/li&gt;
&lt;li&gt;确认一切无误后，再删除 &lt;code&gt;E:\Users.bak&lt;/code&gt; 释放空间。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h1&gt;常见问题&lt;/h1&gt;
&lt;h2&gt;1. &lt;code&gt;mklink&lt;/code&gt; 提示权限不足&lt;/h2&gt;
&lt;p&gt;你不是管理员 CMD，重新以管理员权限打开命令提示符。&lt;/p&gt;
&lt;h2&gt;2. 找不到目标卷 GUID&lt;/h2&gt;
&lt;p&gt;先确认目标卷已挂载并可读写，再执行一次 &lt;code&gt;mountvol&lt;/code&gt;。&lt;/p&gt;
&lt;h2&gt;3. 启动后用户配置异常&lt;/h2&gt;
&lt;p&gt;优先检查复制命令是否包含 &lt;code&gt;/COPYALL&lt;/code&gt;，以及是否复制完整（查看 &lt;code&gt;users-migrate.log&lt;/code&gt;）。&lt;/p&gt;
</content:encoded></item><item><title>Windows 关闭内存压缩</title><link>https://iiii.fun/posts/win/disable-memory-compression/</link><guid isPermaLink="true">https://iiii.fun/posts/win/disable-memory-compression/</guid><description>使用 PowerShell 关闭 Windows 内存压缩，并验证状态与恢复方法</description><pubDate>Wed, 08 Jul 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在部分场景（例如高负载游戏、低延迟任务、调优排障）下，你可能希望关闭 Windows 的内存压缩机制，减少压缩/解压带来的 CPU 开销。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;关闭内存压缩&lt;/h1&gt;
&lt;p&gt;以&lt;strong&gt;管理员权限&lt;/strong&gt;打开 PowerShell，执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Disable-MMAgent -MemoryCompression
Restart-Computer
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参数说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Disable-MMAgent&lt;/code&gt;：关闭内存管理代理中的指定能力。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;-MemoryCompression&lt;/code&gt;：仅关闭“内存压缩”功能，不影响同命令下的其他开关。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Restart-Computer&lt;/code&gt;：重启后生效（建议立即重启，避免状态显示与实际行为不一致）。&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;验证是否已关闭&lt;/h1&gt;
&lt;p&gt;重启后执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Get-MMAgent
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;关注输出中的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;MemoryCompression : False&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;也可在任务管理器「性能 → 内存」观察“已压缩”是否长期接近 0（系统偶发波动属正常）。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;恢复开启（可选）&lt;/h1&gt;
&lt;p&gt;如果需要恢复默认行为：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Enable-MMAgent -MemoryCompression
Restart-Computer
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;常见问题&lt;/h1&gt;
&lt;h2&gt;1. 提示权限不足&lt;/h2&gt;
&lt;p&gt;请确认当前 PowerShell 是“以管理员身份运行”。&lt;/p&gt;
&lt;h2&gt;2. 命令执行成功但状态没变化&lt;/h2&gt;
&lt;p&gt;通常是未重启。先重启，再执行 &lt;code&gt;Get-MMAgent&lt;/code&gt; 复查。&lt;/p&gt;
&lt;h2&gt;3. 关闭后体感没变化&lt;/h2&gt;
&lt;p&gt;内存压缩不是所有负载的瓶颈；若系统内存充足，差异可能很小。建议结合自身负载做 A/B 对比后再决定是否保留关闭状态。&lt;/p&gt;
</content:encoded></item><item><title>Gitea 搭建（Docker）</title><link>https://iiii.fun/posts/docker/gitea-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/gitea-setup/</guid><description>使用Docker Compose部署Gitea自托管Git服务，含MariaDB数据库</description><pubDate>Fri, 23 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &quot;3&quot;

networks:
  gitea:
    external: false
  web:
    external: true

services:
  gitea:
    image: docker.gitea.com/gitea:nightly
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=gitdb:3306
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=&amp;lt;db-password&amp;gt;
    restart: always
    networks:
      - gitea
      - web
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - &quot;3000:3000&quot;
      - &quot;222:22&quot;
    depends_on:
      - gitdb

  gitdb:
    image: mariadb:lts
    container_name: gitdb
    restart: always
    volumes:
      - ./mariadb-data:/var/lib/mysql
      - ./mariadb-conf:/etc/mysql
      - /run/mysqld:/run/mysqld
    environment:
      MARIADB_ROOT_PASSWORD: &amp;lt;root-password&amp;gt;
      MARIADB_USER: gitea
      MARIADB_PASSWORD: &amp;lt;db-password&amp;gt;
      MARIADB_DATABASE: gitea
    networks:
      - gitea
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;将 &lt;code&gt;&amp;lt;db-password&amp;gt;&lt;/code&gt; 和 &lt;code&gt;&amp;lt;root-password&amp;gt;&lt;/code&gt; 替换为实际的随机密码，建议使用 &lt;code&gt;openssl rand -base64 24&lt;/code&gt; 生成。&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>OpenVPN Docker 部署</title><link>https://iiii.fun/posts/docker/openvpn-docker/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/openvpn-docker/</guid><description>使用Docker部署OpenVPN，支持IPv6，配置服务端推送路由</description><pubDate>Sat, 17 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;项目：https://github.com/GavinTan/openvpn&lt;/p&gt;
&lt;p&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;services:
  openvpn:
    image: yyxx/openvpn
    cap_add:
      - NET_ADMIN
    ports:
      - &quot;1194:1194/udp&quot;
      - &quot;8833:8833&quot;   # Web 管理界面
    volumes:
      - ./data:/data
      - /etc/localtime:/etc/localtime:ro
    sysctls:
      - net.ipv6.conf.default.disable_ipv6=0
      - net.ipv6.conf.all.forwarding=1

networks:
  default:
    enable_ipv6: true
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;服务端配置推送路由（仅访问内网，不走 VPN 出公网）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;proto udp6
push &quot;dhcp-option DNS &amp;lt;your-dns&amp;gt;&quot;
push &quot;route 192.168.0.0 255.255.255.0&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;客户端配置文件补充（可选）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dev-type tun
setenv FRIENDLY_NAME &quot;openvpn-home&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后修改：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dev tunx
proto udp6
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>TShock 插件推荐与配置</title><link>https://iiii.fun/posts/terraria/tshock-plugins/</link><guid isPermaLink="true">https://iiii.fun/posts/terraria/tshock-plugins/</guid><description>TShock泰拉瑞亚服务器实用插件列表、配置示例及权限分配</description><pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;插件文档：http://docs.terraria.ink/zh/&lt;/p&gt;
&lt;h1&gt;插件列表&lt;/h1&gt;
&lt;h2&gt;AutoFish — 自动钓鱼&lt;/h2&gt;
&lt;p&gt;自动钓鱼插件。&lt;/p&gt;
&lt;p&gt;配置文件示例（&lt;code&gt;AutoFish.json&lt;/code&gt;）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;AdditionalCatches&quot;: [],
  &quot;Enable&quot;: true,
  &quot;MultipleFishFloats&quot;: false,
  &quot;RandCatches&quot;: false,
  &quot;SetBuffs&quot;: {
    &quot;121&quot;: 30,
    &quot;25&quot;: 30
  },
  &quot;ConsumeBait&quot;: false,
  &quot;Time&quot;: 24
}
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;buff 121 = 钓鱼药水，25 = 踉跄&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;Back — 回到死亡点&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;th&gt;权限&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/back&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;back&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;返回上次死亡地点&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;DamageStatistic — 伤害统计&lt;/h2&gt;
&lt;p&gt;统计玩家输出伤害。&lt;/p&gt;
&lt;h2&gt;DwTP — 定位传送&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;th&gt;权限&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/dw hb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dw.use&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;传送到世纪之花花苞&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/dw dl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dw.use&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;传送到地牢&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/dw sm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dw.use&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;传送到神庙&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/dw bag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dw.use&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;传送到BOSS宝藏袋&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/dw wgh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dw.use&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;传送到微光湖&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Maptp — 双击大地图传送&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;权限&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;maptp.noclip&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;允许传送（不含实心方块）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;maptp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;允许传送（含实心方块）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;ReFishTask — 刷新渔夫任务&lt;/h2&gt;
&lt;p&gt;完成渔夫任务后可无限接任务。&lt;/p&gt;
&lt;h2&gt;TeleportRequest — TPA传送请求&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/tpa &amp;lt;玩家&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;申请传送到指定玩家&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/tpahere &amp;lt;玩家&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;申请召唤指定玩家到自己位置&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/atp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;接受传送请求&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/dtp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;拒绝传送请求&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/autoaccept&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;自动接受所有传送请求&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/autodeny&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;自动拒绝所有传送请求&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;TownNPCHomes — NPC快速回家&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;命令&lt;/th&gt;
&lt;th&gt;权限&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;/npchome&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;tshock.world.movenpc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;传送NPC回家&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr /&gt;
&lt;h1&gt;AutoTeam 配置&lt;/h1&gt;
&lt;p&gt;自动将玩家分配到对应队伍颜色：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;开启插件&quot;: true,
  &quot;组对应的队伍&quot;: {
    &quot;guest&quot;: &quot;pink&quot;,
    &quot;default&quot;: &quot;green&quot;,
    &quot;owner&quot;: &quot;green&quot;,
    &quot;admin&quot;: &quot;green&quot;,
    &quot;vip&quot;: &quot;none&quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;权限分配参考&lt;/h1&gt;
&lt;h2&gt;default 组&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;tshock.warp, tshock.account.changepassword, tshock.account.logout,
tshock.npc.summonboss, tshock.npc.spawnpets, tshock.world.worldupgrades,
tshock.whisper, tshock.tp.wormhole, tshock.world.paint, tshock.tp.pylon,
tshock.tp.tppotion, tshock.tp.magicconch, tshock.tp.demonconch
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;玩家自定义权限&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;autofish, autoteam.toggle, back, tprequest.gettpr, tprequest.tpauto, tprequest.tpat,
tshock.npc.startinvasion, autofish.common
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;admin 组&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;tshock.admin.ban, tshock.cfg.whitelist, tshock.npc.spawnboss, tshock.npc.spawnmob,
tshock.admin.warp, tshock.world.time.set, tshock.tp.self, tshock.slap, tshock.kill,
tshock.admin.viewlogs, tshock.admin.nokick, tshock.tp.others
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;vip 组&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;tshock.reservedslot, tshock.npc.rename, tshock.npc.startinvasion,
tshock.npc.summonboss, tshock.whisper, tshock.tp.wormhole
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>城堡破坏者 CE 修改器</title><link>https://iiii.fun/posts/game/castle-crashers-trainer/</link><guid isPermaLink="true">https://iiii.fun/posts/game/castle-crashers-trainer/</guid><description>城堡破坏者（Castle Crashers）Cheat Engine修改脚本说明</description><pubDate>Sat, 03 Jan 2026 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;以下是 Cheat Engine 脚本，用于重置游戏存档中的各类数据：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[ENABLE]
reset_wa:
  dd 1
reset_level:
  dd 1
reset_exp:
  dd 1
reset_weapon:
  dd 1
reset_animal:
  dd 1
reset_stats:
  dd 1
reset_normal:
  dd 1
reset_potion:
  dd 1
reset_bomb:
  dd 1
reset_sammich:
  dd 1
reset_items:
  dd 1
reset_gold:
  dd 1
reset_insaneflag:
  dd 1
reset_insane:
  dd 1
reset_clear:
  dd 1

[DISABLE]
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;各字段说明：&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字段&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_wa&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;未知，改了会炸，&lt;strong&gt;不要动&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_level&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;角色等级&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_exp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;经验值&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_weapon&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;武器解锁&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_animal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;动物伙伴&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_stats&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;技能点分配&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_normal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;通关进度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_potion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;药水&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_bomb&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;炸弹&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_sammich&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;三明治&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_items&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;物品&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_gold&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;金币&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_insaneflag&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;疯狂模式标记&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_insane&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;疯狂模式进度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reset_clear&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;骷髅头通关标志&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
</content:encoded></item><item><title>ArchLinux配置RDP远程桌面</title><link>https://iiii.fun/posts/linux/archlinux-rdp/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/archlinux-rdp/</guid><description>在ArchLinux上配置xrdp实现远程桌面连接，支持Intel/AMD/Nvidia显卡</description><pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;跑起来&lt;/h1&gt;
&lt;p&gt;首先，安装核心软件包：&lt;br /&gt;
&lt;code&gt;yay -S xrdp&lt;/code&gt;&lt;br /&gt;
这里需要注意 xrdp最新版本和xorgxrdp-glamor并不兼容 如果需要xorgxrdp-glamor 你需要&lt;br /&gt;
&lt;code&gt;yay -S package-name --editmenu&lt;/code&gt;&lt;br /&gt;
修改pkgver为1.10.1，子版本号为1&lt;br /&gt;
sha256sums全都改成SKIP&lt;/p&gt;
&lt;p&gt;然后，安装 Xorg 后端：&lt;br /&gt;
（三选一即可）&lt;/p&gt;
&lt;p&gt;&lt;code&gt;yay -S xorgxrdp-glamor&lt;/code&gt; （英特尔与 AMD 核显）&lt;br /&gt;
&lt;code&gt;yay -S xorgxrdp&lt;/code&gt; （不使用显卡渲染，CPU 占用率会比较高）&lt;br /&gt;
&lt;code&gt;yay -S xorgxrdp-nvidia&lt;/code&gt; （英伟达独显，没有测试过，可能需要根据安装时的提示修改配置文件）&lt;/p&gt;
&lt;p&gt;接下来，在 &lt;code&gt;/etc/X11/Xwrapper.config&lt;/code&gt; 中加入一行 &lt;code&gt;allowed_users=anybody&lt;/code&gt; （如果没有这个文件则手动创建一个）。&lt;br /&gt;
（不知道为什么，这个步骤没有出现在英文版的 arch wiki 中，但没有它远程桌面是起不来的）&lt;/p&gt;
&lt;p&gt;再接下来，创建 &lt;code&gt;~/.xinitrc&lt;/code&gt; ，并写入 &lt;code&gt;/usr/lib/plasma-dbus-run-session-if-needed startplasma-x11&lt;/code&gt; 。&lt;br /&gt;
（正常步骤应该是修改原有的 &lt;code&gt;.xinitrc&lt;/code&gt; ，但是，再次，我压根就没有这个东西，于是手动创建一个）&lt;br /&gt;
启用服务，再重启一下系统：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable xrdp.service
sudo systemctl enable xrdp-sesman.service
sudo reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Nvidia使用&lt;/h2&gt;
&lt;p&gt;会提示&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;xorgxrdp-nvidia only use the first gpu, if you need multi gpus support, edit /etc/X11/xrdp/xorg_nvidia.conf manually.(黄色警告)

remember to edit &quot;/etc/xrdp/sesman.ini&quot;, change &quot;param=xrdp/xorg.conf&quot; to &quot;param=xrdp/xorg_nvidia.conf&quot; in the section &quot;[Xorg]&quot;.(红色)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;那我们改一下&lt;code&gt;/etc/xrdp/sesman.ini&lt;/code&gt;，把&lt;code&gt;&quot;param=xrdp/xorg.conf&quot;&lt;/code&gt; 改成&lt;code&gt;&quot;param=xrdp/xorg_nvidia.conf&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;已知问题&lt;/h1&gt;
&lt;h2&gt;没声音&lt;/h2&gt;
&lt;p&gt;安装 pipewire-module-xrdp&lt;/p&gt;
&lt;h2&gt;卸载切换&lt;/h2&gt;
&lt;p&gt;还需要卸载一个-debug 所以卸载命令如下&lt;br /&gt;
&lt;code&gt;yay -R xorgxrdp-glamor xorgxrdp-glamor-debug&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;yay -R xorgxrdp xorgxrdp-debug&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;yay -R xorgxrdp-nvidia xorgxrdp-nvidia-debug&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;给笔记本电脑用会炸&lt;/h2&gt;
&lt;p&gt;暂时没啥办法，先用kde自带的rdp&lt;/p&gt;
&lt;h1&gt;参考资料&lt;/h1&gt;
&lt;p&gt;https://blog.xzr.moe/archives/237/&lt;/p&gt;
</content:encoded></item><item><title>ArchLinux 配置 Sunshine 流媒体</title><link>https://iiii.fun/posts/linux/archlinux/archlinux-sunshine/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/archlinux/archlinux-sunshine/</guid><description>在ArchLinux上将Sunshine配置为用户级systemd服务，实现开机自启</description><pubDate>Wed, 31 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Sunshine 是一个自托管的游戏串流服务端，配合 Moonlight 客户端使用。&lt;/p&gt;
&lt;h1&gt;配置为用户 Systemd 服务&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;mkdir -p ~/.config/systemd/user
nano ~/.config/systemd/user/Sunshine.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入以下内容：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Sunshine is a self-hosted game stream host for Moonlight.
StartLimitIntervalSec=500
StartLimitBurst=5

[Service]
ExecStart=/usr/bin/sunshine
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=graphical-session.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启用并启动：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl --user enable Sunshine.service
systemctl --user start Sunshine.service
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;注入 KDE 会话环境变量&lt;/h1&gt;
&lt;p&gt;如果通过脚本/cron 调用需要 KDE 会话环境的工具，可以使用以下脚本注入环境变量：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

PID=$(pgrep -u &quot;$USER&quot; plasmashell | head -n 1)
LOG_FILE=&quot;/tmp/plasma_env_dump.log&quot;

if [ -n &quot;$PID&quot; ]; then
    cat /proc/$PID/environ | tr &apos;\0&apos; &apos;\n&apos; &amp;gt; &quot;$LOG_FILE&quot;
    
    VARS=&quot;DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS WAYLAND_DISPLAY&quot;
    for VAR_NAME in $VARS; do
        VAR_VALUE=$(grep &quot;^${VAR_NAME}=&quot; &quot;$LOG_FILE&quot; | cut -d&apos;=&apos; -f2-)
        if [ -n &quot;$VAR_VALUE&quot; ]; then
            export &quot;$VAR_NAME=$VAR_VALUE&quot;
        fi
    done
    echo &quot;成功注入 KDE 会话环境！&quot;
else
    echo &quot;未找到 plasmashell 进程。&quot;
fi
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>NFS挂载</title><link>https://iiii.fun/posts/linux/linux-nfs-mount/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-nfs-mount/</guid><description>Linux客户端挂载NFS共享目录，含fstab持久化配置</description><pubDate>Tue, 30 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;安装客户端&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;apt install nfs-common
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;临时挂载&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /mnt/nfs-share
sudo mount -t nfs -o vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport \
  &amp;lt;nfs-server&amp;gt;:/volume1/share /mnt/nfs-share
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;查看服务端导出列表：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo showmount -e &amp;lt;nfs-server&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;fstab 持久挂载&lt;/h1&gt;
&lt;p&gt;在 &lt;code&gt;/etc/fstab&lt;/code&gt; 中添加：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;nfs-server&amp;gt;:/volume1/share /mnt/nfs-share nfs vers=4,minorversion=0,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev,noresvport 0 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后执行 &lt;code&gt;mount -a&lt;/code&gt; 使其生效。&lt;/p&gt;
</content:encoded></item><item><title>Docker安装（Debian/Ubuntu）</title><link>https://iiii.fun/posts/docker/docker-install/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/docker-install/</guid><description>在Debian/Ubuntu系统上安装Docker CE，使用阿里云镜像源</description><pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;本文参考 https://docs.docker.com/engine/install/debian/&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
echo \
  &quot;deb [arch=$(dpkg --print-architecture)] https://mirrors.aliyun.com/docker-ce/linux/debian \
  $(lsb_release -cs) stable&quot; | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Caddy 反向代理搭建</title><link>https://iiii.fun/posts/docker/caddy-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/caddy-setup/</guid><description>使用Docker部署Caddy反向代理，包含基础配置和HTTPS自签名配置示例</description><pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;基础 Docker Compose&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;services:
  caddy:
    image: caddy:latest
    restart: unless-stopped
    ports:
      - &quot;80:80&quot;
      - &quot;443:443&quot;
      - &quot;443:443/udp&quot;
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./site:/srv
      - caddy_data:/data
      - caddy_config:/config

volumes:
  caddy_data:
  caddy_config:
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;创建外部网络（多容器共用）&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;docker network create web
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;带网络的 docker-compose.yml：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;version: &apos;3&apos;

services:
  caddy:
    image: caddy:2
    container_name: caddy
    restart: always
    networks:
      - web
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-config:/config
      - ./caddy-data:/data
      - ./certs:/certs

networks:
  web:
    external: true
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Caddyfile 示例&lt;/h1&gt;
&lt;p&gt;使用自签名证书的内部服务示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;(common) {
    header /* {
        -Server
    }
}

your-service.example.com:443 {
  log {
    level INFO
    output file /data/access.log {
      roll_size 10MB
      roll_keep 10
    }
  }
  tls /certs/your.pem /certs/your.key
  encode gzip
  reverse_proxy backend-service:3000
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;内网自签名证书&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;local-service.example.com {
    tls internal
    reverse_proxy 192.168.1.100:8082
}
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Nexus 私有仓库搭建（Docker）</title><link>https://iiii.fun/posts/docker/nexus-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/nexus-setup/</guid><description>使用Docker快速部署Sonatype Nexus私有包仓库</description><pubDate>Tue, 23 Dec 2025 00:00:00 GMT</pubDate><content:encoded>&lt;pre&gt;&lt;code&gt;version: &quot;2&quot;

services:
  nexus:
    image: sonatype/nexus3
    volumes:
      - &quot;nexus-data:/nexus-data&quot;
    ports:
      - &quot;8081:8081&quot;   # Web UI
      - &quot;8082:8082&quot;   # Docker registry (HTTP)
      - &quot;8083:8083&quot;   # Docker registry (HTTPS)

volumes:
  nexus-data: {}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;部署后访问 &lt;code&gt;http://your-server:8081&lt;/code&gt;，默认账号 &lt;code&gt;admin&lt;/code&gt;，初始密码在容器内 &lt;code&gt;/nexus-data/admin.password&lt;/code&gt; 中。&lt;/p&gt;
</content:encoded></item><item><title>OpenVPN 搭建与配置</title><link>https://iiii.fun/posts/linux/openvpn-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/openvpn-setup/</guid><description>使用脚本快速搭建OpenVPN，配置内网互访、限制流量传递及IPv6支持</description><pubDate>Fri, 31 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;安装&lt;/h1&gt;
&lt;p&gt;使用一键脚本：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /opt
wget -O openvpn.sh https://get.vpnsetup.net/ovpn
sudo bash openvpn.sh --auto

systemctl restart openvpn-server@server.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;项目地址：https://github.com/hwdsl2/openvpn-install&lt;/p&gt;
&lt;h1&gt;配置内网互访&lt;/h1&gt;
&lt;p&gt;参考：https://wumanho.cn/posts/openvpn/&lt;/p&gt;
&lt;p&gt;在路由器中添加静态路由即可实现互访：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;网络设置 → 静态路由 → 添加对应路由&lt;/li&gt;
&lt;li&gt;网关为 OpenVPN 搭建所在服务器&lt;/li&gt;
&lt;li&gt;目的地址为 VPN 网段&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;限制流量传递（仅内网访问，避免公网走VPN）&lt;/h1&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/openvpn/server/server.conf&lt;/code&gt;，注释掉以下内容：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#push &quot;redirect-gateway def1 ipv6 bypass-dhcp&quot;
ifconfig-pool-persist ipp.txt
#push &quot;dhcp-option DNS 8.8.8.8&quot;
#push &quot;dhcp-option DNS 8.8.4.4&quot;
push &quot;route 192.168.0.0 255.255.255.0&quot;   # 改成你的内网网段
#push &quot;block-outside-dns&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要内网 DNS，添加：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;push &quot;dhcp-option DNS &amp;lt;your-dns&amp;gt;&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;开启 IPv6&lt;/h1&gt;
&lt;p&gt;修改 &lt;code&gt;/etc/openvpn/server/server.conf&lt;/code&gt;，将 &lt;code&gt;udp&lt;/code&gt; 改为 &lt;code&gt;udp6&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;客户端模板中也需要修改：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vim /etc/openvpn/server/client-common.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;加入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dev-type tun
dev tunx
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;也可以使用 &lt;code&gt;tcp6&lt;/code&gt;，此时需删除 &lt;code&gt;explicit-exit-notify&lt;/code&gt;。&lt;/p&gt;
&lt;h1&gt;调整客户端生成&lt;/h1&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/openvpn/server/client-common.txt&lt;/code&gt;，修改 &lt;code&gt;remote&lt;/code&gt; 段：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;remote v6.yourdomain.com 1194
remote v4.yourdomain.com 1194
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以设置一个友好名称：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;setenv FRIENDLY_NAME &quot;my-openvpn&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;生成密钥&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;sudo bash /opt/openvpn.sh
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>WireGuard 搭建与配置</title><link>https://iiii.fun/posts/linux/wireguard-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/wireguard-setup/</guid><description>在Linux上搭建WireGuard VPN，包含服务端和客户端完整配置流程</description><pubDate>Fri, 31 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;安装&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;apt install wireguard
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;常用控制命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo wg-quick up wg0    # 启动
sudo wg-quick down wg0  # 停止
sudo wg show            # 状态
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;开启端口转发&lt;/h1&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;sudo sysctl -p
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;生成密钥对&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;cd /etc/wireguard/
umask 077

# 服务端密钥
wg genkey | tee privatekey | wg pubkey &amp;gt; publickey

# 客户端密钥
wg genkey &amp;gt; client1.key
wg pubkey &amp;lt; client1.key &amp;gt; client1.key.pub
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;服务端配置&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;/etc/wireguard/wg0.conf&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Interface]
Address = 10.0.0.1/24
SaveConfig = true
PrivateKey = &amp;lt;server-private-key&amp;gt;
ListenPort = 51820

[Peer]
PublicKey = &amp;lt;client-public-key&amp;gt;
AllowedIPs = 10.0.0.2/32,192.168.0.0/24
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;启动并设置开机自启：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl enable wg-quick@wg0
sudo wg-quick up wg0
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;客户端配置&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;[Interface]
PrivateKey = &amp;lt;client-private-key&amp;gt;
Address = 10.0.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = &amp;lt;server-public-key&amp;gt;
Endpoint = &amp;lt;server-ip&amp;gt;:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;iPhone、Windows、Mac 等均可使用相同格式的配置文件导入。&lt;/p&gt;
</content:encoded></item><item><title>一加11 修改OCDT保留Fastboot</title><link>https://iiii.fun/posts/rom/oneplus11-ocdt/</link><guid isPermaLink="true">https://iiii.fun/posts/rom/oneplus11-ocdt/</guid><description>修改一加11 OCDT分区以在国行转换后保留Fastboot功能</description><pubDate>Fri, 24 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;参考：https://xdaforums.com/t/modify-ocdt-to-keep-fastboot-when-converting-cn-variant.4697052/&lt;/p&gt;
&lt;p&gt;ROM 下载：https://yun.daxiaamu.com/OnePlus_Roms/%E4%B8%80%E5%8A%A0OnePlus%2011/&lt;/p&gt;
&lt;h1&gt;修改 OCDT&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;所需文件：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;手机原始 ocdt.img&lt;/li&gt;
&lt;li&gt;ocdt_cph2449.img（用于替换前32字节）&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;两个文件都应该是 131072 字节&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;使用 dd 修改（推荐）：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 先备份原始 ocdt 为 new-ocdt.img
cp original_ocdt.img new-ocdt.img

# 从 cph2449 的 ocdt 中复制前32字节覆盖到新文件
dd if=ocdt_cph2449.img bs=1 count=32 conv=notrunc of=new-ocdt.img
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改后确认 new-ocdt.img 仍为 131072 字节，否则不要刷入。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;手动方式：&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;用十六进制编辑器，将 &lt;code&gt;ocdt_cph2449.img&lt;/code&gt; 的前32字节复制，替换（不是插入）原始 ocdt.img 的前32字节。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;刷入后效果：&lt;/strong&gt; 型号变为 CPH2447，可以进入 Fastboot 并直接刷入第三方 ROM。&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;常用工程指令&lt;/h1&gt;
&lt;p&gt;拨号盘输入 &lt;code&gt;*#899#&lt;/code&gt; 可进入电流/信号等工程模式。&lt;/p&gt;
</content:encoded></item><item><title>三星 Galaxy Z Flip3 刷机指南</title><link>https://iiii.fun/posts/rom/samsung-flip3/</link><guid isPermaLink="true">https://iiii.fun/posts/rom/samsung-flip3/</guid><description>三星Flip3刷机、解锁Bootloader、Root和vbmeta处理的完整流程</description><pubDate>Fri, 24 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;固件下载&lt;/h1&gt;
&lt;p&gt;固件下载站：https://samfw.com/&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;韩版型号：F711N，国行型号：F7110&lt;/li&gt;
&lt;li&gt;韩版选 KOO&lt;/li&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 刷机升级一定要选 &lt;code&gt;HOME_CSC&lt;/code&gt;，因为 &lt;code&gt;CSC&lt;/code&gt; 会删除数据。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;进入各模式&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模式&lt;/th&gt;
&lt;th&gt;操作&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;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;退出下载模式&lt;/td&gt;
&lt;td&gt;音量减 + 电源键&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recovery&lt;/td&gt;
&lt;td&gt;电源 + 音量上开机&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;解锁 Bootloader&lt;/h1&gt;
&lt;p&gt;进入下载模式后，长按音量上键，再按音量上键确认。&lt;/p&gt;
&lt;h1&gt;关于 vbmeta&lt;/h1&gt;
&lt;p&gt;最可靠的方式是生成一个空的 vbmeta：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 需要 avbtool.py（来自 AOSP）
python avbtool.py make_vbmeta_image --flags 2 --padding_size 9664 --output vbmeta_disabled.img
python avbtool.py make_vbmeta_image --flags 2 --padding_size 3392 --output vbmeta_system_disabled.img
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;padding_size 根据原始 vbmeta.img 大小确定，用于覆盖全部旧数据。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;刷完 vbmeta 后必须双清才能开机。&lt;/p&gt;
&lt;h1&gt;Root（Magisk）&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;从 AP 包中提取 boot.img&lt;/li&gt;
&lt;li&gt;用 Magisk 对 boot.img 进行 patch&lt;/li&gt;
&lt;li&gt;处理 vbmeta（刷入空 vbmeta）&lt;/li&gt;
&lt;li&gt;通过 Odin 刷入 patch 过的 boot&lt;/li&gt;
&lt;li&gt;进 Recovery 双清后开机&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;三星专用 Magisk：https://github.com/fei-ke/Magisk&lt;/p&gt;
&lt;h1&gt;通常刷机步骤（混血国行）&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;从 AP 中提取固件，去掉原 vbmeta，选择空 vbmeta 刷入&lt;/li&gt;
&lt;li&gt;进行 Root patch，刷入 patch 过的 boot&lt;/li&gt;
&lt;li&gt;其他照常&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 下列文件无法从韩版刷到国行：BL、CP、CSC，包括 xbl 和 .pit 文件。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;直屏分辨率参数&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;wm size 1080x2640   # 1080p 直屏
wm size 720x1760    # 720p 直屏
wm density 480
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Knox 熔断检测&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;初步判断：&lt;/strong&gt; 注册并使用三星 Pay，若提示禁止使用则已熔断。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;进一步确认：&lt;/strong&gt; 进入下载模式，查看 &lt;code&gt;KNOX WARRANTY VOID&lt;/code&gt; 项：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;显示 &lt;code&gt;0X0&lt;/code&gt;：未熔断&lt;/li&gt;
&lt;li&gt;显示 &lt;code&gt;0X1&lt;/code&gt; 或更大：已熔断，失去保修资格&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>NTFS分区挂载（含休眠修复）</title><link>https://iiii.fun/posts/linux/linux-ntfs-mount/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-ntfs-mount/</guid><description>在Linux下挂载Windows NTFS分区，处理休眠导致的只读问题</description><pubDate>Fri, 17 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;直接 &lt;code&gt;mount&lt;/code&gt; 可能报错：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir: cannot create directory &apos;xxx&apos;: Read-only file system
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;这通常是 Windows 未完全关机（快速启动/休眠）导致的。使用 &lt;code&gt;remove_hiberfile&lt;/code&gt; 选项强制挂载：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mount -t ntfs-3g -o remove_hiberfile,big_writes /dev/sdb3 /mnt/target
# 或
mount -t ntfs -o remove_hiberfile /dev/sdb3 /mnt/target
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>CS2 创意工坊地图推荐</title><link>https://iiii.fun/posts/cs2/cs2-workshop-maps/</link><guid isPermaLink="true">https://iiii.fun/posts/cs2/cs2-workshop-maps/</guid><description>CS2创意工坊好玩地图收集，按可玩性分类</description><pubDate>Mon, 13 Oct 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;可以玩的地图&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workshop ID&lt;/th&gt;
&lt;th&gt;地图名&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;3252689713&lt;/td&gt;
&lt;td&gt;水泥地&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3270882809&lt;/td&gt;
&lt;td&gt;水沙人&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3468113814&lt;/td&gt;
&lt;td&gt;全开沙二&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3395647854&lt;/td&gt;
&lt;td&gt;黑色城镇&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3442996349&lt;/td&gt;
&lt;td&gt;新年广场&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3447707473&lt;/td&gt;
&lt;td&gt;夜间沙&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3305322546&lt;/td&gt;
&lt;td&gt;mc核子&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3427883391&lt;/td&gt;
&lt;td&gt;45沙&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3437809122&lt;/td&gt;
&lt;td&gt;cache&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3442040035&lt;/td&gt;
&lt;td&gt;fachwerk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3219506727&lt;/td&gt;
&lt;td&gt;lake&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3473966878&lt;/td&gt;
&lt;td&gt;italy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3477187482&lt;/td&gt;
&lt;td&gt;比赛堆&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3423073369&lt;/td&gt;
&lt;td&gt;flick&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3408790618&lt;/td&gt;
&lt;td&gt;EI Dorado&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3339983232&lt;/td&gt;
&lt;td&gt;Agency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3305020821&lt;/td&gt;
&lt;td&gt;夜间米泥地&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3114174859&lt;/td&gt;
&lt;td&gt;all in one&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3386673040&lt;/td&gt;
&lt;td&gt;诞生节沙人&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;可以玩的枪法&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workshop ID&lt;/th&gt;
&lt;th&gt;地图名&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;3441724363&lt;/td&gt;
&lt;td&gt;小沙人&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3122345065&lt;/td&gt;
&lt;td&gt;运输舰&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;存疑地图&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workshop ID&lt;/th&gt;
&lt;th&gt;地图名&lt;/th&gt;
&lt;th&gt;备注&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;3223106683&lt;/td&gt;
&lt;td&gt;cf生化酒店&lt;/td&gt;
&lt;td&gt;不知道怎么玩&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;玩不了的地图&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Workshop ID&lt;/th&gt;
&lt;th&gt;地图名&lt;/th&gt;
&lt;th&gt;问题描述&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;3151209872&lt;/td&gt;
&lt;td&gt;镜像沙&lt;/td&gt;
&lt;td&gt;打不开，切图没反应&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3478457748&lt;/td&gt;
&lt;td&gt;幽灵模式&lt;/td&gt;
&lt;td&gt;卡服务器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3274506697&lt;/td&gt;
&lt;td&gt;沙二躲猫猫&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3479539551&lt;/td&gt;
&lt;td&gt;星铁躲猫猫&lt;/td&gt;
&lt;td&gt;玩不了&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3070617672&lt;/td&gt;
&lt;td&gt;淡水沙二&lt;/td&gt;
&lt;td&gt;不好玩&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3480805319&lt;/td&gt;
&lt;td&gt;沙漠躲猫猫&lt;/td&gt;
&lt;td&gt;卡服务器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3222988008&lt;/td&gt;
&lt;td&gt;cf生化金字塔&lt;/td&gt;
&lt;td&gt;崩客户端&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h1&gt;CS2 启动参数参考&lt;/h1&gt;
&lt;p&gt;常用高帧率启动参数：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;-novid -high -threads 8 -freq 240 +mat_queue_mode 2 +fps_max 0 -nojoy +violence_hblood 0 -console -forcenovsync -noaafonts -softparticlesdefaultoff +mat_disable_fancy_blending +r_drawparticles 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Vulkan 模式（可能提升性能，也可能不稳定）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;-novid -high -threads 8 -freq 240 +mat_queue_mode 2 +fps_max 0 -nojoy -console -vulkan
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>OpenWrt 端口映射（DNAT）配置</title><link>https://iiii.fun/posts/openwrt/openwrt-port-forward/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/openwrt-port-forward/</guid><description>通过编辑OpenWrt防火墙配置文件手动添加DNAT端口映射规则</description><pubDate>Fri, 26 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;除了在 LuCI 界面操作，也可以手动修改防火墙配置文件 &lt;code&gt;/etc/config/firewall&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;config redirect
       option target &apos;DNAT&apos;
       option src &apos;wan&apos;
       option dest &apos;lan&apos;
       option proto &apos;tcp udp&apos;
       option src_dport &apos;外部端口&apos;
       option dest_ip &apos;内网目标IP&apos;
       option dest_port &apos;内部端口&apos;
       option name &apos;规则名称&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;示例（将外部443端口转发到内网服务器的443端口）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;config redirect
        option dest &apos;lan&apos;
        option target &apos;DNAT&apos;
        option name &apos;my-service&apos;
        list proto &apos;tcp&apos;
        option src &apos;wan&apos;
        option src_dport &apos;4443&apos;
        option dest_ip &apos;192.168.1.100&apos;
        option dest_port &apos;443&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改后重启防火墙：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service firewall restart
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 添加 DNAT 规则时，&lt;code&gt;src&lt;/code&gt; 字段表示限制来源 IP，通常不需要填写（留空表示任意来源）。&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>自签名证书生成与 Windows 导入</title><link>https://iiii.fun/posts/web/self-signed-cert/</link><guid isPermaLink="true">https://iiii.fun/posts/web/self-signed-cert/</guid><description>生成自签名SSL证书并在Windows中添加为受信任根证书</description><pubDate>Fri, 19 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;证书格式转换&lt;/h1&gt;
&lt;p&gt;将 crt 格式证书转换为 pem 格式（JumpServer 等工具需要 pem 格式）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;openssl x509 -in mycert.crt -out mycert.pem -outform PEM
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Windows 添加受信任根证书&lt;/h1&gt;
&lt;p&gt;搜索「证书」，进入：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;受信任的根证书颁发机构 → 证书 → 所有任务 → 导入&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;按向导导入 &lt;code&gt;.cer&lt;/code&gt; 或 &lt;code&gt;.crt&lt;/code&gt; 格式的根证书即可。&lt;/p&gt;
&lt;h1&gt;为 RDP 配置自定义证书&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;Win+R&lt;/code&gt; 输入 &lt;code&gt;mmc&lt;/code&gt;，添加「证书」管理单元&lt;/li&gt;
&lt;li&gt;在「个人」中导入 &lt;code&gt;.pfx&lt;/code&gt; 证书&lt;/li&gt;
&lt;li&gt;右键证书 → 所有任务 → 管理私钥，添加 &lt;code&gt;NETWORK SERVICE&lt;/code&gt; 读取权限&lt;/li&gt;
&lt;li&gt;将证书指纹写入以下注册表项（替换原有指纹）：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;字段：&lt;code&gt;SSLCertificateSHA1Hash&lt;/code&gt;（类型 REG_BINARY，值为证书指纹的十六进制）&lt;/p&gt;
</content:encoded></item><item><title>OpenWrt 配置 DNS over HTTPS（DoH）</title><link>https://iiii.fun/posts/openwrt/openwrt-doh/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/openwrt-doh/</guid><description>在OpenWrt上安装并配置luci-app-https-dns-proxy实现DNS加密</description><pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;安装插件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;opkg install luci-app-https-dns-proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;配置 dnsmasq 转发到本地 DoH 代理：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;service dnsmasq stop
uci set dhcp.@dnsmasq[0].noresolv=&quot;1&quot;
uci set dhcp.@dnsmasq[0].cachesize=&quot;10000&quot;
uci set dhcp.@dnsmasq[0].min_cache_ttl=&quot;3600&quot;
uci set dhcp.@dnsmasq[0].max_cache_ttl=&quot;86400&quot;
uci -q del dhcp.@dnsmasq[0].server
uci add_list dhcp.@dnsmasq[0].server=&quot;127.0.0.1#5354&quot;
uci add_list dhcp.@dnsmasq[0].server=&quot;::1#5354&quot;
uci commit dhcp
service dnsmasq start
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>mwan3 + NPTv6 多线 IPv6 共存</title><link>https://iiii.fun/posts/openwrt/openwrt-nptv6/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/openwrt-nptv6/</guid><description>在OpenWrt上使用mwan3和NPTv6实现多条宽带线路IPv6地址共存，解决dstnat问题</description><pubDate>Wed, 10 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;有问题欢迎留言反馈。&lt;/p&gt;
&lt;h2&gt;前提&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;IPv6 ULA 前缀&lt;/code&gt; 要设置成 &lt;code&gt;2001:db8::/32&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;配置脚本&lt;/h2&gt;
&lt;p&gt;修改 &lt;code&gt;WAN_IF&lt;/code&gt; 中的接口名和 &lt;code&gt;LAN_IF&lt;/code&gt; 内容，&lt;code&gt;WAN_IF&lt;/code&gt; 可添加多个，用空格隔开。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注意：以下脚本加了 dstnat，直接使用官方写法会导致外网无法访问内网的 IPv6 地址服务。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code&gt;cat &amp;lt;&amp;lt; &quot;EOF&quot; &amp;gt; /etc/nftables.d/npt6.sh
LAN_IF=&quot;lan&quot;
WAN_IF=&quot;wan_isp1_6 wan_isp2_6&quot;

. /lib/functions/network.sh
network_flush_cache
network_get_prefix_assignment6 LAN_PFX &quot;${LAN_IF}&quot;

for WAN_IF in ${WAN_IF}; do
    network_get_device WAN_DEV &quot;${WAN_IF}&quot;
    network_get_prefix6 WAN_PFX &quot;${WAN_IF}&quot;
    
    nft add rule inet fw4 srcnat \
        oif &quot;${WAN_DEV}&quot; snat prefix to ip6 \
        saddr map { &quot;${LAN_PFX}&quot; : &quot;${WAN_PFX}&quot; }
        
    nft add rule inet fw4 dstnat \
        iif &quot;${WAN_DEV}&quot; dnat prefix to ip6 \
        daddr map { &quot;${WAN_PFX}&quot; : &quot;${LAN_PFX}&quot; }
done
EOF

uci -q delete firewall.npt6
uci set firewall.npt6=&quot;include&quot;
uci set firewall.npt6.path=&quot;/etc/nftables.d/npt6.sh&quot;
uci commit firewall
service firewall restart
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;参考&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;官方文档：&lt;a href=&quot;https://openwrt.org/docs/guide-user/firewall/fw3_configurations/fw3_nat#ipv6_nat&quot;&gt;Multi-WAN IPv6 NPT&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>ArchLinux 常用小技巧</title><link>https://iiii.fun/posts/linux/archlinux/archlinux-tips/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/archlinux/archlinux-tips/</guid><description>ArchLinux日常使用中的常见问题与解决方法：GRUB修复、SDDM自动登录、PGP签名错误、屏蔽Nouveau、WiFi连接</description><pubDate>Thu, 04 Sep 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;GRUB 安装（防止启动项丢失）&lt;/h1&gt;
&lt;p&gt;在 EFI 系统上，使用 &lt;code&gt;--removable&lt;/code&gt; 参数可以防止某些主板找不到启动项：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --removable
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;SDDM 自动登录&lt;/h1&gt;
&lt;p&gt;创建配置目录：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /etc/sddm.conf.d
sudo nano /etc/sddm.conf.d/autologin.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;内容：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Autologin]
User=youruser
Session=plasma
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;PGP 签名错误&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;pacman -Sy archlinux-keyring &amp;amp;&amp;amp; pacman -Su
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;屏蔽 Nouveau 驱动&lt;/h1&gt;
&lt;p&gt;创建 &lt;code&gt;/etc/modprobe.d/nouveau_blacklist.conf&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;blacklist nouveau
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;WiFi 连接&lt;/h1&gt;
&lt;p&gt;使用 nmcli：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nmcli device wifi
nmcli device wifi connect &quot;WiFi名称&quot; password &quot;密码&quot;
nmcli connection delete &quot;WiFi名称&quot;  # 删除已保存的连接
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;使用 iwctl（安装环境）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iwctl --passphrase &apos;密码&apos; station wlan0 connect WiFi名称
station wlan0 show
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;SSH 加固配置&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;PermitRootLogin prohibit-password
PasswordAuthentication no
PermitEmptyPasswords no
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加公钥：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;install -dm700 ~/.ssh
cat ~/.ssh/id_ed25519.pub &amp;gt;&amp;gt; ~/.ssh/authorized_keys
rm ~/.ssh/id_ed25519.pub
chmod 600 ~/.ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>JumpServer 快速安装</title><link>https://iiii.fun/posts/linux/jumpserver-install/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/jumpserver-install/</guid><description>使用一键脚本安装JumpServer堡垒机，含HTTPS配置和证书转换</description><pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;参考：JumpServer 官方文档&lt;/p&gt;
&lt;p&gt;建议内存 ≥ 8GB。&lt;/p&gt;
&lt;h1&gt;一键安装&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装后默认账号：&lt;code&gt;admin&lt;/code&gt; / &lt;code&gt;admin&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;初始配置&lt;/h1&gt;
&lt;p&gt;首次安装后需要修改配置文件，定义 &lt;code&gt;DOMAINS&lt;/code&gt; 字段：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vim /opt/jumpserver/config/config.txt
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;# DOMAINS=&quot;your.domain.com&quot;        # 使用域名访问
# DOMAINS=&quot;172.17.200.191&quot;         # 使用 IP 访问
# DOMAINS=&quot;your.domain.com,172.17.200.191&quot;
DOMAINS=
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改后重启：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;jmsctl restart
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;配置 Nginx SSL&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;准备 pem 格式的证书，放到 &lt;code&gt;/opt/jumpserver/config/nginx/cert/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;先关闭服务：&lt;code&gt;jmsctl stop&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;编辑 &lt;code&gt;/opt/jumpserver/config/config.txt&lt;/code&gt;：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;HTTP_PORT=80
HTTPS_PORT=443
SERVER_NAME=your.domain.com
SSL_CERTIFICATE=your.pem
SSL_CERTIFICATE_KEY=your.key
&lt;/code&gt;&lt;/pre&gt;
&lt;ol&gt;
&lt;li&gt;启动：&lt;code&gt;./jmsctl.sh start&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;证书格式转换（crt → pem）&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;openssl x509 -in mycert.crt -out mycert.pem -outform PEM
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>px 主机配置单</title><link>https://iiii.fun/posts/daily/px-build-spec/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/px-build-spec/</guid><description>px主机的配件选购清单及价格</description><pubDate>Thu, 14 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;pre&gt;&lt;code&gt;机箱   先马朱雀5          148.75
主板   微星 B450M 迫击炮MAX  230
CPU    Ryzen 7 5700G      744.22
内存   光威 D4 4000 16G×2  557.26×2 = 1,114.52
                          小计 2,237.49

电源
长城巨龙 1250W            205
电源线                    16.82
                          小计 221.82

硬盘
三星 NVMe 256G            101
英睿达 SATA 1T            255
希捷 SATA 机械 SV35 2T    150
                          小计 506

散热
利民 360 水冷             259
                          小计 259

PCIE
Tesla V100 改散热         1459
                          小计 1459

合计 4,683.31
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Debian13 PVE虚拟机模板制作</title><link>https://iiii.fun/posts/linux/debian-pve-template/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/debian-pve-template/</guid><description>在PVE中制作Debian13虚拟机模板，含安装配置及模板传输流程</description><pubDate>Thu, 14 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;下载镜像&lt;/h1&gt;
&lt;p&gt;从清华镜像站拉取最新的 live 镜像：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://mirrors.tuna.tsinghua.edu.cn/debian-cd/13.0.0-live/amd64/iso-hybrid/
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;PVE创建虚拟机&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;操作系统：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;光盘：debian-live-13
客户机操作系统:
  类型：linux
  版本：6.x~2.6 kernel
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;系统：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;显卡：默认
机型：q35
SCSI控制器：VirtIO SCSI Single
BIOS：OVMF（UEFI）
不创建EFI磁盘
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;资源分配：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;磁盘：64G&lt;/li&gt;
&lt;li&gt;CPU：4核心&lt;/li&gt;
&lt;li&gt;内存：4096MiB，取消勾选 Ballooning 设备&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;安装&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;直接 Start Installer，照着图形界面装完&lt;/li&gt;
&lt;li&gt;删除 CD 驱动器&lt;/li&gt;
&lt;li&gt;配置串口访问，打开 QEMU-GA&lt;/li&gt;
&lt;li&gt;换源，&lt;code&gt;apt update &amp;amp;&amp;amp; apt upgrade -y&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;安装必备软件：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;apt install vim btop htop openssh-server qemu-guest-agent
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;如果是 VMware 则将 &lt;code&gt;qemu-guest-agent&lt;/code&gt; 改为 &lt;code&gt;open-vm-tools&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol&gt;
&lt;li&gt;添加 sudoer&lt;/li&gt;
&lt;li&gt;修改密码&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;传输模板&lt;/h1&gt;
&lt;p&gt;先备份原有虚拟机，然后通过 scp 传输：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;scp 目标服务器用户@目标服务器IP:具体位置 ./
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还原后重置网卡 MAC 地址。&lt;/p&gt;
</content:encoded></item><item><title>Debian/Ubuntu 换源</title><link>https://iiii.fun/posts/linux/linux-change-mirror/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-change-mirror/</guid><description>Debian和Ubuntu快速切换国内镜像源的方法，含USTC和清华源</description><pubDate>Thu, 14 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Debian 快速替换&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;sudo sed -i &apos;s/security.debian.org/mirrors.cloud.tencent.com/g&apos; /etc/apt/sources.list
sudo sed -i &apos;s/security.debian.org/mirrors.ustc.edu.cn/g&apos; /etc/apt/sources.list
sudo sed -i &apos;s/deb.debian.org/mirrors.ustc.edu.cn/g&apos; /etc/apt/sources.list
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Ubuntu 快速替换&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;sudo sed -i &apos;s/security.ubuntu.com/mirrors.ustc.edu.cn/g&apos; /etc/apt/sources.list.d/ubuntu.sources
sudo sed -i &apos;s/archive.ubuntu.com/mirrors.ustc.edu.cn/g&apos; /etc/apt/sources.list.d/ubuntu.sources
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Debian 13 (trixie) 清华源&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;deb http://mirrors.tuna.tsinghua.edu.cn/debian/ trixie main non-free contrib
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-updates main non-free contrib
deb http://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-backports main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ trixie main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-updates main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian/ trixie-backports main non-free contrib
deb http://mirrors.tuna.tsinghua.edu.cn/debian-security/ trixie-security main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/debian-security/ trixie-security main non-free contrib
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Linux 串口控制台配置</title><link>https://iiii.fun/posts/linux/linux-serial-console/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-serial-console/</guid><description>在Linux（PVE/VMware）中配置串口控制台访问，实现无图形界面的远程管理</description><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;配置内核参数&lt;/h2&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/default/grub&lt;/code&gt;，注意去掉 &lt;code&gt;quiet&lt;/code&gt; 选项：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX=&quot;console=ttyS0,115200n8&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要更详细的启动信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT=&quot;loglevel=5 nowatchdog console=ttyS0,115200n8&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参数说明：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;nowatchdog&lt;/code&gt;：关闭 watchdog，提升启动速度&lt;/li&gt;
&lt;li&gt;&lt;code&gt;loglevel=5&lt;/code&gt;：输出更多启动信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;console=ttyS0,115200n8&lt;/code&gt;：串口 ttyS0，波特率 115200，数据位 8，无奇偶校验&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;更新 GRUB&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sudo update-grub
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;PVE 配置&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;在虚拟机硬件中添加串行端口&lt;/li&gt;
&lt;li&gt;切换显示到「串行终端0」&lt;/li&gt;
&lt;li&gt;打开控制台时请使用右上角的控制台按钮，而不是左侧工具栏（默认会打开 noVNC）&lt;/li&gt;
&lt;li&gt;在数据中心把默认控制台设置为 &lt;code&gt;xtermjs&lt;/code&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;VMware 配置&lt;/h2&gt;
&lt;p&gt;添加串行端口，选择使用命名的管道：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\\.\pipe\&amp;lt;串口名&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>PVE 虚拟机相关配置技巧</title><link>https://iiii.fun/posts/pve/pve-tips/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-tips/</guid><description>PVE常用配置：NAT补丁、IPv6开启、虚拟机备份迁移、过虚拟机检测</description><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;NAT 配置&lt;/h1&gt;
&lt;p&gt;PVE NAT 补丁项目：https://github.com/Code-Exec/Proxmox_NAT_Patch&lt;/p&gt;
&lt;p&gt;查看 NAT 规则：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iptables -t nat -L
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;添加 DNAT 规则时，源 IP 字段留空即可（填写表示限制来源 IP，通常没必要）。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h1&gt;开启 IPv6&lt;/h1&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/sysctl.conf&lt;/code&gt;，添加：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;net.ipv6.conf.all.accept_ra=2
net.ipv6.conf.default.accept_ra=2
net.ipv6.conf.all.autoconf=1
net.ipv6.conf.default.autoconf=1
net.ipv6.conf.vmbr0.accept_ra=2
net.ipv6.conf.vmbr0.autoconf=1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/network/interfaces&lt;/code&gt;，为 vmbr0 添加 IPv6 动态获取：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iface vmbr0 inet6 auto
    dhcp 1
    accept_ra 2
    request_prefix 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;动态 IPv4：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iface vmbr0 inet dhcp
    bridge-ports eno0
    bridge-stp off
    bridge-fd 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;DNS 推荐：&lt;code&gt;2402:4e00::&lt;/code&gt; / &lt;code&gt;2400:3200::1&lt;/code&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;虚拟机备份迁移（SCP）&lt;/h1&gt;
&lt;p&gt;默认备份目录：&lt;code&gt;/var/lib/vz/dump/&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;scp /var/lib/vz/dump/vzdump-qemu-130-* root@&amp;lt;目标服务器IP&amp;gt;:/var/lib/vz/dump/
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;过虚拟机检测&lt;/h1&gt;
&lt;h2&gt;普通 KVM&lt;/h2&gt;
&lt;p&gt;在虚拟机 XML 的 &lt;code&gt;&amp;lt;features&amp;gt;&lt;/code&gt; 中插入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;kvm&amp;gt;
    &amp;lt;hidden state=&apos;on&apos;/&amp;gt;
&amp;lt;/kvm&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 &lt;code&gt;&amp;lt;/cpu&amp;gt;&lt;/code&gt; 前插入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;feature policy=&apos;disable&apos; name=&apos;hypervisor&apos;/&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;PVE&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/pve/qemu-server/&amp;lt;vmid&amp;gt;.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Intel CPU：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;args: -cpu &apos;host,-hypervisor,+kvm_pv_unhalt,+kvm_pv_eoi,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,kvm=off,hv_vendor_id=intel&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;AMD CPU：&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;args: -cpu &apos;host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=proxmox,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,hv_synic,hv_stimer,hv_ipi,kvm=off&apos;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>RouterOS 端口映射（DNAT）</title><link>https://iiii.fun/posts/routeros/ros-port-forward/</link><guid isPermaLink="true">https://iiii.fun/posts/routeros/ros-port-forward/</guid><description>在MikroTik RouterOS中通过防火墙NAT配置DNAT端口映射</description><pubDate>Fri, 08 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;在 RouterOS 中配置端口映射（DNAT）：&lt;/p&gt;
&lt;p&gt;进入 &lt;strong&gt;IP → Firewall → NAT&lt;/strong&gt;，添加新规则：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;General 标签：&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字段&lt;/th&gt;
&lt;th&gt;值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chain&lt;/td&gt;
&lt;td&gt;dstnat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Protocol&lt;/td&gt;
&lt;td&gt;6 (tcp)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dst. Port&lt;/td&gt;
&lt;td&gt;外部端口（如 8007）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In. Interface&lt;/td&gt;
&lt;td&gt;wan&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;Action 标签：&lt;/strong&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;字段&lt;/th&gt;
&lt;th&gt;值&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Action&lt;/td&gt;
&lt;td&gt;dst-nat&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;To Address&lt;/td&gt;
&lt;td&gt;内网目标 IP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;To Ports&lt;/td&gt;
&lt;td&gt;内部端口（如 8006）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;完成后点击 OK 保存即可生效。&lt;/p&gt;
</content:encoded></item><item><title>Windows 实用小技巧</title><link>https://iiii.fun/posts/win/windows-tips/</link><guid isPermaLink="true">https://iiii.fun/posts/win/windows-tips/</guid><description>Windows常用操作技巧：关闭IPv6临时地址、证书管理、VMware鼠标问题等</description><pubDate>Fri, 08 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;关闭 IPv6 临时地址（使用固定MAC地址）&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;# 关闭临时 IPv6 地址
netsh interface ipv6 set privacy state=disable

# 开启临时 IPv6 地址（恢复默认）
netsh interface ipv6 set privacy state=enable

# 严格遵守 MAC 地址进行请求（关闭随机标识符）
netsh interface ipv6 set global randomizeidentifiers=disabled
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;Windows 证书管理&lt;/h1&gt;
&lt;h2&gt;添加受信任根证书&lt;/h2&gt;
&lt;p&gt;搜索「证书」，进入「受信任的根证书颁发机构」→「证书」→「所有任务」→「导入」。&lt;/p&gt;
&lt;h2&gt;为 RDP 配置自定义证书&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Win+R 输入 &lt;code&gt;mmc&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;文件 → 添加/删除管理单元 → 证书&lt;/li&gt;
&lt;li&gt;在「个人」中导入 pfx 证书&lt;/li&gt;
&lt;li&gt;右键证书 → 管理私钥 → 授权 &lt;code&gt;NETWORK SERVICE&lt;/code&gt; 读取权限&lt;/li&gt;
&lt;li&gt;将证书指纹写入注册表对应 RDP 项&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h1&gt;VMware 鼠标问题&lt;/h1&gt;
&lt;p&gt;在 VMware 中运行 Minecraft 等游戏时鼠标不动：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;首选项 → 输入 → 为游戏优化鼠标：始终&lt;/strong&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;VMware Debian 初次配置&lt;/h1&gt;
&lt;p&gt;安装完 Debian 后安装 VMware Tools：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt install open-vm-tools open-vm-tools-desktop
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Clash 内网部署</title><link>https://iiii.fun/posts/linux/clash-internal-deploy/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/clash-internal-deploy/</guid><description>在内网Linux服务器上部署Clash代理</description><pubDate>Thu, 07 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;参考项目：https://github.com/nelvko/clash-for-linux-install&lt;/p&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;先安装 unzip，然后执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git clone --branch master --depth 1 https://gh-proxy.com/https://github.com/nelvko/clash-for-linux-install.git \
  &amp;amp;&amp;amp; cd clash-for-linux-install \
  &amp;amp;&amp;amp; sudo bash install.sh
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>ImmortalOpenWrt 编译指南（x86 / R66s / QEMU）</title><link>https://iiii.fun/posts/openwrt/compile/immortal-openwrt-compile/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/immortal-openwrt-compile/</guid><description>基于ImmortalOpenWrt编译x86、R66s和QEMU镜像的配置说明，含软件包选择和自动扩容</description><pubDate>Thu, 07 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;基础准备&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;# 更新源码
git pull

# 更新系统依赖
apt update &amp;amp;&amp;amp; apt upgrade -y

# 复制出一份新目录再编译，保留原始源码
cp -r immortalwrt x86
cp -r immortalwrt R66s_im
cp -r immortalwrt x86_qemu
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;二次编译&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;git pull
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make download -j8
make V=s -j$(nproc)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;清理命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;make clean       # 清除编译结果
make dirclean    # 清除中间文件
make distclean   # 完全清除
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参考：https://github.com/coolsnowwolf/lede&lt;/p&gt;
&lt;hr /&gt;
&lt;h1&gt;x86 编译配置&lt;/h1&gt;
&lt;p&gt;切换目录：&lt;code&gt;cd x86&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Target System -&amp;gt; x86
Subtarget -&amp;gt; x86
Target Profile -&amp;gt; Generic x86/64
Target Images -&amp;gt;
 [*] ext4
 [*] Build GRUB images (Linux x86 or x86_64 host only)
 [*] Build GRUB EFI images
 [*] Use Console Terminal (in addition to Serial)
 (115200) Serial port baud rate
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改默认 IP（按需调整）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed -i &apos;s/192.168.1.1/192.168.9.1/g&apos; package/base-files/files/bin/config_generate
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;推荐软件包：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Administration: &lt;code&gt;btop&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Extra Packages: &lt;code&gt;autocore&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Firmware: &lt;code&gt;intel-microcode&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;LuCI: &lt;code&gt;default-settings-chn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;LuCI Collections: &lt;code&gt;luci-nginx&lt;/code&gt;, &lt;code&gt;luci-openssl&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;LuCI Themes: &lt;code&gt;luci-theme-material&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;LuCI Applications: &lt;code&gt;luci-app-advanced-reboot&lt;/code&gt;, &lt;code&gt;luci-app-autoreboot&lt;/code&gt;, &lt;code&gt;luci-app-arpbind&lt;/code&gt;, &lt;code&gt;luci-app-cloudflared&lt;/code&gt;, &lt;code&gt;luci-app-ddns-go&lt;/code&gt;, &lt;code&gt;luci-app-firewall&lt;/code&gt;, &lt;code&gt;luci-app-https-dns-proxy&lt;/code&gt;, &lt;code&gt;luci-app-mwan3&lt;/code&gt;, &lt;code&gt;luci-app-package-manager&lt;/code&gt;, &lt;code&gt;luci-app-upnp&lt;/code&gt;, &lt;code&gt;luci-app-uhttpd&lt;/code&gt;, &lt;code&gt;luci-app-wol&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自动扩容脚本（&lt;code&gt;package/base-files/files/etc/uci-defaults/51_growrootfs&lt;/code&gt;）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;parted -s /dev/sda resizepart 2 100%
losetup /dev/loop0 /dev/sda2
resize2fs -f /dev/loop0
reboot
exit 0
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;R66s 编译配置&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;闲鱼二百块买的飞凌 R66s&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;切换目录：&lt;code&gt;cd R66s_im&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Target System -&amp;gt; Rockchip
Subtarget -&amp;gt; Rockchip RK33xx/RK35xx
Target Profile -&amp;gt; Lunzn FastRhino R66s
Target Images -&amp;gt;
 关闭 gzip
 Root filesystem partition size -&amp;gt; 160（太大会导致刷写速度很慢）
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;软件包同 x86，额外添加：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Utilities: &lt;code&gt;losetup&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Utilities/Disc: &lt;code&gt;parted&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Utilities/Filesystem: &lt;code&gt;resize2fs&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;自动扩容脚本（&lt;code&gt;package/base-files/files/etc/uci-defaults/51_growrootfs&lt;/code&gt;）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;parted -s /dev/mmcblk0 resizepart 2 100%
losetup /dev/loop0 /dev/mmcblk0p2
resize2fs -f /dev/loop0
reboot
exit 0
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;QEMU/PVE 编译配置&lt;/h1&gt;
&lt;p&gt;切换目录：&lt;code&gt;cd x86_qemu&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Target System -&amp;gt; x86
Subtarget -&amp;gt; x86
Target Profile -&amp;gt; Generic x86/64
Target Images -&amp;gt;
 [*] ext4
 [*] Build GRUB images
 [*] Build GRUB EFI images
 [*] Use Console Terminal (in addition to Serial)
 (115200) Serial port baud rate
 [*] Build PVE/KVM image files(QCOW2)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;必选软件包：&lt;code&gt;Utilities -&amp;gt; Virtualization -&amp;gt; qemu-ga&lt;/code&gt;（注意要选成星号 &lt;code&gt;*&lt;/code&gt;，不是 &lt;code&gt;M&lt;/code&gt;）&lt;/p&gt;
&lt;p&gt;修改默认 IP：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed -i &apos;s/192.168.1.1/192.168.20.1/g&apos; package/base-files/files/bin/config_generate
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;在 PVE 中导入&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;qm importdisk &amp;lt;vmid&amp;gt; immortalwrt-x86-64-generic-ext4-combined-efi.qcow2 local-lvm
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;PVE 虚拟机配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;机型: q35
Bios: UEFI
CPU: 2核
内存: 512M
移除CD驱动器
显示: 串行终端0
双击未使用的磁盘进行添加
调整启动顺序
开启 qemu-ga
网络: 添加2个网络设备，默认第一个为 lan，第二个为 wan
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>光猫获取超级管理员密码</title><link>https://iiii.fun/posts/network/modem-super-password/</link><guid isPermaLink="true">https://iiii.fun/posts/network/modem-super-password/</guid><description>通过Telnet或TTL串口获取光猫超级管理员权限，关闭TR-069远程管理</description><pubDate>Wed, 06 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;重置方法&lt;/h1&gt;
&lt;p&gt;直接长按 reset 按钮可恢复出厂设置。&lt;/p&gt;
&lt;h1&gt;获取超级管理员密码&lt;/h1&gt;
&lt;h2&gt;常见默认超密&lt;/h2&gt;
&lt;p&gt;部分运营商光猫的超级管理员账号规律：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;账号：&lt;code&gt;CUAdmin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;密码：&lt;code&gt;CUAdmin&lt;/code&gt; 或 &lt;code&gt;CUAdmin + 序列号后8位&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;通过 Telnet 获取配置&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;进入光猫管理界面：高级配置 → Telnet配置 → 启用Telnet&lt;/li&gt;
&lt;li&gt;Telnet 连接后执行：&lt;/li&gt;
&lt;/ol&gt;
&lt;pre&gt;&lt;code&gt;sidbg 1 DB decry /userconfig/cfg/db_user_cfg.xml
cat /tmp/debug-decry-cfg | grep Pass
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;关闭 TR-069（防止运营商远程推送）&lt;/h1&gt;
&lt;h2&gt;通过 Web 界面&lt;/h2&gt;
&lt;p&gt;设备管理 → 诊断 → 强制推送功能 → 关闭&lt;/p&gt;
&lt;h2&gt;通过 Telnet&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;sendcmd 1 DB set PDTCTUSERINFO 0 Status 0
sendcmd 1 DB set PDTCTUSERINFO 0 Result 1
sendcmd 1 DB save
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;通过 F12 修改页面元素&lt;/h2&gt;
&lt;p&gt;部分光猫后台 TR-069 选项被隐藏，可通过浏览器 F12 开发者工具修改 DOM 元素来操作。&lt;/p&gt;
&lt;hr /&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;声明：&lt;/strong&gt; 此操作仅适用于自有设备的网络配置优化，请遵守相关法律法规和运营商服务条款。&lt;/p&gt;
&lt;/blockquote&gt;
</content:encoded></item><item><title>RouterOS基础安装与配置</title><link>https://iiii.fun/posts/routeros/routeros-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/routeros/routeros-setup/</guid><description>在PVE中安装MikroTik RouterOS（CHR），包括授权激活、初次配置和安全加固</description><pubDate>Wed, 06 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;RouterOS基础安装&lt;/h1&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;从 https://github.com/elseif/MikroTikPatch 下载&lt;br /&gt;
分配第一网卡为wan，第二网卡为lan&lt;br /&gt;
&lt;code&gt;qm importdisk 117 ros/chr-7.19.4.qcow2 local-lvm&lt;/code&gt;&lt;br /&gt;
删除CD&lt;br /&gt;
设置QEMU-GA开启&lt;br /&gt;
添加串口用于xterm.js访问&lt;br /&gt;
显示调整为串行终端0（最好在数据中心里设置默认xterm.js）&lt;/p&gt;
&lt;h2&gt;初次登入&lt;/h2&gt;
&lt;p&gt;用户admin，无密码&lt;/p&gt;
&lt;h2&gt;授权&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;system/telnet 127.0.0.1&lt;/code&gt;&lt;br /&gt;
用devel登入(初始无密码)&lt;br /&gt;
输入&lt;code&gt;keygen&lt;/code&gt;命令&lt;br /&gt;
&lt;code&gt;exit&lt;/code&gt;&lt;br /&gt;
确认授权正确&lt;code&gt;system/license/print&lt;/code&gt; 输出如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[admin@MikroTik] &amp;gt; system/license/print 
         system-id: 手动打码        
             level: p-unlimited        
  limited-upgrades: no                 
       deadline-at: 2100-01-01 00:00:00
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;level为p-unlimited表示正常&lt;/p&gt;
&lt;h2&gt;初次配置&lt;/h2&gt;
&lt;p&gt;所有配置一定要先按apply再按ok进行配置，避免因为bug产生不安全因素&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ip/address/print&lt;/code&gt;看一下地址，用浏览器或者winbox访问&lt;br /&gt;
进入后QuickStart即可&lt;br /&gt;
Password也先改，不然有bug，一改完配置全白写，改一下安全的，不然很快就被盗了&lt;br /&gt;
注意不要分配到255广播IP，ROS会从大向小分配，直接就分配不了了&lt;/p&gt;
&lt;p&gt;QuickStart例如:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;IP Address:192.168.28.1
Netmask 255.255.255.0/24
DHCP Server: Enable
NAT： Enable
DHCP Server Range 192.168.28.2-192.168.28.254
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;不推荐范围写这么大，不好分配静态IP，直接写&lt;code&gt;192.168.28.100-192.168.28.200&lt;/code&gt;就好了&lt;br /&gt;
然后改下Router Identity，默认是MikroTik，改成你喜欢的名字&lt;br /&gt;
最后 Apply Configuration&lt;br /&gt;
右上角切换Advanced&lt;br /&gt;
IP-&amp;gt;DNS-&amp;gt;Allow Remote Requests打开&lt;br /&gt;
最后重启路由器即可&lt;/p&gt;
&lt;h2&gt;安全配置&lt;/h2&gt;
&lt;h3&gt;账户配置&lt;/h3&gt;
&lt;p&gt;System-&amp;gt;Users，创建新账户并禁用默认管理员账户&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    Name: 随机（大小写+数字）
    Group: full
    Allowed Address: 192.168.88.0/24（可以不配）
    Password: 随机（大小写+数字+特殊字符）
    Confirm Password: 同上
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;服务配置&lt;/h3&gt;
&lt;p&gt;IP-&amp;gt;Services，关闭除了winbox以外的服务（除了前面带D无法关闭的）&lt;br /&gt;
修改winbox端口&lt;br /&gt;
IP-&amp;gt;Neighbors-&amp;gt;Discovery Settings，interface改为none&lt;br /&gt;
Tools-&amp;gt;MAC Server-&amp;gt;MAC Telnet Server/MAC WinBox Server/MAC Ping Server 全部改为端口none/关闭&lt;br /&gt;
Tools-&amp;gt;BTest Server 关闭&lt;/p&gt;
&lt;h3&gt;防火墙配置&lt;/h3&gt;
&lt;p&gt;由于IP-&amp;gt;Services中部分服务无法关闭，将其中无法关闭的除管理需要的winbox外都配置成drop，例子如下：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Genral:
 Chain: input
 Protocol: 6(tcp)（根据services中信息选择）
 Dst.Port 53
 In.Interface: wan
Action:
 Action: drop
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>CS2 服务器插件命令参考</title><link>https://iiii.fun/posts/cs2/cs2-server-commands/</link><guid isPermaLink="true">https://iiii.fun/posts/cs2/cs2-server-commands/</guid><description>CS2服务器MatchZy和CS2-SimpleAdmin插件常用命令速查</description><pubDate>Fri, 16 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;MatchZy 命令&lt;/h1&gt;
&lt;p&gt;文档：https://shobhit-pathak.github.io/MatchZy/commands/&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;大多数命令也可以使用 &lt;code&gt;!&lt;/code&gt; 前缀（比如 &lt;code&gt;!ready&lt;/code&gt;）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;玩家命令&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.ready&lt;/code&gt; — 标记玩家已准备就绪&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.unready&lt;/code&gt; — 标记玩家没有准备好&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.pause&lt;/code&gt; — 暂停比赛&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.unpause&lt;/code&gt; — 请求取消暂停（双方都需要输入才能取消）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.stay&lt;/code&gt; — 保持在当前阵营（由拼刀胜利方输入）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.switch&lt;/code&gt; — 交换阵营（由拼刀胜利方输入）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.stop&lt;/code&gt; — 恢复当前回合的备份（两队都需要输入）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.tac&lt;/code&gt; — 战术暂停&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;训练模式命令&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.spawn &amp;lt;number&amp;gt;&lt;/code&gt; — 传送到同队指定出生点&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.ctspawn &amp;lt;number&amp;gt;&lt;/code&gt; — 传送到CT指定出生点&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.tspawn &amp;lt;number&amp;gt;&lt;/code&gt; — 传送到T指定出生点&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.bot&lt;/code&gt; — 在当前位置添加机器人&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.nobots&lt;/code&gt; — 移除所有机器人&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;管理员命令&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;.start&lt;/code&gt; — 强制开始比赛&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.restart&lt;/code&gt; — 强制重启/重置比赛&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.pause&lt;/code&gt; — 以管理员身份暂停比赛（玩家无法取消）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.unpause&lt;/code&gt; — 强制取消暂停&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.restore &amp;lt;round&amp;gt;&lt;/code&gt; — 恢复到特定回合&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.rk&lt;/code&gt; — 切换是否进行拼刀局&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.readyrequired &amp;lt;number&amp;gt;&lt;/code&gt; — 设置开始比赛所需的已准备玩家数（0=所有人）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.settings&lt;/code&gt; — 显示当前设置&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.map &amp;lt;mapname&amp;gt;&lt;/code&gt; — 更换地图&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.asay &amp;lt;message&amp;gt;&lt;/code&gt; — 以管理员身份在公屏发话&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.reload_admins&lt;/code&gt; — 重新加载 admins.json&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.prac&lt;/code&gt; — 开始训练模式&lt;/li&gt;
&lt;li&gt;&lt;code&gt;.exitprac&lt;/code&gt; — 退出训练模式并进入比赛模式&lt;/li&gt;
&lt;/ul&gt;
&lt;hr /&gt;
&lt;h1&gt;CS2-SimpleAdmin 命令&lt;/h1&gt;
&lt;h2&gt;管理员管理&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;css_addadmin &amp;lt;steamid&amp;gt; &amp;lt;name&amp;gt; &amp;lt;flags/groups&amp;gt; &amp;lt;immunity&amp;gt; [time]&lt;/code&gt; — 添加管理员&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_deladmin &amp;lt;steamid&amp;gt;&lt;/code&gt; — 删除管理员&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_reladmin&lt;/code&gt; — 重新加载 SQL 管理员&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;玩家信息&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;css_who &amp;lt;#userid|name&amp;gt;&lt;/code&gt; — 显示玩家信息&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_players&lt;/code&gt; — 显示玩家列表&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;封禁/踢出&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;css_ban &amp;lt;#userid|name&amp;gt; [time] [reason]&lt;/code&gt; — 封禁玩家&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_addban &amp;lt;steamid&amp;gt; [time] [reason]&lt;/code&gt; — 通过 SteamID64 封禁&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_banip &amp;lt;ip&amp;gt; [time] [reason]&lt;/code&gt; — 通过 IP 封禁&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_unban &amp;lt;steamid|name|ip&amp;gt;&lt;/code&gt; — 解除封禁&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_kick &amp;lt;#userid|name&amp;gt; [reason]&lt;/code&gt; — 踢出玩家&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;聊天管理&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;css_gag &amp;lt;#userid|name&amp;gt; [time] [reason]&lt;/code&gt; — 禁用文字聊天&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_ungag &amp;lt;steamid|name&amp;gt;&lt;/code&gt; — 解除禁用文字聊天&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_mute &amp;lt;#userid|name&amp;gt; [time] [reason]&lt;/code&gt; — 禁用语音&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_unmute &amp;lt;steamid|name&amp;gt;&lt;/code&gt; — 解除禁用语音&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;玩家操控&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;css_give &amp;lt;#userid|name&amp;gt; &amp;lt;weapon&amp;gt;&lt;/code&gt; — 给予武器&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_strip &amp;lt;#userid|name&amp;gt;&lt;/code&gt; — 移除所有武器&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_hp &amp;lt;#userid|name&amp;gt; [health]&lt;/code&gt; — 设置血量&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_speed &amp;lt;#userid|name&amp;gt; [speed]&lt;/code&gt; — 设置速度&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_god &amp;lt;#userid|name&amp;gt;&lt;/code&gt; — 切换无敌模式&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_slay &amp;lt;#userid|name&amp;gt;&lt;/code&gt; — 杀死玩家&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_slap &amp;lt;#userid|name&amp;gt; [damage]&lt;/code&gt; — 扇玩家&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_team &amp;lt;#userid|name&amp;gt; [ct/tt/spec/swap] [-k]&lt;/code&gt; — 切换队伍&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_freeze &amp;lt;#userid|name&amp;gt; [duration]&lt;/code&gt; — 冻结玩家&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_noclip &amp;lt;#userid|name&amp;gt;&lt;/code&gt; — 切换穿墙模式&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_respawn &amp;lt;#userid|name&amp;gt;&lt;/code&gt; — 复活玩家&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;服务器管理&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;css_map &amp;lt;mapname&amp;gt;&lt;/code&gt; — 切换地图&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_wsmap &amp;lt;name|id&amp;gt;&lt;/code&gt; — 切换创意工坊地图&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_say &amp;lt;message&amp;gt;&lt;/code&gt; — 以管理员身份在聊天中发话&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_csay &amp;lt;message&amp;gt;&lt;/code&gt; — 在屏幕中央发话&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_cvar &amp;lt;cvar&amp;gt; &amp;lt;value&amp;gt;&lt;/code&gt; — 修改服务器变量&lt;/li&gt;
&lt;li&gt;&lt;code&gt;css_rcon &amp;lt;command&amp;gt;&lt;/code&gt; — 以服务器身份执行命令&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>CS2服务器配置自定义</title><link>https://iiii.fun/posts/cs2/cs2-server-config/</link><guid isPermaLink="true">https://iiii.fun/posts/cs2/cs2-server-config/</guid><description>CS2服务器插件配置，包括MatchZy配置、推荐插件列表等</description><pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;MatchZy&lt;/h1&gt;
&lt;p&gt;设定&lt;code&gt;/cfg/MatchZy/admins.json&lt;/code&gt;把steamid换成自己的&lt;br /&gt;
设定&lt;code&gt;/addons/counterstrikesharp/configs/core.json&lt;/code&gt; ，编辑 core.json 文件，将&quot;ServerLanguage&quot;: &quot;en&quot; 改成&quot;ServerLanguage&quot;: &quot;zh-Hans&quot;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;MatchZy\warmup.cfg&lt;/code&gt;&lt;br /&gt;
添加预览窗口&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sv_grenade_trajectory_prac_pipreview 1
sv_disable_teamselect_menu false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;MatchZy\live_override.cfg&lt;/code&gt;&lt;br /&gt;
允许扔掉匕首&lt;br /&gt;
禁止子弹伤害&lt;br /&gt;
不许换边&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mp_drop_knife_enable 1
ff_damage_reduction_bullets 0
sv_disable_teamselect_menu true
sv_grenade_trajectory_prac_pipreview 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;MatchZy\knife.cfg&lt;/code&gt;&lt;br /&gt;
允许扔掉匕首&lt;br /&gt;
不许换边&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mp_drop_knife_enable 1
sv_disable_teamselect_menu true
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;server.cfg&lt;/h1&gt;
&lt;p&gt;添加以下录制demo&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tv_enable 1
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;推荐插件&lt;/h1&gt;
&lt;p&gt;找插件的地方 https://bbs.csgocn.net/forum-7.htm&lt;br /&gt;
丢刀 https://github.com/lengran/CS2DropKnife&lt;br /&gt;
C4倒计时 https://github.com/R0mz1k/css-C4-Timer&lt;br /&gt;
管理 https://github.com/daffyyyy/CS2-SimpleAdmin&lt;br /&gt;
服务器状态 https://github.com/hks27d/CSSharpServerStatus&lt;/p&gt;
</content:encoded></item><item><title>CS2服务器搭建</title><link>https://iiii.fun/posts/cs2/cs2-server-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/cs2/cs2-server-setup/</guid><description>在Linux上搭建CS2专用服务器，包括steamcmd安装、服务器配置、插件安装等完整流程</description><pubDate>Thu, 15 May 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;基础准备&lt;/h1&gt;
&lt;p&gt;开启x86 packages并安装steamcmd&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dpkg --add-architecture i386
apt update
apt install steamcmd -y
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;服务端安装&lt;/h1&gt;
&lt;h2&gt;打开steamcmd&lt;/h2&gt;
&lt;p&gt;输入&lt;code&gt;steamcmd&lt;/code&gt;先更新一下，等待出现&lt;code&gt;steamcmd&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;修改安装目录&lt;/h2&gt;
&lt;p&gt;输入&lt;strong&gt;force_install_dir [安装路径]&lt;/strong&gt; 确定安装位置
&lt;code&gt;force_install_dir /mnt/server/cs2&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;登录steam账号&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;login steam用户名&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;login anonymous&lt;/code&gt;&lt;br /&gt;
然后交互操作&lt;/p&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;app_update 730 validate&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;更好的操作&lt;/h2&gt;
&lt;p&gt;安装/更新&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;steamcmd +force_install_dir 安装目录 +login anonymous +app_update 730 +quit
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;服务器配置&lt;/h1&gt;
&lt;h2&gt;server.cfg&lt;/h2&gt;
&lt;p&gt;位于安装目录的&lt;code&gt;game/csgo/cfg&lt;/code&gt;下，进行如下修改&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;hostname &quot;xxx&apos;s CS2 Server&quot; //设置CS2服务器的名称
sv_region 4 //设置服务器区域为亚洲
sv_password &quot;&quot; //在引号内填写客户端连接服务器的密码，引号内不填就是不设密码
rcon_password &quot;&quot; //在引号内填写远程连接服务器控制台的密码，引号内不填就是不设密码
mp_autokick 0 //防止因 挂机、友伤、自杀 等原因被服务器踢出房间
mp_drop_knife_enable 1 //可以扔掉匕首
mp_friendlyfire 0 // 队伍伤害 1=启用,0=禁用
sv_cheats 1 //打开作弊
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以在server.cfg中添加指令 host_workshop_map 来加载创意工坊地图&lt;br /&gt;
以上指令并非全都要写入的，可以根据个人需求增减，其他的指令请参考CS2官方社区文档：&lt;br /&gt;
&lt;a href=&quot;https://developer.valvesoftware.com/wiki/List_of_Counter-Strike_2_console_commands_and_variables&quot;&gt;CS2 Console Commands&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;启动&lt;/h2&gt;
&lt;p&gt;创建个脚本&lt;code&gt;start.sh&lt;/code&gt;，写入如下内容：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh
安装目录/game/bin/linuxsteamrt64/cs2 -dedicated -insecure -usercon -console -nomaster +port 27015 +map de_dust2 +game_type 0 +game_mode 0 +exec server.cfg -maxplayers_override 10
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果有很多&lt;code&gt;(null)&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh
CS2_EXECUTABLE=&quot;/mnt/server/cs2/game/bin/linuxsteamrt64/cs2&quot;
CS2_ARGS=&quot;-dedicated -insecure -usercon -console -nomaster +port 27015 +map de_dust2 +game_type 0 +game_mode 0 +exec server.cfg -maxplayers_override 10&quot;
&quot;$CS2_EXECUTABLE&quot; $CS2_ARGS | sed &apos;s/(null)//g&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过&lt;code&gt;sh start.sh&lt;/code&gt;启动，可能会遇到&lt;br /&gt;
/home/election6204/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ln -s ~/.local/share/Steam/steamcmd/linux64 ~/.steam/sdk64

ln -s ~/.local/share/Steam/steamcmd/linux32 ~/.steam/sdk32
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;会遇到缺dll&lt;br /&gt;
https://github.com/ValveSoftware/csgo-osx-linux/issues/3624&lt;br /&gt;
&lt;code&gt;export LD_LIBRARY_PATH=&quot;/mnt/server/cs2/game/bin/linuxsteamrt64:$LD_LIBRARY_PATH&quot;&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;防火墙&lt;/h2&gt;
&lt;p&gt;这是udp游戏，放行udp的27015端口&lt;/p&gt;
&lt;h1&gt;加入&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;connect xx.xx.xx.xx:27015;password xxx&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;插件添加&lt;/h1&gt;
&lt;h2&gt;MetaMod&lt;/h2&gt;
&lt;p&gt;下载 https://www.metamodsource.net/downloads.php?branch=dev&lt;br /&gt;
下载后放在game/csgo下，即把整个addons文件夹放在里面&lt;/p&gt;
&lt;p&gt;编辑gameinfo.gi(game/csgo下)&lt;br /&gt;
搜索Game_LowViolence	csgo_lv，放在它的下一行&lt;br /&gt;
&lt;code&gt;Game	csgo/addons/metamod&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;MatchZy&lt;/h2&gt;
&lt;p&gt;下载 https://github.com/shobhit-pathak/MatchZy/releases&lt;br /&gt;
下载后放在game/csgo下，即把整个addons文件夹放在里面&lt;br /&gt;
安装后启动输入&lt;code&gt;meta list&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;meta list
Listing 1 plugin:
  [01] CounterStrikeSharp (v1.0.315 @ 169d43e) by Roflmuffin
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要更换CSS版本，记得复制dotnet文件夹，然后把plugins下的MatchZY复制过去&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cp plugin/matchzy/addons/counterstrikesharp/dotnet cs2/game/csgo/addons/counterstrikesharp -r
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过&lt;code&gt;css_plugins list&lt;/code&gt;检查是否安装成功&lt;br /&gt;
插件配置参考cs2服务器配置自定义&lt;/p&gt;
&lt;h2&gt;无法启动&lt;/h2&gt;
&lt;p&gt;/mnt/server/cs2/game/bin/linuxsteamrt64/cs2
&lt;code&gt;bash -c &apos;cd /mnt/server/cs2/game/bin/linuxsteamrt64/ &amp;amp;&amp;amp; for lib in libv8*.so; do ln -s &quot;$(pwd)/$lib&quot; /mnt/server/cs2/game/csgo/bin/linuxsteamrt64/; done&apos;&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>XFS分区扩容</title><link>https://iiii.fun/posts/linux/xfs-partition-resize/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/xfs-partition-resize/</guid><description>使用growpart和xfs_growfs扩展XFS文件系统分区大小</description><pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;先安装个工具&lt;code&gt;apt install cloud-guest-utils&lt;/code&gt;&lt;br /&gt;
然后&lt;code&gt;growpart 磁盘 分区号&lt;/code&gt;&lt;br /&gt;
最后&lt;code&gt;xfs_growfs 挂载点&lt;/code&gt;即可&lt;br /&gt;
例子：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;growpart /dev/sdb 1
xfs_growfs /mnt/openwrt
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>已编译OpenWrt固件导航</title><link>https://iiii.fun/posts/openwrt/compile/openwrt-firmware-nav/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/openwrt-firmware-nav/</guid><description>个人编译的OpenWrt固件下载链接汇总</description><pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;2025.4.20&lt;/h2&gt;
&lt;p&gt;PVE AP固件&lt;br /&gt;
https://www.right.com.cn/forum/thread-8425292-1-1.html&lt;/p&gt;
&lt;p&gt;cudy 114M大分区固件&lt;br /&gt;
https://www.right.com.cn/forum/thread-8425329-1-1.html&lt;/p&gt;
</content:encoded></item><item><title>CUDY-TR3000 OpenWrt编译指南</title><link>https://iiii.fun/posts/openwrt/compile/cudy-tr3000-openwrt-compile/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/cudy-tr3000-openwrt-compile/</guid><description>为CUDY TR3000路由器编译OpenWrt固件，实现114M大分区，支持immortalwrt和官方源码</description><pubDate>Sun, 20 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;博主是在淘宝花141购买并且按照其他人教程刷入的openwrt，但是觉得其他人编译的不好用，才有如下文章&lt;/p&gt;
&lt;p&gt;先换个大uboot&lt;br /&gt;
参考 https://zhuanlan.zhihu.com/p/14574477622&lt;br /&gt;
使用uboot: https://www.right.com.cn/forum/thread-8415351-1-1.html&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /tmp/upload/
mtd write dhcp-mt7981_cudy_tr3000-fip-fixed-parts-multi-layout.bin FIP
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;找到&lt;code&gt;target/linux/mediatek/dts/mt7981b-cudy-tr3000-v1.dts&lt;/code&gt;&lt;br /&gt;
修改&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;reg = &amp;lt;0x5c0000 0x4000000&amp;gt;; -&amp;gt; reg = &amp;lt;0x5C0000 0x7a40000&amp;gt;;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;即可改为114Mib大分区固件，如果要112Mib，则对应0x7000000&lt;/p&gt;
&lt;h2&gt;官方源码配置&lt;/h2&gt;
&lt;p&gt;在&lt;code&gt;make menuconfig&lt;/code&gt;后进行配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Target System -&amp;gt; Mediatek ARM
Subtarget -&amp;gt; Filogic 8x0 (MT798x)
Target Profile -&amp;gt; Cudy TR3000 v1
Target Images -&amp;gt;
 ramdisk关掉
 Root filesystem partition size (in MiB) -&amp;gt; 64
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其余的 都是基础自定义&lt;br /&gt;
编译完成会直接生成在&lt;code&gt;bin/targets/mediatek/filogic&lt;/code&gt;下&lt;/p&gt;
&lt;h2&gt;immortalwrt&lt;/h2&gt;
&lt;p&gt;由于官方的不能用大uboot，所以转向这个版本，内容与官方一致&lt;br /&gt;
在&lt;code&gt;make menuconfig&lt;/code&gt;后进行配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Target System -&amp;gt; Mediatek ARM
Subtarget -&amp;gt; Filogic 8x0 (MT798x)
Target Profile -&amp;gt; Cudy TR3000 v1
Target Images -&amp;gt;
 ramdisk关掉
 Root filesystem partition size (in MiB) -&amp;gt; 114
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其余的 都是基础自定义&lt;br /&gt;
编译完成会直接生成在&lt;code&gt;bin/targets/mediatek/filogic&lt;/code&gt;下&lt;/p&gt;
</content:encoded></item><item><title>小主机配置单</title><link>https://iiii.fun/posts/daily/mini-pc-build-list/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/mini-pc-build-list/</guid><description>ITX小主机配置清单，基于精粤B760i主板的小型服务器配置</description><pubDate>Mon, 14 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;pre&gt;&lt;code&gt;箱电 梦寐C86定制  547
主板 精粤B760i雪之梦D5 500
CPU 剪脚i5 13400 667
内存 D5 5600 玖合 星域 48Gx2 1487.46
小计 3,201.46

电源
华为光宝LITEON 750W PS-2751-7H 49.9
电源线 25.5
小计 75.4

硬盘
光威 奕系列2TB 596
小计 596

散热
散热器 axp90-R47 66.5
4070公版风扇改装套件 56
利民LGA1700 AXP90 12代扣具 16.92
散热器铁丝扣该螺丝固定AXP90 25
6025风扇 33.8
小计 198.22

PCIE：
PCIe转Oculink 64.9
PCIe延长线 70
小计 134.9

合计 4,205.98
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Docker代理配置</title><link>https://iiii.fun/posts/docker/docker-proxy-config/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/docker-proxy-config/</guid><description>为Docker配置HTTP代理，解决国内拉取镜像慢的问题</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h2&gt;代理方法1&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;mkdir /etc/systemd/system/docker.service.d
vim /etc/systemd/system/docker.service.d/http-proxy.conf
写入如下内容
[Service]
Environment=&quot;HTTP_PROXY=http://192.168.26.1:7890&quot;
vim /etc/systemd/system/docker.service.d/https-proxy.conf
[Service]
Environment=&quot;HTTPS_PROXY=http://192.168.26.1:7890&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;代理方法2&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;vim /etc/docker/daemon.json&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;proxies&quot;: {
    &quot;http-proxy&quot;: &quot;http://192.168.9.156:7890&quot;,
    &quot;https-proxy&quot;: &quot;http://192.168.9.156:7890&quot;
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;使用任意方法后&lt;/h2&gt;
&lt;p&gt;重启docker&lt;br /&gt;
sudo systemctl daemon-reload&lt;br /&gt;
sudo systemctl restart docker&lt;br /&gt;
验证&lt;code&gt;sudo docker info | grep -A 1 &apos; HTTP Proxy&apos;&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>Linux 代理设置</title><link>https://iiii.fun/posts/linux/linux-proxy/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-proxy/</guid><description>Linux终端代理设置方法，包括proxychains、export环境变量和git代理</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;proxychains&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;apt install proxychains
nano /etc/proxychains.conf
# 在行尾写你的代理地址
socks5  127.0.0.1 7891
http    127.0.0.1 7890
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;export 环境变量&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;export http_proxy=&quot;http://127.0.0.1:7890&quot;
export https_proxy=&quot;http://127.0.0.1:7890&quot;
export socks_proxy=&quot;socks://127.0.0.1:7890&quot;
export no_proxy=&quot;localhost,127.0.0.1,localaddress,.localdomain.com&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;取消代理：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;unset http_proxy
unset https_proxy
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;git 代理&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;# 设置
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890

# 取消
git config --global --unset http.proxy
git config --global --unset https.proxy
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>OpenWrt 国内软件源配置</title><link>https://iiii.fun/posts/openwrt/openwrt-mirrors/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/openwrt-mirrors/</guid><description>OpenWrt使用清华或腾讯国内镜像加速软件包下载</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;清华镜像（推荐，稳定版）&lt;/h1&gt;
&lt;p&gt;以 x86_64 为例，编辑 &lt;code&gt;/etc/opkg/customfeeds.conf&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;src/gz openwrt_core https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.0/targets/x86/64/packages
src/gz openwrt_base https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.0/packages/x86_64/base
src/gz openwrt_luci https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.0/packages/x86_64/luci
src/gz openwrt_packages https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.0/packages/x86_64/packages
src/gz openwrt_routing https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.0/packages/x86_64/routing
src/gz openwrt_telephony https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/24.10.0/packages/x86_64/telephony
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;将 &lt;code&gt;24.10.0&lt;/code&gt; 和 &lt;code&gt;x86_64&lt;/code&gt; 替换为你的 OpenWrt 版本和目标架构。完整版本列表：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Linux配置Wake On LAN（WOL）</title><link>https://iiii.fun/posts/linux/linux-wol-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-wol-setup/</guid><description>在Linux上配置WOL网络唤醒功能，自动识别网络设备并创建systemd服务</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;参考 https://zhuanlan.zhihu.com/p/666676538&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;搞一个名为wol的脚本：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;vim wol.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;粘贴以下内容(已包含网络设备自动识别)：&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

# 判断系统发行版
if [ -f /etc/redhat-release ]; then
    DISTRO=&quot;centos&quot;
elif cat /etc/issue | grep -q -E &quot;Debian&quot;; then
    DISTRO=&quot;debian&quot;
elif cat /etc/issue | grep -q -E &quot;Ubuntu&quot;; then
    DISTRO=&quot;ubuntu&quot;
elif cat /etc/issue | grep -q -E &quot;Proxmox&quot;; then
    DISTRO=&quot;debian&quot;
else
    echo &quot;无法识别发行版,请检查!&quot;
    exit 1
fi

# 安装 ethtool
case &quot;$DISTRO&quot; in
    centos)
        yum -y install ethtool net-tools
        ;;
    debian|ubuntu)
        apt-get update
        apt-get -y install ethtool net-tools
        ;;
    *)
        echo &quot;不支持的发行版: $DISTRO&quot;
        exit 1
        ;;
esac

# 获取网络设备名并编号
echo &quot;检测到以下网络设备:&quot;
ip link show | awk -F &apos;: &apos; &apos;/^[0-9]+:/{print $1 &quot;: &quot; $2}&apos;

# 提示用户选择网络设备
read -p &quot;请输入要配置的网络设备编号: &quot; CHOICE

# 获取用户选择的设备名
DEVICE=$(ip link show | awk -F &apos;: &apos; &apos;/^[0-9]+:/{print $2}&apos; | sed -n &quot;${CHOICE}p&quot;)

# 确认用户选择
read -p &quot;您选择的设备是: $DEVICE，是否确认？(y/n): &quot; CONFIRM

if [[ &quot;$CONFIRM&quot; != &quot;y&quot; ]]; then
    echo &quot;操作已取消。&quot;
    exit 1
fi

# 生成服务文件
cat &amp;gt;/etc/systemd/system/wol.service&amp;lt;&amp;lt;EOF
[Unit]
Description=Configure Wake On LAN
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s $DEVICE wol g

[Install]
WantedBy=basic.target
EOF

# 启用服务
sudo systemctl enable wol.service
sudo systemctl start wol.service

echo &quot;WOL配置完成，请关闭计算机后测试启用情况&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完成后输入:wq保存退出&lt;/p&gt;
</content:encoded></item><item><title>PVE导入OpenWrt虚拟机</title><link>https://iiii.fun/posts/pve/pve-import-openwrt/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-import-openwrt/</guid><description>在Proxmox VE中导入并配置OpenWrt虚拟机</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;机型q35，bios UEFI，不添加EFI磁盘&lt;br /&gt;
不添加磁盘&lt;br /&gt;
cpu 1&lt;br /&gt;
mem 512M 不Ballooning&lt;br /&gt;
第一个网卡默认Lan，第二个才是Wan&lt;br /&gt;
选项打开QEMU Gust Agent&lt;/p&gt;
&lt;p&gt;添加磁盘&lt;br /&gt;
&lt;code&gt;qm importdisk 104 ./openwrt/openwrt-x86-64-generic-squashfs-combined-efi.qcow2 local-lvm&lt;/code&gt;&lt;br /&gt;
命令解析：
&lt;code&gt;qm importdisk &amp;lt;vmid&amp;gt; &amp;lt;qcow2&amp;gt; &amp;lt;storage&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;进到管理，编辑未使用的磁盘0进行添加&lt;br /&gt;
选项，引导顺序，去掉net0，开启scsi0&lt;br /&gt;
启动，等开&lt;/p&gt;
</content:encoded></item><item><title>OpenWrt WiFi开机自启配置</title><link>https://iiii.fun/posts/openwrt/openwrt-wifi-autostart/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/openwrt-wifi-autostart/</guid><description>通过procd服务脚本解决OpenWrt WiFi不能自动启动的问题</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;创建 &lt;code&gt;/etc/init.d/wifiup&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/sh /etc/rc.common

USE_PROCD=1
START=99

start_service() {
    procd_open_instance WifiUP
    procd_set_param command /sbin/wifi
    procd_append_param command up
    procd_set_param stdout 1
    procd_set_param stderr 1
    procd_close_instance
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后启用该服务：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed -i &apos;s/\r//&apos; /etc/init.d/wifiup
chmod +x /etc/init.d/wifiup
/etc/init.d/wifiup start
/etc/init.d/wifiup enable
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>OpenWrt编译自定义配置合集</title><link>https://iiii.fun/posts/openwrt/compile/openwrt-compile-customization/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/openwrt-compile-customization/</guid><description>OpenWrt编译时的各种自定义配置，包括IPv6、应用包、主题、无线驱动等</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;内部设置&lt;/h1&gt;
&lt;h2&gt;ipv6开启&lt;/h2&gt;
&lt;p&gt;lede:
Extra packages-&amp;gt;ipv6helper，空格点选&lt;br /&gt;
再找Network-&amp;gt;Firewall-&amp;gt;ip6tables，回车进去，把能看见的全空格点选&lt;br /&gt;
（一般为ipv6tables-extra和ipv6tables-mod-nat）&lt;/p&gt;
&lt;p&gt;offical/immortalwrt:
Network-&amp;gt;Firewall-&amp;gt;
ipv6tables-extra
ipv6tables-mod-nat&lt;/p&gt;
&lt;h2&gt;cloudflare DDNS脚本&lt;/h2&gt;
&lt;p&gt;Network -&amp;gt; IP Addresses and Names-&amp;gt;ddns-scripts-&amp;gt;ddns-scripts-cloudflare&lt;/p&gt;
&lt;h2&gt;MT7922&lt;/h2&gt;
&lt;p&gt;Kernel modules-&amp;gt;Wireless Drivers-&amp;gt;
kmod-mt7922-firmware
kmod-mt7921e
Firmware-&amp;gt;mt7922bt-firmware&lt;br /&gt;
&lt;strong&gt;警告：lede会有大量报错，建议使用官方源码&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;application&lt;/h2&gt;
&lt;p&gt;lede
LuCI-&amp;gt;Applications-&amp;gt;
luci-app-openclash
luci-app-bypass
去掉luci-app-ssr-plus
luci-app-ttyd
luci-app-uhttpd&lt;/p&gt;
&lt;p&gt;官方
LuCI-&amp;gt;Applications-&amp;gt;
luci-app-cloudflared
luci-app-ddns
luci-app-filemanager
luci-app-firewall
luci-app-openclash
luci-app-package-manager
luci-app-passwall2
luci-app-ttyd
luci-app-uhttpd
luci-app-wol&lt;/p&gt;
&lt;p&gt;immortalwrt:&lt;br /&gt;
LUCI-&amp;gt;Collections:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;luci&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;LuCI-&amp;gt;Applications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;luci-app-advanced-reboot&lt;/li&gt;
&lt;li&gt;luci-app-autoreboot&lt;/li&gt;
&lt;li&gt;luci-app-cloudflared&lt;/li&gt;
&lt;li&gt;luci-app-ddns&lt;/li&gt;
&lt;li&gt;luci-app-filemanager&lt;/li&gt;
&lt;li&gt;luci-app-firewall&lt;/li&gt;
&lt;li&gt;luci-app-openclash&lt;/li&gt;
&lt;li&gt;luci-app-package-manager&lt;/li&gt;
&lt;li&gt;luci-app-passwall2&lt;/li&gt;
&lt;li&gt;luci-app-ttyd&lt;/li&gt;
&lt;li&gt;luci-app-uhttpd&lt;/li&gt;
&lt;li&gt;luci-app-wol&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;主题&lt;/h2&gt;
&lt;p&gt;LuCI-&amp;gt;Themes-&amp;gt;luci-theme-material&lt;/p&gt;
&lt;h2&gt;无线&lt;/h2&gt;
&lt;h3&gt;添加协议&lt;/h3&gt;
&lt;p&gt;Netowrk-&amp;gt;WirelessAPD-&amp;gt;
wpa-supplicant
wpa-cli
hostapd
第一次启动需要在启动项添加&lt;code&gt;/sbin/wifi up&lt;/code&gt;否则wifi不会自启，没用的话可以参考wifi自启&lt;/p&gt;
&lt;h2&gt;Administration&lt;/h2&gt;
&lt;p&gt;Administration-&amp;gt;btop&lt;/p&gt;
&lt;h1&gt;中文&lt;/h1&gt;
&lt;p&gt;immortalwrt:
LuCI-&amp;gt;default-settings-chn&lt;/p&gt;
&lt;p&gt;offical：
LuCI -&amp;gt; Modules -&amp;gt; Translations -&amp;gt; Simp Chinese （）
&lt;code&gt;feeds/luci/modules/luci-base/root/etc/config/luci&lt;/code&gt;
修改&lt;code&gt;option lang&lt;/code&gt;，auto-&amp;gt;zh_cn&lt;/p&gt;
&lt;h1&gt;外部设置&lt;/h1&gt;
&lt;h2&gt;改默认ip&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;sed -i &apos;s/192.168.1.1/192.168.9.1/g&apos; package/base-files/files/bin/config_generate&lt;/code&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/04/05/OuaeLyZPzD3nA6Y.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;修改ssid&lt;/h2&gt;
&lt;p&gt;lede:
&lt;code&gt;package/kernel/mac80211/files/lib/wifi/mac80211.sh&lt;/code&gt;&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/04/05/J9sOeHikzQ2wCY7.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;改banner&lt;/h1&gt;
&lt;p&gt;修改 &lt;code&gt;package/base-files/files/etc/banner&lt;/code&gt;&lt;br /&gt;
初始banner:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 %D %V, %C
 -----------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;改动:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 -----------------------------------------------------
 %D %V, %C  compile by mkapr
 -----------------------------------------------------
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>OpenWrt编译常见问题与解决方案</title><link>https://iiii.fun/posts/openwrt/compile/openwrt-compile-issues/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/openwrt-compile-issues/</guid><description>OpenWrt编译过程中遇到的各种问题汇总，包括v2ray、geoview、venv、mt76等</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;用不到的v2ray&lt;/h1&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2025/04/05/rx6A1McamhT5bRf.png&quot; alt=&quot;5674560e276ad04b934d9e948f6a09e7.png&quot; /&gt;
Network-&amp;gt;Web Servers/Proxies-&amp;gt;v2ray-plugin，取消勾选&lt;/p&gt;
&lt;h1&gt;用不上的geoview&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;make[3]: *** [Makefile:51: /mnt/openwrt/x86/build_dir/target-x86_64_musl/geoview-0.1.2/.built] Error 1
make[3]: Leaving directory &apos;/mnt/openwrt/x86/feeds/packages/net/geoview&apos;
time: package/feeds/packages/geoview/compile#0.17#0.09#180.33
    ERROR: package/feeds/packages/geoview failed to build.
make[2]: *** [package/Makefile:116: package/feeds/packages/geoview/compile] Error 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Netowork-&amp;gt;IP Addresses and Names-&amp;gt;geoview，取消勾选&lt;br /&gt;
也可以尝试：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;export GOPROXY=https://mirrors.aliyun.com/goproxy/
或者
export GOPROXY=https://goproxy.cn
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;创建不了venv&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;*** Ouch! ***

Python&apos;s ensurepip module is not found.
It&apos;s normally part of the Python standard library, maybe your distribution packages it separately?
Either install ensurepip, or alleviate the need for it in the first place by installing pip and setuptools for &apos;/mnt/openwrt/x86/staging_dir/host/bin/python3&apos;.
(Hint: Debian puts ensurepip in its python3-venv package.) 

ERROR: python venv creation failed
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;sudo apt install python3-venv&lt;/code&gt;&lt;/p&gt;
&lt;h1&gt;mt76无法编译&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;ERROR: module &apos;/mnt/openwrt/x86/build_dir/target-x86_64_musl/linux-x86_64/mt76-2024-04-04-8f301a5c/mt76-connac-lib.ko&apos; is missing.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参考 https://github.com/coolsnowwolf/lede/issues/13130&lt;/p&gt;
&lt;p&gt;使用这个 80211 &lt;a href=&quot;https://github.com/sbwml/package_kernel_mac80211&quot;&gt;https://github.com/sbwml/package_kernel_mac80211&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;使用 openwrt 上游最新的 mt76 &lt;a href=&quot;https://github.com/openwrt/openwrt/tree/openwrt-24.10/package/kernel/mt76&quot;&gt;https://github.com/openwrt/openwrt/tree/openwrt-24.10/package/kernel/mt76&lt;/a&gt;&lt;br /&gt;
加上这两个 patch &lt;a href=&quot;https://github.com/sbwml/r4s_build_script/tree/master/openwrt/patch/mt76/patches&quot;&gt;https://github.com/sbwml/r4s_build_script/tree/master/openwrt/patch/mt76/patches&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;最终换官方源码了，不用lede啥事没有=-=&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/04/05/sT6OAp8hf3wudBJ.png&quot; alt=&quot;ba7c1ea5f173ab804705f338c5e671d9.png&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>OpenWrt基础编译教程</title><link>https://iiii.fun/posts/openwrt/compile/openwrt-compile-basics/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/compile/openwrt-compile-basics/</guid><description>在Debian系统上编译OpenWrt/ImmortalWrt固件的完整流程，包括环境配置、代理加速和编译</description><pubDate>Sun, 06 Apr 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;部署一个基础的Debian系统&lt;br /&gt;
配置如下图：&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/04/05/od5a7K9HYiOt4PA.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;共享dl目录&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;mkdir ../dl
ln -s ../dl dl
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要重新配置：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rm -rf .config
make menuconfig
make V=s -j$(nproc)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;编译完成后输出路径：bin/targets&lt;/p&gt;
&lt;p&gt;以上为参考内容，下面实操&lt;/p&gt;
&lt;p&gt;安装环境（来自lede)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;    sudo apt update -y
    sudo apt full-upgrade -y
    sudo apt install -y ack antlr3 asciidoc autoconf automake autopoint binutils bison build-essential \
    bzip2 ccache clang cmake cpio curl device-tree-compiler flex gawk gcc-multilib g++-multilib gettext \
    genisoimage git gperf haveged help2man intltool libc6-dev-i386 libelf-dev libfuse-dev libglib2.0-dev \
    libgmp3-dev libltdl-dev libmpc-dev libmpfr-dev libncurses5-dev libncursesw5-dev libpython3-dev \
    libreadline-dev libssl-dev libtool llvm lrzsz msmtp ninja-build p7zip p7zip-full patch pkgconf \
    python3 python3-pyelftools python3-setuptools qemu-utils rsync scons squashfs-tools subversion \
    swig texinfo uglifyjs upx-ucl unzip vim wget xmlto xxd zlib1g-dev
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;额外需要的内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt install python3-venv
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;盘不够大，挂个盘先&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo -i
fdisk /dev/sda1
mkfs.xfs /dev/sda1
mount /dev/sda1 openwrt/
chown -R ksqeib:ksqeib openwrt
exit
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;下载源码&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /mnt/openwrt/
git clone git@github.com:immortalwrt/immortalwrt.git
cd immortalwrt
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;此时建议备份一次，或者使用复制后的，而不是直接在拉下来的进行修改，可以节约后续为其他路由器编译时拉取源码的时间&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cp -R immortalwrt immortalwrt_bak
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可以使用openwrt编译添加小猫包（其他文章）而不是用下段代码&lt;br /&gt;
常规：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加小猫包的：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sed -i &apos;$a src-git kenzo https://github.com/kenzok8/openwrt-packages&apos; feeds.conf.default
sed -i &apos;$a src-git small https://github.com/kenzok8/small&apos; feeds.conf.default
git pull
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;根据需求参考编译自定义合集进行修改&lt;/p&gt;
&lt;h1&gt;代理配置&lt;/h1&gt;
&lt;h2&gt;使用国内镜像加速更新 crate 拉取&lt;/h2&gt;
&lt;p&gt;将如下配置写入 &lt;code&gt;$HOME/.cargo/config&lt;/code&gt; 文件&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# 放到 `$HOME/.cargo/config` 文件中
[source.crates-io]
registry = &quot;https://github.com/rust-lang/crates.io-index&quot;

# 替换成你偏好的镜像源
replace-with = &apos;sjtu&apos;

# 清华大学
[source.tuna]
registry = &quot;https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git&quot;

# 中国科学技术大学
[source.ustc]
registry = &quot;git://mirrors.ustc.edu.cn/crates.io-index&quot;

# 上海交通大学
[source.sjtu]
registry = &quot;https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;export GOPROXY=&quot;https://mirrors.aliyun.com/goproxy&quot;
export RUSTUP_DIST_SERVER=&quot;https://rsproxy.cn&quot;
export RUSTUP_UPDATE_ROOT=&quot;https://rsproxy.cn/rustup&quot;
export CARGO_BUILD_JOBS=16
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;开始下载&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt; make download -j8
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;开始编译&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;make V=s -j16
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;为什么不是j1？&lt;br /&gt;
先j16编译，报错再j1来提速&lt;/p&gt;
&lt;p&gt;编译完成去找我们的编译后文件&lt;br /&gt;
在&lt;code&gt;bin/targets&lt;/code&gt;下&lt;/p&gt;
</content:encoded></item><item><title>冒死为精岳B760i升级Bios</title><link>https://iiii.fun/posts/daily/jginyue-b760i-bios-upgrade/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/jginyue-b760i-bios-upgrade/</guid><description>为精岳B760i雪之梦主板升级Bios的经历，包括Bios配置和XMP内存设置</description><pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;今天打开精岳主板官网，发现有个精岳B760i雪之梦 D5 V1.3有bios更新，而我的版本却没有对应的更新&lt;br /&gt;
于是乎，我抱着升级会更强的想法下载并升级&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/03/19/CbGEKDN7AusTIJg.png&quot; alt=&quot;13b1cea2c43d963a29d3b28178ce80d5.png&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2025/03/19/62OUatrF3WREwMd.png&quot; alt=&quot;fe51b15731db3ba3b6f6051c3d9391e4.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;完成后果然能亮，但是bios配置都没了&lt;br /&gt;
果然，这俩板子没差多少，bios可以通刷&lt;br /&gt;
配置一下bios&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;主页-&amp;gt;
 系统语言 中文
芯片组-&amp;gt;
 系统代理配置-&amp;gt;
  显示配置-&amp;gt;
   主显 IGFX(非必要不要调，会导致开机很慢)
   内部图形 Enabled
 PCH-IO配置-&amp;gt;
  来电恢复状态 开机
  冷唤醒 打开
 智能风扇配置-&amp;gt;
  CPU+系统风扇温度 50 60 70 80 90
超频-&amp;gt;
 超频 打开
 内存超频设置-&amp;gt;
  DIMM配置文件 XMP配置1
  内存电压 1.35
 CEP禁用-&amp;gt;
  IA CEP启用 关闭
  GT CEP启用 关闭
启动-&amp;gt;
 设置逾时值 1
 全屏LOGO显示 关闭
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;没错 我超频就炸&lt;br /&gt;
XMP怎么都打不开，我也是服了&lt;br /&gt;
就这样吧 反正也能用&lt;/p&gt;
&lt;p&gt;https://www.jginyue.com.cn/index/Article/show/cat_id/22/id/198&lt;br /&gt;
4.9又更新了12c微码，更！&lt;br /&gt;
c，我的是D5版本，结果我把D4的bios写进去了，甚至还开机了能用&lt;/p&gt;
&lt;p&gt;这主板，XMP有点小问题，必须自己指定内存电压，auto的上不去&lt;/p&gt;
&lt;p&gt;https://www.jginyue.com.cn/index/Article/show/cat_id/22/id/176&lt;br /&gt;
发现更新12F 2025-08-30，也许是这主板bios更新最后一舞了吧，依旧D4版本直接刷&lt;br /&gt;
D4D5通用的bios，都是两边的选项都有，XMP是板子太烂了，能不能开全看运气&lt;/p&gt;
</content:encoded></item><item><title>OpenWrt IPv6改全中继模式</title><link>https://iiii.fun/posts/openwrt/openwrt-ipv6-relay/</link><guid isPermaLink="true">https://iiii.fun/posts/openwrt/openwrt-ipv6-relay/</guid><description>将OpenWrt的IPv6配置改为全中继模式，实现IPv6直通</description><pubDate>Wed, 19 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;lan关于ipv6的设定全改中继模式&lt;br /&gt;
编辑/etc/config/dhcp&lt;br /&gt;
在wan下添加以下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;option ra &apos;relay&apos;                        
option dhcpv6 &apos;relay&apos;  
option ndp &apos;relay&apos;    
option master &apos;1&apos;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Debian挂载新硬盘</title><link>https://iiii.fun/posts/linux/debian-new-disk/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/debian-new-disk/</guid><description>在Debian系统中格式化并持久挂载新硬盘，包含fstab配置注意事项</description><pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;格式化&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;# 将 /dev/sdb 改成你自己的磁盘
fdisk /dev/sdb
# 依次输入：g -&amp;gt; n -&amp;gt; 一直回车 -&amp;gt; w
sudo mkfs.xfs /dev/sdb1
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;添加系统挂载&lt;/h1&gt;
&lt;p&gt;首先通过以下命令查看想要挂载的磁盘 UUID：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ls -alh /dev/disk/by-uuid/
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; 一定不要使用 &lt;code&gt;/dev/sdx&lt;/code&gt; 或者 &lt;code&gt;/dev/nvmexxx&lt;/code&gt; 这种方式，就算是虚拟机环境下，磁盘也会窜来窜去导致无法挂载。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;编辑 &lt;code&gt;/etc/fstab&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/fstab
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;添加如下一行（UUID 替换为实际值）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/data ext4 defaults,nofail 0 1
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其中 &lt;code&gt;nofail&lt;/code&gt; 参数非常重要，加了这个参数可以保证磁盘出问题也可以正常开机。&lt;/p&gt;
&lt;p&gt;最后执行：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;systemctl daemon-reload
mount -a
mount
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;验证挂载效果，记得新建挂载的目标文件夹。&lt;/p&gt;
</content:encoded></item><item><title>Debian安装NVIDIA GRID vGPU驱动</title><link>https://iiii.fun/posts/linux/debian-nvidia-grid-driver/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/debian-nvidia-grid-driver/</guid><description>在Debian上安装NVIDIA GRID驱动，包括Secure Boot配置和驱动安装步骤</description><pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;bios配置&lt;/h1&gt;
&lt;p&gt;开机按esc进bios Device Manager-&amp;gt;Secure Boot Configuration-&amp;gt;Attempt Secure Boot 按回车把[X]去掉&lt;br /&gt;
F10保存后重启&lt;/p&gt;
&lt;h1&gt;驱动安装&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;apt install build-* dkms
apt install linux-headers-$(uname -r)
chmod +x *.run
./NVIDIA-Linux-x86_64-535.230.02-grid.run
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2025/03/09/8qpAYkuGRwzPNMT.png&quot; alt=&quot;image.png&quot; /&gt;&lt;br /&gt;
完美搞定&lt;/p&gt;
</content:encoded></item><item><title>Debian部署QwQ大模型（Ollama）</title><link>https://iiii.fun/posts/linux/debian-ollama-qwq/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/debian-ollama-qwq/</guid><description>在Debian上通过Ollama部署QwQ:32b大语言模型，包括API配置和持久化运行</description><pubDate>Sun, 09 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Ollama安装&lt;/h1&gt;
&lt;p&gt;先装个Ollama&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://ollama.com/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;还是先下载下来吧&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cd /opt
proxychains curl -fsSL https://ollama.com/install.sh -o ollama_install.sh
#这里一定要加sudo，不然useradd会未找到
#这里需要代理，因为下载Linux bundle太慢了
sudo proxychains bash ollama_install.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;坐等&lt;br /&gt;
提示出&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;gt;&amp;gt;&amp;gt; The Ollama API is now available at 127.0.0.1:11434.
&amp;gt;&amp;gt;&amp;gt; Install complete. Run &quot;ollama&quot; from the command line.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;就ok了&lt;br /&gt;
&lt;strong&gt;注意，下面几个连续操作都是改变ollama.service，你可以一次配完&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;开放一下api&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/systemd/system/ollama.service
#在[Service]里面加
Environment=&quot;OLLAMA_HOST=0.0.0.0&quot;
Environment=&quot;OLLAMA_ORIGINS=*&quot;
#重启一下服务
systemctl daemon-reload
systemctl restart ollama
systemctl status ollama
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;修改模型路径&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;chown -R ollama:ollama /mnt/model
chmod -R 775 /mnt/model

#在[Service]里面加
Environment=&quot;OLLAMA_MODELS=/mnt/model&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;添加一下代理&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;#在[Service]里面加
Environment=&quot;https_proxy=192.168.40.1:7890&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;保持加载&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;#在[Service]里面加
Environment=&quot;OLLAMA_KEEP_ALIVE=-1&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;上面的方法保持效果不好，用下面的&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/systemd/system/ollama-run.service
[Unit]
Description=Ollama Run Service
After=network.target

[Service]
ExecStart=/usr/local/bin/ollama run qwq
Restart=always
User=root
WorkingDirectory=/root
Environment=&quot;PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&quot;

[Install]
WantedBy=multi-user.target

systemctl daemon-reload
systemctl enable --now ollama-run
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;安装模型&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;ollama pull qwq:32b
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;curl http://localhost:11434/api/generate -d &apos;{&quot;model&quot;: &quot;qwq&quot;, &quot;keep_alive&quot;: -1}&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;ok，pull下来的话就可以使用了&lt;/p&gt;
&lt;h1&gt;调整layer&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;#在[Service]里面加
Environment=&quot;OLLAMA_GPU_LAYER=cuda&quot;
Environment=&quot;CUDA_VISIBLE_DEVICES=GPU-6b53d422-019c-11f0-b3ec-82c4d041ae01&quot;
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Linux笔电服务器配置低电量自动关机与电池保护</title><link>https://iiii.fun/posts/linux/linux-laptop-battery-server/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-laptop-battery-server/</guid><description>为作为服务器使用的Linux笔记本配置低电量自动关机脚本和TLP电池保护</description><pubDate>Sat, 08 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;低电量关机&lt;/h1&gt;
&lt;p&gt;文中使用的脚本为电池量低于40%进行关机，处于充电状态取消关机&lt;/p&gt;
&lt;p&gt;部署脚本如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /opt/batterydown.sh
nano /usr/lib/systemd/system/batterydown.service
systemctl daemon-reload
systemctl enable --now batterydown.service
systemctl status batterydown.service
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;sh文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#!/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin
_shut=false
sleep 20

while :
do
    # 获取电池电量
    capacity=$(cat /sys/class/power_supply/BAT0/capacity)

    # 获取电池状态
    status=$(cat /sys/class/power_supply/BAT0/status)
    echo &quot;Battery Status: $status&quot;
    echo &quot;Battery Capacity: $capacity%&quot;

    if [[ $capacity -lt 40 ]]; then
        if [[ $status != &quot;Full&quot; &amp;amp;&amp;amp; $status != &quot;Charging&quot; ]]; then
            echo &quot;Battery capacity is below 40%. Going down!&quot;
            if [ &quot;$_shut&quot; == &quot;false&quot; ]; then
                echo &quot;Going Down!!!!&quot;
                shutdown -h +10
            fi
            _shut=true
        else
            if $_shut; then
                echo &quot;Battery is Charging. Canceling shutdown!&quot;
                shutdown -c
                _shut=false
            fi
        fi
    else
        if $_shut; then
            echo &quot;Battery capacity is above 40%. Canceling shutdown!&quot;
            shutdown -c
            _shut=false
        fi
    fi

    sleep 20
done
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;service文件：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=batterydown Service

[Service]
User=root
ExecStart=/bin/bash /opt/batterydown.sh

[Install]
WantedBy=default.target
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;电池保护&lt;/h1&gt;
&lt;p&gt;先装一下相关的软件包&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt install tlp
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/tlp.conf
#找到下面两行进行取消注释和修改
START_CHARGE_THRESH_BAT0=50
STOP_CHARGE_THRESH_BAT0=80
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;systemctl restart tlp
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;状态查看&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;tlb-stat -b
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>PVE安装飞牛OS（fnOS）</title><link>https://iiii.fun/posts/pve/pve-fnos-install/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-fnos-install/</guid><description>在Proxmox VE虚拟机中安装飞牛OS NAS系统</description><pubDate>Sat, 08 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;使用4c 4G内存+32G硬盘的分配方式&lt;br /&gt;
机型q35 uefi&lt;/p&gt;
&lt;h1&gt;bios配置&lt;/h1&gt;
&lt;p&gt;开机按esc进bios Device Manager-&amp;gt;Secure Boot Configuration-&amp;gt;Attempt Secure Boot 按回车把[X]去掉&lt;br /&gt;
F10保存后重启&lt;/p&gt;
&lt;h1&gt;系统安装&lt;/h1&gt;
&lt;p&gt;直接iso进了图形点点点 没什么好说的&lt;br /&gt;
安装后默认端口: 5666&lt;/p&gt;
&lt;h1&gt;系统配置&lt;/h1&gt;
&lt;p&gt;web中打开ssh&lt;br /&gt;
进入ssh进行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt update
apt upgrade -y
apt install qemu-guest-agent
reboot
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;其他的就web随便配吧，好像没什么需要特别注意的&lt;/p&gt;
</content:encoded></item><item><title>PVE初次安装后必备配置</title><link>https://iiii.fun/posts/pve/pve-initial-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-initial-setup/</guid><description>新安装Proxmox VE后的必要配置，包括磁盘挂载、换源、IOMMU、IPv6、去除local-lvm等</description><pubDate>Tue, 04 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;刚安装的新鲜PVE，都需要进行一番配置&lt;/p&gt;
&lt;h2&gt;磁盘挂载&lt;/h2&gt;
&lt;h3&gt;添加系统挂载&lt;/h3&gt;
&lt;p&gt;先挂载一块硬盘，以便还原一些数据&lt;br /&gt;
首先通过 &lt;code&gt;ls /dev/disk/by-id/&lt;/code&gt; 查看想要挂载的磁盘id&lt;br /&gt;
&lt;strong&gt;一定不要使用/dev/sdx或者/dev/nvmexxx这种方式，就算是虚拟机环境下，磁盘也会窜来窜去导致无法挂载&lt;/strong&gt;&lt;br /&gt;
下一步就是&lt;code&gt;nano /etc/fstab&lt;/code&gt;，写入挂载信息了，为什么不用 vim？因为刚装的PVE没有&lt;br /&gt;
我的是 &lt;code&gt;/dev/disk/by-id/nvme-GLOWAY_YCT2TNVMe-M.2_80_M23041112171-part1 /mnt/gw2t ext4 defaults,nofail 0 1&lt;/code&gt; 添加到行尾即可&lt;br /&gt;
其中比较重要的是&lt;code&gt;nofail&lt;/code&gt;，加了这个参数可以保证磁盘出问题也可以开机&lt;br /&gt;
后续进行&lt;code&gt;systemctl daemon-reload&lt;/code&gt; &lt;code&gt;mount -a&lt;/code&gt; 验证挂载效果，记得新建挂载的文件夹。。&lt;/p&gt;
&lt;h3&gt;添加到PVE存储&lt;/h3&gt;
&lt;p&gt;然后去数据中心存储里添加一个目录类型的，ID随便，文件夹就填自己挂载的，内容全选上&lt;/p&gt;
&lt;h2&gt;换源&lt;/h2&gt;
&lt;p&gt;删除系统自带的所有源&lt;br /&gt;
&lt;code&gt;rm /etc/apt/sources.list.d/*&lt;/code&gt;&lt;br /&gt;
然后&lt;br /&gt;
&lt;code&gt;nano /etc/apt/sources.list&lt;/code&gt;&lt;br /&gt;
写入以下内容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;deb http://mirrors.ustc.edu.cn/debian/ trixie main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ trixie-updates main non-free contrib
deb http://mirrors.ustc.edu.cn/debian/ trixie-backports main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ trixie main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ trixie-updates main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian/ trixie-backports main non-free contrib
deb http://mirrors.ustc.edu.cn/debian-security/ trixie-security main non-free contrib
deb-src http://mirrors.ustc.edu.cn/debian-security/ trixie-security main non-free contrib

#PVE
deb https://mirrors.ustc.edu.cn/proxmox/debian trixie  pve-no-subscription
deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-squid trixie  main
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;安装点小软件&lt;/h2&gt;
&lt;p&gt;安装前可能DNS不通，先通过PVE面板把DNS设置为&lt;code&gt;223.5.5.5&lt;/code&gt;再进行&lt;br /&gt;
&lt;code&gt;apt update&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;apt upgrade -y&lt;/code&gt;&lt;br /&gt;
请注意：&lt;strong&gt;upgrade可能会导致多网卡机器网卡对换，upgrade后不要重启，后面会说怎么修正&lt;/strong&gt;&lt;br /&gt;
安装一些PVE必备的玩意 &lt;code&gt;apt install vim libgl1 libegl1&lt;/code&gt;&lt;br /&gt;
安装一些我平常用的 &lt;code&gt;apt install htop glances net-tools iotop btop screen&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;配置IOMMU&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;nano /etc/default/grub&lt;/code&gt;&lt;br /&gt;
更改&lt;code&gt;GRUB_CMDLINE_LINUX_DEFAULT&lt;/code&gt;，在quiet后写入&lt;br /&gt;
intel CPU:&lt;br /&gt;
&lt;code&gt;intel_iommu=on iommu=pt&lt;/code&gt;&lt;br /&gt;
AMD CPU:&lt;br /&gt;
&lt;code&gt;amd_iommu=on iommu=pt&lt;/code&gt;&lt;br /&gt;
然后 &lt;code&gt;nano /etc/modules&lt;/code&gt;&lt;br /&gt;
添加&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;跑一下&lt;code&gt;update-initramfs -u -k all&lt;/code&gt; 和 &lt;code&gt;update-grub&lt;/code&gt;&lt;br /&gt;
重启即可配置完成&lt;/p&gt;
&lt;p&gt;如果遇到iommu分组问题，内核参数还需要添加&lt;code&gt;pcie_acs_override=downstream,multifunction&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;开启IPV6&lt;/h2&gt;
&lt;p&gt;在 /etc/network/interfaces 添加如下内容重启后启用 ipv6&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;iface vmbr0 inet6 dhcp
    accept_ra 2
    request_prefix 1
&lt;/code&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;code&gt;net.ipv6.conf.vmbr0.accept_ra=2
net.ipv6.conf.vmbr0.autoconf=1
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;锁定DUID&lt;/h2&gt;
&lt;p&gt;在&lt;code&gt;/etc/dhcp/dhclient.conf&lt;/code&gt;添加&lt;br /&gt;
长的：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;interface &quot;vmbr0&quot; {
    send dhcp6.client-id 00:01:00:01:2f:ef:8b:a6:00:e0:1f:6d:0e:ba;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;短的（比如MAC地址是：00:e0:4c:76:cd:b4 2a:14:4d:04:24:b8）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;interface &quot;vmbr0&quot; {
    send dhcp6.client-id 2f:ef:91:03:2a:14:4d:04:24:b8;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;修改后重启生效&lt;/p&gt;
&lt;h2&gt;去除local-lvm&lt;/h2&gt;
&lt;p&gt;卸载数据池&lt;br /&gt;
&lt;code&gt;lvchange -an /dev/pve/data&lt;/code&gt;&lt;br /&gt;
删除数据池&lt;br /&gt;
&lt;code&gt;lvremove /dev/pve/data&lt;/code&gt;&lt;br /&gt;
扩展根池&lt;br /&gt;
&lt;code&gt;lvextend -r -l +100%FREE /dev/pve/root&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;然后在数据中心中调整存储，移除local-lvm，调整local可以存储全部类型&lt;/p&gt;
&lt;h2&gt;永久关闭SWAP&lt;/h2&gt;
&lt;p&gt;编辑&lt;code&gt;/etc/fstab&lt;/code&gt;，注释掉swap对应行即可&lt;/p&gt;
&lt;h2&gt;绑定网卡（防止多网卡跳序）&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;nano /etc/systemd/network/90-eno0.link&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Match]
MACAddress=00:e0:1f:6d:0e:ba
[Link]
Name=eno0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;pve9的方法（在&lt;code&gt;/usr/local/lib/systemd/network/&lt;/code&gt;下添加link文件）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# setup by the Proxmox installer.
[Match]
MACAddress=2a:14:4d:04:24:b8
Type=ether

[Link]
Name=nic0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;注意：一定不要叫ethx，会冲突&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;CPU调度调整（省电模式）&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;apt install linux-cpupower
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 &lt;code&gt;/etc/systemd/system/cpupower.service&lt;/code&gt; 写入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Unit]
Description=Set CPU Frequency Governor

[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower -c all frequency-set -g powersave
ExecStop=/usr/bin/cpupower -c all frequency-set -g performance
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;code&gt;systemctl enable --now cpupower&lt;/code&gt;以启用（注意：测试发现省电模式会让服务器变卡）&lt;/p&gt;
</content:encoded></item><item><title>PVE Intel核显SR-IOV虚拟化配置</title><link>https://iiii.fun/posts/pve/pve-intel-sriov/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-intel-sriov/</guid><description>在Proxmox VE上配置Intel核显SR-IOV，实现多虚拟机共享核显GPU直通</description><pubDate>Tue, 04 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;使用项目 https://github.com/strongtz/i915-sriov-dkms/&lt;/p&gt;
&lt;h2&gt;kernel配置&lt;/h2&gt;
&lt;p&gt;先查一下kernel列表，改到6.8.太高了不兼容&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;proxmox-boot-tool kernel list

apt-cache search pve-kernel

#准备装6.8
apt install proxmox-headers-6.8 proxmox-kernel-6.8

proxmox-boot-tool kernel pin 6.5.13-5-pve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果你的就是6.8，那进行以下操作&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;#装header
apt install pve-headers-$(uname -r)
proxmox-boot-tool kernel list
#根据列出的信息进行以下操作
proxmox-boot-tool kernel pin 6.8.12-8-pve
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;切换完内核重启一次&lt;/p&gt;
&lt;h2&gt;grub配置&lt;/h2&gt;
&lt;p&gt;加一下cmdline&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;vim /etc/default/grub
#GRUB_CMDLINE_LINUX_DEFAULT
#加入intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;安装&lt;/h2&gt;
&lt;p&gt;下载本体&lt;br /&gt;
&lt;code&gt;wget -O /tmp/i915-sriov-dkms_2025.02.03_amd64.deb &quot;https://github.com/strongtz/i915-sriov-dkms/releases/download/2025.02.03/i915-sriov-dkms_2025.02.03_amd64.deb&quot;&lt;/code&gt;&lt;br /&gt;
进行基础安装操作&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt install build-* dkms
dpkg -i /tmp/i915-sriov-dkms_2025.02.03_amd64.deb
#完成后
update-initramfs -u
update-grub
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;配置sysfutils&lt;/h2&gt;
&lt;pre&gt;&lt;code&gt;apt install sysfsutils
echo &quot;devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7&quot; &amp;gt; /etc/sysfs.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;完成后重启即可&lt;/p&gt;
&lt;h2&gt;完成验证&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;lspci | grep VGA&lt;/code&gt;输出如下为正常&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;00:02.0 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c)
00:02.1 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c)
...
00:02.7 VGA compatible controller: Intel Corporation Alder Lake-S GT1 [UHD Graphics 730] (rev 0c)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;注意事项&lt;/h2&gt;
&lt;p&gt;后面开虚拟机的时候cpu一定要选host模式，分配vgpu要在高级选上pcie，主显卡也要打勾，一定不要选全部功能，不能错选根设备00:02.0!&lt;/p&gt;
&lt;p&gt;因为Intel的驱动将pciid固定到02.0，我们使用02.1/2/3等sriov核显时，不能被正常驱动，即便是直通的sriov核显中勾选了PCI-Express显示正常驱动，但是也会因为pciid的原因导致一些软件工作不正常，比如流媒体Jellyfin Emby等无法硬解和转码。&lt;/p&gt;
&lt;p&gt;我们需要在虚拟机conf中把直通的核显指定地址&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;nano /etc/pve/qemu-server/虚拟机序号.conf
添加：
args: -set device.hostpci0.addr=02.0 -set device.hostpci0.x-igd-gms=0x2
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;卸载：&lt;code&gt;dkms remove i915-sriov-dkms/6.1&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;建议搭配&lt;/h2&gt;
&lt;p&gt;https://github.com/nomi-san/parsec-vdd&lt;br /&gt;
https://github.com/HaliComing/parsec-vdd-cli&lt;br /&gt;
添加开机启动：&lt;code&gt;shell:startup&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>PVE安装NVIDIA vGPU驱动</title><link>https://iiii.fun/posts/pve/pve-nvidia-vgpu/</link><guid isPermaLink="true">https://iiii.fun/posts/pve/pve-nvidia-vgpu/</guid><description>在Proxmox VE主机和虚拟机中安装NVIDIA vGPU驱动（以P100为例）</description><pubDate>Tue, 04 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;去 https://yun.yangwenqing.com/ESXI_PVE/vGPU/NVIDIA/16.5 下载&lt;br /&gt;
主机安装这个&lt;br /&gt;
&lt;a href=&quot;https://yun.yangwenqing.com/ESXI_PVE/vGPU/NVIDIA/16.5/NVIDIA-Linux-x86_64-535.161.05-vgpu-kvm-custom.run&quot;&gt;NVIDIA-Linux-x86_64-535.161.05-vgpu-kvm-custom.run&lt;/a&gt;&lt;br /&gt;
安装过程会让你关闭nouveau，确认然后重启一次就好&lt;/p&gt;
&lt;p&gt;虚拟机安装：&lt;br /&gt;
https://yun.yangwenqing.com/ESXI_PVE/vGPU/NVIDIA/16.5/NVIDIA-GRID-Linux-KVM-535.161.05-535.161.08-538.46/Guest_Drivers/538.46_grid_win10_win11_server2019_server2022_dch_64bit_international.exe&lt;/p&gt;
&lt;p&gt;我的显卡是P100，太简单了，没什么好说的&lt;br /&gt;
我用17.5根本跑不起来&lt;br /&gt;
16.9也能用 https://yun.yangwenqing.com/ESXI_PVE/vGPU/NVIDIA/16.9&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt install pve-headers-$(uname -r)&lt;/code&gt;&lt;/p&gt;
</content:encoded></item><item><title>Linux 实用小技巧合集</title><link>https://iiii.fun/posts/linux/linux-tips/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/linux-tips/</guid><description>Linux日常操作小技巧：GPU监控、vim乱码修复、/tmp扩容、sudoer配置、Intel GPU工具</description><pubDate>Mon, 13 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Intel GPU 监控&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;apt install intel-gpu-tools
intel_gpu_top
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;vim 中文乱码修复&lt;/h1&gt;
&lt;p&gt;编辑 &lt;code&gt;~/.vimrc&lt;/code&gt;，加入以下内容：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;set termencoding=utf-8
set encoding=utf8
set fileencodings=utf8,ucs-bom,gbk,cp936,gb2312,gb18030
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;/tmp 临时扩容&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;sudo mount -o remount,size=16G /tmp
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;添加 sudoer 免密&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;echo &quot;youruser ALL=NOPASSWD:ALL&quot; &amp;gt; /etc/sudoers.d/youruser
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Windows 兼容应用商店 Python 冲突&lt;/h1&gt;
&lt;p&gt;Windows 下如果安装了 Python 但 &lt;code&gt;python3&lt;/code&gt; 找不到，检查并删除：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;C:\Users\&amp;lt;用户名&amp;gt;\AppData\Local\Microsoft\WindowsApps\python.exe
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;该路径下的 python 是应用商店的跳转占位符，删除后系统将使用真实安装的 Python。&lt;/p&gt;
</content:encoded></item><item><title>群晖 NAS 实用配置指南</title><link>https://iiii.fun/posts/nas/synology-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/nas/synology-setup/</guid><description>群晖NAS基础配置：代理设置、NFS配置、黑群晖RR引导安装</description><pubDate>Mon, 13 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;给 Container Manager（Docker）添加代理&lt;/h1&gt;
&lt;p&gt;适用于 DSM 7.2.1 及以上版本。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo mkdir -p /etc/systemd/system/pkg-ContainerManager-dockerd.service.d
sudo vim /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;写入：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[Service]
Environment=&quot;HTTP_PROXY=http://&amp;lt;proxy-ip&amp;gt;:7890&quot;
Environment=&quot;HTTPS_PROXY=http://&amp;lt;proxy-ip&amp;gt;:7890&quot;
Environment=&quot;NO_PROXY=localhost,127.0.0.0/8,192.168.0.0/16,172.16.0.0/12,10.0.0.0/8&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;重载并验证：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl daemon-reload
systemctl show --property=Environment pkg-ContainerManager-dockerd.service
&lt;/code&gt;&lt;/pre&gt;
&lt;hr /&gt;
&lt;h1&gt;配置 NFS 共享&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;控制面板 → 文件服务 → 关闭其他协议，仅开启 NFS（版本 4.1）&lt;/li&gt;
&lt;li&gt;控制面板 → 共享文件夹 → NFS 权限 → 添加，填写客户端 IP，用户映射为 admin，全部勾选&lt;/li&gt;
&lt;li&gt;配置 IPv6：网络 → 网络界面 → 编辑 局域网1 → IPv6 → 自动，设置为默认网关&lt;/li&gt;
&lt;/ol&gt;
&lt;hr /&gt;
&lt;h1&gt;黑群晖 RR 引导（PVE 安装）&lt;/h1&gt;
&lt;p&gt;项目：https://github.com/RROrg/rr&lt;/p&gt;
&lt;p&gt;在 PVE 中一键创建黑群晖虚拟机：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl -fsSL https://github.com/RROrg/rr/raw/refs/heads/main/scripts/pve.sh | bash -s -- --bltype usb --img /var/lib/vz/template/iso/rr.img --onboot 0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;参数说明：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;参数&lt;/th&gt;
&lt;th&gt;说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--onboot &amp;lt;0|1&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;是否开机自启，默认1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--efi &amp;lt;0|1&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;是否启用UEFI，默认1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--bltype &amp;lt;sata|usb|nvme&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;引导盘类型，默认sata&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;--img &amp;lt;path&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;本地镜像路径&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;strong&gt;配置注意事项：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;修改完记得调整内存和 CPU 数量&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;不要删除未使用的磁盘&lt;/strong&gt;，那是 USB 引导盘用的&lt;/li&gt;
&lt;li&gt;显卡配置成 VirtIO-GPU，否则缩略图生成会卡顿&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;升级注意：&lt;/strong&gt; 使用 Web 界面上传升级包，不要直接删除磁盘，否则会丢失系统。&lt;/p&gt;
&lt;h2&gt;初始配置清单&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;开启 2FA&lt;/li&gt;
&lt;li&gt;上传自定义证书（设置 → 安全性 → 证书）&lt;/li&gt;
&lt;li&gt;安装常用套件：存储空间分析器、Audio Station、Cloud Sync、Download Station、Synology Photos、ddns-go&lt;/li&gt;
&lt;li&gt;卸载 Active Insight&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;关于 LKM 模式选择&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;优先官方模块&lt;/strong&gt;：较卡，更吃内存，会报错&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;dev LKM&lt;/strong&gt;：正常，感觉不出区别（推荐）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;直接启动&lt;/strong&gt;：开机略快，少一个过程&lt;/li&gt;
&lt;/ul&gt;
</content:encoded></item><item><title>TShock 泰拉瑞亚服务器部署</title><link>https://iiii.fun/posts/terraria/tshock-deploy/</link><guid isPermaLink="true">https://iiii.fun/posts/terraria/tshock-deploy/</guid><description>TShock泰拉瑞亚服务器的安装、配置和Docker部署方法</description><pubDate>Mon, 13 Jan 2025 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;安装&lt;/h1&gt;
&lt;p&gt;下载：https://github.com/Pryaxis/TShock/releases&lt;/p&gt;
&lt;p&gt;解压后打开 cmd，运行安装程序等待完成，然后正常流程创建一个世界，最后 stop 关掉。&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;TShock.Server.exe -ip 0.0.0.0 -world Worlds/your-world.wld -lang zh_CN -worldpath ./Worlds
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;命令行参数参考：https://tshock.readme.io/docs/command-line-parameters&lt;/p&gt;
&lt;h1&gt;Docker 部署&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;docker-compose.yml&lt;/code&gt;：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;services:
  terraria:
    build:
      context: https://github.com/Pryaxis/TShock.git
      args:
        TARGETPLATFORM: linux/amd64
    container_name: terraria
    restart: on-failure
    volumes:
      - &quot;./ServerPlugins/:/server/ServerPlugins&quot;
      - &quot;./plugintshock/:/server/tshock&quot;
      - &quot;./tshock/:/tshock&quot;
      - &quot;./worlds:/worlds&quot;
      - &quot;./logs:/tshock/logs&quot;
      - &quot;/etc/localtime:/etc/localtime:ro&quot;
    ports:
      - &quot;7777:7777&quot;
    command: -world /worlds/your-world.wld -maxplayers 20 -autocreate 3 -pass &amp;lt;server-password&amp;gt; -worldevil crimson -difficulty 2
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt; &lt;code&gt;ServerPlugins&lt;/code&gt; 才是放插件的地方，官方的 &lt;code&gt;plugins&lt;/code&gt; 目录会出问题。挂载前要先通过 docker 把原有的 &lt;code&gt;ServerPlugins&lt;/code&gt; 中的文件复制出来。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;常用 docker 命令：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker attach terraria
docker exec -it terraria bash
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;配套数据库&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;services:
  trdb:
    image: mariadb:lts
    container_name: trdb
    restart: always
    ports:
      - &quot;127.0.0.1:3306:3306&quot;
    volumes:
      - ./mariadb-data:/var/lib/mysql
      - ./mariadb-conf:/etc/mysql
      - /run/mysqld:/run/mysqld
    environment:
      MARIADB_ROOT_PASSWORD: &amp;lt;db-root-password&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;配置文件说明&lt;/h1&gt;
&lt;p&gt;配置参考：https://github.com/Pryaxis/TShock/wiki/Configuration-file-setup&lt;/p&gt;
&lt;p&gt;关键配置项（&lt;code&gt;config.json&lt;/code&gt;）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;Settings&quot;: {
    &quot;ServerPassword&quot;: &quot;&amp;lt;server-password&amp;gt;&quot;,
    &quot;ServerPort&quot;: 7777,
    &quot;MaxSlots&quot;: 8,
    &quot;ServerName&quot;: &quot;My Server&quot;,
    &quot;UseServerName&quot;: true,
    &quot;LogPath&quot;: &quot;/logs&quot;,
    &quot;DisableTombstones&quot;: true,
    &quot;ForceXmas&quot;: true,
    &quot;ForceHalloween&quot;: true,
    &quot;AllowAllowedGroupsToSpawnBannedItems&quot;: true,
    &quot;RespawnSeconds&quot;: 1,
    &quot;RespawnBossSeconds&quot;: 1,
    &quot;RequireLogin&quot;: true,
    &quot;AllowLoginAnyUsername&quot;: false,
    &quot;StorageType&quot;: &quot;mysql&quot;,
    &quot;MySqlHost&quot;: &quot;127.0.0.1:3306&quot;,
    &quot;MySqlDbName&quot;: &quot;tshock&quot;,
    &quot;MySqlUsername&quot;: &quot;root&quot;,
    &quot;MySqlPassword&quot;: &quot;&amp;lt;db-password&amp;gt;&quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;创建 &lt;code&gt;setup.lock&lt;/code&gt; 文件可禁止重新进入安装流程。&lt;/p&gt;
&lt;h1&gt;MOTD 配置&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;motd.txt&lt;/code&gt; 示例：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;欢迎来到 [c/ffff00:%map%] 服务器。
[c/FFFFFF:在线玩家 (%onlineplayers%/%serverslots%):] [c/FFFF00:%players%]
输入 [c/55D284:%specifier%]help 查看命令列表。
初次进入请输入 /register &amp;lt;密码&amp;gt; 进行注册
输入 /login &amp;lt;密码&amp;gt; 进行登入
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;服务端字符角色配置（SSC）&lt;/h1&gt;
&lt;p&gt;&lt;code&gt;sscconfig.json&lt;/code&gt;（开启并给初始礼物）：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;{
  &quot;Settings&quot;: {
    &quot;Enabled&quot;: true,
    &quot;ServerSideCharacterSave&quot;: 5,
    &quot;StartingInventory&quot;: [
      { &quot;netID&quot;: 1869, &quot;prefix&quot;: 0, &quot;stack&quot;: 999 }
    ]
  }
}
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>禁止ntQQ自动更新</title><link>https://iiii.fun/posts/daily/disable-ntqq-update/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/disable-ntqq-update/</guid><description>通过替换文件的方式阻止ntQQ自动更新</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;找到&lt;code&gt;C:\Users\用户名\AppData\Roaming\Tencent\QQ\Temp\NTQQDownLoadCache&lt;/code&gt;把&lt;code&gt;NTQQCache.exe&lt;/code&gt;替换掉，并且把属性改成只读&lt;/p&gt;
</content:encoded></item><item><title>Docker部署BlessingSkin皮肤站</title><link>https://iiii.fun/posts/docker/docker-blessingskin/</link><guid isPermaLink="true">https://iiii.fun/posts/docker/docker-blessingskin/</guid><description>使用Docker Compose部署BlessingSkin Minecraft皮肤站</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;参考&lt;br /&gt;
https://neko.lzc256.com/notes/9iyoemzakdft46f1&lt;/p&gt;
&lt;p&gt;先安装docker，参考 &lt;a href=&quot;/posts/docker-install/&quot;&gt;Docker安装（Debian/Ubuntu）&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;整个文件&lt;code&gt;docker-compose.yml&lt;/code&gt;，内容如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;services:
  blessingskin:
    image: lzc256/blessingskin:6.0.2
    container_name: blessingskin
    restart: always
    ports:
      - 8080:80
    volumes:
      - ./storage:/app/storage
      - ./app:/app
    command:
       - sh
       - -c 
       - |
            mkdir -p /app/storage/framework/sessions /app/storage/framework/views /app/storage/framework/cache
            touch /app/storage/sqlite.db
            chown -R www-data:www-data /app; chmod -R 700 /app
            sed -i &apos;s/;extension=pdo_mysql/extension=pdo_mysql/g&apos; /usr/local/etc/php/php.ini-production
            sed -i &apos;s/;extension=mysqli/extension=mysqli/g&apos; /usr/local/etc/php/php.ini-production
            docker-php-entrypoint apache2-foreground
    networks:
      - blessingskin
  mysqldb:
    image: mysql:8.0.32
    container_name: blessingskin-mysql
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=onlyForTestRoot
      - MYSQL_USER=blessingskin
      - MYSQL_PASSWORD=onlyForTest
      - MYSQL_DATABASE=blessingskin
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - blessingskin
networks:
  blessingskin:
    external: false
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如果需要可以进入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker exec -it 容器ID /bin/bash
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Git私钥导入与初始配置</title><link>https://iiii.fun/posts/daily/git-ssh-gpg-setup/</link><guid isPermaLink="true">https://iiii.fun/posts/daily/git-ssh-gpg-setup/</guid><description>Git SSH私钥配置、GPG签名配置及用户信息设置</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;去用户主文件夹下，创建 &lt;code&gt;.ssh&lt;/code&gt; 文件夹&lt;br /&gt;
创建&lt;code&gt;config&lt;/code&gt;文件，内容如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Host github.com
    User git
    HostName ssh.github.com
    Port 443
    IdentityFile ~/.ssh/你的密钥文件名
Host *
    IdentityFile ~/.ssh/你的密钥文件名
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后根据IdentityFile中你所填的密钥文件名，把密钥放进去就行&lt;br /&gt;
如果你在用linux，密钥要进行&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chmod 600 密钥文件名
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;git第一次配置用户信息：&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;git config --global user.email 邮箱
git config --global user.name 名字
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;gpg导入&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;gpg --import ./gpg文件名
git config --global user.signingkey gpgkeyid
git config --global commit.gpgsign true
git config --global user.email 邮箱
git config --list
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>MuMu 模拟器安装 Magisk 和 LSPosed</title><link>https://iiii.fun/posts/game/mumu-magisk-lsposed/</link><guid isPermaLink="true">https://iiii.fun/posts/game/mumu-magisk-lsposed/</guid><description>在MuMu模拟器中安装Magisk和LSPosed进行逆向分析</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Magisk&lt;/h1&gt;
&lt;p&gt;MuMu 官方教程（Kistun Magisk 版本）：&lt;br /&gt;
https://mumu.163.com/help/20240202/35044_1136675.html&lt;/p&gt;
&lt;h1&gt;LSPosed&lt;/h1&gt;
&lt;p&gt;下载 LSPosed，复制到模拟器内安装：&lt;br /&gt;
https://github.com/LSPosed/LSPosed/releases/tag/v1.9.2&lt;/p&gt;
</content:encoded></item><item><title>AutoPCR部署</title><link>https://iiii.fun/posts/linux/autopcr-deploy/</link><guid isPermaLink="true">https://iiii.fun/posts/linux/autopcr-deploy/</guid><description>在Linux上部署AutoPCR（公主连结自动化工具）</description><pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;先进行apt的基础安装&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;apt update
apt install python3 pip python3.11-venv pkg-config libssl-dev git make build-essential curl proxychains
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;创建并切换到autopcr账户，进行一些基础信息配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;adduser autopcr
su autopcr
cd
git clone https://github.com/cc004/autopcr.git
cd autopcr
python3 -m venv .venv

echo &apos;export RUSTUP_DIST_SERVER=&quot;https://rsproxy.cn&quot;&apos; &amp;gt;&amp;gt; ~/.bashrc
echo &apos;export RUSTUP_UPDATE_ROOT=&quot;https://rsproxy.cn/rustup&quot;&apos; &amp;gt;&amp;gt; ~/.bashrc
source ~/.bashrc
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;安装cargo和rustc&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;curl --proto &apos;=https&apos; --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
source &quot;$HOME/.cargo/env&quot;

cat &amp;gt; ~/.cargo/config &amp;lt;&amp;lt; EOF
[source.crates-io]
replace-with = &apos;rsproxy-sparse&apos;
[source.rsproxy]
registry = &quot;https://rsproxy.cn/crates.io-index&quot;
[source.rsproxy-sparse]
registry = &quot;sparse+https://rsproxy.cn/index/&quot;
[registries.rsproxy]
index = &quot;https://rsproxy.cn/crates.io-index&quot;
[net]
git-fetch-with-cli = true
EOF

rustc --version
cargo --version
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;进行autopcr的基础配置&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;proxychains .venv/bin/pip3 install -r requirements.txt

.venv/bin/python3 _download_web.py
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;切换回root创建一个服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cat &amp;gt; /usr/lib/systemd/system/autopcr.service &amp;lt;&amp;lt; EOF
[Unit]
Description=autopcr
After=network.target

[Service]
User=autopcr
ExecStart=bash /home/autopcr/autopcrstart.sh
TimeoutSec=2

[Install]
WantedBy=default.target
EOF

cat &amp;gt; /home/autopcr/autopcrstart.sh &amp;lt;&amp;lt; EOF
#!/bin/bash
cd /home/autopcr/autopcr
git pull
.venv/bin/python3 _download_web.py
.venv/bin/python _httpserver_test.py
EOF
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;最后的访问地址为&lt;br /&gt;
&lt;code&gt;:13200/daily/login&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;更新&lt;/h2&gt;
&lt;p&gt;切换到autopcr用户运行如下命令&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo systemctl stop autopcr
cd ~/autopcr
proxychains git pull
proxychains .venv/bin/python3 _download_web.py
sudo systemctl start autopcr
&lt;/code&gt;&lt;/pre&gt;
</content:encoded></item><item><title>Ventoy移动硬盘VHD多系统启动-基础篇</title><link>https://iiii.fun/posts/ventoy/ventoy-vhd-multiboot-basics/</link><guid isPermaLink="true">https://iiii.fun/posts/ventoy/ventoy-vhd-multiboot-basics/</guid><description>使用Ventoy配置移动硬盘实现VHD多系统启动，包括分区规划、VHD创建和插件配置</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;基础准备&lt;/h1&gt;
&lt;p&gt;下载ventoy &lt;a href=&quot;https://www.ventoy.net/cn/download.html&quot;&gt;https://www.ventoy.net/cn/download.html&lt;/a&gt;&lt;br /&gt;
配置后再进行安装，分区类型选GPT，分区设置要选NTFS
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/kbKtf8xCDEh6Sqs.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/AJtQknLx6BKIqjF.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这里要配置在磁盘最后保留一段空间来压缩ventoy分区大小，最好把ventoy分区大小压缩到1~64G。&lt;br /&gt;
因为ventoy后续可以使用link来link别的分区的镜像文件，没必要把镜像文件再放到ventoy分区。&lt;br /&gt;
后部的空分区直接格式化成新NTFS分区用来后续存放VHD。&lt;br /&gt;
格式化后分区表示例&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/4wuymza6AVNqXDH.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;DG下载：&lt;a href=&quot;https://www.diskgenius.cn/download.php&quot;&gt;https://www.diskgenius.cn/download.php&lt;/a&gt;&lt;br /&gt;
添加ventoy插件&lt;br /&gt;
Windows用的 https://www.ventoy.net/cn/plugin_vhdboot.html&lt;br /&gt;
下载后如图放置，新建一个ventoy文件夹在ventoy分区放&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/AjCgBdvPGtT5IQq.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Linux不需要添加插件，但是需要下载一个ISO用于后续引导&lt;br /&gt;
参考地址 &lt;a href=&quot;https://www.ventoy.net/cn/plugin_vtoyboot.html&quot;&gt;https://www.ventoy.net/cn/plugin_vtoyboot.html&lt;/a&gt;&lt;br /&gt;
ISO下载地址 &lt;a href=&quot;https://github.com/ventoy/vtoyboot/releases&quot;&gt;https://github.com/ventoy/vtoyboot/releases&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;下载系统镜像&lt;br /&gt;
Windows：&lt;a href=&quot;https://next.itellyou.cn/&quot;&gt;https://next.itellyou.cn/&lt;/a&gt;&lt;br /&gt;
Linux：&lt;br /&gt;
Debian：&lt;a href=&quot;https://mirrors.tuna.tsinghua.edu.cn/debian-cd/current-live/amd64/iso-hybrid/&quot;&gt;https://mirrors.tuna.tsinghua.edu.cn/debian-cd/current-live/amd64/iso-hybrid/&lt;/a&gt;&lt;br /&gt;
ArchLinux：https://mirrors.tuna.tsinghua.edu.cn/archlinux/iso/&lt;/p&gt;
&lt;h1&gt;VHD从系统创建和挂载&lt;/h1&gt;
&lt;p&gt;如果你只想安装 Windows，那你可以直接参考我的 Windows 安装，后面的部分可以不看&lt;/p&gt;
&lt;p&gt;右键此电脑管理，计算机管理-&amp;gt;存储-&amp;gt;磁盘管理-&amp;gt;更多操作-&amp;gt;创建 VHD&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/u1EI4yMQRer8Gb9.png&quot; alt=&quot;image.png&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/YSXuGnMjV56UENe.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;位置直接放在我们移动硬盘的新分区里，这一步 linux 要选固定大小，windows 用动态扩展。&lt;br /&gt;
一定不要选 VHDX，我一般 256 G，大小自己任选。
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/BdzO4cv1e7HML6E.png&quot; alt=&quot;image.png&quot; /&gt;
创建完会如图直接挂载到系统&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/WMexHd98buA2XoQ.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;如果安装windows不用动，安装linux一定要先解除挂载&lt;/p&gt;
</content:encoded></item><item><title>Ventoy移动硬盘VHD多系统启动-Windows安装</title><link>https://iiii.fun/posts/ventoy/ventoy-vhd-windows/</link><guid isPermaLink="true">https://iiii.fun/posts/ventoy/ventoy-vhd-windows/</guid><description>使用WinNTSetUp在VHD中安装Windows系统，并通过Ventoy引导启动</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;已知问题&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;Windows 无法在非虚拟机环境更新&lt;/li&gt;
&lt;li&gt;Windows 可能会因为更新后导致无法启动&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;Windows系统安装&lt;/h1&gt;
&lt;h2&gt;Ventoy 配置&lt;/h2&gt;
&lt;p&gt;请参阅 &lt;a href=&quot;/posts/ventoy-vhd-multiboot-basics/&quot;&gt;Ventoy移动硬盘VHD多系统启动-基础篇&lt;/a&gt; 中的配置过程&lt;/p&gt;
&lt;h2&gt;VHD 创建&lt;/h2&gt;
&lt;p&gt;使用WinNTSetUp，没找到好的下载地址，不提供了&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/X83DqHrwC27TJYu.png&quot; alt=&quot;&quot; /&gt;
我们要选右下角的VHD，创建&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/RmNKe9hIaovVsfy.png&quot; alt=&quot;&quot; /&gt;
用这个创建win的会自动帮你分好区
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/zq3PBjDnbhOx4WS.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;系统安装&lt;/h2&gt;
&lt;p&gt;VHD创建后回到主界面选系统ISO&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/grqueOMKQ2oEaxZ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;引导选新挂的VHD的ESP
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/xXkPNty7zRndw1v.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;系统则是选新挂的虚拟磁盘主分区
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/AHsdR19t34NnyU5.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;优化调整稍微调一下
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/cxFJuZ32ON8D96i.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后直接安装&lt;br /&gt;
弹这个，不用管
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/ZRdTK7lnwMyDokU.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/iB3zFDcx4hu7P2T.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;确定，就是往下走就行了。&lt;br /&gt;
系统安装完成
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/3G5YztVFqvb81mN.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;第一次启动&lt;/h2&gt;
&lt;p&gt;来到VMWare这边&lt;br /&gt;
最新的vmware下载教程 &lt;a href=&quot;https://www.mikeroysoft.com/post/download-fusion-ws/&quot;&gt;https://www.mikeroysoft.com/post/download-fusion-ws/&lt;/a&gt;&lt;br /&gt;
创建一台虚拟机，完事直接把硬盘移除。&lt;br /&gt;
添加磁盘，选择现有磁盘&lt;br /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/VErGvR9lI5g4q7b.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;选上我们的VHD
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/ZUfTDxuLV48EnpK.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这里保持现有
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/WNjq2ksvbXDMQfB.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;添加完记得去设备管理器解挂 VHD，否则会报错&lt;br /&gt;
然后直接开机即可&lt;/p&gt;
&lt;p&gt;等待安装跑完，进入 OOBE
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/NTA9u7ewxdPGzvL.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;可以直接关机虚拟机了，也可以选择安装到你满意的状态再关&lt;/p&gt;
&lt;h2&gt;Link 到 Ventoy&lt;/h2&gt;
&lt;p&gt;关机后我们进行Link操作，打开Ventoy带的VentoyVlnk.exe&lt;br /&gt;
创建，文件选择刚才的VHD文件
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/fg2iEuKnrslPYwj.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;这个会生成在VentoyVlnk.exe所在目录，我们直接把这个文件复制到Ventoy分区就可以了。
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/PJFmWxVfci5CIQZ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;安装结束！大功告成！&lt;/p&gt;
&lt;h1&gt;已知问题解决方法&lt;/h1&gt;
&lt;h2&gt;一、VMWare 提示&quot;Disk&quot;模块启动失败&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/PaYrgJ3CE965HlK.png&quot; alt=&quot;&quot; /&gt;
这种是没取消挂载或者用了 VHDX 格式&lt;/p&gt;
&lt;p&gt;计算机管理-》磁盘管理
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/VMKJyCt8D2kj6d5.png&quot; alt=&quot;&quot; /&gt;
分离后即可正常&lt;/p&gt;
&lt;h2&gt;二、安装完成后无法开机&lt;/h2&gt;
&lt;p&gt;第一次启动一定要在 VMWare 中，否则会因为更新引导代码失败导致 windows 无法进行安装&lt;br /&gt;
在 VMWare 中等待启动后重启一次，进入到 OOBE 即可完成虚拟机中的操作，如果需要，后续也可以都在虚拟机中操作。&lt;/p&gt;
</content:encoded></item><item><title>Ventoy移动硬盘VHD多系统启动-Linux安装（Ubuntu为例）</title><link>https://iiii.fun/posts/ventoy/ventoy-vhd-linux/</link><guid isPermaLink="true">https://iiii.fun/posts/ventoy/ventoy-vhd-linux/</guid><description>在VHD中安装Linux系统（Ubuntu）并配置Ventoy引导，包括vtoyboot脚本安装和常见问题解决</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;h1&gt;Linux 系统安装&lt;/h1&gt;
&lt;h2&gt;Ventoy 配置&lt;/h2&gt;
&lt;p&gt;请参阅 &lt;a href=&quot;/posts/ventoy-vhd-multiboot-basics/&quot;&gt;Ventoy移动硬盘VHD多系统启动-基础篇&lt;/a&gt; 中的配置过程&lt;/p&gt;
&lt;h2&gt;VHD 创建&lt;/h2&gt;
&lt;p&gt;VHD创建和最开始基础准备介绍中相同，记得先解除挂载&lt;br /&gt;
先等待个漫长的创建过程，因为是全部分配，所以要全部写入磁盘，要写入 256G，所以建议用个好点的移动硬盘，或者分区写小点。
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/lJBKDNPduSHgtyY.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;创建完直接取消挂载
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/cunTsGbjLwICi52.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;后缀改名，加.vtoy
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/gEjGS9sefbK8dYt.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;系统安装&lt;/h2&gt;
&lt;p&gt;本篇以ubuntu为例&lt;br /&gt;
等待的时候先创建个虚拟机&lt;br /&gt;
创建后进行一些调整&lt;br /&gt;
常规这里改的和图上一样
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/YHi9kwBC8Fo2Zns.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;高级改到UEFI，因为我们现在基本上都是用UEFI
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/w1RQ23IW6hBd9ql.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;磁盘直接选改了名的
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/kVydp3EQStuTzKU.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后保留现有格式，挂上去就行了。&lt;br /&gt;
开机，按正常流程安装Ubuntu，按照OOBE一直操作，等就行了。&lt;br /&gt;
如果要求你选磁盘，那说明你创建虚拟机时候没删除默认创建的磁盘，要只保留VHD磁盘以保证安装正确。
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/jgTVEbkmesDWcJx.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;一直到从硬盘启动正常进入到系统。&lt;/p&gt;
&lt;h2&gt;VtoyBoot 配置&lt;/h2&gt;
&lt;p&gt;进入系统后ISO切换到
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/1NEtGvPr78pCfVZ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;然后把它连接到虚拟机
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/1kzNtv2lcoAMSyJ.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;如图，复制到随便一个位置然后解压
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/hKrOeo7zUpjZIWf.png&quot; alt=&quot;&quot; /&gt;
&lt;img src=&quot;https://cdn.sa.net/2024/11/17/zhlZQ7Tf81DuMRy.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;tar -zxvf 文件名
cd 文件夹
sudo bash vtoyboot.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/IGEf7xnBzMjOSZr.png&quot; alt=&quot;&quot; /&gt;
完成后poweroff关闭虚拟机，准备启动到物理机进行验证&lt;/p&gt;
&lt;h2&gt;LinkVHD&lt;/h2&gt;
&lt;p&gt;进行一次link，复制到Ventoy分区，重启验证&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/HSfIgyTxjwdbK7E.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h1&gt;已知问题的解决&lt;/h1&gt;
&lt;h2&gt;一、进入安装后黑屏卡死&lt;/h2&gt;
&lt;p&gt;显示器把3D加速关了，有Bug，会黑屏死机&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/UCGpleJ87FkWqjr.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;二、安装后无法开机&lt;/h2&gt;
&lt;p&gt;大 EFI 这里面，boot 目录如果有 &lt;code&gt;bootx64.efi&lt;/code&gt; 是没问题的。&lt;br /&gt;
如果没有需要执行一下命令把你的 grub 的启动引导复制出来&lt;br /&gt;
&lt;code&gt;sudo cp /boot/efi/EFI/系统名/grubx64.efi /boot/efi/EFI/boot/bootx64.efi&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://cdn.sa.net/2024/11/17/JpPnZITyHkcDLU4.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;
</content:encoded></item><item><title>MixedVelocity：Minecraft盗版与正版共存方案</title><link>https://iiii.fun/posts/project/mixedvelocity-minecraft/</link><guid isPermaLink="true">https://iiii.fun/posts/project/mixedvelocity-minecraft/</guid><description>基于魔改Velocity实现Minecraft离线和正版玩家混合登录，支持VC嵌套和AuthME二次验证</description><pubDate>Sun, 17 Nov 2024 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;一套离线+正版的VC登入方案，支持VC嵌套，通过AuthME及其配套插件进行二次验证，已确认可用。&lt;br /&gt;
相关代码开源 https://github.com/MixedLogin&lt;/p&gt;
&lt;h2&gt;魔改后特性&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;支持VC嵌套&lt;/li&gt;
&lt;li&gt;允许选择不同的后端信息传递&lt;/li&gt;
&lt;li&gt;支持离线和正版混合使用&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;需要的文件清单&lt;/h2&gt;
&lt;p&gt;offline.yml 为添加到MultiLogin中的yggd服务&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;id: 1
name: &apos;Offline&apos;
serviceType: BLESSING_SKIN
yggdrasilAuth:
blessingSkin:
apiRoot: &apos;http://127.0.0.1:26748/api/yggdrasil&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;MultiLogin-MixedLoginVelocity 为接入到魔改VC的MultiLogin&lt;br /&gt;
MixedVelocity-proxy-3.4.0-SNAPSHOT-all.jar 为魔改VC本体&lt;br /&gt;
AuthMeVelocity-MixedVelocity-4.1.2.jar 为魔改过的AuthMEVC，支持跳过正版玩家的登入&lt;br /&gt;
bukkit下的Authme和AuthMeVelocity是未经魔改的，可以随意替换&lt;/p&gt;
&lt;h2&gt;使用方法&lt;/h2&gt;
&lt;h3&gt;基础安装&lt;/h3&gt;
&lt;p&gt;plugins放入魔改的MulitLogin以方便多认证源和档案管理，将offline.yml拖入multilogin\services&lt;br /&gt;
plugins放入魔改的AuthMeVelocity以支持跳过在线玩家的认证和设定登入后行为&lt;/p&gt;
&lt;h3&gt;兼容情况&lt;/h3&gt;
&lt;p&gt;低于1.19.1:&lt;br /&gt;
域名前加o-或者offline识别为离线玩家&lt;br /&gt;
高于1.19.1:&lt;br /&gt;
直接进入即可&lt;/p&gt;
&lt;h3&gt;下层VC设定&lt;/h3&gt;
&lt;p&gt;mixedvc.toml 编辑 其中lobby为下层VC服务器&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[server-forwarding-mode]
#设定不同服务器的转发模式
lobby = &quot;none&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;并且下层vc添加以下参数并启用在线模式以确保资料被正确转发&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;-Dmojang.sessionserver=&quot;http://127.0.0.1:26749/api/yggdrasil/sessionserver/session/minecraft/hasJoined&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下层普通服务器设定&lt;/h3&gt;
&lt;p&gt;mixedvc.toml 编辑 其中login为下层服务器，转发模式自己根据需要写即可&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;[server-forwarding-mode]
#设定不同服务器的转发模式
login = &quot;modern&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;下层登入服务器设定&lt;/h3&gt;
&lt;p&gt;首先参考下层普通服务器设定，进行设定后装入AuthMe和AuthMeVelocity来进行离线认证&lt;/p&gt;
&lt;h3&gt;其他注意&lt;/h3&gt;
&lt;p&gt;AuthMeVelocity自行设置，参考设置如下&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;advanced {
    debug=true
    random-attempts=5
}
auth-servers=[
    login
]
commands {
    allowed-commands=[
        login,
        register,
        l,
        reg,
        email,
        captcha
    ]
    blocked-message=&quot;&amp;lt;red&amp;gt;You cannot execute commands if you are not logged in yet&quot;
}
ensure-auth-server {
    ensure-auth-server=false
    send-mode=TO_FIRST
}
send-on-login {
    require-permission=false
    send-mode=RANDOM
    send-on-login=true
    teleport-servers=[
        lobby
    ]
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;如有问题请提交issue或加QQ群反馈 群号：946864759&lt;/p&gt;
</content:encoded></item></channel></rss>