<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Technical 技术专栏 on Happy的blog</title>
    <link>https://13ehappy.com/post/technical/</link>
    <description>Recent content in Technical 技术专栏 on Happy的blog</description>
    <image>
      <title>Happy的blog</title>
      <url>https://13ehappy.com/images/funn.png</url>
      <link>https://13ehappy.com/images/funn.png</link>
    </image>
    <generator>Hugo -- 0.154.3</generator>
    <language>en</language>
    <lastBuildDate>Wed, 08 Apr 2026 18:43:14 +0800</lastBuildDate>
    <atom:link href="https://13ehappy.com/post/technical/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>实用网络运维笔记：利用 ACL 封堵高危端口，构建防勒索病毒的第一道防线</title>
      <link>https://13ehappy.com/post/technical/acl%E9%98%B2%E7%97%85%E6%AF%92/</link>
      <pubDate>Wed, 08 Apr 2026 18:43:14 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/acl%E9%98%B2%E7%97%85%E6%AF%92/</guid>
      <description>&lt;p&gt;在日常的网络运维和安全加固中，我们经常会面临来自内外部的自动化扫描和恶意软件威胁。尤其是近年来屡禁不止的勒索病毒（如 WannaCry）和各类蠕虫病毒，大多依赖 Windows 系统的几个高危端口进行横向传播。&lt;/p&gt;
&lt;p&gt;今天分享一段非常经典且实用的高危端口封堵 ACL 配置，并详细拆解其背后的原理和部署排坑指南。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 防勒索/高危端口封堵 ACL
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ip access-list extended ACL_WAN_IN_DENY_HIGH_RISK
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  #1. 阻断 RPC 协议族 (防冲击波等蠕虫及内网探测)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 10 deny tcp any any eq 135 log
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 20 deny udp any any eq 135
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 30 deny tcp any any eq 593
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  #2. 阻断 NetBIOS 协议族 (防信息枚举及中间人攻击)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 40 deny udp any any eq 137
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 50 deny udp any any eq 138
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 60 deny tcp any any eq 139
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 70 deny udp any any eq 139
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  #3. 阻断 SMB 服务 (防 WannaCry/永恒之蓝等勒索病毒横向移动)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 80 deny tcp any any eq 445 log
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 90 deny udp any any eq 445
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  #4. 阻断 RDP 远程桌面 (防针对 3389 的暴力破解)
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 100 deny tcp any any eq 3389 log
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 110 deny udp any any eq 3389
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  #5. 放行其余正常业务流量
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; 200 permit ip any any
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;(注：在 &lt;code&gt;deny&lt;/code&gt; 语句后增加 &lt;code&gt;log&lt;/code&gt; 关键字，可以将触发该规则的源 IP 记录到 Syslog 服务器，便于溯源真正的感染源或攻击者。&lt;strong&gt;部分设备不支持&lt;/strong&gt; )&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>踩坑实录：用 Windows Hello 实现完美免密 SSH 登录</title>
      <link>https://13ehappy.com/post/technical/windows_hello/</link>
      <pubDate>Fri, 03 Apr 2026 21:29:58 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/windows_hello/</guid>
      <description>&lt;hr&gt;
&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;因为新买的笔记本人脸识别很准很方便,就想折腾一下看能不能用Windowshello来免密登录ssh,没想到居然可以!记录一下这个配置小成就。&lt;/p&gt;
&lt;p&gt;我的核心诉求其实很明确，就三点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;免密&lt;/strong&gt;：用 Windows Hello（指纹/人脸）直接 SSH 登录路由。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;所有服务器都用一套密钥&lt;/strong&gt;：方便管理。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全&lt;/strong&gt;：私钥丢了或者被盗了别人也用不了。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt=&#34;alt text&#34; loading=&#34;lazy&#34; src=&#34;../../images/Windows_hello/PixPin_2026-04-03_21-39-54.jpg&#34;&gt;
本以为是个简单的 &lt;code&gt;ssh-agent&lt;/code&gt; 或 &lt;code&gt;ssh-keygen&lt;/code&gt; 命令就能解决的事，没想到硬生生踩到了底层的 TPM 硬件兼容性大坑。特此记录，供遇到类似问题的朋友参考。&lt;/p&gt;
&lt;h2 id=&#34;-踩坑记录那些看似可行实则行不通的方案&#34;&gt;❌ 踩坑记录：那些看似可行实则行不通的方案&lt;/h2&gt;
&lt;h3 id=&#34;坑一使用原生-ssh-agent-服务权限不够&#34;&gt;坑一：使用原生 ssh-agent 服务（权限不够）&lt;/h3&gt;
&lt;p&gt;一开始想着复用现有的 &lt;code&gt;id_rsa&lt;/code&gt;，交给 Windows 的 &lt;code&gt;ssh-agent&lt;/code&gt; 服务托管。结果运行 &lt;code&gt;Get-Service ssh-agent | Set-Service -StartupType Automatic&lt;/code&gt; 直接报错 &lt;strong&gt;“拒绝访问”&lt;/strong&gt;。
&lt;strong&gt;原因&lt;/strong&gt;：普通用户无权修改系统全局服务的启动类型，即使勉强用伪装进程拉起，体验也不够优雅。&lt;/p&gt;
&lt;h3 id=&#34;坑二尝试-ed25519-sk-与passkey-冲突&#34;&gt;坑二：尝试 ed25519-sk 与“Passkey 冲突”&lt;/h3&gt;
&lt;p&gt;既然服务走不通，那就走 FIDO2 硬件安全密钥。执行了 &lt;code&gt;ssh-keygen -t ed25519-sk&lt;/code&gt;。
结果系统提示 &lt;code&gt;Overwrite (y/n)?&lt;/code&gt;，同时我非常担心这会向 TPM 的“驻留密钥（Resident Key）”槽位写入数据，把我辛辛苦苦攒的网站 Passkey 给顶掉。吓得我赶紧 &lt;code&gt;Ctrl+C&lt;/code&gt; 止损。&lt;/p&gt;
&lt;h3 id=&#34;坑三windows-hello-消失让我用物理安全密钥&#34;&gt;坑三：Windows Hello 消失,让我用物理安全密钥&lt;/h3&gt;
&lt;p&gt;&lt;img alt=&#34;alt text&#34; loading=&#34;lazy&#34; src=&#34;../../images/Windows_hello/image.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;后来弄清楚了，只要不加 &lt;code&gt;-O resident&lt;/code&gt; 参数，默认就是“非驻留”模式，不占用 TPM 空间。于是放心大胆地再次执行，结果弹出的 Windows 安全中心窗口里，&lt;strong&gt;根本没有“Windows Hello（此设备）”的选项&lt;/strong&gt;，只能选手机或 USB 安全密钥！&lt;/p&gt;</description>
    </item>
    <item>
      <title>LAN</title>
      <link>https://13ehappy.com/post/technical/lan/</link>
      <pubDate>Wed, 04 Feb 2026 00:09:15 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/lan/</guid>
      <description>&lt;p&gt;7.1 把 10G EPON 改成 XGPON，修改参数
obj.id = &amp;ldquo;0x00000001&amp;rdquo; ; obj.value = &amp;ldquo;5&amp;rdquo;;
obj.id = &amp;ldquo;0x0000001d&amp;rdquo; ; obj.value = &amp;ldquo;5&amp;rdquo;;
obj.id = &amp;ldquo;0x00000059&amp;rdquo; ; obj.value = &amp;ldquo;5&amp;rdquo;;
7.1 还原 10G EPON，修改参数
obj.id = &amp;ldquo;0x00000001&amp;rdquo; ; obj.value = &amp;ldquo;6&amp;rdquo;;
obj.id = &amp;ldquo;0x0000001d&amp;rdquo; ; obj.value = &amp;ldquo;5&amp;rdquo;;
obj.id = &amp;ldquo;0x00000059&amp;rdquo; ; obj.value = &amp;ldquo;6&amp;rdquo;;&lt;/p&gt;
&lt;p&gt;7.2 将光猫主 LAN 口的 MAC 地址改成老光猫的 MAC 地址(部分地区需要，如果设备注册无障碍，则跳过)：
注：改完后尝试注册设备成功的话，跳过 设备标识号和 SN 码的修改
obj.id = &amp;ldquo;0x0000000a&amp;rdquo; ; obj.value = &amp;ldquo;8C:81:72:89:8A:B2&amp;rdquo;;
obj.id = &amp;ldquo;0x00000025&amp;rdquo; ; obj.value = &amp;ldquo;8C:81:72:89:8A:B2&amp;rdquo;;&lt;/p&gt;</description>
    </item>
    <item>
      <title>重装后的操作流水线</title>
      <link>https://13ehappy.com/post/technical/%E9%87%8D%E8%A3%85%E5%90%8E%E7%9A%84%E6%93%8D%E4%BD%9C%E6%B5%81%E6%B0%B4%E7%BA%BF/</link>
      <pubDate>Fri, 30 Jan 2026 22:04:20 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/%E9%87%8D%E8%A3%85%E5%90%8E%E7%9A%84%E6%93%8D%E4%BD%9C%E6%B5%81%E6%B0%B4%E7%BA%BF/</guid>
      <description>&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;只装 Routing&lt;/strong&gt; ：通过 PowerShell 执行 &lt;code&gt;Install-WindowsFeature Routing -IncludeManagementTools&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NAT 隔离&lt;/strong&gt; ：在 RRAS 控制台中，将外网网卡设为“公用接口”并开启 NAT，内网网卡设为“专用接口”。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;scoop-自动化&#34;&gt;Scoop 自动化&lt;/h3&gt;
&lt;p&gt;运行 &lt;code&gt;Restore-Scoop.ps1&lt;/code&gt; 脚本：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;配置文件持久化&lt;/strong&gt; ：因为 &lt;code&gt;Mihomo (Clash Party)&lt;/code&gt; 的配置文件通常在 &lt;code&gt;AppData&lt;/code&gt; 或程序目录，建议将其配置链接到 D 盘，确保重装后代理逻辑直接可用。&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Join_AD</title>
      <link>https://13ehappy.com/post/technical/join_ad/</link>
      <pubDate>Thu, 29 Jan 2026 20:59:14 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/join_ad/</guid>
      <description></description>
    </item>
    <item>
      <title>Tips</title>
      <link>https://13ehappy.com/post/technical/tips/</link>
      <pubDate>Mon, 19 Jan 2026 01:09:32 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/tips/</guid>
      <description>&lt;p&gt;powershell相关:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Windows hello保护ssh私钥&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh-keygen -t ecdsa-sk -f $env:USERPROFILE\.ssh\happy_hello
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;code %USERPROFILE%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;历史记录
Windows 双系统 主板时差&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;reg&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;add&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;v&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;RealTimeIsUniversal&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;d&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;t&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;REG_DWORD&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Hyper-V开启嵌套虚拟化&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Get-Vm&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Set-VMProcessor&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-ExposeVirtualizationExtensions&lt;/span&gt; &lt;span class=&#34;vm&#34;&gt;$true&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-VMName&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;name&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;hyper-v相关:&lt;/p&gt;
&lt;p&gt;vm管理工具&lt;/p&gt;
&lt;p&gt;winget install &amp;ndash;id=VMPlex.VMPlex  -e -s winget&lt;/p&gt;
&lt;p&gt;查看vm虚拟机&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;get-netadapter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Where-Object&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$_&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;py&#34;&gt;InterfaceDescription&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-match&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Hyper-V&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;Select-Object&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;InterfaceAlias&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;查询被占用的文件进程&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;winget install Microsoft.Sysinternals.Handle
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;handle &lt;span class=&#34;s2&#34;&gt;&amp;#34;C:\path\to\your\file.txt&amp;#34;&lt;/span&gt;  &lt;span class=&#34;c1&#34;&gt;# 完整路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;handle test.txt                    &lt;span class=&#34;c1&#34;&gt;# 仅文件名（会搜索所有位置）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;handle D:&lt;span class=&#34;se&#34;&gt;\d&lt;/span&gt;ocs                     &lt;span class=&#34;c1&#34;&gt;# 搜索整个目录下的文件占用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Process Explorer&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;安装&lt;/strong&gt; ：&lt;/p&gt;
&lt;p&gt;Winget：&lt;code&gt;winget install Microsoft.Sysinternals.ProcessExplorer&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;docker 避免每sudo&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; # 1. 如果 docker 用户组不存在，先创建它（通常安装 docker 时已自动创建）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; sudo groupadd docker
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; # 2. 将当前用户（也就是你终端登录的用户）加入 docker 组
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; sudo usermod -aG docker $USER
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; # 3. 刷新用户组权限，使其立即生效（不用退出重新登录）
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; newgrp docker
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>利用Hyper-v上跑openWRT实现本地网络虚拟化实现Windows有线&#43;无线网络负载&#43;梯子&#43;hyperv虚拟机网络管理</title>
      <link>https://13ehappy.com/post/technical/openwrtoverhyperv/</link>
      <pubDate>Sat, 17 Jan 2026 11:15:28 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/openwrtoverhyperv/</guid>
      <description>&lt;p&gt;&lt;strong&gt;前言:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Windows的hyperv只提供虚拟交换机创建,网络NAT和DHCP都是交给插件来实现,配置起来极为麻烦和不便利,因此琢磨着创建一个简单的虚拟网络,顺便将负载和翻墙集成进去。&lt;/p&gt;
&lt;p&gt;示意拓扑图:&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260116223125026&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260116223125026.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.bilibili.com/opus/799703519004196886&#34;&gt;参考教学&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Open-WRT镜像下载(选一个):&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://firmware-selector.openwrt.org/?version=25.12.0-rc2&amp;amp;target=x86%2F64&amp;amp;id=generic&#34;&gt;下载OpenWrt&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;或者&lt;a href=&#34;https://fwselector.kyarucloud.moe/?version=24.10.3&amp;amp;target=x86%2F64&amp;amp;id=generic&#34;&gt;下载ImmortalWrt&lt;/a&gt;(一个面向中国大陆用户的开源OpenWrt变体。配置好了中文和clash源,强烈推荐!)&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260116191059470&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260116191059470.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.cnblogs.com/cuianbing/p/15004815.html&#34;&gt;Windows使用StarwindConverter虚拟机磁盘镜像互转&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;或&lt;a href=&#34;https://cloudbase.it/downloads/qemu-img-win-x64-2_3_0.zip&#34;&gt;使用qemu-img&lt;/a&gt;(加入环境变量)&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;#cd到img的目录下
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;qemu-img convert input.img -O vhdx -o subformat=dynamic output.vhdx
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;创建一代虚拟机,1核,800M,2G,3个网络适配器&lt;/strong&gt;,磁盘选择转换后的vhdx&lt;/p&gt;
&lt;p&gt;(此处省略)&lt;/p&gt;
&lt;p&gt;创建两个虚拟交换机,外部,分别绑定两个出口网卡,我这里是wifi 和2.5G,把&amp;rsquo;允许&amp;hellip;&amp;lsquo;关了，让路由器独占&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260116204627296&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260116204627296.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;再创建一个内部交换机,作为主机流量入口。&lt;/p&gt;
&lt;p&gt;分配mac,地址随意但不能重复,最好为01,02,03,这样方便记忆&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260116205415112&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260116205415112.png&#34;&gt;&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260116205530640.png&#34; alt=&#34;image-20260116205530640&#34;  /&gt;
&lt;p&gt;内容（记得先备份原文件）：&lt;/p&gt;
&lt;p&gt;改密码:&lt;/p&gt;
&lt;p&gt;passwd&lt;/p&gt;
&lt;p&gt;先备份&lt;/p&gt;
&lt;p&gt;mv /etc/config/network{,.bak}&lt;/p&gt;
&lt;p&gt;先配置管理地址:&lt;/p&gt;
&lt;p&gt;vi /etc/config/network&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config interface &lt;span class=&#34;s1&#34;&gt;&amp;#39;lan&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option device &lt;span class=&#34;s1&#34;&gt;&amp;#39;eth2&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option proto &lt;span class=&#34;s1&#34;&gt;&amp;#39;static&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option ipaddr &lt;span class=&#34;s1&#34;&gt;&amp;#39;192.168.20.1&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option netmask &lt;span class=&#34;s1&#34;&gt;&amp;#39;255.255.255.0&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;冒号q回车退出&lt;/p&gt;
&lt;p&gt;运行这条命令让配置生效&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/etc/init.d/uhttpd restart
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;物理机上配置网络:&lt;/p&gt;
&lt;p&gt;win+r输入ncpa.cpl打开网络适配器如下配置&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260116225218086&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260116225218086.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;用ssh连接Openwrt:&lt;/p&gt;
&lt;p&gt;vi /etc/config/network&lt;/p&gt;
&lt;p&gt;将下面的配置粘贴进去&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config interface &amp;#39;loopback&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option device &amp;#39;lo&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option proto &amp;#39;static&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option ipaddr &amp;#39;127.0.0.1&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option netmask &amp;#39;255.0.0.0&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config globals &amp;#39;globals&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option ula_prefix &amp;#39;fdbe:cd76:75cf::/48&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option packet_steering &amp;#39;1&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config interface &amp;#39;lan&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option device &amp;#39;eth2&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option proto &amp;#39;static&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option ipaddr &amp;#39;192.168.20.1&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option netmask &amp;#39;255.255.255.0&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option ip6assign &amp;#39;60&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config interface &amp;#39;WAN2&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option proto &amp;#39;dhcp&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option device &amp;#39;eth1&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;config interface &amp;#39;WAN&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option proto &amp;#39;dhcp&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        option device &amp;#39;eth0&amp;#39;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;使配置生效:&lt;/p&gt;</description>
    </item>
    <item>
      <title>笔记本上在Hyper V平台将虚拟机利用Easy GPU PV实现核显半虚拟化</title>
      <link>https://13ehappy.com/post/technical/%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%B8%8A%E5%9C%A8hyper-v%E5%B9%B3%E5%8F%B0%E5%B0%86%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%88%A9%E7%94%A8easy-gpu-pv%E5%AE%9E%E7%8E%B0%E6%A0%B8%E6%98%BE%E5%8D%8A%E8%99%9A%E6%8B%9F%E5%8C%96/</link>
      <pubDate>Thu, 15 Jan 2026 19:34:37 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/%E7%AC%94%E8%AE%B0%E6%9C%AC%E4%B8%8A%E5%9C%A8hyper-v%E5%B9%B3%E5%8F%B0%E5%B0%86%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%88%A9%E7%94%A8easy-gpu-pv%E5%AE%9E%E7%8E%B0%E6%A0%B8%E6%98%BE%E5%8D%8A%E8%99%9A%E6%8B%9F%E5%8C%96/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/jamesstringer90/Easy-GPU-PV&#34;&gt;Easy-GPU-PV&lt;/a&gt;是一个显卡直通和虚拟机创建脚本。&lt;/p&gt;
&lt;p&gt;开启hyperv功能不再赘述。记得打开intel-vt-d&lt;/p&gt;
&lt;p&gt;下载下来，解压文件,或者用git克隆下来，进入目录,复制目录地址,&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/jamesstringer90/Easy-GPU-PV.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;再用管理员权限运行powershell-ISE&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260115181430882.png&#34; alt=&#34;image-20260115181430882&#34; style=&#34;zoom: 50%;&#34; /&gt;
&lt;p&gt;先运行pre-check,将输出的显卡名字复制&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260115181737669&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260115181737669.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;因为是在笔记本上跑的,所以将判断的结果改一下就行,或者直接把Get-DesktopPC这个函数注释掉&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260115182054988&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260115182054988.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;自定义配置,直接改变量 框出来的必须改&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260115183459349&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260115183459349.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;配置文件和hyperv没问题基本上脚本就一路到底success。&lt;/p&gt;
&lt;p&gt;等一段时间自动安装完了会自动进系统，检查一下虚拟机里有没有显卡&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260115192233475&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260115192233475.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;优化性能，可选&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/manage/manage-hyper-v-scheduler-types#enable-smt-in-guest-vms&#34;&gt;开启SMT&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;Set-VMProcessor&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-VMName&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Win11Preveiw&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;-HwThreadCountPerCore&lt;/span&gt; &lt;span class=&#34;mf&#34;&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/manage/manage-hyper-v-scheduler-types#select-the-hypervisor-scheduler-type-on-windows-server&#34;&gt;设置cpu-core调度程序类型为ROOT&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;bcdedit&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;/&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;set &lt;/span&gt;&lt;span class=&#34;n&#34;&gt;hypervisorschedulertype&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Root&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>在wsl中优雅的使用Archlinux</title>
      <link>https://13ehappy.com/post/technical/%E5%9C%A8wsl%E4%B8%AD%E4%BC%98%E9%9B%85%E7%9A%84%E4%BD%BF%E7%94%A8archlinux/</link>
      <pubDate>Thu, 15 Jan 2026 05:05:26 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/%E5%9C%A8wsl%E4%B8%AD%E4%BC%98%E9%9B%85%E7%9A%84%E4%BD%BF%E7%94%A8archlinux/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://wiki.archlinuxcn.org/wiki/%E5%9C%A8_WSL_%E4%B8%8A%E5%AE%89%E8%A3%85_Arch_Linux&#34;&gt;官方文档&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;硬件加速渲染&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pacman -S mesa vulkan-dzn vulkan-icd-loader
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ~/.bashrc&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;GALLIUM_DRIVER&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;d3d12
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;LIBVA_DRIVER_NAME&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;d3d12
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;若 openGL 依然在英特尔 GPU 上使用 llvmpipe 软件渲染，则需要为 libedit 创建符号链接：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# ln -s /usr/lib/libedit.so /usr/lib/libedit.so.2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;从 Windows 桥接 SSH 代理服务&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;在 WSL 内使用 Windows &lt;a href=&#34;https://wiki.archlinuxcn.org/wiki/SSH_%E5%AF%86%E9%92%A5#SSH_%E4%BB%A3%E7%90%86&#34;&gt;SSH 代理&lt;/a&gt;。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;安装yay&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S git base-devel
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://aur.archlinux.org/yay-bin.git
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; yay-bin
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; yay
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;makepkg -si
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;yay wsl2-ssh-agent
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;eval&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;/usr/sbin/wsl2-ssh-agent&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&#34;https://github.com/nullpo-head/WSL-Hello-sudo&#34;&gt;使用 Windows Hello 进行 PAM 认证&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://13ehappy.com/post/technical/arch-linux-wsl-%E6%89%8B%E5%8A%A8%E9%83%A8%E7%BD%B2-wsl-hello-sudo-%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97/&#34;&gt;踩坑后让AI生的手动安装指南，成功力！&lt;/a&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;yay wsl-hello-sudo-bin
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;欲使用 Windows Hello 进行认证，将 &lt;code&gt;auth sufficient pam_wsl_hello.so&lt;/code&gt; 行添加到 &lt;code&gt;/etc/pam.d&lt;/code&gt; 中相应组件的配置文件，例如 Sudo：&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arch Linux (WSL) 手动部署 WSL Hello Sudo 完整指南</title>
      <link>https://13ehappy.com/post/technical/arch-linux-wsl-%E6%89%8B%E5%8A%A8%E9%83%A8%E7%BD%B2-wsl-hello-sudo-%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97/</link>
      <pubDate>Thu, 15 Jan 2026 05:01:31 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/arch-linux-wsl-%E6%89%8B%E5%8A%A8%E9%83%A8%E7%BD%B2-wsl-hello-sudo-%E5%AE%8C%E6%95%B4%E6%8C%87%E5%8D%97/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;image-20260115042500897&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260115042500897.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;指南说明&#34;&gt;指南说明&lt;/h2&gt;
&lt;h3 id=&#34;11-适用场景&#34;&gt;1.1 适用场景&lt;/h3&gt;
&lt;p&gt;本指南适用于在 WSL 环境下的 Arch Linux 系统，手动完成 WSL-Hello-sudo 的部署，实现通过 Windows Hello（人脸/指纹/PIN）验证替代 sudo 密码输入的功能。&lt;/p&gt;
&lt;h3 id=&#34;12-核心适配点与-ubuntudebian-差异&#34;&gt;1.2 核心适配点（与 Ubuntu/Debian 差异）&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;PAM 模块目录固定为 &lt;code&gt;/lib/security&lt;/code&gt;（Ubuntu/Debian 为 &lt;code&gt;/lib/x86_64-linux-gnu/security&lt;/code&gt;）；&lt;/li&gt;
&lt;li&gt;无 &lt;code&gt;pam-auth-update&lt;/code&gt; 工具，需手动编辑 PAM 配置文件；&lt;/li&gt;
&lt;li&gt;依赖包通过 &lt;code&gt;pacman&lt;/code&gt; 安装，而非 &lt;code&gt;apt&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;默认可能未启用 WSL Interop 功能，需手动配置以执行 Windows 可执行文件（.exe）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;13-前置环境要求&#34;&gt;1.3 前置环境要求&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;WSL 版本：推荐 WSL 2（WSL 1 对 Interop 支持较差，易出现执行 .exe 报错）；&lt;/li&gt;
&lt;li&gt;Windows 环境：已启用 Windows Hello（设置 &amp;gt; 账户 &amp;gt; 登录选项 中配置人脸/指纹/PIN）；&lt;/li&gt;
&lt;li&gt;Arch 权限：拥有普通用户 sudo 权限（禁止直接使用 root 用户操作）。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;前置准备&#34;&gt;前置准备&lt;/h2&gt;
&lt;h3 id=&#34;21-确认-wsl-版本&#34;&gt;2.1 确认 WSL 版本&lt;/h3&gt;
&lt;p&gt;在 Windows 终端（CMD/PowerShell）中执行以下命令，确认 Arch 对应的 WSL 版本为 2：&lt;/p&gt;</description>
    </item>
    <item>
      <title>将物理机使用VMware启动，以Arch为例 并重新安装GRUB启动项</title>
      <link>https://13ehappy.com/post/technical/arch%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%85grub/</link>
      <pubDate>Mon, 12 Jan 2026 23:28:24 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/arch%E9%87%8D%E6%96%B0%E5%AE%89%E8%A3%85grub/</guid>
      <description>&lt;h2 id=&#34;前言&#34;&gt;前言&lt;/h2&gt;
&lt;p&gt;很久很久以前(其实也没多久)在笔记本上装了个arch,玩够了就没管了,最近突然想拿里面的配置文件出来给虚拟机用,但是在Windows上用ext文件驱动又太麻烦了,懒得搞,于是想用虚拟机启动这个系统,直接ssh登进去取。随手一记。&lt;/p&gt;
&lt;h2 id=&#34;查看系统所在磁盘序号与分区位置&#34;&gt;查看系统所在磁盘序号与分区位置&lt;/h2&gt;
&lt;p&gt;在diskgenues里看到arch所处的盘位为hd1-part8&lt;/p&gt;
&lt;p&gt;在操作系统所在的分区前新建一个1G的分区，&lt;/p&gt;
&lt;p&gt;然后把引导分区（一般为磁盘第一个分区，名字是ESP，FAT32的文件系统）克隆过来&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260113121510949&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260113121510949.png&#34;&gt;&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260113142017765.png&#34; alt=&#34;image-20260113142017765&#34; style=&#34;zoom: 60%;&#34; /&gt;
&lt;h2 id=&#34;在vmware中创建虚拟机&#34;&gt;在VMware中创建虚拟机&lt;/h2&gt;
&lt;p&gt;使用管理员权限打开VMware-workstation&lt;/p&gt;
&lt;p&gt;新建一个虚拟机，选&lt;em&gt;&lt;strong&gt;自定义&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260113141235337.png&#34; alt=&#34;image-20260113141235337&#34; style=&#34;zoom: 50%;&#34; /&gt;
&lt;p&gt;稍后安装系统&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260113141401094.png&#34; alt=&#34;image-20260113141401094&#34; style=&#34;zoom: 45%;&#34; /&gt;
&lt;p&gt;其他Linux&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260113141440141.png&#34; alt=&#34;image-20260113141440141&#34; style=&#34;zoom: 50%;&#34; /&gt;
&lt;p&gt;使用物理磁盘&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260113141532670.png&#34; alt=&#34;image-20260113141532670&#34; style=&#34;zoom: 60%;&#34; /&gt;
&lt;p&gt;选择第一步查看到的磁盘序号，我这里是磁盘1，选择使用单个分区&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260113142527171.png&#34; alt=&#34;image-20260113142527171&#34; style=&#34;zoom: 60%;&#34; /&gt;
&lt;p&gt;将操作系统和&lt;strong&gt;引导盘&lt;/strong&gt;所在的分区选中&lt;/p&gt;
&lt;img src=&#34;https://13ehappy.com/images/png/image-20260113142604778.png&#34; alt=&#34;image-20260113142604778&#34; style=&#34;zoom: 60%;&#34; /&gt;
&lt;p&gt;如图操作&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260113142849169&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260113142849169.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;选一个PE镜像&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;image-20260113143034699&#34; loading=&#34;lazy&#34; src=&#34;https://13ehappy.com/images/png/image-20260113143034699.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;开机,进入Linux-PE中&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;lsblk -f
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 挂载根分区到 /mnt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount /dev/sda9 /mnt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 挂载 EFI 引导分区到 /mnt/boot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mount /dev/sda8 /mnt/boot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 进入系统 chroot 环境&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;arch-chroot /mnt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#安装Linux内核&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pacman -S linux
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 安装 GRUB 到 EFI 分区&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grub-install --target&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;x86_64-efi --efi-directory&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/boot --bootloader-id&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;GRUB
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 生成新的 GRUB 配置文件&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;grub-mkconfig -o /boot/grub/grub.cfg
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 退出 chroot 环境&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;exit&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 卸载挂载的分区&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;umount /mnt/boot
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;umount /mnt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 重启系统&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;reboot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;完成&lt;/p&gt;</description>
    </item>
    <item>
      <title>跨城市Windows-ESXi内网P2P IPsec隧道搭建指南</title>
      <link>https://13ehappy.com/post/technical/ipsec-p2p/</link>
      <pubDate>Sun, 11 Jan 2026 23:17:03 +0800</pubDate>
      <guid>https://13ehappy.com/post/technical/ipsec-p2p/</guid>
      <description>&lt;p&gt;&lt;strong&gt;AI生成&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;适用场景&lt;/strong&gt;：跨城市双内网环境（无公网IP），ESXi网段172.31.88.0/24，Windows网段192.168.1.0/24，通过公网域名happy.com（Ubuntu服务器）实现P2P IPsec加密互通与内网共享&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;前置约定&lt;/strong&gt;：所有操作涉及的用户名/密码统一为 happy/Huawei@123，IPsec预置共享密钥为 Huawei123；操作前确保公网Ubuntu服务器可正常访问，ESXi主机已开启虚拟化功能，Windows主机具备管理员权限。&lt;/p&gt;
&lt;h1 id=&#34;一操作前核心网络技术原理摘要&#34;&gt;一、操作前核心网络技术原理摘要&lt;/h1&gt;
&lt;p&gt;本次搭建的核心是“&lt;strong&gt;P2P NAT穿透+IPsec NAT-T加密+隧道模式网段转发&lt;/strong&gt;”，核心逻辑如下，理解后可更精准排查操作问题：&lt;/p&gt;
&lt;h2 id=&#34;1-核心痛点与解决方案&#34;&gt;1. 核心痛点与解决方案&lt;/h2&gt;
&lt;p&gt;跨城市内网无法直连的核心是NAT地址隐藏，ESXi原生不支持通用IPsec，因此通过“公网STUN/TURN辅助穿透+ESXi侧虚拟化VPN网关+IPsec加密”解决：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;公网Ubuntu（happy.com）：部署coturn服务，提供STUN（NAT映射地址发现）和TURN（P2P失败中继兜底）功能；&lt;/li&gt;
&lt;li&gt;ESXi侧：创建Ubuntu虚拟机作为VPN网关，部署StrongSwan（IPsec服务端），替代ESXi主机实现IPsec协商与流量转发；&lt;/li&gt;
&lt;li&gt;Windows侧：部署StrongSwan客户端，通过ICE框架与ESXi网关完成P2P打洞，建立IPsec隧道。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;2-关键技术核心&#34;&gt;2. 关键技术核心&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;IPsec NAT-T：将无端口的ESP加密包封装到UDP 4500端口，解决IPsec穿越NAT的核心问题，是跨内网通信的关键；&lt;/li&gt;
&lt;li&gt;IKEv2协议：通过4次握手快速建立安全关联（SA），协商加密算法（AES-256）和密钥，支持自动重连，适配动态网络环境；&lt;/li&gt;
&lt;li&gt;隧道模式：用新IP头封装原始内网数据包，实现172.31.88.0/24与192.168.1.0/24网段的透明互通，而非仅单点通信。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;3-数据传输路径&#34;&gt;3. 数据传输路径&lt;/h2&gt;
&lt;p&gt;正常场景（P2P打洞成功）：Windows业务流量 → ESP加密 → UDP 4500封装 → 本地NAT映射 → 公网P2P直连 → ESXi侧NAT解映射 → 网关VM解封装解密 → ESXi内网；
兜底场景（P2P失败）：流量经公网happy.com的TURN服务中继，全程密文传输，仅增加少量延迟。&lt;/p&gt;
&lt;h1 id=&#34;二操作步骤全流程&#34;&gt;二、操作步骤全流程&lt;/h1&gt;
&lt;h2 id=&#34;模块1公网ubuntu服务器happycom配置stunturn服务部署&#34;&gt;模块1：公网Ubuntu服务器（happy.com）配置（STUN/TURN服务部署）&lt;/h2&gt;
&lt;p&gt;作用：为双内网节点提供NAT穿透辅助，P2P失败时作为流量中继，核心部署coturn服务。&lt;/p&gt;
&lt;h3 id=&#34;步骤11-登录公网ubuntu服务器&#34;&gt;步骤1.1 登录公网Ubuntu服务器&lt;/h3&gt;
&lt;p&gt;通过SSH登录（若本地可直连则直接操作）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ssh happy@happy.com  &lt;span class=&#34;c1&#34;&gt;# 输入密码：Huawei@123&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;步骤12-安装coturn服务&#34;&gt;步骤1.2 安装coturn服务&lt;/h3&gt;
&lt;p&gt;更新源并安装，Ubuntu默认源已包含coturn：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt update &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo apt install coturn -y
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;步骤13-配置coturn服务核心&#34;&gt;步骤1.3 配置coturn服务（核心）&lt;/h3&gt;
&lt;p&gt;编辑配置文件 &lt;code&gt;/etc/turnserver.conf&lt;/code&gt;，替换为以下内容（适配happy.com域名和统一账号）：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 基础配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;listening-port&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;3478  # STUN/TURN默认端口（UDP/TCP）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;tls-listening-port&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;5349  # 可选，TLS加密端口，本次暂不启用&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;external-ip&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;公网服务器实际IP  # 替换为happy.com对应的公网IP（如47.xxx.xxx.3）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;realm&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;happy.com  # 域名标识，与后续IPsec协商一致&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;server-name&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;happy.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 认证配置（统一账号密码）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;user&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;happy:Huawei@123  # 格式：用户名:密码&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;lt-cred-mech  # 启用用户名密码认证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 中继配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;relay-port-min&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;49152  # 中继端口范围&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;relay-port-max&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;65535&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;min-port&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;49152&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;max-port&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;65535&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 其他优化&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;fingerprint  # 启用指纹验证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;log-file&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;/var/log/turnserver.log  # 日志路径，便于排查问题&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;na&#34;&gt;verbose  # 详细日志模式&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;步骤14-启动并验证coturn服务&#34;&gt;步骤1.4 启动并验证coturn服务&lt;/h3&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 启动服务并设置开机自启&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl start coturn
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl &lt;span class=&#34;nb&#34;&gt;enable&lt;/span&gt; coturn
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 验证服务状态&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo systemctl status coturn  &lt;span class=&#34;c1&#34;&gt;# 显示active(running)即为正常&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 验证端口监听&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo netstat -tulnp &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; grep turnserver  &lt;span class=&#34;c1&#34;&gt;# 应看到3478端口监听&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;模块2esxi侧vpn网关vm配置ipsec服务端部署&#34;&gt;模块2：ESXi侧VPN网关VM配置（IPsec服务端部署）&lt;/h2&gt;
&lt;p&gt;核心逻辑：ESXi主机不直接部署IPsec，通过创建Ubuntu虚拟机作为网关，承载StrongSwan服务端功能，网关IP规划为172.31.88.10/24（网关为172.31.88.1）。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
