<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>江牧律师</title>
        <link>https://lawyerjiang.top/</link>
        <description>法律问题、技术分享</description>
        <lastBuildDate>Sun, 03 Aug 2025 12:44:05 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>zh-CN</language>
        <copyright>All rights reserved 2025, 江牧</copyright>
        <item>
            <title><![CDATA[WiFi破解札记]]></title>
            <link>https://lawyerjiang.top/article/practice/guide/3</link>
            <guid>https://lawyerjiang.top/article/practice/guide/3</guid>
            <pubDate>Sat, 26 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[一次偶然的机会，小明对隔壁王叔叔家的wifi产生了兴趣]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-23a073b4a4c680a3ab6ef5e260dc2733"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-callout notion-gray_background_co notion-block-23a073b4a4c680809b63d4b51277a571"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="😀">😀</span></div><div class="notion-callout-text">小明是一个爱学习的小朋友，但家境贫寒，上网课没有wifi。可害羞的他不好意思向隔壁王叔叔开口，身为一个技术宅，于是便有了如下的操作……</div></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-23a073b4a4c68090badeddb887208fae" data-id="23a073b4a4c68090badeddb887208fae"><span><div id="23a073b4a4c68090badeddb887208fae" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23a073b4a4c68090badeddb887208fae" title="📝 无线WiFi网络的密码破解攻防及原理"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📝 <span class="notion-default"><b>无线WiFi网络的密码破解攻防及原理</b></span></span></span></h2><details class="notion-toggle notion-block-23a073b4a4c68060b3f3f692acc8303c"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23a073b4a4c68060b3f3f692acc8303c" data-id="23a073b4a4c68060b3f3f692acc8303c"><span><div id="23a073b4a4c68060b3f3f692acc8303c" class="notion-header-anchor"></div><span class="notion-h-title"><span class="notion-default"><b>1 WiFi的加密方式</b></span></span></span></h3></summary><div><blockquote class="notion-quote notion-block-23a073b4a4c680029b04e0467a4ea08c"><div><span class="notion-default">目前无线路由器里带有的</span><span class="notion-default"><b>加密模式</b></span><span class="notion-default">主要有：</span><span class="notion-default"><b>WEP，WPA-PSK（TKIP），WPA2-PSK（AES）和WPA3</b></span><span class="notion-default">。</span></div></blockquote><details class="notion-toggle notion-block-23b073b4a4c680f88b61dac2dedce26f"><summary><h4 class="notion-h notion-h3 notion-block-23b073b4a4c680f88b61dac2dedce26f" data-id="23b073b4a4c680f88b61dac2dedce26f"><span><div id="23b073b4a4c680f88b61dac2dedce26f" class="notion-header-anchor"></div><span class="notion-h-title">1.1 <b>WEP（Wired Equivalent Privacy）已淘汰</b></span></span></h4></summary><div><ul class="notion-list notion-list-disc notion-block-23b073b4a4c6803fad62dcda4eefbe38"><li><b>WEP（Wired Equivalent Privacy）</b></li><ul class="notion-list notion-list-disc notion-block-23b073b4a4c6803fad62dcda4eefbe38"><li><b>加密方式</b>：RC4 流加密</li><li><b>安全性</b>：极低，易被破解（5 分钟内可破解）</li><li><b>现状</b>：已被 WiFi 联盟废弃，仅兼容老旧设备。</li></ul></ul></div></details><details class="notion-toggle notion-block-23b073b4a4c6801bbe6be65c76935906"><summary><h4 class="notion-h notion-h3 notion-block-23b073b4a4c6801bbe6be65c76935906" data-id="23b073b4a4c6801bbe6be65c76935906"><span><div id="23b073b4a4c6801bbe6be65c76935906" class="notion-header-anchor"></div><span class="notion-h-title"><b>1.2 WPA（Wi-Fi Protected Access）</b></span></span></h4></summary><div><ul class="notion-list notion-list-disc notion-block-23b073b4a4c68042bc3af204ebba3a1e"><li><b>WPA-PSK（Personal）</b></li><ul class="notion-list notion-list-disc notion-block-23b073b4a4c68042bc3af204ebba3a1e"><li><b>加密方式</b>：TKIP（临时解决方案，现不安全） + <b>AES-CCMP</b>（可选）</li><li><b>安全性</b>：TKIP 已被破解，但 AES-CCMP 仍安全。</li><li><b>适用场景</b>：旧设备兼容模式（建议升级到 WPA2/WPA3）。</li></ul></ul></div></details><details class="notion-toggle notion-block-23b073b4a4c6801a949eeeb8dbc594de"><summary><h4 class="notion-h notion-h3 notion-block-23b073b4a4c6801a949eeeb8dbc594de" data-id="23b073b4a4c6801a949eeeb8dbc594de"><span><div id="23b073b4a4c6801a949eeeb8dbc594de" class="notion-header-anchor"></div><span class="notion-h-title"><b>1.3 WPA2（Wi-Fi Protected Access 2）</b></span></span></h4></summary><div><ul class="notion-list notion-list-disc notion-block-23b073b4a4c680e1b202d07803c55c9c"><li><b>WPA2-PSK（Personal）</b></li><ul class="notion-list notion-list-disc notion-block-23b073b4a4c680e1b202d07803c55c9c"><li><b>加密方式</b>：强制使用 <b>AES-CCMP</b>（取代 TKIP）</li><li><b>安全性</b>：高，但若使用弱密码可能被暴力破解。</li><li><b>现状</b>：目前最广泛使用的加密方式。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-23b073b4a4c680f4bdffc33d33456d59"><li><b>WPA2-Enterprise</b></li><ul class="notion-list notion-list-disc notion-block-23b073b4a4c680f4bdffc33d33456d59"><li><b>加密方式</b>：AES-CCMP + <b>RADIUS 服务器认证</b></li><li><b>安全性</b>：极高，需企业级部署（如 802.1X/EAP）。</li></ul></ul></div></details><details class="notion-toggle notion-block-23b073b4a4c6805d8b01eadd634c25ad"><summary><h4 class="notion-h notion-h3 notion-block-23b073b4a4c6805d8b01eadd634c25ad" data-id="23b073b4a4c6805d8b01eadd634c25ad"><span><div id="23b073b4a4c6805d8b01eadd634c25ad" class="notion-header-anchor"></div><span class="notion-h-title"><b>1.4 WPA3（Wi-Fi Protected Access 3）</b></span></span></h4></summary><div><ul class="notion-list notion-list-disc notion-block-23b073b4a4c68089b59dd61d122e1517"><li><b>WPA3-Personal</b></li><ul class="notion-list notion-list-disc notion-block-23b073b4a4c68089b59dd61d122e1517"><li><b>加密方式</b>：<b>SAE（Simultaneous Authentication of Equals）</b> 取代 PSK</li><li><b>安全性</b>：防暴力破解（即使密码简单），前向保密。</li><li><b>要求</b>：需路由器和支持的设备（2018 年后新设备）。</li></ul></ul><ul class="notion-list notion-list-disc notion-block-23b073b4a4c680579ac6cac3af61f65e"><li><b>WPA3-Enterprise</b></li><ul class="notion-list notion-list-disc notion-block-23b073b4a4c680579ac6cac3af61f65e"><li><b>加密方式</b>：AES-CCMP + <b>192 位加密套件</b>（可选）</li><li><b>安全性</b>：企业级最高标准，抵御高级攻击。</li></ul></ul></div></details></div></details><details class="notion-toggle notion-block-23a073b4a4c6800c84ebde2d23c902f1"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23a073b4a4c6800c84ebde2d23c902f1" data-id="23a073b4a4c6800c84ebde2d23c902f1"><span><div id="23a073b4a4c6800c84ebde2d23c902f1" class="notion-header-anchor"></div><span class="notion-h-title">2 <span class="notion-default"><b>针对WiFi网络的密码破解方法</b></span></span></span></h3></summary><div><blockquote class="notion-quote notion-block-23a073b4a4c6802584dcd8970777fb39"><div><span class="notion-default">主流方法：
1、不需要技术的破解方法，利用手机端&quot;</span><span class="notion-default"><b>WiFi万能钥匙</b></span><span class="notion-default">&quot;等软件蹭网。
2、在抓到客户端与目标WiFi的握手包后实施基于</span><span class="notion-default"><b>密码字典的暴力破解</b></span><span class="notion-default">，成功率取决于目标WiFi的密码强度、字典的大小或准确度、实施爆破的机器运算性能。
3、在开启了wps功能的WiFi，使用</span><span class="notion-default"><b>pin码猜解</b></span><span class="notion-default">的方法获得WiFi密码。</span></div></blockquote><h3 class="notion-h notion-h2 notion-block-23a073b4a4c680b995a5e5a65e40bd4c" data-id="23a073b4a4c680b995a5e5a65e40bd4c"><span><div id="23a073b4a4c680b995a5e5a65e40bd4c" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23a073b4a4c680b995a5e5a65e40bd4c" title="原理："><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><span class="notion-default"><b>原理：</b></span></span></span></h3><details class="notion-toggle notion-block-23a073b4a4c6806fb969d88b89ab42bd"><summary><h4 class="notion-h notion-h3 notion-block-23a073b4a4c6806fb969d88b89ab42bd" data-id="23a073b4a4c6806fb969d88b89ab42bd"><span><div id="23a073b4a4c6806fb969d88b89ab42bd" class="notion-header-anchor"></div><span class="notion-h-title"><span class="notion-default"><b>2.1 WiFi万能钥匙&quot;类App的原理</b></span></span></span></h4></summary><div><div class="notion-text notion-block-23a073b4a4c680efb629cc25fd8527cc"><span class="notion-default">收集用户手机上成功连接过的WiFi账号和密码，并上传、存储到App的服务器上，等到附近的蹭网者搜索到同一个网络时，该App就可以根据附近热点的配置信息，从服务器上自动匹配并取得相应的密码，通过数据流量发送到手机端，从而完成WiFi连网。</span></div></div></details><details class="notion-toggle notion-block-23a073b4a4c6802eacc1d04263156392"><summary><h4 class="notion-h notion-h3 notion-block-23a073b4a4c6802eacc1d04263156392" data-id="23a073b4a4c6802eacc1d04263156392"><span><div id="23a073b4a4c6802eacc1d04263156392" class="notion-header-anchor"></div><span class="notion-h-title"><span class="notion-default"><b>2.2 暴力破解的原理</b></span></span></span></h4></summary><div><div class="notion-text notion-block-23a073b4a4c6800f8ca3f542a0b6a666"><span class="notion-default">普通的无线路由器，加密方法一般使用wpa 、wpa2或wep，wep因为太不安全极易被破解在现行的无线路由器上已基本取消。所以我们搜索到的待破WiFi基本都是wpa或wpa2加密的。至于使用认证服务器(如radius等)的wpa认证在个人无线WiFi领域基本不可能，所以通常我们能搜索到的待破WiFi都是基于本地密码的wpa或wpa2加密WiFi。</span></div><div class="notion-text notion-block-23a073b4a4c680ae93a3f08252f7388c"><span class="notion-default">破解wpa和wpa2加密的WiFi网络的基本原理通俗来讲，我们需要先在无线网卡监听模式下搜集目标WiFi的信息，例如ssid（WiFi名称）、BSSID（也就是目标WiFi无线路由器的MAC）、已连接的客户端mac、信号强度等信息。然后发送伪造的取消关联的数据包迫使已连接到该WiFi的客户端与WiFi断开连接，重点是，断开连接后，客户端会重新尝试发起连接到该WiFi网络，这时客户端会发送一个带有认证密码的数据包以便请求重新连入WiFi，这个包俗称为握手包。这时我们的攻击机利用攻击程序和无线网卡监听抓取到这个握手包，这个握手包里就含有</span><span class="notion-default"><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://so.csdn.net/so/search?q=WiFi%E5%AF%86%E7%A0%81&amp;spm=1001.2101.3001.7020">WiFi密码</a></span><span class="notion-default">，但这个密码当然是经过加密的，所以后续就需要我们使用攻击程序调用密码字典结合获取到的BSSID、客户端MAC等信息进行运算，不断运算字典中的每一个密码，直到有一个密码使用wpa算法能算出一个与抓到的握手包中一致的加密字串，这个就是目标WiFi的密码了。如果把字典里的每一个密码都算过一遍仍然没有一个与抓取到的握手包加密字串一致的，就破解失败，退出，构造新的字典再试。</span></div></div></details><details class="notion-toggle notion-block-23a073b4a4c680c4b0bec50d83cb96b1"><summary><h4 class="notion-h notion-h3 notion-block-23a073b4a4c680c4b0bec50d83cb96b1" data-id="23a073b4a4c680c4b0bec50d83cb96b1"><span><div id="23a073b4a4c680c4b0bec50d83cb96b1" class="notion-header-anchor"></div><span class="notion-h-title"><span class="notion-default"><b>2.3 Pin码破解WiFi密码</b></span></span></span></h4></summary><div><div class="notion-text notion-block-23a073b4a4c680e78321fb1347f1d871"><span class="notion-default">在早期的无线路由器上开启了wps功能，这个功能简单来讲就是为了方便设备连接WiFi，不需要每次都繁琐的输入密码而设立的一个8位的纯数字字串，客户端可以通过pin码快速关联路由器WiFi。wps这个功能的设计初衷是方便用户连接WiFi，却成为破解WiFi最有效的手段，因为8位纯数字的pin码，最多只有1亿种可能的组合，而由于最后一位是前七位的校验和，所以只需要猜解前七位，猜解的可能组合数就只有一千万种了，又由于发送pin码连接WiFi，pin码前4位出错的返回报错内容和后三位错误的返回报错报文内容不同，所以只需要先猜前四位，前四位对了再猜后面三位，都对了以后最后一位校验和自动可算出来，所以实际最多</span><span class="notion-default"><b>只需要猜解10000+1000种组合</b></span><span class="notion-default">，一般我们2秒种尝试一个pin码，那么理论上最多花费6个小时就一定可以猜解出目标路由器的pin码，进而获取到WiFi密码。</span></div><div class="notion-text notion-block-23a073b4a4c680549d4adca3a837ad22"><span class="notion-default">需要说明的是，尽管pin码破解WiFi被认为是最有效的WiFi破解手段，但在实际中不容易实现，一是因为pin码不安全的问题已广泛的被无线路由器的生产厂商所重视，所以现今购买的无线路由器基本都已经取消了这个wps功能。二是在pin的过程中需要不断的向目标路由器发送pin码进行尝试，对方路由器要返回响应报文，有时因路由器本身不稳定或路由器性能等问题，路由器不知不觉就被我们pin死了，使得猜解不能继续或路由器在接收到过多错误的pin码之后会自动休息一段时间，期间不接收pin码，这导致我们pin码猜解的时间过长而没有意义。</span></div><div class="notion-blank notion-block-23a073b4a4c680e794e6f3d16e59c19d"> </div></div></details></div></details><details class="notion-toggle notion-block-23a073b4a4c68013aeecd5bf58a6a680"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23a073b4a4c68013aeecd5bf58a6a680" data-id="23a073b4a4c68013aeecd5bf58a6a680"><span><div id="23a073b4a4c68013aeecd5bf58a6a680" class="notion-header-anchor"></div><span class="notion-h-title">3 破解过程实例讲解</span></span></h3></summary><div><blockquote class="notion-quote notion-block-23a073b4a4c680a7b8e2e56be4f758b9"><div><span class="notion-default"><b>准备工具:</b></span><span class="notion-default">
1.USB无线上网卡（必备。电脑自带的网卡驱动默认被阉割了监视功能）
2.kali系统</span></div></blockquote><details class="notion-toggle notion-block-23a073b4a4c680b693ecd6098f9518c7"><summary><h4 class="notion-h notion-h3 notion-block-23a073b4a4c680b693ecd6098f9518c7" data-id="23a073b4a4c680b693ecd6098f9518c7"><span><div id="23a073b4a4c680b693ecd6098f9518c7" class="notion-header-anchor"></div><span class="notion-h-title">3.1 法一 <span class="notion-default"><b>暴力破解法</b></span></span></span></h4></summary><div><blockquote class="notion-quote notion-block-23a073b4a4c68095a7d4e7e689e760df"><div><span class="notion-default">何为暴力破解呢，其实就是一个一个密码去试，直到正确的密码。</span></div></blockquote><details class="notion-toggle notion-block-23a073b4a4c680f68e9adc125bb427fe"><summary><span class="notion-default"><b>3.1.1 第一步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c68016a8fecc4395a7287c">进入<span class="notion-default">kali在终端输入</span><span class="notion-default"><code class="notion-inline-code">ifconfig</code></span><span class="notion-default">查看当前网卡信息是否正常（在执行该命令前网络连接应该显示断开，且ifconfig输出的wlan0后面应该不带有任何ip地址）</span></div></div></details><details class="notion-toggle notion-block-23a073b4a4c6800db285e028a5cde1e7"><summary><span class="notion-default"><b>3.1.2 第二步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c6808ab8b6ce501396c8a4"><span class="notion-default"><code class="notion-inline-code">airmon-ng</code></span><span class="notion-default">查看是否有网卡支持监听模式（没有支持监听模式的网卡，则该命令无输出）</span></div></div></details><details class="notion-toggle notion-block-23a073b4a4c68086a4d9d3171c758b1e"><summary><span class="notion-default"><b>3.1.3 第三步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c68022960bdd343f6ff900"><span class="notion-default">输入</span><span class="notion-default"><code class="notion-inline-code">airmon-ng start wlan0</code></span><span class="notion-default">开启网卡的监听模式。</span></div><div class="notion-text notion-block-23a073b4a4c680ad917bd2c775781e23"><span class="notion-default">同时再次输入</span><span class="notion-default"><code class="notion-inline-code">ifconfig</code></span><span class="notion-default">命令查看一下当前监听网卡的信息（部分网卡的名称可能会变化，例如：wlan0变成wlan0mon，后续的命令应使用变化后的网卡名称）
</span>如果监听不能打开，执行命令：<code class="notion-inline-code">airmon-ng check kill</code>,之后重新运行监听命令。</div></div></details><details class="notion-toggle notion-block-23a073b4a4c680edac4edd753b492536"><summary><span class="notion-default"><b>3.1.4 第四步</b></span></summary><div><blockquote class="notion-quote notion-block-23c073b4a4c68002ae76c4a0b08b37f4"><div>airodump-ng命令参数说明：<span class="notion-link-mention"><a href="https://linux.die.net/man/1/airodump-ng" target="_blank" rel="noopener noreferrer" class="notion-link-mention-link"><img class="notion-link-mention-icon" src="https://linux.die.net/favicon.ico"/><span class="notion-link-mention-title">airodump-ng(1) - Linux man page</span></a><div class="notion-link-mention-preview"><article class="notion-link-mention-card"><img class="notion-link-mention-preview-thumbnail" alt="airodump-ng(1) - Linux man page"/><div class="notion-link-mention-preview-content"><p class="notion-link-mention-preview-title">airodump-ng(1) - Linux man page</p><p class="notion-link-mention-preview-description">airodump-ng is a packet capture tool for aircrack-ng. It allows dumping packets directly from WLAN interface and saving them to a pcap or IVs file.</p><div class="notion-link-mention-preview-footer"><img class="notion-link-mention-preview-icon" src="https://linux.die.net/favicon.ico"/><span class="notion-link-mention-preview-provider"></span></div></div></article></div></span></div></blockquote><table class="notion-simple-table notion-block-23c073b4a4c68077a0aaf04677f03277"><tbody><tr class="notion-simple-table-row notion-block-23c073b4a4c680f78b79ff8e4132df5c"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>特性</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>2.4GHz频段</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>5GHz频段</b></div></td></tr><tr class="notion-simple-table-row notion-block-23c073b4a4c6801a9f83ea8eb3784a75"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>信道编号</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">1-14（常用1-13）</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165</div></td></tr><tr class="notion-simple-table-row notion-block-23c073b4a4c68010b774d8512abb4191"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>信道宽度</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">通常20MHz（可绑定为40MHz）</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">20/40/80/160MHz</div></td></tr><tr class="notion-simple-table-row notion-block-23c073b4a4c680f79f32e5a846ad03c7"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>干扰情况</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">干扰多（蓝牙、微波炉等）</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">干扰少，更干净</div></td></tr><tr class="notion-simple-table-row notion-block-23c073b4a4c680808d20d30c0067dbd2"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>覆盖范围</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">较远</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">较近（穿透力弱）</div></td></tr></tbody></table><div class="notion-text notion-block-23c073b4a4c680499120d26163b212a8">默认情况下，<code class="notion-inline-code"><b>airodump-ng</b></code> 优先扫描 2.4GHz（<code class="notion-inline-code"><b>--band bg</b></code>）。需显式指定 5GHz</div></div></details><details class="notion-toggle notion-block-23a073b4a4c6808db632d34d8f421b50"><summary><span class="notion-default"><b>3.1.5 第五步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c680fe9e42c7d429c24753"><span class="notion-default">上图可以看出BSSID是50:3A:A0:33:B2:8C 信道(CH)是：2</span></div><div class="notion-text notion-block-23a073b4a4c68060b878d4a6cd2d9e4f"><span class="notion-default">输入如下命令抓取数据包：</span></div><div class="notion-text notion-block-23a073b4a4c680589fb9f19150bff435">这样便开始抓包了。但这种抓包是一种被动等待的方式，守株待兔，多久能够抓到握手包取决于什么时候有设备和该目标wifi完成成功的认证。</div></div></details><details class="notion-toggle notion-block-23a073b4a4c6800184bcc1ceb00c1699"><summary><span class="notion-default"><b>3.1.6 第六步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c680159d4bc0f5e2cfdb06">为了加快抓包的速度，使用Deauth攻击将目标wifi下的设备踢下线，利用wifi断线自动登入会重发握手包的机制，来更快抓取到握手包。</div><div class="notion-text notion-block-23a073b4a4c680a58066dc61af1da1f5"><span class="notion-default">再开一个终端输入命令（不要关闭原终端）：</span></div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23a073b4a4c68094b668dc05b7c7f221"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A6ee29984-6f2b-4f89-8a7c-83d12c831672%3Aimage.png?table=block&amp;id=23a073b4-a4c6-8094-b668-dc05b7c7f221&amp;t=23a073b4-a4c6-8094-b668-dc05b7c7f221" alt="发起攻击后等待一段时间，当原终端中显示WPA handshake时，即代表抓取握手包成功。此时在原终端输入ctrl+c退出命令执行，即可在桌面上看到生成的抓包文件。我们需要用到后缀为cap的文件" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">发起攻击后等待一段时间，当原终端中显示WPA handshake时，即代表抓取握手包成功。此时在原终端输入ctrl+c退出命令执行，即可在桌面上看到生成的抓包文件。我们需要用到后缀为cap的文件</figcaption></div></figure></div></details><details class="notion-toggle notion-block-23a073b4a4c680ae9895e125721cff9a"><summary><span class="notion-default"><b>3.1.7 第七步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c6808fa1fef5c4e6a27c62">输入如下命令破解握手包：</div><div class="notion-text notion-block-23a073b4a4c6802cb972d6c59d44e046">密码字典可以通过 Google 或者 GitHub 搜索下载，推荐两个 GitHub 的字典：</div><div class="notion-text notion-block-23a073b4a4c680b0b4a8e8bd9b281096"><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://github.com/conwnet/wpa-dictionary">https://github.com/conwnet/wpa-dictionary</a></div><div class="notion-text notion-block-23a073b4a4c6807298b4cd09f7d22332"><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://github.com/IYATT-yx/WiFi-Password-Dictionary">https://github.com/IYATT-yx/WiFi-Password-Dictionary</a></div><div class="notion-text notion-block-23a073b4a4c680748f3cde8df5fb7db8">同时这一步可以不使用原生命令aircrack，而使用hashcat破解，hashcat支持更个性化的密码特征设置。此处不展开介绍。</div><div class="notion-text notion-block-23a073b4a4c68040b525c0bcd454743b">破解速度取决于电脑的硬件配置，<span class="notion-default">成功与否靠强大的字典和运气了。（字典模式的暴力破解成功率和字典的大小有直接关系，但是再大的字典，如果字典中没有这个 WiFi 的密码，那么最终还是无法破解，而且耗费的时间也会更久 XD。）</span></div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23a073b4a4c6804a8688f835f11d1a1b"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:560.9658813476562px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A68a5c416-7a6f-4fc2-adeb-e617211cdbba%3Aimage.png?table=block&amp;id=23a073b4-a4c6-804a-8688-f835f11d1a1b&amp;t=23a073b4-a4c6-804a-8688-f835f11d1a1b" alt="破解成功示例" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">破解成功示例</figcaption></div></figure><div class="notion-text notion-block-23a073b4a4c680939e4afc3017642874">附带命令：</div></div></details></div></details><details class="notion-toggle notion-block-23a073b4a4c680dd8d83edacda3ebdb5"><summary><h4 class="notion-h notion-h3 notion-block-23a073b4a4c680dd8d83edacda3ebdb5" data-id="23a073b4a4c680dd8d83edacda3ebdb5"><span><div id="23a073b4a4c680dd8d83edacda3ebdb5" class="notion-header-anchor"></div><span class="notion-h-title">3.2 法二 Pin码破解（目标wifi需开启WPS）</span></span></h4></summary><div><blockquote class="notion-quote notion-block-23a073b4a4c68002b13acb95b50c7b44"><div>WPS（Wi-Fi Protected Setup）是Wi-Fi保护设置的英文缩写。</div><div class="notion-text notion-block-23a073b4a4c68022874fd9b5097dcaf2">对于一般用户，WPS可将具有WPS功能的Wi-Fi设备和无线路由器进行快速互联，还会随机产生一个<b>八位数字</b>的字符串作为个人识别号码（PIN）进行加密操作。省去了客户端需要连入无线网络时，必须手动添加网络名称（SSID）及输入冗长的无线加密密码的繁琐过程。</div><div class="notion-text notion-block-23a073b4a4c680018c25c05412777e18">PIN有8位，其中第8位是由前7位计算得到，接入点(无线路由器)实际上是要找出这个PIN的前半部分(前4位)和后半部分(后3位)是否正确即可。当第一次PIN认证连接失败后，路由器会向客户端发回一个EAP-NACK信息，而通过该回应，攻击者将能够确定的PIN前半部或后半部是否正确。换句话说，黑客只需从7位数的PIN中找出一个4位数的PIN和一个3位数的PIN。这样一来，级次又被降低，从1000万种变化，减少到11000（10^4+10^3）种变化。因此，在实际破解尝试中，黑客最多只需试验11000次，平均只需试验大约5500次就能破解。这也证实了在2小时内破解PIN码的可行性。</div></blockquote><div class="notion-text notion-block-23a073b4a4c680a99860ed65a5b54f15">前四步与法一相同</div><details class="notion-toggle notion-block-23a073b4a4c6807eaf62f6586530653c"><summary><span class="notion-default"><b>3.2.1 第一步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c680af8e7de19abf810da0">进入<span class="notion-default">kali在终端输入</span><span class="notion-default"><code class="notion-inline-code">ifconfig</code></span><span class="notion-default">查看当前网卡信息是否正常（在执行该命令前网络连接应该显示断开，且ifconfig输出的wlan0后面应该不带有任何ip地址）</span></div></div></details><details class="notion-toggle notion-block-23a073b4a4c680799118fe8237d9fa45"><summary><span class="notion-default"><b>3.2.2 第二步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c680d095b7e17c47e2d72a"><span class="notion-default"><code class="notion-inline-code">airmon-ng</code></span><span class="notion-default">查看是否有网卡支持监听模式（没有支持监听模式的网卡，则该命令无输出）</span></div></div></details><details class="notion-toggle notion-block-23a073b4a4c6801e928bfb37f5c2a5ea"><summary><span class="notion-default"><b>3.2.3 第三步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c68070b2e6ee1b276b8bf1"><span class="notion-default">输入</span><span class="notion-default"><code class="notion-inline-code">airmon-ng start wlan0</code></span><span class="notion-default">开启网卡的监听模式。</span></div><div class="notion-text notion-block-23a073b4a4c68072a056f205d3101b88"><span class="notion-default">同时再次输入</span><span class="notion-default"><code class="notion-inline-code">ifconfig</code></span><span class="notion-default">命令查看一下当前监听网卡的信息（部分网卡的名称可能会变化，例如：wlan0变成wlan0mon，后续的命令应使用变化后的网卡名称）
</span>如果监听不能打开，执行命令：<code class="notion-inline-code">airmon-ng check kill</code>,之后重新运行监听命令。</div><div class="notion-blank notion-block-23a073b4a4c6809db2fbcc8f12cd22ff"> </div></div></details><details class="notion-toggle notion-block-23a073b4a4c680c58d5ef7c914dd40e4"><summary><span class="notion-default"><b>3.2.4 第四步</b></span></summary><div><div class="notion-text notion-block-23a073b4a4c680e7a296cb1e7229e9b1"><span class="notion-default">输入</span><span class="notion-default"><code class="notion-inline-code">airodump-ng wlan0mon</code></span><span class="notion-default">扫描当前周边环境的wifi信号，并记录下目标wifi的BSSID和CH</span></div></div></details><div class="notion-text notion-block-23a073b4a4c68053a305c0afbd620424">后五步有区分</div><details class="notion-toggle notion-block-23a073b4a4c6805ebb1fc0b135f5b7ed"><summary><b>3.2.5 第五步</b></summary><div><div class="notion-text notion-block-23a073b4a4c68061b4b1cd7df2c79e91">输入如下命令。找出开启了 WPS 功能、可以使用 PIN码 登录的路由器，并另外记录下该AP的BSSID（约等于该 AP 的 MAC 地址）</div></div></details><details class="notion-toggle notion-block-23a073b4a4c680f197f4ed87ddae938c"><summary><b>3.2.6 第六步</b></summary><div><div class="notion-text notion-block-23a073b4a4c680bb9ebee4dd5754fcb7">输入如下命令。开始进行PIN码穷举破解（注意末尾的参数是2个小写字母v，-d9和-</div><div class="notion-text notion-block-23a073b4a4c680b6b3cdf37010e1ab6e">t9是防止pin死路由器）</div><div class="notion-callout notion-gray_background_co notion-block-23a073b4a4c680f09ee8f1c173be78f4"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="💡">💡</span></div><div class="notion-callout-text"><div class="notion-text notion-block-23a073b4a4c680b8aa05d569145f9319">这样pin也是有限制的，比如要被pin出的路由器必须得开启wps功能；貌似现在很多都是防pin路由器或300秒pin限制的。
有些路由pin码可以通过计算得到：腾达和磊科的产品如果路由MAC地址是以“C83A35”或“00B00C”打头那么可以直接计算出PIN值。比如这个：bssid：Tenda_579A18 mac：C8：3A：35：57：9A：18通过计算器将mac后6位换算成10进制数，得到5741080（pin码的前7位），最多试10次或通过软件得到该路由pin码！</div></div></div><div class="notion-text notion-block-23a073b4a4c68063893dff6695334f42">等待破解完成（这个破解可能会时间比较长，和你的目标 AP 有关），这期间我们可以查看到穷举破解花费的时间、预计剩余时间、穷举PIN码进度信息：</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23a073b4a4c6804b826bcc1016f063d6"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:626px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A9769f5f0-c23e-4a9b-a448-0a736274729f%3Aimage.png?table=block&amp;id=23a073b4-a4c6-804b-826b-cc1016f063d6&amp;t=23a073b4-a4c6-804b-826b-cc1016f063d6" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23a073b4a4c6806fa767eaeef562d279">破解完成后，查看并记录下 PIN码 和 密码：</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23a073b4a4c68097a93bc3946bcaa457"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:626px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A2461c03d-4186-4b98-8d13-d2f044108a09%3Aimage.png?table=block&amp;id=23a073b4-a4c6-8097-a93b-c3946bcaa457&amp;t=23a073b4-a4c6-8097-a93b-c3946bcaa457" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23a073b4a4c680e99700c182cab5242d">获取到 PIN码 后，以后即便路由器更换了密码，我们也可以很迅速地通过 PIN码 重新获得新密码。以上方获取到的信息举例：</div><div class="notion-blank notion-block-23a073b4a4c6801885c1fe2559f1159c"> </div><div class="notion-text notion-block-23a073b4a4c680f1bda9ca4879f7afe9">【注意事项】</div><div class="notion-text notion-block-23a073b4a4c680e39cc5e3df12133752">1、如果在执行 reaver 命令后看到有 WARNING: Failed to associate with xx:xx:xx:xx:xx:xx 这样的提示信息，那么应该是你选择了一个不具备或关闭了 WPS 功能的路由器。这种情况下就执行wash 命令并重新选择一个路由器吧。</div><div class="notion-text notion-block-23a073b4a4c680edbbcbe29b5b902359">2、如果在执行 reaver 命令后看到有 warning detected ap rate limiting waiting 60 seconds before re-checking 这样的提示信息，这表示目标路由器开启了防 PIN破解 功能。因为我们是穷举 PIN码 进行破解的，当连续使用超过某个次数的 PIN码 后，路由器会暂时锁定 WPS 功能一段时间。这种情况下要么我们耐心等待其恢复 WPS 功能，要么执行 <code class="notion-inline-code">mdk3 wlan0mon a -a xx:xx:xx:xx:xx:xx</code> （这是上面的目标AP的MAC地址）命令让路由器主动重启或被动重启以恢复 WPS 功能。</div></div></details></div></details><details class="notion-toggle notion-block-23a073b4a4c680e08eb5c95965c5adbd"><summary><h4 class="notion-h notion-h3 notion-block-23a073b4a4c680e08eb5c95965c5adbd" data-id="23a073b4a4c680e08eb5c95965c5adbd"><span><div id="23a073b4a4c680e08eb5c95965c5adbd" class="notion-header-anchor"></div><span class="notion-h-title">3.3 法三 伪造wifi热点钓鱼</span></span></h4></summary><div><details class="notion-toggle notion-block-23a073b4a4c6800da0aaf02001047616"><summary>3.3.1 伪造有portal网页登录窗口的wifi连接</summary><div><div class="notion-blank notion-block-23a073b4a4c680a99f09c282193069c8"> </div></div></details></div></details><div class="notion-blank notion-block-23a073b4a4c6803aa72ac9f84b35003c"> </div><div class="notion-blank notion-block-23a073b4a4c6803892bcf101c86674c3"> </div></div></details><details class="notion-toggle notion-block-23b073b4a4c680c882edf7c8c043fafd"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23b073b4a4c680c882edf7c8c043fafd" data-id="23b073b4a4c680c882edf7c8c043fafd"><span><div id="23b073b4a4c680c882edf7c8c043fafd" class="notion-header-anchor"></div><span class="notion-h-title">4 WiFi安全防范</span></span></h3></summary><div><div class="notion-text notion-block-23b073b4a4c6805e9cc2f95d90a25772">1、<b>设置复杂密码
</b>包含字符、符号和数字，长度设置到12位以上，越复杂的无线密码对方破解难度越大。<b>加密方式选用WPA2-PSK或WPA3</b>。</div><div class="notion-text notion-block-23b073b4a4c68004a3b1e99dfbe5fa6c">2、<b>隐藏自己的无线网络名称</b>
当我们隐藏无线认证之后，别人是无法找到我们的网络连接点，所以无法连接到我们的网络。点击路由器页面左上角的无线基本设置。在右侧可以看到有一个SSID服务广播。把前面的勾打掉，点击下面的保存。就可以隐藏无线信号</div><div class="notion-text notion-block-23b073b4a4c680b59e64fa0dc82bf32c">3、<b>设置白名单，开启MAC地址过滤功能
</b>手动把自己家里上网设备的MAC地址添加进来，这时即使有人破解了WIFI密码也无法上网。</div></div></details><details class="notion-toggle notion-block-23f073b4a4c680d2a091f1187267a9cd"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23f073b4a4c680d2a091f1187267a9cd" data-id="23f073b4a4c680d2a091f1187267a9cd"><span><div id="23f073b4a4c680d2a091f1187267a9cd" class="notion-header-anchor"></div><span class="notion-h-title">5 其他</span></span></h3></summary><div><div class="notion-text notion-block-23f073b4a4c680249e2fc9e1ee7bbc16">一些很有趣的攻击手段，伪造ap、Deauth攻击、arp欺骗攻击等</div><details class="notion-toggle notion-block-23f073b4a4c68032bdb2e9db69b08eaa"><summary><h4 class="notion-h notion-h3 notion-block-23f073b4a4c68032bdb2e9db69b08eaa" data-id="23f073b4a4c68032bdb2e9db69b08eaa"><span><div id="23f073b4a4c68032bdb2e9db69b08eaa" class="notion-header-anchor"></div><span class="notion-h-title">5.1 伪造AP</span></span></h4></summary><div><ol start="1" class="notion-list notion-list-numbered notion-block-23f073b4a4c680f8aa05e52f0fb751cb"><li>安装mdk3</li><ol class="notion-list notion-list-numbered notion-block-23f073b4a4c680f8aa05e52f0fb751cb"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-240073b4a4c680a38a4ecb49538c704b"><li>开启网卡的监听模式（输入<code class="notion-inline-code">ifconfig</code>查看对应网卡的名称）</li><ol class="notion-list notion-list-numbered notion-block-240073b4a4c680a38a4ecb49538c704b"></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-240073b4a4c68076946ef2313f8d2439"><li>生成虚假AP(输入<code class="notion-inline-code">ifconfig</code>查看开启监听模式后对应网卡的名称，我这里是wlan0mon)</li><ol class="notion-list notion-list-numbered notion-block-240073b4a4c68076946ef2313f8d2439"><table class="notion-simple-table notion-block-240073b4a4c680619b45c116d47438e5"><tbody><tr class="notion-simple-table-row notion-block-240073b4a4c68058897dea70760f3ee5"><td class="" style="width:120px"><div class="notion-simple-table-cell">b</div></td><td class="" style="width:421px"><div class="notion-simple-table-cell">Beacon Flood 模式，用于发送大量虚假AP信号（伪造Wi-Fi热点）</div></td></tr><tr class="notion-simple-table-row notion-block-240073b4a4c680249c67c67b22465ba5"><td class="" style="width:120px"><div class="notion-simple-table-cell">-f</div></td><td class="" style="width:421px"><div class="notion-simple-table-cell">从文件读取SSID列表（每行一个SSID，用于生成虚假AP的名称）</div></td></tr><tr class="notion-simple-table-row notion-block-240073b4a4c680c9a747c8b897951d82"><td class="" style="width:120px"><div class="notion-simple-table-cell">/home/kali/Desktop/fake_ap.txt</div></td><td class="" style="width:421px"><div class="notion-simple-table-cell">存储虚假SSID列表的文件路径（需提前准备）</div></td></tr><tr class="notion-simple-table-row notion-block-240073b4a4c680219714d08cf40e0b8e"><td class="" style="width:120px"><div class="notion-simple-table-cell">-t</div></td><td class="" style="width:421px"><div class="notion-simple-table-cell">使用WPA/TKIP加密（默认伪造的AP是开放的，此参数强制加密）</div></td></tr><tr class="notion-simple-table-row notion-block-240073b4a4c680daaa2df0bb572851b8"><td class="" style="width:120px"><div class="notion-simple-table-cell">-c</div></td><td class="" style="width:421px"><div class="notion-simple-table-cell">指定信道（Channel），这里设为 6（2.4GHz频段）</div></td></tr></tbody></table><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-240073b4a4c6801dac1bf3bc4045ae51"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:448.7159118652344px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A4b82786b-eb0a-45a5-a85d-ce668d216041%3A1753868687200.png?table=block&amp;id=240073b4-a4c6-801d-ac1b-f3bc4045ae51&amp;t=240073b4-a4c6-801d-ac1b-f3bc4045ae51" alt="效果如图" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">效果如图</figcaption></div></figure></ol></ol></div></details><details class="notion-toggle notion-block-240073b4a4c680e6bc8fd2cc0077248c"><summary><h4 class="notion-h notion-h3 notion-block-240073b4a4c680e6bc8fd2cc0077248c" data-id="240073b4a4c680e6bc8fd2cc0077248c"><span><div id="240073b4a4c680e6bc8fd2cc0077248c" class="notion-header-anchor"></div><span class="notion-h-title">5.2 Deauth（解除认证）攻击</span></span></h4></summary><div><blockquote class="notion-quote notion-block-240073b4a4c680b890d1decd921c798a"><div>本攻击方式不必在同一局域网下，但需要网卡具有监听模式</div></blockquote><ol start="1" class="notion-list notion-list-numbered notion-block-240073b4a4c680c19577d8730655ea56"><li>将网卡开启监听模式</li><ol class="notion-list notion-list-numbered notion-block-240073b4a4c680c19577d8730655ea56"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-240073b4a4c680b389cfee74d57f8fb0"><li>使用mdk3进行Deauth攻击（mdk3还有很多其他的攻击模式，有兴趣可以检索一下）</li><ol class="notion-list notion-list-numbered notion-block-240073b4a4c680b389cfee74d57f8fb0"><div class="notion-text notion-block-242073b4a4c680bab05bc6b29b8e17b8">mdk3只能指定信道，但不适合指定信道下的指定ap</div><div class="notion-text notion-block-240073b4a4c6803f90e0dd2b0e4274f0">如果不知道信道是多少的话，需要在这一步之前进行wifi扫描（现代路由器的wifi信道是会随着网络环境的信道拥挤程度不断变动的，而非一成不变）</div><details class="notion-toggle notion-block-242073b4a4c68044b554d6c8abd9d966"><summary>使用mdk4指定ap进行攻击</summary><div><div class="notion-text notion-block-242073b4a4c6809eb8edccb0dcec1422">mdk4可以指定信道下的指定ap</div></div></details><details class="notion-toggle notion-block-240073b4a4c680c1872ce75eba4013d3"><summary>其实aireplay-ng也能实现和mdk3相同的攻击效果</summary><div><blockquote class="notion-quote notion-block-241073b4a4c680bf9d79f0e8800f1ac7"><div>aireplay-ng的缺点是需要提前切换信道，且一次只能攻击一个信道（不如mdk3可以同时指定多个信道），对于现代路由器2.4GHz和5GHz的两个信道来说，过于鸡肋。</div></blockquote><div class="notion-text notion-block-241073b4a4c68037870dc7cd306e2474">如果出现如下报错，意味着无线网卡当前工作在 信道 10，但目标 AP（<code class="notion-inline-code">EC:60:73:41:44:95</code>）实际运行在 信道 1，导致无法发送解除认证（Deauth）攻击包。</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-241073b4a4c680b68316f820170d5a04"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:597.95458984375px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A320a78df-9892-4fbd-bd48-05899755847e%3Aimage.png?table=block&amp;id=241073b4-a4c6-80b6-8316-f820170d5a04&amp;t=241073b4-a4c6-80b6-8316-f820170d5a04" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-241073b4a4c680489b1ad1bcc6defd47">解决方式如下：</div><div class="notion-text notion-block-241073b4a4c6805da626f3de4dff88bd">或者在启动监听模式时可以直接指定信道</div></div></details><div class="notion-blank notion-block-240073b4a4c680a29fb7eca47d3161c3"> </div></ol></ol></div></details><details class="notion-toggle notion-block-240073b4a4c680a18cc3faafbdf8142f"><summary><h4 class="notion-h notion-h3 notion-block-240073b4a4c680a18cc3faafbdf8142f" data-id="240073b4a4c680a18cc3faafbdf8142f"><span><div id="240073b4a4c680a18cc3faafbdf8142f" class="notion-header-anchor"></div><span class="notion-h-title">5.3 arp欺骗攻击</span></span></h4></summary><div><blockquote class="notion-quote notion-block-240073b4a4c6805ea96ad04c18c8d696"><div>本攻击方式要求与目标设备在同一局域网下，但不需要网卡具备监听模式</div></blockquote><div class="notion-text notion-block-240073b4a4c680a996b1f8d225d9ab8b">arp的作用机制很简单：设备与网关、设备与设备之间在传输数据之前会通过arp广播来问询目标ip得到目标mac地址（这样的arp广播没有身份验证机制）</div><div class="notion-text notion-block-240073b4a4c6801692beef1e383272b6">这样我们便可以伪造一个arp广播，广播的内容是：全体目光向我看齐，我宣布个事，我是路由器！（即，发送广播欺骗目标设备，192.168.0.1的mac地址是攻击机的mac地址）</div><div class="notion-text notion-block-240073b4a4c680f29f85e0a50c039eea">这样，目标设备就会把本该交给路由器的数据包，交给了攻击机。接下来，是丢弃这份数据包让其断网；还是进行中间人攻击，监听这个数据包并交给真正的路由器，就都由我们掌握了。</div><details class="notion-toggle notion-block-240073b4a4c68012ba75fda3456ee183"><summary><b>5.3.1 准备</b></summary><div><div class="notion-text notion-block-240073b4a4c6808ca7ede6b127f3e85a">1.将 Kali 虚拟机配置为<b>桥接模式</b>，</div><div class="notion-text notion-block-240073b4a4c6802f9e17ddc03caae3fe">2.将网卡连接至目标设备所在的局域网下（需要配合我们前面破解wifi密码的教程），这里有两种选择：</div><div class="notion-text notion-block-240073b4a4c680b0ae79cc500d6e73a4">第一种，实体机的wifi连接至目标设备的局域网下（则攻击时，网卡填写eth0）</div><div class="notion-text notion-block-240073b4a4c6804fa52de6dd2a2a0d68">第二种，外接USB网卡，在vmware中点击“虚拟机”→“可移动设备”→“对应的usb网卡名称”→“连接”，在虚拟机中连接上目标设备所在的局域网（则攻击时，网卡填写wlan0）</div></div></details><details class="notion-toggle notion-block-240073b4a4c6804eb5f7f4a0bfec2041"><summary><b>5.3.2 攻击</b></summary><div><ol start="1" class="notion-list notion-list-numbered notion-block-240073b4a4c6801a9f63d53f87ad02b5"><li>使用zenmap扫描目标网段下的所有设备（192.168.0.0/24）</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-240073b4a4c6806bbae1f03459d948f4"><li>找到目标设备的ip后，执行下面的代码</li><ol class="notion-list notion-list-numbered notion-block-240073b4a4c6806bbae1f03459d948f4"><details class="notion-toggle notion-block-242073b4a4c6801f85b9c67c089ec3f5"><summary>进一步，可以用ettercap进行arp双向欺骗</summary><div><ol start="1" class="notion-list notion-list-numbered notion-block-242073b4a4c680ea9ff4f714fdfff531"><li>开启图形界面的ettercap</li><ol class="notion-list notion-list-numbered notion-block-242073b4a4c680ea9ff4f714fdfff531"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-242073b4a4c6805eaf62d6e0018b9ce1"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A34e78e86-7e88-48fb-a24f-e776252092c9%3Aimage.png?table=block&amp;id=242073b4-a4c6-805e-af62-d6e0018b9ce1&amp;t=242073b4-a4c6-805e-af62-d6e0018b9ce1" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-242073b4a4c68039ad73f97c4c1d5931"><li>选择好对应的primary interface后点击右上方的 √</li><ol class="notion-list notion-list-numbered notion-block-242073b4a4c68039ad73f97c4c1d5931"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-242073b4a4c68056a893ed662a227254"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A81fb91fc-83a8-43d9-84dc-3e93337d9cb5%3Aimage.png?table=block&amp;id=242073b4-a4c6-8056-a893-ed662a227254&amp;t=242073b4-a4c6-8056-a893-ed662a227254" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-242073b4a4c6800d9c50f76258b8327d"><li>接下来点击左上方的🔍</li><ol class="notion-list notion-list-numbered notion-block-242073b4a4c6800d9c50f76258b8327d"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-242073b4a4c6808d978fd91e811f25c7"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ab9ee744a-07c0-428c-9a8a-a12e9bb4ba8e%3Aimage.png?table=block&amp;id=242073b4-a4c6-808d-978f-d91e811f25c7&amp;t=242073b4-a4c6-808d-978f-d91e811f25c7" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-242073b4a4c68062a1e8d5a1d68d1d22">扫描该网段的所有主机信息，点击🔍右面的hosts-list查看扫描结果</div></ol></ol><ol start="4" class="notion-list notion-list-numbered notion-block-242073b4a4c68038b2badbb848f8fb54"><li>分别将网关ip和Win8.1 ip添加为Target1和Target2</li><ol class="notion-list notion-list-numbered notion-block-242073b4a4c68038b2badbb848f8fb54"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-242073b4a4c680c7b4f5fcae5c6ca5cc"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ab3b8788c-7b8a-49cb-881b-4105c20568a4%3Aimage.png?table=block&amp;id=242073b4-a4c6-80c7-b4f5-fcae5c6ca5cc&amp;t=242073b4-a4c6-80c7-b4f5-fcae5c6ca5cc" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol><ol start="5" class="notion-list notion-list-numbered notion-block-242073b4a4c6804b85b6f85c87256270"><li>点击小地球图标（MITM menu）中选择ARP Poisonin</li><ol class="notion-list notion-list-numbered notion-block-242073b4a4c6804b85b6f85c87256270"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-242073b4a4c680f4a280d895b8e5dd30"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A8a662d79-1426-4035-9baf-5a8ca022bac2%3Aimage.png?table=block&amp;id=242073b4-a4c6-80f4-a280-d895b8e5dd30&amp;t=242073b4-a4c6-80f4-a280-d895b8e5dd30" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol><ol start="6" class="notion-list notion-list-numbered notion-block-242073b4a4c6809f8d91d65d8c5bfb6d"><li>点击ok开始攻击</li><ol class="notion-list notion-list-numbered notion-block-242073b4a4c6809f8d91d65d8c5bfb6d"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-242073b4a4c6809996d7c5a48ce44731"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A2af481b2-dafd-4e04-b36c-8c12138bbd68%3Aimage.png?table=block&amp;id=242073b4-a4c6-8099-96d7-c5a48ce44731&amp;t=242073b4-a4c6-8099-96d7-c5a48ce44731" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-242073b4a4c6802f9e08c52cb2330221">这里可以看到攻击已经开始</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-242073b4a4c6807194a4ca8a8fb5a8b6"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A5b7e7d89-58fc-4183-af6e-094d25bd489e%3Aimage.png?table=block&amp;id=242073b4-a4c6-8071-94a4-ca8a8fb5a8b6&amp;t=242073b4-a4c6-8071-94a4-ca8a8fb5a8b6" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol></div></details><div class="notion-blank notion-block-242073b4a4c6806393ffd3d5d329bcb4"> </div></ol></ol></div></details><div class="notion-blank notion-block-240073b4a4c680629b86f363266e5f47"> </div><div class="notion-blank notion-block-240073b4a4c680289e6eed31368bf356"> </div></div></details></div></details><div class="notion-blank notion-block-23f073b4a4c68021bb8ec9295cce77e4"> </div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-23a073b4a4c68095ad7cdfbb5d68888f" data-id="23a073b4a4c68095ad7cdfbb5d68888f"><span><div id="23a073b4a4c68095ad7cdfbb5d68888f" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23a073b4a4c68095ad7cdfbb5d68888f" title="🤗 总结归纳"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">🤗 总结归纳</span></span></h2><div class="notion-text notion-block-23a073b4a4c680e8b17df562e104b849">总结文章的内容</div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-23a073b4a4c680dcb51af90ddad5b0e1" data-id="23a073b4a4c680dcb51af90ddad5b0e1"><span><div id="23a073b4a4c680dcb51af90ddad5b0e1" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23a073b4a4c680dcb51af90ddad5b0e1" title="📎 参考文章"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📎 参考文章</span></span></h2><ul class="notion-list notion-list-disc notion-block-23a073b4a4c680269bd6efa16f26b60e"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://blog.csdn.net/dzqxwzoe/article/details/129338563">无线WiFi网络的密码破解攻防及原理详解_现在的无线加密方式是wpa-psk-CSDN博客</a></li></ul><ul class="notion-list notion-list-disc notion-block-23a073b4a4c6808795d8f0a03b7f07d2"><li><a class="notion-link" href="/23a073b4a4c680a3ab6ef5e260dc2733">网络安全——跑pin破解wifi（详细教程）</a></li></ul><ul class="notion-list notion-list-disc notion-block-23a073b4a4c680c69227e2719b1f21a8"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://playlab.eu.org/archives/hashcat">Kali Linux 使用 Hashcat 高效破解WiFi密码【暴力破解篇】</a></li></ul><ul class="notion-list notion-list-disc notion-block-23a073b4a4c6805f9595fe7a1eef2625"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://playlab.eu.org/archives/fluxion">Kali Linux 使用 Fluxion 破解 WiFi 密码【WiFi 钓鱼篇】</a></li></ul><ul class="notion-list notion-list-disc notion-block-23a073b4a4c68005a2ccd3f62ad391cd"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.youtube.com/watch?v=0p78njSKLjg">Kali 系统最新安装教程 ！及实战演示撬开Wifi 密码，支持 PC、Mac、虚拟机使用</a></li></ul><ul class="notion-list notion-list-disc notion-block-23a073b4a4c680079cb1c96f369e2bd8"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://cloud.tencent.com/developer/article/2094225">使用reaver命令穷举PIN码破解WPA2-PSK加密的无线网络[通俗易懂]</a></li></ul><ul class="notion-list notion-list-disc notion-block-240073b4a4c680aeb85eeb74bd855fe0"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.cnblogs.com/diligenceday/p/6347992.html">ubuntu-16.04使用MDK3伪造wifi热点和攻击wifi热点至死</a></li></ul><ul class="notion-list notion-list-disc notion-block-240073b4a4c680208854cd14b42918c9"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://blog.csdn.net/weixin_39190897/article/details/104569308">Kali渗透-ARP断网攻击与监听</a></li></ul><ul class="notion-list notion-list-disc notion-block-242073b4a4c680f09bf3c8b5bb204b07"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://blog.csdn.net/m0_74806866/article/details/134853842">使用ettercap进行ARP欺骗攻击实验(保姆级教程)</a></li></ul><ul class="notion-list notion-list-disc notion-block-242073b4a4c680309770c8b9431806ee"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://github.com/JoeKerouac/JoeKerouac.github.io/blob/master/docs/%E7%BD%91%E7%BB%9C/netfilter%E5%AE%9E%E6%88%98%E9%A1%B9%E7%9B%AE/">通过局域网中间人攻击学网络 ARP欺骗</a></li></ul><ul class="notion-list notion-list-disc notion-block-242073b4a4c680c899b7e552ee8acc93"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://blog.csdn.net/weixin_55807049/article/details/123533948">kali的Ettercap嗅探攻击0.8.3.1版本使用教程（arp中毒，嗅探Telnet服务）</a></li></ul><div class="notion-blank notion-block-23a073b4a4c68049bda1ecd485770e00"> </div><div class="notion-callout notion-gray_background_co notion-block-23a073b4a4c6805dba54c30f09e27b6b"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="💡">💡</span></div><div class="notion-callout-text">欢迎您在底部评论区留言，一起交流~</div></div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[虚拟机下安装Kali系统]]></title>
            <link>https://lawyerjiang.top/article/practice/guide/2</link>
            <guid>https://lawyerjiang.top/article/practice/guide/2</guid>
            <pubDate>Tue, 22 Jul 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[在国内的网络环境下极度不建议用iso安装，建议在官网上直接下好vhdx硬盘镜像文件，这样可以免安装，绕过系统安装时由于网络环境导致的失败。]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-23c073b4a4c680a78045ef003c7944ed"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-callout notion-gray_background_co notion-block-23c073b4a4c68061a144e69909757d3d"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="😀">😀</span></div><div class="notion-callout-text">在国内的网络环境下极度不建议用iso安装，建议在官网上直接下好vhdx硬盘镜像文件，这样可以免安装，绕过系统安装时由于网络环境导致的失败。</div></div><div class="notion-blank notion-block-23c073b4a4c68021ba26d22ebf66fbb1"> </div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-23c073b4a4c680d6909ef0e8e21acd16" data-id="23c073b4a4c680d6909ef0e8e21acd16"><span><div id="23c073b4a4c680d6909ef0e8e21acd16" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c680d6909ef0e8e21acd16" title="📝 Hyper-V下安装Kali系统"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📝 Hyper-V下安装Kali系统</span></span></h2><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23c073b4a4c680e5954dd3f2be77d8fc" data-id="23c073b4a4c680e5954dd3f2be77d8fc"><span><div id="23c073b4a4c680e5954dd3f2be77d8fc" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c680e5954dd3f2be77d8fc" title="1 创建Hyper-V虚拟机并安装Kali"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">1 创建Hyper-V虚拟机并安装Kali</span></span></h3><blockquote class="notion-quote notion-block-23c073b4a4c6800e9920c515598e39bf"><div>这是windows专业版的功能，版本不符请忽略这个方法。</div></blockquote><details class="notion-toggle notion-block-23c073b4a4c680d1a73ccd844e7a4a22"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23c073b4a4c680d1a73ccd844e7a4a22" data-id="23c073b4a4c680d1a73ccd844e7a4a22"><span><div id="23c073b4a4c680d1a73ccd844e7a4a22" class="notion-header-anchor"></div><span class="notion-h-title"><b>1.1 准备</b></span></span></h4></summary><div><div class="notion-text notion-block-23c073b4a4c680dd8fe6e23868da0927">在<a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.kali.org/get-kali/#kali-platforms">kali官网</a>，选择virtual machines</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680adb9cad7e3ff800d4e"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ae4cbb404-c77b-4dd9-a69a-bf63864b6271%3A1753516316751.png?table=block&amp;id=23c073b4-a4c6-80ad-b9ca-d7e3ff800d4e&amp;t=23c073b4-a4c6-80ad-b9ca-d7e3ff800d4e" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680d481f2e0ba8213997c">找到Hyper-V进行下载。下载好的压缩包里包含了一个安装好系统的vhdx文件</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680b1b1b6ffb97bcd5521"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A172dd149-b9ad-4c3b-b637-a209a36c9ffe%3A1753516375091.png?table=block&amp;id=23c073b4-a4c6-80b1-b1b6-ffb97bcd5521&amp;t=23c073b4-a4c6-80b1-b1b6-ffb97bcd5521" alt="notion image" loading="lazy" decoding="async"/></div></figure></div></details><details class="notion-toggle notion-block-23c073b4a4c68060b9e6feb4ba980eff"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23c073b4a4c68060b9e6feb4ba980eff" data-id="23c073b4a4c68060b9e6feb4ba980eff"><span><div id="23c073b4a4c68060b9e6feb4ba980eff" class="notion-header-anchor"></div><span class="notion-h-title">1.2 流程</span></span></h4></summary><div><div class="notion-text notion-block-23c073b4a4c680d4b7aff1913b9d8573">在搜索框搜索启用和关闭Windows功能之后打开，勾选Hyper-V这一项。</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680b49f1ef37923872324"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A7fb73b89-973e-4d16-aaeb-edbbb2eb6e1f%3Aimage.png?table=block&amp;id=23c073b4-a4c6-80b4-9f1e-f37923872324&amp;t=23c073b4-a4c6-80b4-9f1e-f37923872324" alt="一定要勾选Hyper-V" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">一定要勾选Hyper-V</figcaption></div></figure><div class="notion-text notion-block-23c073b4a4c680a5ad6acfdba29e95e8">随后在搜索框中搜索Hyper-V，打开。</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c68013af56e59425ffde13"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A64c5b37b-0731-4f7a-abb1-9141b3674df2%3Aimage.png?table=block&amp;id=23c073b4-a4c6-8013-af56-e59425ffde13&amp;t=23c073b4-a4c6-8013-af56-e59425ffde13" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c68070b471fd60a1eaa90b">在管理器的界面，选择右边的“新建”点虚拟机</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680f284d3cdccb59d9b2c"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A451d333c-ef5a-4eaa-8ff4-7b0b2e3bfcf9%3Aimage.png?table=block&amp;id=23c073b4-a4c6-80f2-84d3-cdccb59d9b2c&amp;t=23c073b4-a4c6-80f2-84d3-cdccb59d9b2c" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680ba808dd9b522c404ed">之后点击下一步
这里名称随意，把位置改到大一点的盘，点下一页</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c6802bbd54f389cb613d1d"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A8913055a-fb7c-4751-a260-96ef4ff938da%3Aimage.png?table=block&amp;id=23c073b4-a4c6-802b-bd54-f389cb613d1d&amp;t=23c073b4-a4c6-802b-bd54-f389cb613d1d" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680d486a1f78b663e639a">选第二代</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680649b1de4ce38cdb265"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Acb5a1f2e-02e5-4973-ac32-a9547b84342b%3Aimage.png?table=block&amp;id=23c073b4-a4c6-8064-9b1d-e4ce38cdb265&amp;t=23c073b4-a4c6-8064-9b1d-e4ce38cdb265" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680f2a2f8c5386d35ad27">内存就4096</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c68089bac9e3ca57123c08"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Af5b9b9ab-79bc-427a-9d2c-fd413d979845%3Aimage.png?table=block&amp;id=23c073b4-a4c6-8089-bac9-e3ca57123c08&amp;t=23c073b4-a4c6-8089-bac9-e3ca57123c08" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c6801d8d50e6d44081bc4d">选default switch</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680dc9a6df0e6819049fe"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A2782ad4c-bb4a-484a-a059-e13553d74582%3Aimage.png?table=block&amp;id=23c073b4-a4c6-80dc-9a6d-f0e6819049fe&amp;t=23c073b4-a4c6-80dc-9a6d-f0e6819049fe" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680ebab3efbebfc267271">选择“使用现有虚拟硬盘”（将在kali官网下载好的vhdx文件放在你想要设置的路径下，并浏览选中）</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680b18b8ee0ec7d16d92b"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Afdbffb6b-ac4d-4f5c-90d3-2380e15165da%3Aimage.png?table=block&amp;id=23c073b4-a4c6-80b1-8b8e-e0ec7d16d92b&amp;t=23c073b4-a4c6-80b1-8b8e-e0ec7d16d92b" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680a79e42efa00663e7d2">最后点击“完成”，等待其创建成功即可</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c6802c8286fd77f6e0429f"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A8779785b-4262-4215-bb4b-81d1a4bfdeec%3Aimage.png?table=block&amp;id=23c073b4-a4c6-802c-8286-fd77f6e0429f&amp;t=23c073b4-a4c6-802c-8286-fd77f6e0429f" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c68032abc9c21635ed6879">其实这样不仅把虚拟机创建好了，同时也把kali系统也安装完成了。不用iso安装的最主要原因是国内的网络环境很容易造成软件安装失败（本人通过换源、开梯子都没解决这个问题）</div></div></details><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23c073b4a4c68024a74be26136152399" data-id="23c073b4a4c68024a74be26136152399"><span><div id="23c073b4a4c68024a74be26136152399" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c68024a74be26136152399" title="2 设置Kali"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">2 设置Kali</span></span></h3><blockquote class="notion-quote notion-block-23c073b4a4c680abb998d1ba204a9d35"><div>安装好的kali系统需要经过简单的设置，才能实现宿主机与客户机之间的文件和文本的复制粘贴，窗口大小调整。</div><div class="notion-text notion-block-23c073b4a4c680d58068ced3023d60e0">参考的官方文档:<span class="notion-link-mention"><a href="https://www.kali.org/docs/virtualization/install-hyper-v-guest-enhanced-session-mode/" target="_blank" rel="noopener noreferrer" class="notion-link-mention-link"><img class="notion-link-mention-icon" src="https://www.kali.org/images/favicon.png" alt="Kali Linux"/><span class="notion-link-mention-provider">Kali Linux</span><span class="notion-link-mention-title">Installing Hyper-V Enhanced Session Mode (Guest Tools) | Kali Linux Documentation</span></a><div class="notion-link-mention-preview"><article class="notion-link-mention-card"><img class="notion-link-mention-preview-thumbnail" src="https://www.kali.org/images/kali-logo.svg" alt="Installing Hyper-V Enhanced Session Mode (Guest Tools) | Kali Linux Documentation"/><div class="notion-link-mention-preview-content"><p class="notion-link-mention-preview-title">Installing Hyper-V Enhanced Session Mode (Guest Tools) | Kali Linux Documentation</p><p class="notion-link-mention-preview-description">Installing “Guest VM Packages”, gives a better user experience with VMs in general. This is why since Kali Linux 2019.3, during the setup process it should detect if Kali Linux is inside a VM. If it is, then automatically install any additional tools (in Hyper-V’s case, hyperv-daemons). The Kali Linux Live image also comes with hyperv-daemons pre-installed since Kali Linux 2021.3.</p><div class="notion-link-mention-preview-footer"><img class="notion-link-mention-preview-icon" src="https://www.kali.org/images/favicon.png" alt="Kali Linux"/><span class="notion-link-mention-preview-provider">Kali Linux</span></div></div></article></div></span></div></blockquote><details class="notion-toggle notion-block-23c073b4a4c6800db138f3cd652bb1dd"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23c073b4a4c6800db138f3cd652bb1dd" data-id="23c073b4a4c6800db138f3cd652bb1dd"><span><div id="23c073b4a4c6800db138f3cd652bb1dd" class="notion-header-anchor"></div><span class="notion-h-title">2.1 设置root账户</span></span></h4></summary><div><div class="notion-text notion-block-23c073b4a4c680ff9576ccd658339cef">首先，系统默认的用户kali，密码kali。</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c6809d9981c7f56614ed06"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Af6634aa0-a62f-4546-9555-6e9772efda1e%3Aimage.png?table=block&amp;id=23c073b4-a4c6-809d-9981-c7f56614ed06&amp;t=23c073b4-a4c6-809d-9981-c7f56614ed06" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680dbae59f80e58f99d88">在登录成功后，我们可以设置一下root账户的密码<code class="notion-inline-code">sudo passwd root</code></div></div></details><details class="notion-toggle notion-block-23c073b4a4c6809a8518c8ed28182b29"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23c073b4a4c6809a8518c8ed28182b29" data-id="23c073b4a4c6809a8518c8ed28182b29"><span><div id="23c073b4a4c6809a8518c8ed28182b29" class="notion-header-anchor"></div><span class="notion-h-title">2.2 开启增强会话功能</span></span></h4></summary><div><div class="notion-text notion-block-23c073b4a4c680edbe4ed2461ec1d894">首先，开启虚拟机的增强会话功能，此处不细述。</div><details class="notion-toggle notion-block-23c073b4a4c6802db888da3cae952cbd"><summary>2.2.1 配置kali</summary><div><div class="notion-text notion-block-23c073b4a4c680c0bd3cfd82c4c11f70">在宿主机的终端，运行<code class="notion-inline-code">kali-tweaks</code>。在菜单中，选择<em>“虚拟化”</em>，然后<em>为 Hyper-V 增强会话模式配置系统</em>。这就是 Kali 端要做的全部工作。</div></div></details><details class="notion-toggle notion-block-23c073b4a4c68039b912fb618a6aeea9"><summary>2.2.2 更改虚拟机的设置</summary><div><div class="notion-text notion-block-23c073b4a4c6808fbf3ff3216d2a967a">现在需要将<b>传输类型</b>从 VMBus 更改为HVSocket。</div><div class="notion-text notion-block-23c073b4a4c680cc941dc94aa7befd93">首先，退出当前 Kali 会话：</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680cebe2bf5b3c5f911f3"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:635px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ab6f9e595-714a-450d-be48-434aac83b970%3Aimage.png?table=block&amp;id=23c073b4-a4c6-80ce-be2b-f5b3c5f911f3&amp;t=23c073b4-a4c6-80ce-be2b-f5b3c5f911f3" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680909291d3abd3682ec6">现在在 Windows 主机上：断开 Kali VM 的连接，打开 PowerShell（具有管理员权限）并发出以下命令：</div><div class="notion-text notion-block-23c073b4a4c680c4bc41f3db8e9cc86a"><code class="notion-inline-code">Set-VM &quot;(YOUR VM NAME HERE)&quot; -EnhancedSessionTransportType HVSocket</code></div><div class="notion-text notion-block-23c073b4a4c6800f97e1e7c7b43a8562">其中的<code class="notion-inline-code">(YOUR VM NAME HERE)</code>应更换为自己的虚拟机名称。</div><div class="notion-text notion-block-23c073b4a4c68085ae05da6d64441b2d">这样完成后，就实现了宿主机和虚拟机之间的剪切板共享，以及窗口大小的调整</div></div></details><div class="notion-blank notion-block-23c073b4a4c6807b885de1cd1af649f1"> </div></div></details><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23c073b4a4c680ea8441c29e460b7a88" data-id="23c073b4a4c680ea8441c29e460b7a88"><span><div id="23c073b4a4c680ea8441c29e460b7a88" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c680ea8441c29e460b7a88" title="3 Hyper-V的缺点"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">3 Hyper-V的缺点</span></span></h3><div class="notion-text notion-block-23c073b4a4c680a4a4c4c84d27a0a8f0">Hyper-V的优点很明显，可以实现完全的虚拟化。因此其缺点也同样明显，无法实现硬件直连（例如usb直连）</div><div class="notion-blank notion-block-23c073b4a4c680c494e7dfe514edb81f"> </div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-23c073b4a4c6808aba44d46f46b720c8" data-id="23c073b4a4c6808aba44d46f46b720c8"><span><div id="23c073b4a4c6808aba44d46f46b720c8" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c6808aba44d46f46b720c8" title="📝 VMWare下安装Kali系统"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📝 VMWare下安装Kali系统</span></span></h2><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23c073b4a4c6803d9729c442af6ac8d7" data-id="23c073b4a4c6803d9729c442af6ac8d7"><span><div id="23c073b4a4c6803d9729c442af6ac8d7" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c6803d9729c442af6ac8d7" title="1 创建VMWare虚拟机"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">1 创建VMWare虚拟机</span></span></h3><details class="notion-toggle notion-block-23c073b4a4c680728937f1de9e0831ed"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23c073b4a4c680728937f1de9e0831ed" data-id="23c073b4a4c680728937f1de9e0831ed"><span><div id="23c073b4a4c680728937f1de9e0831ed" class="notion-header-anchor"></div><span class="notion-h-title">1.1 准备</span></span></h4></summary><div><div class="notion-text notion-block-23c073b4a4c680ba922ec9a0d0b9f86d">在<a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.kali.org/get-kali/#kali-platforms">kali官网</a>，选择virtual machines</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c680aab421f3c08c8844ee"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ae4cbb404-c77b-4dd9-a69a-bf63864b6271%3A1753516316751.png?table=block&amp;id=23c073b4-a4c6-80aa-b421-f3c08c8844ee&amp;t=23c073b4-a4c6-80aa-b421-f3c08c8844ee" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680149a89ca9b9a05e97d">找到VMWare进行下载</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c6808b87cde600ecc8e95b"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Adc73e5c0-3f85-4da6-8985-9b5d9aa828da%3A1753521630672.png?table=block&amp;id=23c073b4-a4c6-808b-87cd-e600ecc8e95b&amp;t=23c073b4-a4c6-808b-87cd-e600ecc8e95b" alt="notion image" loading="lazy" decoding="async"/></div></figure></div></details><details class="notion-toggle notion-block-23c073b4a4c680a492c6c22a3af37dae"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23c073b4a4c680a492c6c22a3af37dae" data-id="23c073b4a4c680a492c6c22a3af37dae"><span><div id="23c073b4a4c680a492c6c22a3af37dae" class="notion-header-anchor"></div><span class="notion-h-title">1.2 流程</span></span></h4></summary><div><blockquote class="notion-quote notion-block-23c073b4a4c680b6b9a5e6701d35fb49"><div>参考官方文档：<span class="notion-link-mention"><a href="https://www.kali.org/docs/virtualization/import-premade-vmware/" target="_blank" rel="noopener noreferrer" class="notion-link-mention-link"><img class="notion-link-mention-icon" src="https://www.kali.org/images/favicon.png" alt="Kali Linux"/><span class="notion-link-mention-provider">Kali Linux</span><span class="notion-link-mention-title">Import Pre-Made Kali VMware VM | Kali Linux Documentation</span></a><div class="notion-link-mention-preview"><article class="notion-link-mention-card"><img class="notion-link-mention-preview-thumbnail" src="https://www.kali.org/images/kali-logo.svg" alt="Import Pre-Made Kali VMware VM | Kali Linux Documentation"/><div class="notion-link-mention-preview-content"><p class="notion-link-mention-preview-title">Import Pre-Made Kali VMware VM | Kali Linux Documentation</p><p class="notion-link-mention-preview-description">Importing the Kali VMware image is very straightforward. We first need to extract the VMware image: kali@kali:~$ 7z x kali-linux-2025.2-vmware-amd64.7z [...] kali@kali:~$  If we are using Windows we can instead use the official 7z app. Note if we are on Windows 11 the option will be hidden behind the context menu “Show more options”.</p><div class="notion-link-mention-preview-footer"><img class="notion-link-mention-preview-icon" src="https://www.kali.org/images/favicon.png" alt="Kali Linux"/><span class="notion-link-mention-preview-provider">Kali Linux</span></div></div></article></div></span></div></blockquote><div class="notion-text notion-block-23c073b4a4c68033b7bcc2d3630f13a4">直接导入预制的 Kali VMware VM</div><div class="notion-text notion-block-23c073b4a4c680898a7fe9b0c2c2e41f">1.点击打开虚拟机</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c6807abc59e0279ba72fde"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ae19b5fc3-f4d5-46e7-9e29-b984c58ff58f%3A1753522217838.png?table=block&amp;id=23c073b4-a4c6-807a-bc59-e0279ba72fde&amp;t=23c073b4-a4c6-807a-bc59-e0279ba72fde" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c6803980aece0b62dbb15b">2.到下载虚拟机的位置并找到<code class="notion-inline-code">.vmx</code>文件。就可以正常使用了。默认用户名和密码均为kali</div></div></details><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23c073b4a4c680c9a41ac13f1542362a" data-id="23c073b4a4c680c9a41ac13f1542362a"><span><div id="23c073b4a4c680c9a41ac13f1542362a" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c680c9a41ac13f1542362a" title="2 VMWare下Kali的问题解决"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">2 VMWare下Kali的问题解决</span></span></h3><details class="notion-toggle notion-block-23c073b4a4c680c086b7f2b15040ec27"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23c073b4a4c680c086b7f2b15040ec27" data-id="23c073b4a4c680c086b7f2b15040ec27"><span><div id="23c073b4a4c680c086b7f2b15040ec27" class="notion-header-anchor"></div><span class="notion-h-title">2.1 复制粘贴问题</span></span></h4></summary><div><blockquote class="notion-quote notion-block-23c073b4a4c68071a66ac9dd13b3f100"><div>参考官方文档：<span class="notion-link-mention"><a href="https://www.kali.org/docs/virtualization/troubleshooting-vmware/" target="_blank" rel="noopener noreferrer" class="notion-link-mention-link"><img class="notion-link-mention-icon" src="https://www.kali.org/images/favicon.png" alt="Kali Linux"/><span class="notion-link-mention-provider">Kali Linux</span><span class="notion-link-mention-title">Troubleshooting Kali VMware VM | Kali Linux Documentation</span></a><div class="notion-link-mention-preview"><article class="notion-link-mention-card"><img class="notion-link-mention-preview-thumbnail" src="https://www.kali.org/images/kali-logo.svg" alt="Troubleshooting Kali VMware VM | Kali Linux Documentation"/><div class="notion-link-mention-preview-content"><p class="notion-link-mention-preview-title">Troubleshooting Kali VMware VM | Kali Linux Documentation</p><p class="notion-link-mention-preview-description">Fix copy/paste, drag and drop with KDE desktop This is for users of the Kali KDE desktop, within a VMware virtual machine. It is a known issue that copy/paste and drag and drop won’t work out of the box. As a workaround, it’s possible to disable the systemd user instance, and use KDE’s legacy boot mechanism instead. To do so, open a terminal and type the following command:</p><div class="notion-link-mention-preview-footer"><img class="notion-link-mention-preview-icon" src="https://www.kali.org/images/favicon.png" alt="Kali Linux"/><span class="notion-link-mention-preview-provider">Kali Linux</span></div></div></article></div></span></div></blockquote><div class="notion-text notion-block-23c073b4a4c68000afecc9af7ea44f0b">这适用于在 VMware 虚拟机中使用 Kali KDE 桌面的用户。一个已知问题是复制/粘贴和拖放功能无法开箱即用。作为一种解决方法，可以禁用 systemd 用户实例，并改用 KDE 的传统启动机制。为此，请打开终端并输入以下命令：</div><div class="notion-text notion-block-23c073b4a4c680d68083c5221e4c9d55">作为验证，您可以检查此命令是否创建了<code class="notion-inline-code">~/.config/startkderc</code>具有以下内容的文件：</div><div class="notion-text notion-block-23c073b4a4c6801da327c6a16a041838">然后注销并重新登录：问题应该得到解决。</div></div></details><details class="notion-toggle notion-block-23c073b4a4c68028a77af505ef1efac7"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23c073b4a4c68028a77af505ef1efac7" data-id="23c073b4a4c68028a77af505ef1efac7"><span><div id="23c073b4a4c68028a77af505ef1efac7" class="notion-header-anchor"></div><span class="notion-h-title">2.2 汉化</span></span></h4></summary><div><ol start="1" class="notion-list notion-list-numbered notion-block-23c073b4a4c680d78f2ce2f477751af2"><li>打开终端，更新系统包列表</li><ol class="notion-list notion-list-numbered notion-block-23c073b4a4c680d78f2ce2f477751af2"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-23c073b4a4c68060af23f522f53e2836"><li>安装中文语言包</li><ol class="notion-list notion-list-numbered notion-block-23c073b4a4c68060af23f522f53e2836"></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-23c073b4a4c6809cbf0ae98bee694723"><li>重新配置系统的语言环境（locale）设置,生成中文语言环境（以zh_CN.UTF-8为例）</li><ol class="notion-list notion-list-numbered notion-block-23c073b4a4c6809cbf0ae98bee694723"><div class="notion-text notion-block-23c073b4a4c680d9a363f35666c15239">再出现的界面中，选择zh_CN.UTF-8，通常通过空格选择（tab切换到ok，并回车）</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c68026a71de9f61b97126c"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A493d2765-e57a-40ab-9853-4cf41215ba8e%3Aimage.png?table=block&amp;id=23c073b4-a4c6-8026-a71d-e9f61b97126c&amp;t=23c073b4-a4c6-8026-a71d-e9f61b97126c" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23c073b4a4c680e5bd20dd761992224e">确认</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23c073b4a4c68050a22de6ce86a17df2"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A0ba8e8af-4748-4fbb-8716-e8b2df527784%3Aimage.png?table=block&amp;id=23c073b4-a4c6-8050-a22d-e6ce86a17df2&amp;t=23c073b4-a4c6-8050-a22d-e6ce86a17df2" alt="notion image" loading="lazy" decoding="async"/></div></figure></ol></ol><ol start="4" class="notion-list notion-list-numbered notion-block-23c073b4a4c6800b90a2d64c6ee0e3d9"><li>更新系统区域设置：</li><ol class="notion-list notion-list-numbered notion-block-23c073b4a4c6800b90a2d64c6ee0e3d9"></ol></ol><ol start="5" class="notion-list notion-list-numbered notion-block-23c073b4a4c68047a621ddc271b1b2f7"><li>应用中文设置</li><ol class="notion-list notion-list-numbered notion-block-23c073b4a4c68047a621ddc271b1b2f7"></ol></ol><ol start="6" class="notion-list notion-list-numbered notion-block-23c073b4a4c6803ba580d58704f58c4c"><li>重新登录或重启Kali Linux，以使配置生效</li></ol></div></details><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23f073b4a4c6809c90eecd823635c37c" data-id="23f073b4a4c6809c90eecd823635c37c"><span><div id="23f073b4a4c6809c90eecd823635c37c" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23f073b4a4c6809c90eecd823635c37c" title="3 快照的使用"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">3 快照的使用</span></span></h3><details class="notion-toggle notion-block-23f073b4a4c68064bfdbf4908e696c66"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23f073b4a4c68064bfdbf4908e696c66" data-id="23f073b4a4c68064bfdbf4908e696c66"><span><div id="23f073b4a4c68064bfdbf4908e696c66" class="notion-header-anchor"></div><span class="notion-h-title">3.1 新建快照</span></span></h4></summary><div><div class="notion-text notion-block-23f073b4a4c680bbaafbf16d0b6f25b4">1.先关闭虚拟机，然后在该虚拟机的启动前界面上点击下图一个类似表下面有个扳手一样的图标，点击它</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23f073b4a4c6800b9f45ca0d8cd28acb"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A029b4395-bbe6-4405-90d0-89b6148c573c%3Aimage.png?table=block&amp;id=23f073b4-a4c6-800b-9f45-ca0d8cd28acb&amp;t=23f073b4-a4c6-800b-9f45-ca0d8cd28acb" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23f073b4a4c6806ba792ffad632df6ce">2.先选择当前位置，再点击拍摄快照</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23f073b4a4c68050bd9adc0c805032e6"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ae66c4139-9879-4dd4-b3d7-b4b868d42a22%3Aimage.png?table=block&amp;id=23f073b4-a4c6-8050-bd9a-dc0c805032e6&amp;t=23f073b4-a4c6-8050-bd9a-dc0c805032e6" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23f073b4a4c680c5a62cc6faba805eaf">3.然后填入快照名称以及描述，这里需要强调一下描述里面建议写上该系统的用户名和密码，以防止后期遗忘。填写完成后点击拍摄快照，这样快照就设置好了</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23f073b4a4c6800484d7eefbc87581e7"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Abfee4b2e-3588-4d47-a0bc-7b64695148b8%3Aimage.png?table=block&amp;id=23f073b4-a4c6-8004-84d7-eefbc87581e7&amp;t=23f073b4-a4c6-8004-84d7-eefbc87581e7" alt="notion image" loading="lazy" decoding="async"/></div></figure></div></details><details class="notion-toggle notion-block-23f073b4a4c680e98b2bdf313e621b07"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23f073b4a4c680e98b2bdf313e621b07" data-id="23f073b4a4c680e98b2bdf313e621b07"><span><div id="23f073b4a4c680e98b2bdf313e621b07" class="notion-header-anchor"></div><span class="notion-h-title">3.2 选择并使用快照</span></span></h4></summary><div><div class="notion-text notion-block-23f073b4a4c6800a946ce675bb154c22">1.当你想要返回到之前的某个状态的时候，只需要选择需要回到的状态，然后点击转到，然后确认是就可以恢复到之前所保存的某一个状态点上了</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23f073b4a4c680a6b31be97d150b7b82"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ab31318e9-ad76-406b-a4bb-c764438dc1b5%3Aimage.png?table=block&amp;id=23f073b4-a4c6-80a6-b31b-e97d150b7b82&amp;t=23f073b4-a4c6-80a6-b31b-e97d150b7b82" alt="notion image" loading="lazy" decoding="async"/></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-23f073b4a4c680bdbbead5148c92fcf4"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Aaa703e03-557b-4c46-b9e9-a284901a6088%3Aimage.png?table=block&amp;id=23f073b4-a4c6-80bd-bbea-d5148c92fcf4&amp;t=23f073b4-a4c6-80bd-bbea-d5148c92fcf4" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-23f073b4a4c680f1a8e2f3c1e59fef46">这样的好处是，避免后期系统出现问题需要重新再安装，省去了重装系统的步骤以及时间。</div></div></details><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-23f073b4a4c68062a06fc5d62be218cf" data-id="23f073b4a4c68062a06fc5d62be218cf"><span><div id="23f073b4a4c68062a06fc5d62be218cf" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23f073b4a4c68062a06fc5d62be218cf" title="4 更换官方镜像源"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">4 更换官方镜像源</span></span></h3><details class="notion-toggle notion-block-23f073b4a4c68035a218c925b0486dcc"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-23f073b4a4c68035a218c925b0486dcc" data-id="23f073b4a4c68035a218c925b0486dcc"><span><div id="23f073b4a4c68035a218c925b0486dcc" class="notion-header-anchor"></div><span class="notion-h-title">4.1 更换官方镜像源</span></span></h4></summary><div><ol start="1" class="notion-list notion-list-numbered notion-block-23f073b4a4c680b8a689d6318e8126d5"><li>输入<code class="notion-inline-code">nano /etc/apt/sources.list</code></li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-23f073b4a4c680abbfb9ef4e069b43f8"><li>将官方源如下加入“ # ”注释掉。</li><ol class="notion-list notion-list-numbered notion-block-23f073b4a4c680abbfb9ef4e069b43f8"></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-23f073b4a4c680a3b119e657a8a8ceee"><li>加入以下任意一种国内源即可。</li><ol class="notion-list notion-list-numbered notion-block-23f073b4a4c680a3b119e657a8a8ceee"></ol></ol></div></details><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-23c073b4a4c68008a645d357fa434483" data-id="23c073b4a4c68008a645d357fa434483"><span><div id="23c073b4a4c68008a645d357fa434483" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c68008a645d357fa434483" title="🤗 总结归纳"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">🤗 总结归纳</span></span></h2><div class="notion-text notion-block-23c073b4a4c6803f8ec9e09bd1aa7c83">作为在虚拟机中安装kali的一次尝试，其他linux系统的安装步骤也都类似。</div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-23c073b4a4c68065b2a3ecbea4b410c5" data-id="23c073b4a4c68065b2a3ecbea4b410c5"><span><div id="23c073b4a4c68065b2a3ecbea4b410c5" class="notion-header-anchor"></div><a class="notion-hash-link" href="#23c073b4a4c68065b2a3ecbea4b410c5" title="📎 参考文章"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📎 参考文章</span></span></h2><ul class="notion-list notion-list-disc notion-block-23c073b4a4c680f78956cbf192a3b2f4"><li><span class="notion-link-mention"><a href="https://www.mzbky.com/3860.html" target="_blank" rel="noopener noreferrer" class="notion-link-mention-link"><img class="notion-link-mention-icon" src="https://www.mzbky.com/wp-content/uploads/2020/09/2020092316012990.png" alt="梦泽贝壳"/><span class="notion-link-mention-provider">梦泽贝壳</span><span class="notion-link-mention-title">VMware安装kali Linux教程（详细图文教程）</span></a><div class="notion-link-mention-preview"><article class="notion-link-mention-card"><img class="notion-link-mention-preview-thumbnail" src="https://www.mzbky.com/wp-content/uploads/2023/04/38.png" alt="VMware安装kali Linux教程（详细图文教程）"/><div class="notion-link-mention-preview-content"><p class="notion-link-mention-preview-title">VMware安装kali Linux教程（详细图文教程）</p><p class="notion-link-mention-preview-description">VMware中安装Linux-kali（详细图文教程）</p><div class="notion-link-mention-preview-footer"><img class="notion-link-mention-preview-icon" src="https://www.mzbky.com/wp-content/uploads/2020/09/2020092316012990.png" alt="梦泽贝壳"/><span class="notion-link-mention-preview-provider">梦泽贝壳</span></div></div></article></div></span></li></ul><ul class="notion-list notion-list-disc notion-block-23c073b4a4c680e19539eac8b2ad000b"><li><span class="notion-link-mention"><a href="https://cloud.tencent.com/developer/article/2212633" target="_blank" rel="noopener noreferrer" class="notion-link-mention-link"><img class="notion-link-mention-icon" src="https://cloud.tencent.com/favicon.ico"/><span class="notion-link-mention-title">Kali在线安装详细教程【全】-腾讯云开发者社区-腾讯云</span></a><div class="notion-link-mention-preview"><article class="notion-link-mention-card"><img class="notion-link-mention-preview-thumbnail" src="https://cloudcache.tencent-cloud.com/open_proj/proj_qcloud_v2/gateway/shareicons/cloud.png" alt="Kali在线安装详细教程【全】-腾讯云开发者社区-腾讯云"/><div class="notion-link-mention-preview-content"><p class="notion-link-mention-preview-title">Kali在线安装详细教程【全】-腾讯云开发者社区-腾讯云</p><p class="notion-link-mention-preview-description">Kali Linux安装教程：从VMware虚拟机配置、系统安装到root用户设置、快照创建及清华源更换，附文件共享与常见问题解决，助你高效搭建渗透测试环境。</p><div class="notion-link-mention-preview-footer"><img class="notion-link-mention-preview-icon" src="https://cloud.tencent.com/favicon.ico"/><span class="notion-link-mention-preview-provider"></span></div></div></article></div></span></li></ul><ul class="notion-list notion-list-disc notion-block-23f073b4a4c68056a127cc542be9533e"><li><span class="notion-link-mention"><a href="https://blog.csdn.net/2401_86399278/article/details/149331831" target="_blank" rel="noopener noreferrer" class="notion-link-mention-link"><img class="notion-link-mention-icon" src="https://g.csdnimg.cn/static/logo/favicon32.ico"/><span class="notion-link-mention-title">kali安装失败-选择并安装软件包-一步到位_kali选择并安装软件失败-CSDN博客</span></a><div class="notion-link-mention-preview"><article class="notion-link-mention-card"><img class="notion-link-mention-preview-thumbnail" alt="kali安装失败-选择并安装软件包-一步到位_kali选择并安装软件失败-CSDN博客"/><div class="notion-link-mention-preview-content"><p class="notion-link-mention-preview-title">kali安装失败-选择并安装软件包-一步到位_kali选择并安装软件失败-CSDN博客</p><p class="notion-link-mention-preview-description">文章浏览阅读870次，点赞13次，收藏19次。摘要：用户在尝试&quot;rm -rf /*&quot;命令导致Kali系统崩溃后，尝试重新安装但遇到软件包安装失败问题。通过换源等方法未能解决后，最终选择直接从Kali官网下载预装好的虚拟机文件（推荐稳定版而非每周更新版）。下载完成后使用VMware打开.vmx文件即可直接运行，默认账户密码均为&quot;kali&quot;。该方法避免了复杂的安装过程，提供了快速恢复环境的解决方案。（149字）_kali选择并安装软件失败</p><div class="notion-link-mention-preview-footer"><img class="notion-link-mention-preview-icon" src="https://g.csdnimg.cn/static/logo/favicon32.ico"/><span class="notion-link-mention-preview-provider"></span></div></div></article></div></span></li></ul><div class="notion-blank notion-block-23c073b4a4c680a587dafb244db67128"> </div><div class="notion-callout notion-gray_background_co notion-block-23c073b4a4c680e6b688d7a93d417fb0"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="💡">💡</span></div><div class="notion-callout-text">欢迎您在底部评论区留言，一起交流~</div></div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[记一次个人服务器的搭建过程]]></title>
            <link>https://lawyerjiang.top/article/practice/guide/1</link>
            <guid>https://lawyerjiang.top/article/practice/guide/1</guid>
            <pubDate>Sun, 13 Apr 2025 00:00:00 GMT</pubDate>
            <description><![CDATA[机器：联想ideapad700-15ISK
系统：Ubuntu 24.04.2 LTS Server]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-1d3073b4a4c680998e0cc21117682e4d"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-callout notion-gray_background_co notion-block-1d3073b4a4c6803ba321c558075983ca"><div class="notion-page-icon-inline notion-page-icon-span"><span class="notion-page-icon" role="img" aria-label="😀">😀</span></div><div class="notion-callout-text">前两天，终于让手里的那台联想小新ideapad700-15ISK彻底退役了。这台机器自2016年读大学时购入，历经加装内存、硬盘、更换屏幕等多次升级，已陪伴我整整9年。其质量仍然很好，但闲着也是无用，索性刷个Ubuntu系统，作为个人服务器兼NAS使用。
由于本文是过程向，而非教程向，整体按照时间顺序记录，因而可能会缺乏逻辑性，见谅</div></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-1d3073b4a4c680098ec4d19ab8777761" data-id="1d3073b4a4c680098ec4d19ab8777761"><span><div id="1d3073b4a4c680098ec4d19ab8777761" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1d3073b4a4c680098ec4d19ab8777761" title="📝 主要过程"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📝 主要过程</span></span></h2><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d3073b4a4c680598012ed4d97ab5c6e" data-id="1d3073b4a4c680598012ed4d97ab5c6e"><span><div id="1d3073b4a4c680598012ed4d97ab5c6e" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1d3073b4a4c680598012ed4d97ab5c6e" title="需求"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">需求</span></span></h3><blockquote class="notion-quote notion-block-1d3073b4a4c68074a626ff6b296fc16e"><div>1.开放一个共享文件夹便于保存或读取资料
2.闲时挂载bt种子进行影视资源的上传与下载
3.存储收集的音乐资源，提供音源服务，作为电脑、手机端的个人音乐库
4.作为网盘自动同步手机、电脑端指定目录下的所有内容
5.运行个人自动化脚本。如：通知、数据处理、应答等
6.所有服务不仅可以在内网访问，也要能在公网被ipv4和ipv6访问</div></blockquote><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d8073b4a4c680acac05d30b32b6b6b8" data-id="1d8073b4a4c680acac05d30b32b6b6b8"><span><div id="1d8073b4a4c680acac05d30b32b6b6b8" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1d8073b4a4c680acac05d30b32b6b6b8" title="准备"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">准备</span></span></h3><blockquote class="notion-quote notion-block-1d8073b4a4c680c4a65fee3ea2424098"><div>1.已备案过的具有公网ip的云服务器和域名
2.闲置电脑和硬盘
3.光猫的超级管理员密码（用于关闭光猫的ipv6防火墙，也可以用来改桥接）</div></blockquote><details class="notion-toggle notion-block-1d3073b4a4c680f6978ef3fc1df2cd0d"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d3073b4a4c680f6978ef3fc1df2cd0d" data-id="1d3073b4a4c680f6978ef3fc1df2cd0d"><span><div id="1d3073b4a4c680f6978ef3fc1df2cd0d" class="notion-header-anchor"></div><span class="notion-h-title">1 安装<b>Ubuntu24.04.2LTS版</b></span></span></h3></summary><div><details class="notion-toggle notion-block-1d3073b4a4c680c7ba8cf5097ded1951"><summary><h4 class="notion-h notion-h3 notion-block-1d3073b4a4c680c7ba8cf5097ded1951" data-id="1d3073b4a4c680c7ba8cf5097ded1951"><span><div id="1d3073b4a4c680c7ba8cf5097ded1951" class="notion-header-anchor"></div><span class="notion-h-title">1.1 制作Ubuntu启动盘</span></span></h4></summary><div><div class="notion-text notion-block-1d3073b4a4c6803996f5fc0673833284">将下载好的<b><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://ubuntu.com/download/server/thank-you?version=24.04.2&amp;architecture=amd64&amp;lts=true">Ubuntu 24.04.2 LTS Server</a></b><b>的iso文件</b>，利用<b><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://etcher.balena.io/">balenaetcher</a></b>烧录到准备好的U盘中</div><div class="notion-text notion-block-1d3073b4a4c68097a7b2ecef3ae7f9f1"><em>Hint：U盘会被格式化；若U盘有写入保护，可参考下面这篇文章</em></div><div class="notion-row"><a target="_blank" rel="noopener noreferrer" class="notion-bookmark notion-block-1d3073b4a4c680e49669f401fc73d3d9" href="https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/127565782"><div><div class="notion-bookmark-title">U盘插入电脑说要格式化，但电脑又说“磁盘被写保护，无法格式化”，如何解决_无法格式化。此卷受写保护。 格式化失败-CSDN博客</div><div class="notion-bookmark-description">文章浏览阅读1.5w次，点赞47次，收藏150次。用balenaetcher刻录过系统镜像，但是想重新刻录其他的系统镜像，发现插入u盘之后看不到文件，也没法格式化，说有写保护。在这里也无法格式化磁盘：直接格式化磁盘，提示有写保护。_无法格式化。此卷受写保护。 格式化失败</div><div class="notion-bookmark-link"><div class="notion-bookmark-link-icon"><img src="https://www.notion.so/image/https%3A%2F%2Fg.csdnimg.cn%2Fstatic%2Flogo%2Ffavicon32.ico?table=block&amp;id=1d3073b4-a4c6-80e4-9669-f401fc73d3d9&amp;t=1d3073b4-a4c6-80e4-9669-f401fc73d3d9" alt="U盘插入电脑说要格式化，但电脑又说“磁盘被写保护，无法格式化”，如何解决_无法格式化。此卷受写保护。 格式化失败-CSDN博客" loading="lazy" decoding="async"/></div><div class="notion-bookmark-link-text">https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/127565782</div></div></div></a></div></div></details><details class="notion-toggle notion-block-1d3073b4a4c6804b8a60dd1c49398378"><summary><h4 class="notion-h notion-h3 notion-block-1d3073b4a4c6804b8a60dd1c49398378" data-id="1d3073b4a4c6804b8a60dd1c49398378"><span><div id="1d3073b4a4c6804b8a60dd1c49398378" class="notion-header-anchor"></div><span class="notion-h-title">1.2 在目标机器上安装Ubuntu</span></span></h4></summary><div><div class="notion-text notion-block-1d3073b4a4c680508345fd074bfa7875">将刻录好iso镜像的U盘启动器，插入目标机器，开机时狂按F12进入bios,切换启动引导至U盘。接着按照系统引导逐步安装即可</div><div class="notion-text notion-block-1d3073b4a4c6800a8479ffbbf9412c31"><em>Hint:具体步骤可参照下面这个视频</em></div><div class="notion-row"><a target="_blank" rel="noopener noreferrer" class="notion-bookmark notion-block-1d3073b4a4c6802e9399cbfacf46def7" href="https://www.bilibili.com/video/BV1Bs4y1X7mH/?spm_id_from=333.337.search-card.all.click&amp;vd_source=8ad3c3948eb6ed01e72cb5dfa3a3218f"><div><div class="notion-bookmark-title">Ubuntu Server 22.04 LTS 的安装步骤指南——（新手教程及额外福利：Web 服务器）_哔哩哔哩_bilibili</div><div class="notion-bookmark-description">Ubuntu Server 22.04 LTS 的安装步骤指南——（新手教程及额外福利：Web 服务器）, 视频播放量 11340、弹幕量 1、点赞数 73、投硬币枚数 36、收藏人数 167、转发人数 24, 视频作者 世间最大的监狱是人脑, 作者简介 世界上最大的监狱是人的大脑，走不出自己的观念，到哪里都是囚徒，相关视频：Ubuntu 24.04 LTS 安装教程，Windows 和 Ubuntu 双系统的安装和卸载，Ubuntu24.04发布，详细安装教程，拯救旧电脑，Windows11 安装 Ubuntu 避坑指南，安装ubuntu服务器版22.04操作系统，Linux Ubuntu 零基础教程 - 2024更新，2024.04.28 【SavvyNik】Ubuntu Server 24.04 LTS 安装 - （奖励！Web 服务器设置），【亲测教程】Ubuntu Server 20.04 LTS安装教程，手把手教你安装Ubuntu24.04（超简单），Ubuntu Server如何安装及配置</div><div class="notion-bookmark-link"><div class="notion-bookmark-link-icon"><img src="https://www.notion.so/image/https%3A%2F%2Fi2.hdslb.com%2Fbfs%2Farchive%2F036d0cb3b02ea30d0bc8277979082b64c123b9b9.jpg%40100w_100h_1c.png%4057w_57h_1c.png?table=block&amp;id=1d3073b4-a4c6-802e-9399-cbfacf46def7&amp;t=1d3073b4-a4c6-802e-9399-cbfacf46def7" alt="Ubuntu Server 22.04 LTS 的安装步骤指南——（新手教程及额外福利：Web 服务器）_哔哩哔哩_bilibili" loading="lazy" decoding="async"/></div><div class="notion-bookmark-link-text">https://www.bilibili.com/video/BV1Bs4y1X7mH/?spm_id_from=333.337.search-card.all.click&amp;vd_source=8ad3c3948eb6ed01e72cb5dfa3a3218f</div></div></div><div class="notion-bookmark-image"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fi2.hdslb.com%2Fbfs%2Farchive%2F036d0cb3b02ea30d0bc8277979082b64c123b9b9.jpg%40100w_100h_1c.png?table=block&amp;id=1d3073b4-a4c6-802e-9399-cbfacf46def7&amp;t=1d3073b4-a4c6-802e-9399-cbfacf46def7" alt="Ubuntu Server 22.04 LTS 的安装步骤指南——（新手教程及额外福利：Web 服务器）_哔哩哔哩_bilibili" loading="lazy" decoding="async"/></div></a></div></div></details></div></details><details class="notion-toggle notion-block-1d3073b4a4c680a19125da47fe2d9f4c"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d3073b4a4c680a19125da47fe2d9f4c" data-id="1d3073b4a4c680a19125da47fe2d9f4c"><span><div id="1d3073b4a4c680a19125da47fe2d9f4c" class="notion-header-anchor"></div><span class="notion-h-title">2 安装frp和ddns-go</span></span></h3></summary><div><blockquote class="notion-quote notion-block-1d3073b4a4c680b7b4c7f8a4027fe186"><div>由于入户光猫申请不到公网ipv4的地址，而我需要外网也能ssh家庭局域网内的服务器。所以我的实现方式是：
1.利用frp和手中已有公网ip的阿里云服务器实现ipv4的内网穿透
2.利用ipv6的地址和ddns-go，将手中闲置的域名解析到动态变化的ipv6地址
这两种方式分别可以实现：
1.当我访问阿里云的公网ipv4的特定端口时，能被转到固定的内网服务器ipv4的特定端口
2.当我访问固定的域名时，能被解析到动态变化的内网服务器的ipv6地址
这样就可以实现最基础的外网ssh远程内网服务器的功能。其余需要外网访问的功能，也都可以基于这两个方法实现</div></blockquote><details class="notion-toggle notion-block-1d3073b4a4c680b6b038cfde405d1a5f"><summary><h4 class="notion-h notion-h3 notion-block-1d3073b4a4c680b6b038cfde405d1a5f" data-id="1d3073b4a4c680b6b038cfde405d1a5f"><span><div id="1d3073b4a4c680b6b038cfde405d1a5f" class="notion-header-anchor"></div><span class="notion-h-title">2.1 安装frp</span></span></h4></summary><div><details class="notion-toggle notion-block-1d3073b4a4c6806496c6e3f60c7352c2"><summary><b>2.1.1 frp客户端配置 frpc</b></summary><div><div class="notion-text notion-block-1d3073b4a4c68001821bfd7f94c07f20">为了方便操作，我们可以下载一个<b>WinSCP</b>，将在github上下载好的frp，传输给<code class="notion-inline-code">/usr/bin</code> 文件夹下，此时<code class="notion-inline-code">/usr/bin/frp</code>路径下应该包含<code class="notion-inline-code">frpc</code>（客户端）和<code class="notion-inline-code">frpc.toml</code>（配置文件）这两个文件，<code class="notion-inline-code">frpc.toml</code>的配置内容如下：</div><div class="notion-text notion-block-1d3073b4a4c68085bb74e94d969c04bd">文件配置好后，我们需要将frpc注册成service，以保证开机自动运行，我们将<code class="notion-inline-code">frpc.service</code>文件放在<code class="notion-inline-code">/etc/systemd/system</code>路径下，其内容如下：</div><div class="notion-text notion-block-1d3073b4a4c68042a467deecddd48219">这里需要注意两个问题：</div><div class="notion-text notion-block-1d3073b4a4c680bd84bbdf15c75aedb4">1.利用WinSCP将<code class="notion-inline-code">frpc.service</code>放入<code class="notion-inline-code">/etc/systemd/system</code>路径下时，会被系统拒绝，原因是<code class="notion-inline-code">/etc/systemd/system</code>路径只有root用户拥有写入权限，而Ubuntu系统默认不允许远程root账户登录。</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d3073b4a4c680119807eb20729566b6"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:337.0000305175781px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A6685db91-37c4-4e3e-bb00-8f5fdf03306e%3Aimage.png?table=block&amp;id=1d3073b4-a4c6-8011-9807-eb20729566b6&amp;t=1d3073b4-a4c6-8011-9807-eb20729566b6" alt="这里的prohibit-password的意思是：root用户不能使用密码登录，只能使用ssh密钥登录" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">这里的prohibit-password的意思是：root用户不能使用密码登录，只能使用ssh密钥登录</figcaption></div></figure><div class="notion-text notion-block-1d3073b4a4c680e590bceb69ef248584">此时，我们可以修改一下<code class="notion-inline-code">/etc/ssh/sshd_config</code>，将其中的<code class="notion-inline-code">PermitRootLogin</code>参数的值改为yes。这样便可以实现远程root账户登录</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d3073b4a4c6800e82e6ecc0c6e2bd22"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:224.00001525878906px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Abf84186b-9aff-4a93-9b0a-e4dae08d1684%3Aimage.png?table=block&amp;id=1d3073b4-a4c6-800e-82e6-ecc0c6e2bd22&amp;t=1d3073b4-a4c6-800e-82e6-ecc0c6e2bd22" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-1d3073b4a4c680b8a4aac4553e524dd3">2.要给frpc文件添加可执行权限，即</div><div class="notion-text notion-block-1d3073b4a4c680a8a58bca78857d13f2">这样，frp的客户端就配置完成了。</div><div class="notion-text notion-block-1d3073b4a4c6802483f5e220243bfbf7">完成以上步骤后，daemon-reload并restart一下，frpc就正常运行了，当然，别忘了</div></div></details><details class="notion-toggle notion-block-1d3073b4a4c680a4be1ac772361926c7"><summary><b>2.1.1 frp服务端配置 frps</b></summary><div><div class="notion-text notion-block-1d3073b4a4c68054beb2e92305a387e7">总体思路与客户端类似，唯一值得注意的是，需要在阿里云服务器的防火墙和阿里云的安全组下访问规则中，将先前配置好的对应端口开放：7000端口（用于frp的客户端与服务端相互通信的端口）、7500端口（用于显示网页图形界面的管理页面端口）、6000端口（用于暴露在公网给其他机器访问的端口）</div></div></details><div class="notion-text notion-block-1d3073b4a4c680599002e70622cc46c3">完成以上步骤后，此时就已经可以正常地ssh到阿里云服务器的ipv4地址，进行内网穿透，访问内网的家庭服务器了</div></div></details><details class="notion-toggle notion-block-1d3073b4a4c680ac8c1cd5a2fc9239ac"><summary><h4 class="notion-h notion-h3 notion-block-1d3073b4a4c680ac8c1cd5a2fc9239ac" data-id="1d3073b4a4c680ac8c1cd5a2fc9239ac"><span><div id="1d3073b4a4c680ac8c1cd5a2fc9239ac" class="notion-header-anchor"></div><span class="notion-h-title">2.2 安装ddns-go</span></span></h4></summary><div><details class="notion-toggle notion-block-1d3073b4a4c6801c9b70f27e3e218ef8"><summary><b>2.2.1 获得域名解析服务商的AccessKey（我用的是阿里云）</b></summary><div><div class="notion-text notion-block-1d3073b4a4c680eaaf39c75bc379c6d8">创建一个AccessKey并将AccessKey ID和AccessKey Secret的值记录并保存下来</div></div></details><details class="notion-toggle notion-block-1d3073b4a4c68098b3c1cf6ec28a2562"><summary><b>2.2.2 在Ubuntu上安装ddns-go</b></summary><div><div class="notion-text notion-block-1d3073b4a4c68091b012d088e2b61b70">在github上找到<a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://github.com/jeessy2/ddns-go">ddns-go</a>并下载对应的版本内容，用WinSCP传到Ubuntu上,然后输入以下命令安装</div><div class="notion-text notion-block-1d3073b4a4c680c2a034ca6b346286a9">安装完成后如下图所</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d3073b4a4c6806db827c04d436a2cf1"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A3cd3c1c0-efec-427f-a086-9554a431f535%3Aimage.png?table=block&amp;id=1d3073b4-a4c6-806d-b827-c04d436a2cf1&amp;t=1d3073b4-a4c6-806d-b827-c04d436a2cf1" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-1d3073b4a4c680918a4ae183446baaf3">此时需要打开网页进行进一步的配置，默认端口为9876。填入先前获得的AccessKey ID和AccessKey Secret</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d3073b4a4c6805ebf64e54575c62d1a"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ac1102b73-af2b-4bb6-83fd-63cbd5255463%3Aimage.png?table=block&amp;id=1d3073b4-a4c6-805e-bf64-e54575c62d1a&amp;t=1d3073b4-a4c6-805e-bf64-e54575c62d1a" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-1d3073b4a4c6806b8a71f87ed8e885a5">接着在ipv6设置中的Domains这一项，填入我们事先准备好的闲置域名</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d3073b4a4c680febb5ed457c1e7089b"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A0a7263fd-4647-4df4-a171-de685944a978%3A1744493680802.png?table=block&amp;id=1d3073b4-a4c6-80fe-bb5e-d457c1e7089b&amp;t=1d3073b4-a4c6-80fe-bb5e-d457c1e7089b" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-1d3073b4a4c6803ca8f3c5a1952a8903">最后，保存即可。这样ddns-go就成功配置好了。此时就可以通过固定的域名访问拥有动态公网ipv6地址的Ubuntu服务器了</div></div></details></div></details></div></details><details class="notion-toggle notion-block-1d4073b4a4c680ec84edd9d9bcdf89b6"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d4073b4a4c680ec84edd9d9bcdf89b6" data-id="1d4073b4a4c680ec84edd9d9bcdf89b6"><span><div id="1d4073b4a4c680ec84edd9d9bcdf89b6" class="notion-header-anchor"></div><span class="notion-h-title">3 安装samba实现内网共享文件夹</span></span></h3></summary><div><details class="notion-toggle notion-block-1d4073b4a4c68025af81e9211e2762f7"><summary><h4 class="notion-h notion-h3 notion-block-1d4073b4a4c68025af81e9211e2762f7" data-id="1d4073b4a4c68025af81e9211e2762f7"><span><div id="1d4073b4a4c68025af81e9211e2762f7" class="notion-header-anchor"></div><span class="notion-h-title">3.1 挂载硬盘</span></span></h4></summary><div><div class="notion-text notion-block-1d4073b4a4c6807d8e46e568f04858e4">因为这台联想小新700只有128g的SSD和1T的HDD，面对家庭存储的需求，这点硬盘容量显然过于鸡肋。我手里刚好有一块闲置的西数8T紫盘，买了个好点的纹波小的电源，直接通过USB连接并外挂
当然我是新手，这里了解一下Linux的文件管理机制：</div><div class="notion-text notion-block-1d4073b4a4c68068bfc1e61070d16487"><em><b>Linux 一切皆文件</b></em><div class="notion-text-children"><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680f1a5e1e7eb5eb58065"><li><em>硬盘、U盘、光驱等设备都映射到</em><em><code class="notion-inline-code"><b>/dev/</b></code></em><em>下的文件（如</em><em><code class="notion-inline-code"><b>/dev/sdc2</b></code></em><em>），而不是盘符</em></li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c6806d8a02fa96b0518051"><li><em>必须挂载到目录才能访问。</em></li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c6807ca31ff329c6b56f98"><li><em>可以挂载到任意目录（如 </em><em><code class="notion-inline-code"><b>/mnt/data</b></code></em><em>、</em><em><code class="notion-inline-code"><b>/media/yourname/disk</b></code></em><em>）。</em></li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c6801baabdc4d00c99c5e9"><li><em>可以挂载网络存储、内存盘等，而 Windows 的盘符（A-Z）有限。</em></li></ul></div></div><div class="notion-text notion-block-1d4073b4a4c6806c8bd7db44630c5676"><em><b>Windows 自动分配盘符</b></em><em>（如 </em><em><code class="notion-inline-code"><b>D:</b></code></em><em>），但 Linux 要求显式挂载。</em></div><div class="notion-text notion-block-1d4073b4a4c680d8b306c0dbb0f09d58">了解完之后，我们输入如下命令来显式地进行硬盘挂载：</div><div class="notion-text notion-block-1d4073b4a4c680c4b404f3329799a896"><em>当你执行 </em><em><code class="notion-inline-code"><b>sudo mount /dev/sdc2 /home/mujiang/HDD-8T-SHARE</b></code></em><em> 时：</em></div><ol start="1" class="notion-list notion-list-numbered notion-block-1d4073b4a4c6808f9054ef2f181bcf41"><li><em><b>如果 </b></em><em><code class="notion-inline-code"><b>/home/mujiang/HDD-8T-SHARE</b></code></em><em><b> 是空目录</b></em><em>：</em></li><ol class="notion-list notion-list-numbered notion-block-1d4073b4a4c6808f9054ef2f181bcf41"><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680e2945eeec6b29fc271"><li><em>挂载后，该目录会显示 </em><em><code class="notion-inline-code"><b>/dev/sdc2</b></code></em><em> 的内容。</em></li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c68040bcacd73aa1ec7b91"><li><em><b>原有目录本身无内容，所以不会有变化</b></em><em>。</em></li></ul></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-1d4073b4a4c6803896bbc0e53d76ef60"><li><em><b>如果 </b></em><em><code class="notion-inline-code"><b>/home/mujiang/HDD-8T-SHARE</b></code></em><em><b> 原本有文件</b></em><em>：</em></li><ol class="notion-list notion-list-numbered notion-block-1d4073b4a4c6803896bbc0e53d76ef60"><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680098485eb2ce5bc09d9"><li><em><b>这些文件会暂时“隐藏”</b></em><em>，只能看到 </em><em><code class="notion-inline-code"><b>/dev/sdc2</b></code></em><em> 的内容。</em></li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c68025b6a1d9e4a0bcb599"><li><em><b>卸载硬盘后（</b></em><em><code class="notion-inline-code"><b>sudo umount /home/mujiang/HDD-8T-SHARE</b></code></em><em><b>），原有文件会重新出现</b></em><em>。</em></li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680a5b93dc878b73b440e"><li><em><b>文件不会被删除</b></em><em>，只是被挂载的硬盘“覆盖”了访问入口。</em></li></ul></ol></ol></div></details><details class="notion-toggle notion-block-1d4073b4a4c68074ad62e4cc96a065d9"><summary><h4 class="notion-h notion-h3 notion-block-1d4073b4a4c68074ad62e4cc96a065d9" data-id="1d4073b4a4c68074ad62e4cc96a065d9"><span><div id="1d4073b4a4c68074ad62e4cc96a065d9" class="notion-header-anchor"></div><span class="notion-h-title">3.2 安装samba并配置</span></span></h4></summary><div><details class="notion-toggle notion-block-1d4073b4a4c6801ab067c31b02e56e9f"><summary><b>3.2.1 安装samba</b></summary><div><div class="notion-text notion-block-1d4073b4a4c680eaa701f0cec60aac50">输入如下命令进行samba安装：</div></div></details><details class="notion-toggle notion-block-1d4073b4a4c680d18edecee551e9fdd5"><summary><b>3.2.2 配置samba</b></summary><div><div class="notion-text notion-block-1d4073b4a4c6809b8f70d6c8d893a983">打开samba配置文件</div><div class="notion-text notion-block-1d4073b4a4c68080a534e91ef47d6a44">修改配置文件如下</div><details class="notion-toggle notion-block-1d4073b4a4c68027831bfa991cdb2ccd"><summary>其中0664和0775的含义如下：</summary><div><h4 class="notion-h notion-h3 notion-block-1d4073b4a4c6805288e8cae8a1ef3d67" data-id="1d4073b4a4c6805288e8cae8a1ef3d67"><span><div id="1d4073b4a4c6805288e8cae8a1ef3d67" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1d4073b4a4c6805288e8cae8a1ef3d67" title="create mask = 0664 的作用"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><code class="notion-inline-code"><b>create mask = 0664</b></code><b> 的作用</b></span></span></h4><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680809e7fdce97496edc3"><li><b>定义新创建文件的默认权限</b>（即用户上传或新建文件时的权限）。</li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680ce995febe4c43b7617"><li><code class="notion-inline-code"><b>0664</b></code><b> 的八进制解析</b>：</li><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680ce995febe4c43b7617"><li><code class="notion-inline-code"><b>0</b></code>：特殊权限位（通常为 0）。</li><li><code class="notion-inline-code"><b>6</b></code>（所有者权限）：<code class="notion-inline-code"><b>rw-</b></code>（可读可写，不可执行）。</li><li><code class="notion-inline-code"><b>6</b></code>（所属组权限）：<code class="notion-inline-code"><b>rw-</b></code>（可读可写，不可执行）。</li><li><code class="notion-inline-code"><b>4</b></code>（其他用户权限）：<code class="notion-inline-code"><b>r--</b></code>（仅可读）。</li></ul></ul><div class="notion-text notion-block-1d4073b4a4c680aa8cfcddc41ad2dc9a"><b>效果</b>：</div><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680a9ad00f897427c52f6"><li>用户 <code class="notion-inline-code"><b>mujiang</b></code> 创建的文件权限为 <code class="notion-inline-code"><b>rw-rw-r--</b></code>（所有者可读写，组用户可读写，其他用户只读）。</li></ul><hr class="notion-hr notion-block-1d4073b4a4c680c3a85cf56b0e90dc37"/><h4 class="notion-h notion-h3 notion-block-1d4073b4a4c680b7939ee4691904a343" data-id="1d4073b4a4c680b7939ee4691904a343"><span><div id="1d4073b4a4c680b7939ee4691904a343" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1d4073b4a4c680b7939ee4691904a343" title="directory mask = 0775 的作用"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><code class="notion-inline-code"><b>directory mask = 0775</b></code><b> 的作用</b></span></span></h4><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c68064bccef384f16c7b8f"><li><b>定义新创建目录的默认权限</b>。</li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680d29773d5fbf6b2361f"><li><code class="notion-inline-code"><b>0775</b></code><b> 的八进制解析</b>：</li><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680d29773d5fbf6b2361f"><li><code class="notion-inline-code"><b>0</b></code>：特殊权限位。</li><li><code class="notion-inline-code"><b>7</b></code>（所有者权限）：<code class="notion-inline-code"><b>rwx</b></code>（可读可写可执行）。</li><li><code class="notion-inline-code"><b>7</b></code>（所属组权限）：<code class="notion-inline-code"><b>rwx</b></code>（可读可写可执行）。</li><li><code class="notion-inline-code"><b>5</b></code>（其他用户权限）：<code class="notion-inline-code"><b>r-x</b></code>（可读可执行，不可写）。</li></ul></ul><div class="notion-text notion-block-1d4073b4a4c680b1a4b7c03386f59e2f"><b>效果</b>：</div><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680eeb6f9c3b7acd2004a"><li>用户 <code class="notion-inline-code"><b>mujiang</b></code> 创建的目录权限为 <code class="notion-inline-code"><b>drwxrwxr-x</b></code>（所有者可读写执行，组用户可读写执行，其他用户可读和执行）。</li></ul><hr class="notion-hr notion-block-1d4073b4a4c680d6811fe27c5b482394"/><h4 class="notion-h notion-h3 notion-block-1d4073b4a4c680d69c1cf5303a4edb7b" data-id="1d4073b4a4c680d69c1cf5303a4edb7b"><span><div id="1d4073b4a4c680d69c1cf5303a4edb7b" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1d4073b4a4c680d69c1cf5303a4edb7b" title="权限对照表"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>权限对照表</b></span></span></h4><table class="notion-simple-table notion-block-1d4073b4a4c680289845d34338430a0b"><tbody><tr class="notion-simple-table-row notion-block-1d4073b4a4c680efab36d7adef361497"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>权限项</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>数字表示</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>字符表示</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>说明</b></div></td></tr><tr class="notion-simple-table-row notion-block-1d4073b4a4c6804bad19eb70ed2bf29b"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>文件所有者</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">6</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><code class="notion-inline-code"><b>rw-</b></code></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">可读可写</div></td></tr><tr class="notion-simple-table-row notion-block-1d4073b4a4c6800493b6ee9341056161"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>文件所属组</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">6</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><code class="notion-inline-code"><b>rw-</b></code></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">可读可写</div></td></tr><tr class="notion-simple-table-row notion-block-1d4073b4a4c68017986bc5e54fe2d200"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>其他用户</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">4</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><code class="notion-inline-code"><b>r--</b></code></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">仅可读</div></td></tr><tr class="notion-simple-table-row notion-block-1d4073b4a4c68015ab61ee80726cc307"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>目录所有者</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">7</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><code class="notion-inline-code"><b>rwx</b></code></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">可读可写可进入</div></td></tr><tr class="notion-simple-table-row notion-block-1d4073b4a4c68066be15e7c7b0b74467"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>目录所属组</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">7</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><code class="notion-inline-code"><b>rwx</b></code></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">可读可写可进入</div></td></tr><tr class="notion-simple-table-row notion-block-1d4073b4a4c680469f86f55d1cefa0b2"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>目录其他用户</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">5</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><code class="notion-inline-code"><b>r-x</b></code></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">可读可进入，不可写</div></td></tr></tbody></table><div class="notion-blank notion-block-1d4073b4a4c68068994fcb9c48b6f204"> </div></div></details><div class="notion-text notion-block-1d4073b4a4c6801993fee6e5ab9d1e40">添加samba用户</div><div class="notion-text notion-block-1d4073b4a4c680ed9ef1cfe04a0ef361">重启服务</div><div class="notion-text notion-block-1d4073b4a4c6807cb7f1dd629b2c201c">防火墙设置（如有）</div><div class="notion-blank notion-block-1d4073b4a4c68080a836deee4e812f2f"> </div></div></details><details class="notion-toggle notion-block-1d4073b4a4c68086a090c2b6a299cab6"><summary><b>3.2.3 测试访问</b></summary><div><blockquote class="notion-quote notion-block-1d4073b4a4c6809096ded14f0ad125a9"><div>由于我们之前设置好了ddns，所以此时我们有如下两种访问形式：
1.办公电脑在内网，输入内网Ubuntu服务器的内网ip访问共享文件夹
2.办公电脑在外网，输入固定的域名，利用ddns解析到最新的ipv6地址，访问内网的Ubuntu服务器的共享文件夹</div></blockquote><div class="notion-text notion-block-1d4073b4a4c6800e90b5cc2f67f8c80f"><b>客户端访问</b></div><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c680478685cf3b71aca93b"><li>Windows：文件资源管理器输入 <code class="notion-inline-code"><b>\\服务器IP\HDD-8T-SHARE</b></code></li></ul><ul class="notion-list notion-list-disc notion-block-1d4073b4a4c68005a90cc0d8a02e8ad1"><li>Linux/macOS：使用文件管理器连接或<code class="notion-inline-code"><b>smb://服务器IP/HDD-8T-SHARE</b></code></li></ul><div class="notion-text notion-block-1d4073b4a4c68092aa48e05f3e021796"><b>注意事项：</b></div><ol start="1" class="notion-list notion-list-numbered notion-block-1d4073b4a4c6801584fcf62600f0c7d9"><li>如果硬盘是NTFS格式，确保安装NTFS支持包：</li><ol class="notion-list notion-list-numbered notion-block-1d4073b4a4c6801584fcf62600f0c7d9"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-1d4073b4a4c68096bafcc76e686369f4"><li>对于大容量共享，可能需要调整Samba性能参数：</li><ol class="notion-list notion-list-numbered notion-block-1d4073b4a4c68096bafcc76e686369f4"></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-1d4073b4a4c68035a142f3895af25f6d"><li>如需匿名访问，设置<code class="notion-inline-code"><b>guest ok = yes</b></code>并取消<code class="notion-inline-code"><b>valid users</b></code>行</li></ol></div></details></div></details><details class="notion-toggle notion-block-1d7073b4a4c680c0b1e7e1c72d7e2678"><summary><h4 class="notion-h notion-h3 notion-block-1d7073b4a4c680c0b1e7e1c72d7e2678" data-id="1d7073b4a4c680c0b1e7e1c72d7e2678"><span><div id="1d7073b4a4c680c0b1e7e1c72d7e2678" class="notion-header-anchor"></div><span class="notion-h-title">3.3 效果</span></span></h4></summary><div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d7073b4a4c680d48452dad1486800b8"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:564.9810180664062px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A7c0e5bcb-02af-4205-b605-c1615608e7fb%3Aimage.png?table=block&amp;id=1d7073b4-a4c6-80d4-8452-dad1486800b8&amp;t=1d7073b4-a4c6-80d4-8452-dad1486800b8" alt="可以看到在局域网（千兆）下，将一部4K电影从本机复制到Ubuntu服务器中，平均速度达到了113MB/秒，即113*8=904Mbps，基本符合千兆网速的预期表现，与千兆差的几十兆速度，基本可以认为是西数机械硬盘顺序写入的速度瓶颈，而不是网速瓶颈了" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">可以看到在局域网（千兆）下，将一部4K电影从本机复制到Ubuntu服务器中，平均速度达到了113MB/秒，即113*8=904Mbps，基本符合千兆网速的预期表现，与千兆差的几十兆速度，基本可以认为是西数机械硬盘顺序写入的速度瓶颈，而不是网速瓶颈了</figcaption></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d7073b4a4c68066ac92d9ea24b6686d"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A70372de8-9fb1-43dd-b518-b01849352d63%3Aimage.png?table=block&amp;id=1d7073b4-a4c6-8066-ac92-d9ea24b6686d&amp;t=1d7073b4-a4c6-8066-ac92-d9ea24b6686d" alt="测速得到的数据，平均传输速率来到了952Mbps，与我们用4K电影进行的文件传输测试非常吻合" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">测速得到的数据，平均传输速率来到了952Mbps，与我们用4K电影进行的文件传输测试非常吻合</figcaption></div></figure></div></details></div></details><details class="notion-toggle notion-block-1d4073b4a4c68060b126d4bc9d216ed9"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d4073b4a4c68060b126d4bc9d216ed9" data-id="1d4073b4a4c68060b126d4bc9d216ed9"><span><div id="1d4073b4a4c68060b126d4bc9d216ed9" class="notion-header-anchor"></div><span class="notion-h-title">4 安装qBittorrent和PeerBanHelper实现bt下载</span></span></h3></summary><div><blockquote class="notion-quote notion-block-1d4073b4a4c680cab66cc76cdb7b16c5"><div>由于国内糟糕的BT共享环境和以迅雷为首的大平台的作恶，为防止服务器挂BT种子时被恶意吸血，因此选用github上基于qBittorrent的改版qBittrrent-Enhanced-Edition安装使用，并配合PeerBanHelper对恶意ip进行封禁</div></blockquote><details class="notion-toggle notion-block-1d4073b4a4c68003bcc9febd9909c038"><summary><h4 class="notion-h notion-h3 notion-block-1d4073b4a4c68003bcc9febd9909c038" data-id="1d4073b4a4c68003bcc9febd9909c038"><span><div id="1d4073b4a4c68003bcc9febd9909c038" class="notion-header-anchor"></div><span class="notion-h-title">4.1 安装qBittorrent-Enhanced-Edition</span></span></h4></summary><div><div class="notion-text notion-block-1d4073b4a4c680f69698ff2e223db59d">我们安装无头的x86版本，链接如下：
</div><div class="notion-text notion-block-1d4073b4a4c680e596e0e47763d6cc38">这里我将其放在了<code class="notion-inline-code">/usr/bin</code>路径下，并通过运行webui，将webui的端口改在了10001（看个人喜好），勾选高级设置中的Auto Ban Unknown Client From China（捂脸）和Auto Ban Bittorrent Media Player</div><div class="notion-text notion-block-1d4073b4a4c68086b711c7915ce87294">接着将qbittorrent-nox注册成service，使其开机自动运行</div><div class="notion-text notion-block-1e0073b4a4c6806f9a4bcda7d90825e0">qBittorrent默认的配置文件路径在<code class="notion-inline-code">/home/mujiang/.config/qBittorrent</code></div><details class="notion-toggle notion-block-1e0073b4a4c6807ea402e1b2093c3b0d"><summary><b>qBittorrent配置nginx时的注意事项</b></summary><div><ol start="1" class="notion-list notion-list-numbered notion-block-1e0073b4a4c68061ab2cc4e148006ad4"><li>确保启动参数无误，尤其是配置文件的目录，必须是 qbittorrent 的父级目录，不可以到 qbittorrent 这一层。</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-1e0073b4a4c6807e91e6ee7306b45347"><li>如果你是在外网通过 IP 访问内网服务器，则需查看 qbittorrent.conf 中，是否设置了 WebUI\HostHeaderValidation=true 参数，如有，请改为 false。</li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-1e0073b4a4c680fda9d7e1c2d45802bb"><li>如果你是在外网通过域名访问内网服务器，则第二条同样适用；但安全起见，建议改为 true 并把值设置为你的域名。</li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-1e0073b4a4c6805dbaf1cd2240fec369"><li>如果你并未配置 HTTPS 证书，或未安装相关组件，则需查看 qbittorrent.conf 中，是否设置了 WebUI\HTTPS\Enabled=ture 参数，如有，请改为 false。</li></ol><ol start="5" class="notion-list notion-list-numbered notion-block-1e0073b4a4c680c69536cab8d1bbda75"><li>若以上参数在配置文件里都没有，可自行添加，并设置为 false；若仍未解决，可在 webui 中尝试关闭跨站请求伪造（CSRF）保护。</li></ol><ol start="6" class="notion-list notion-list-numbered notion-block-1e0073b4a4c6802d8964d743c7fa37f6"><li>如果你设置了 Nginx 反向代理，则需要根据官方 Wiki 设置以下参数（请删除其他所有参数）：</li></ol></div></details></div></details><details class="notion-toggle notion-block-1d4073b4a4c68036bb0fca8a19e9f2b1"><summary><h4 class="notion-h notion-h3 notion-block-1d4073b4a4c68036bb0fca8a19e9f2b1" data-id="1d4073b4a4c68036bb0fca8a19e9f2b1"><span><div id="1d4073b4a4c68036bb0fca8a19e9f2b1" class="notion-header-anchor"></div><span class="notion-h-title">4.2 安装PeerBanHelper</span></span></h4></summary><div><div class="notion-text notion-block-1d4073b4a4c680d9aca5d276250be73d">在github上PeerBanHelper的release仓库中找到合适的deb后缀的安装包</div><div class="notion-text notion-block-1d7073b4a4c680cfaecada59e5f20837">安装完成后，peerbanhelper会在Ubuntu服务器的本机9898端口默认开启一个配置页面</div><div class="notion-text notion-block-1dd073b4a4c680edacbcf8b4a93dc51c">默认的配置文件目录在<code class="notion-inline-code">/etc/peerbanhelper/</code></div><div class="notion-text notion-block-1d7073b4a4c680d79920cc5545a77d9b">后续可以用frp+nginx穿透到公网方便运维</div></div></details></div></details><details class="notion-toggle notion-block-1d5073b4a4c6806ea11fcb1d510b7e1f"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d5073b4a4c6806ea11fcb1d510b7e1f" data-id="1d5073b4a4c6806ea11fcb1d510b7e1f"><span><div id="1d5073b4a4c6806ea11fcb1d510b7e1f" class="notion-header-anchor"></div><span class="notion-h-title">5 安装Navidrome搭建个人音乐库</span></span></h3></summary><div><details class="notion-toggle notion-block-1d5073b4a4c6802a94f4e892751f6ffc"><summary><h4 class="notion-h notion-h3 notion-block-1d5073b4a4c6802a94f4e892751f6ffc" data-id="1d5073b4a4c6802a94f4e892751f6ffc"><span><div id="1d5073b4a4c6802a94f4e892751f6ffc" class="notion-header-anchor"></div><span class="notion-h-title">5.1 安装并配置Navidrome</span></span></h4></summary><div><div class="notion-text notion-block-1d5073b4a4c68065af4fe806e1a857a9">官方给出了如下的安装教程，这里仅简要说一下</div><div class="notion-row"><a target="_blank" rel="noopener noreferrer" class="notion-bookmark notion-block-1d5073b4a4c6801f9fcffe8013c60ac7" href="https://www.navidrome.org/docs/installation/linux/"><div><div class="notion-bookmark-title">Linux Install</div><div class="notion-bookmark-description">Steps to install on Ubuntu Linux (and other Debian based distros)</div><div class="notion-bookmark-link"><div class="notion-bookmark-link-icon"><img src="https://www.notion.so/image/https%3A%2F%2Fwww.navidrome.org%2Ffavicons%2Fandroid-icon-192x192.png?table=block&amp;id=1d5073b4-a4c6-801f-9fcf-fe8013c60ac7&amp;t=1d5073b4-a4c6-801f-9fcf-fe8013c60ac7" alt="Linux Install" loading="lazy" decoding="async"/></div><div class="notion-bookmark-link-text">https://www.navidrome.org/docs/installation/linux/</div></div></div></a></div><div class="notion-text notion-block-1d5073b4a4c6801eb9dee7599cdc06ba">在github上下载并安装合适的版本</div><div class="notion-text notion-block-1d5073b4a4c680bebb4feb1c0ff59cba">打开配置文件</div><div class="notion-text notion-block-1d5073b4a4c68067a932f2f7e7bb2029">添加/更新以下行以指定音乐库路径（以自己的路径举例）：</div><div class="notion-text notion-block-1d5073b4a4c68057a5e4f5e67491faa4">启动 Navidrome 服务：使用 systemctl 启动 Navidrome 服务并将其设置为在启动时运行</div><div class="notion-text notion-block-1d5073b4a4c68061bad8e09f86d056f5">检查服务状态：验证 Navidrome 是否正常运行。</div><div class="notion-text notion-block-1d5073b4a4c680dfa8bdec2c5a9ef7e9">如果一切设置正确，Navidrome 将可以通过网络浏览器访问：<a target="_blank" rel="noopener noreferrer" class="notion-link" href="http://localhost:4533/">http://localhost:4533</a></div></div></details><details class="notion-toggle notion-block-1d6073b4a4c68099bb5bd821b17823e3"><summary><h4 class="notion-h notion-h3 notion-block-1d6073b4a4c68099bb5bd821b17823e3" data-id="1d6073b4a4c68099bb5bd821b17823e3"><span><div id="1d6073b4a4c68099bb5bd821b17823e3" class="notion-header-anchor"></div><span class="notion-h-title">5.2 手机端、电脑端安装音流实现多端听Navidrome里的歌</span></span></h4></summary><div><div class="notion-text notion-block-1d6073b4a4c680bdad1df4fadbc98ba9">github上搜索音流并安装，具体细节略去不表</div></div></details></div></details><details class="notion-toggle notion-block-1d6073b4a4c68027a0b7fc16dd6825bc"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d6073b4a4c68027a0b7fc16dd6825bc" data-id="1d6073b4a4c68027a0b7fc16dd6825bc"><span><div id="1d6073b4a4c68027a0b7fc16dd6825bc" class="notion-header-anchor"></div><span class="notion-h-title">6 安装Docker</span></span></h3></summary><div><ol start="1" class="notion-list notion-list-numbered notion-block-1d6073b4a4c68066936bc6a11a66f952"><li><b>安装必要依赖</b></li></ol><div class="notion-text notion-block-1d6073b4a4c680669a00eedae01c13d0"><b>2.添加 Docker 官方 GPG 密钥（使用国内镜像加速）</b></div><div class="notion-text notion-block-1d6073b4a4c680809733da962c372350"><b>3.设置 Docker 稳定版仓库（使用国内源）</b></div><div class="notion-text notion-block-1d6073b4a4c68020b977d7568d93932d"><b>4.更新并安装 Docker</b></div></div></details><details class="notion-toggle notion-block-1d6073b4a4c6804fa25fd321bb648cd1"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d6073b4a4c6804fa25fd321bb648cd1" data-id="1d6073b4a4c6804fa25fd321bb648cd1"><span><div id="1d6073b4a4c6804fa25fd321bb648cd1" class="notion-header-anchor"></div><span class="notion-h-title">7 安装musictagweb实现音乐刮削</span></span></h3></summary><div><div class="notion-text notion-block-1d6073b4a4c680d89891c00d8e1af07d">直接docker无脑安装</div><ol start="1" class="notion-list notion-list-numbered notion-block-1d6073b4a4c6802db696e6c8c4f062be"><li>从Docker Registry拉取镜像</li><ol class="notion-list notion-list-numbered notion-block-1d6073b4a4c6802db696e6c8c4f062be"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-1d6073b4a4c6809bbfbecbefa80c4e19"><li>dokcer run</li><ol class="notion-list notion-list-numbered notion-block-1d6073b4a4c6809bbfbecbefa80c4e19"><div class="notion-text notion-block-1d6073b4a4c6808eb417daaaba2267b7">ps:<code class="notion-inline-code">/path/to/your/music</code> 改成你的音乐文件夹路径！我这里为/home/mujiang/HDD-8T-SHARE/HomeServer/music<div class="notion-text-children"><div class="notion-text notion-block-1d6073b4a4c680768756d25bdc270ba0"><code class="notion-inline-code">/path/to/your/config</code> 改为配置文件路径！我这里为/home/mujiang/music_tag_data</div></div></div></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-1d6073b4a4c680d9a4e9fd49d4c45a8a"><li>修改默认密码（可选）
访问在<code class="notion-inline-code">127.0.0.1:8001/admin</code> 默认账号密码 <em>admin/admin</em> 修改默认密码</li></ol></div></details><details class="notion-toggle notion-block-1d7073b4a4c6808caa5efac214fd1082"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d7073b4a4c6808caa5efac214fd1082" data-id="1d7073b4a4c6808caa5efac214fd1082"><span><div id="1d7073b4a4c6808caa5efac214fd1082" class="notion-header-anchor"></div><span class="notion-h-title">8 安装homeassistant实现全屋智能</span></span></h3></summary><div><details class="notion-toggle notion-block-1d8073b4a4c68079b340dbf8eeba00a4"><summary><h4 class="notion-h notion-h3 notion-block-1d8073b4a4c68079b340dbf8eeba00a4" data-id="1d8073b4a4c68079b340dbf8eeba00a4"><span><div id="1d8073b4a4c68079b340dbf8eeba00a4" class="notion-header-anchor"></div><span class="notion-h-title">8.1 用Docker安装homeassistant</span></span></h4></summary><div><div class="notion-text notion-block-1d7073b4a4c68026b62cca0a9bfc62c9">用docker一键安装</div><div class="notion-text notion-block-1d8073b4a4c6801080abd486759f0c43">HA 想使用内网穿透还得再 configuration.yaml 文件里加上这一段：</div><div class="notion-text notion-block-1d8073b4a4c68098a353fa8046378788">完成修改后，重启一下docker里的homeassistant容器</div></div></details><details class="notion-toggle notion-block-1d8073b4a4c68024bc31dc4c296431cf"><summary><h4 class="notion-h notion-h3 notion-block-1d8073b4a4c68024bc31dc4c296431cf" data-id="1d8073b4a4c68024bc31dc4c296431cf"><span><div id="1d8073b4a4c68024bc31dc4c296431cf" class="notion-header-anchor"></div><span class="notion-h-title">8.2 nginx问题解决</span></span></h4></summary><div><details class="notion-toggle notion-block-1d8073b4a4c680d086f0f4b50b900bca"><summary><b>8.2.1 问题探究</b></summary><div><div class="notion-text notion-block-1d8073b4a4c6806caff1f83f09fadc7e">在下文配置好相应的frp和nginx后，我们会发现通过homeassistant.home.yourdomain.com:28080可以正常访问并登录网页，但是通过homeassistant.home.yourdomain.com却只能访问，无法登陆，错误页面如下：</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d8073b4a4c6807ebef0f9f93f030466"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:310.6569343065694px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A9709bd8a-7120-4e59-a912-cac3fde54803%3Ae05799e9-250e-4cd9-a7aa-527b72bdeeed.png?table=block&amp;id=1d8073b4-a4c6-807e-bef0-f9f93f030466&amp;t=1d8073b4-a4c6-807e-bef0-f9f93f030466" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-1d8073b4a4c680609cecf1ae2ba54aa2">出现这个问题的原因是：</div><div class="notion-text notion-block-1d8073b4a4c6801abf8adaa5aff65c17"><b>1. Home Assistant 的 WebSocket 依赖</b></div><div class="notion-text notion-block-1d8073b4a4c6800194aece668f193e13">Home Assistant 的前端（如登录后的实时界面）依赖 <b>WebSocket</b> 协议实现双向通信（例如状态更新、事件推送）。而初始的 HTTP 反向代理配置可能仅处理普通 HTTP 请求，未正确转发 WebSocket 连接。</div><div class="notion-text notion-block-1d8073b4a4c68049a54fcc3d7b215bec"><b>2. Nginx 的默认代理行为</b></div><div class="notion-text notion-block-1d8073b4a4c6802a8333e57b0390e810">默认情况下，Nginx 的 <code class="notion-inline-code"><b>proxy_pass</b></code> 会：</div><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c68050ad07e9116e61b7ba"><li>将客户端请求转换为普通的 HTTP/1.1 请求转发给后端。</li></ul><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c6800fba6dd8fe11b10b55"><li>不会主动处理 <code class="notion-inline-code"><b>Upgrade</b></code> 标头（WebSocket 的关键握手标头）。</li></ul></div></details><details class="notion-toggle notion-block-1d8073b4a4c680748758cdb0a2dea008"><summary><b>8.2.2 问题解决</b></summary><div><div class="notion-text notion-block-1d8073b4a4c680c783d8eb19b5578434">通过在nginx的location块中添加以下配置解决问题：</div><div class="notion-text notion-block-1d8073b4a4c6809797f4d8ce414dfb15"><b>关键标头的作用</b></div><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c680a3b1a2e5399399dcbe"><li><code class="notion-inline-code"><b>Upgrade: $http_upgrade</b></code></li><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c680a3b1a2e5399399dcbe"><div class="notion-text notion-block-1d8073b4a4c680408e6fe96d00bb8562">将客户端的 <code class="notion-inline-code"><b>Upgrade</b></code> 标头（如 <code class="notion-inline-code"><b>websocket</b></code>）原样传递给后端（Home Assistant），告知需要升级协议。</div></ul></ul><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c680bc9cd4c59e59508cb9"><li><code class="notion-inline-code"><b>Connection: &quot;upgrade&quot;</b></code></li><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c680bc9cd4c59e59508cb9"><div class="notion-text notion-block-1d8073b4a4c680b4adcec4e9e8af5c18">确保 <code class="notion-inline-code"><b>Connection</b></code> 标头包含 <code class="notion-inline-code"><b>upgrade</b></code>，这是 WebSocket 握手必需的字段。</div></ul></ul><div class="notion-text notion-block-1d8073b4a4c68054b702cfa9aa8cd164">如果缺少这些标头，Home Assistant 无法建立 WebSocket 连接，导致登录后实时功能失效（表现为“无法连接”）。</div><hr class="notion-hr notion-block-1d8073b4a4c680daa40ac30a3d599ca8"/><div class="notion-text notion-block-1d8073b4a4c680919675e1512bd5c615"><b>Nginx 配置的深层原理</b></div><div class="notion-text notion-block-1d8073b4a4c6804c9ab0de80588915eb"><b>1. WebSocket 握手流程</b></div><div class="notion-text notion-block-1d8073b4a4c68021bc73e72de12b50c2">WebSocket 通过 HTTP 协议初始化握手，客户端发送：</div><div class="notion-text notion-block-1d8073b4a4c680579ef0da5349696dbf">Nginx 必须将这些标头透传给后端，否则握手失败。</div><div class="notion-text notion-block-1d8073b4a4c680529b00f643def56212"><b>2. 反向代理的“协议转换”问题</b></div><div class="notion-text notion-block-1d8073b4a4c680ba9fdff8f10c6e6321">Nginx 默认会：</div><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c6800f9a4be91e38f35100"><li>将客户端请求降级为 HTTP/1.1 不带标头的普通请求。</li></ul><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c6809badbdfde5b2813f41"><li>丢弃 <code class="notion-inline-code"><b>Upgrade</b></code> 和 <code class="notion-inline-code"><b>Connection</b></code> 标头，导致后端无法识别 WebSocket 请求。</li></ul><div class="notion-text notion-block-1d8073b4a4c68084a238e4f35c5ea4f0">添加 <code class="notion-inline-code"><b>proxy_set_header</b></code> 后，Nginx 会保留这些标头，允许协议升级。</div><hr class="notion-hr notion-block-1d8073b4a4c680fd81e7d92ea3d80343"/><div class="notion-text notion-block-1d8073b4a4c680b3a591c6a9beaca15c"><b>为什么只配 </b><code class="notion-inline-code"><b>trusted_proxies</b></code><b> 不够？</b></div><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c68069b420daa46625f7d2"><li><code class="notion-inline-code"><b>trusted_proxies</b></code> 仅告诉 Home Assistant 信任来自 Nginx 的 IP（避免将 Nginx IP 误判为攻击来源）。</li></ul><ul class="notion-list notion-list-disc notion-block-1d8073b4a4c6804d89b5d11d05052ada"><li>但 WebSocket 功能依赖正确的标头转发，与 IP 信任无关。</li></ul></div></details><div class="notion-blank notion-block-1d8073b4a4c68092a571eeaf78aecc3d"> </div></div></details><details class="notion-toggle notion-block-1db073b4a4c6805796e5c18db7628269"><summary><h4 class="notion-h notion-h3 notion-block-1db073b4a4c6805796e5c18db7628269" data-id="1db073b4a4c6805796e5c18db7628269"><span><div id="1db073b4a4c6805796e5c18db7628269" class="notion-header-anchor"></div><span class="notion-h-title">8.3 加装zigbee模块，使笔记本作为zigbee网关</span></span></h4></summary><div><div class="notion-text notion-block-1db073b4a4c680e89454e32452ab419f">硬件上：淘宝上有很多成品方案，本次我选购了CC2652P作为主芯片，且附带USB接口并刷好固件的成品（插上即用。当然对自己焊接技术自信的也可以参照开源方案自己打板子焊接）</div><div class="notion-text notion-block-1db073b4a4c680faacc3de603dff5e61">软件上：在homeassistant的设置中，添加ZHA作为zigbee软件控制模块，并在ZHA中添加相应的zigbee设备即可，此处细节略去不表</div></div></details></div></details><details class="notion-toggle notion-block-1d8073b4a4c68058aacbc58a600249ca"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d8073b4a4c68058aacbc58a600249ca" data-id="1d8073b4a4c68058aacbc58a600249ca"><span><div id="1d8073b4a4c68058aacbc58a600249ca" class="notion-header-anchor"></div><span class="notion-h-title">9 安装syncthing实现个人云盘搭建</span></span></h3></summary><div><details class="notion-toggle notion-block-1d8073b4a4c680e5ae11dd5c77c917ba"><summary><h4 class="notion-h notion-h3 notion-block-1d8073b4a4c680e5ae11dd5c77c917ba" data-id="1d8073b4a4c680e5ae11dd5c77c917ba"><span><div id="1d8073b4a4c680e5ae11dd5c77c917ba" class="notion-header-anchor"></div><span class="notion-h-title">9.1 在Ubuntu服务器上安装syncthing</span></span></h4></summary><div><details class="notion-toggle notion-block-1d8073b4a4c680e4ad36f52dff1b2128"><summary><b>步骤 1：下载 Syncthing</b></summary><div><div class="notion-text notion-block-1d8073b4a4c6802aba3fe3593b926c7c"><b>1. 进入临时下载目录：</b></div><div class="notion-text notion-block-1d8073b4a4c68013b1c8fad42d12e7d6"><b>2. 使用 </b><code class="notion-inline-code"><b>wget</b></code><b> 下载 Syncthing：</b></div></div></details><details class="notion-toggle notion-block-1d8073b4a4c6802bb3b0ed55886d52ea"><summary><b>步骤 2：解压文件</b></summary><div><div class="notion-text notion-block-1d8073b4a4c68051ab01f709e847030d"><b>1. 解压下载的 </b><code class="notion-inline-code"><b>.tar.gz</b></code><b> 文件：</b></div><div class="notion-text notion-block-1d8073b4a4c680268d99ec6789bacee5"><b>2. 进入解压后的目录：</b></div></div></details><details class="notion-toggle notion-block-1d8073b4a4c680ce9fe2d79ecedde6c5"><summary><b>步骤 3：安装 Syncthing</b></summary><div><div class="notion-text notion-block-1d8073b4a4c6801d95c0d511932ef656"><b>1. 将二进制文件复制到 </b><code class="notion-inline-code"><b>/usr/local/bin</b></code><b>（系统可执行路径）：</b></div><div class="notion-text notion-block-1d8073b4a4c68076a9b7d49924acdc6a"><b>2. 验证安装：</b></div><div class="notion-text notion-block-1d8073b4a4c680a595cedc3dfe345afd">应输出类似：</div></div></details><details class="notion-toggle notion-block-1d8073b4a4c68009a8d1fb1c64728477"><summary><b>步骤 4：配置 Syncthing 为系统服务</b></summary><div><div class="notion-text notion-block-1d8073b4a4c680c294c9da5dc547e97c"><b>1. 创建数据存储目录并设置权限：</b></div><div class="notion-text notion-block-1d8073b4a4c680cbb35de143fcdeecf6"><b>2. 创建 Systemd 服务文件：</b></div><div class="notion-text notion-block-1d8073b4a4c680658533f0c8307e364c">粘贴以下内容：</div><div class="notion-text notion-block-1d8073b4a4c680b4a90ce1ae07e929e9"><b>3. 启动并启用 Syncthing 服务：</b></div><div class="notion-text notion-block-1d8073b4a4c680fb97d1ca7573a2ae99"><b>4. 检查服务状态：</b></div></div></details><details class="notion-toggle notion-block-1d8073b4a4c68068878ddaff2df95405"><summary><b>步骤 5：访问 Syncthing Web 界面</b></summary><div><div class="notion-text notion-block-1d8073b4a4c6806d9732cfa1dd213666">默认情况下，Syncthing 的 Web 界面运行在 <code class="notion-inline-code"><b>http://localhost:8384</b></code>。</div><div class="notion-text notion-block-1d8073b4a4c680cfb151e1739b312d3d">如果需要远程访问，修改配置文件 <code class="notion-inline-code"><b>/var/lib/syncthing/config.xml</b></code>，将 <code class="notion-inline-code"><b>127.0.0.1</b></code> 替换为 <code class="notion-inline-code"><b>0.0.0.0</b></code>：</div><div class="notion-text notion-block-1d8073b4a4c680018838eb801e37d7d8">接着，进行下一节所示的frp和nginx相关配置即可</div></div></details></div></details><details class="notion-toggle notion-block-1d8073b4a4c68081b204d2dd152daf94"><summary><h4 class="notion-h notion-h3 notion-block-1d8073b4a4c68081b204d2dd152daf94" data-id="1d8073b4a4c68081b204d2dd152daf94"><span><div id="1d8073b4a4c68081b204d2dd152daf94" class="notion-header-anchor"></div><span class="notion-h-title">9.2 在个人windows电脑及手机上上安装syncthing</span></span></h4></summary><div><details class="notion-toggle notion-block-1d8073b4a4c6801d9787d18dfb9e7bf0"><summary><b>9.2.1 开机自启动并无窗口运行设置</b></summary><div><div class="notion-text notion-block-1d8073b4a4c68084b402dfb5f15b89de">windows装好后，默认是以终端窗口运行，且每次运行时会弹出网页控制台（本机默认在13614端口）。我们可以写一个简单的bat的脚本来规避这个问题，注意在此步之前，一定要在windows系统设置中将终端选为下图所示</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1d8073b4a4c68029bf5ae1a984498414"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Aafa63356-1017-4721-ad38-e6adae0b9db4%3Aimage.png?table=block&amp;id=1d8073b4-a4c6-8029-bf5a-e1a984498414&amp;t=1d8073b4-a4c6-8029-bf5a-e1a984498414" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-1d8073b4a4c680aaaf99f6083d5e4687">将syncthing的执行路径添加的系统环境变量的path中</div><div class="notion-text notion-block-1d8073b4a4c6806289fdc016c80bb6fa">在syncthing的安装目录下，新建一个文本编辑为bat，内容如下，命名为syncthing_start.bat</div><div class="notion-text notion-block-1d8073b4a4c680af84a1c4bc722c1c60">新建一个该bat脚本的快捷方式，并放置在windows开机自启动目录下，即C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp</div></div></details><details class="notion-toggle notion-block-1d8073b4a4c68024b875c452598b973f"><summary><b>9.2.2 手机上安装syncthing</b></summary><div><div class="notion-text notion-block-1d8073b4a4c680a198bbe489127fbd72">谷歌商店上找到Syncthing-Fork安装即可，其余过程略去不表</div></div></details></div></details><details class="notion-toggle notion-block-1d8073b4a4c68052bf2cf81750727a1d"><summary><h4 class="notion-h notion-h3 notion-block-1d8073b4a4c68052bf2cf81750727a1d" data-id="1d8073b4a4c68052bf2cf81750727a1d"><span><div id="1d8073b4a4c68052bf2cf81750727a1d" class="notion-header-anchor"></div><span class="notion-h-title"><b>9.3 同步方式设置</b></span></span></h4></summary><div><blockquote class="notion-quote notion-block-1d8073b4a4c68048b743f92d64fa50f1"><div>我想实现增量备份</div></blockquote><div class="notion-text notion-block-1d8073b4a4c68044bea6e7d7adbd41f4">因此在ubuntu服务器的syncthing的界面，右上角“操作-高级-文件夹-具体文件夹名称”点开后会弹出来一个全是英文的菜单，里面有一个Ignore Delete的选项，勾选就可以忽略删除了。</div></div></details></div></details><details class="notion-toggle notion-block-1d8073b4a4c6803e9cd2d444d542ba16"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d8073b4a4c6803e9cd2d444d542ba16" data-id="1d8073b4a4c6803e9cd2d444d542ba16"><span><div id="1d8073b4a4c6803e9cd2d444d542ba16" class="notion-header-anchor"></div><span class="notion-h-title">10 安装jellyfin实现个人电影库</span></span></h3></summary><div><details class="notion-toggle notion-block-1d8073b4a4c6800cb40ecb6674348449"><summary><h4 class="notion-h notion-h3 notion-block-1d8073b4a4c6800cb40ecb6674348449" data-id="1d8073b4a4c6800cb40ecb6674348449"><span><div id="1d8073b4a4c6800cb40ecb6674348449" class="notion-header-anchor"></div><span class="notion-h-title">10.1 安装jellyfin</span></span></h4></summary><div><div class="notion-text notion-block-1d8073b4a4c6802695f7f3d0b6ff9852">对于Ubuntu系统，官方直接提供了一个bash脚本一键安装，非常简单</div><div class="notion-text notion-block-1d8073b4a4c680a697b2cb3b856c5b64">装好后，网页UI默认运行在本地的8096端口</div></div></details><details class="notion-toggle notion-block-1d9073b4a4c6803a96d7ecd8dc7c0f7e"><summary><h4 class="notion-h notion-h3 notion-block-1d9073b4a4c6803a96d7ecd8dc7c0f7e" data-id="1d9073b4a4c6803a96d7ecd8dc7c0f7e"><span><div id="1d9073b4a4c6803a96d7ecd8dc7c0f7e" class="notion-header-anchor"></div><span class="notion-h-title">10.2 安装常用插件</span></span></h4></summary><div><div class="notion-text notion-block-1d9073b4a4c6808fbf1bd461f3a1a729">通用流程如下：</div><ol start="1" class="notion-list notion-list-numbered notion-block-1d9073b4a4c680de8cb9ecd937fd4334"><li>进入 Jellyfin 控制台 &gt; 插件目录/存储库 &gt; 设置，点击添加</li></ol><ol start="2" class="notion-list notion-list-numbered notion-block-1d9073b4a4c680528bfccbbd371aa522"><li>输入存储库名称：<code class="notion-inline-code">MetaTube</code></li></ol><ol start="3" class="notion-list notion-list-numbered notion-block-1d9073b4a4c68077bc20fd33be5be478"><li>输入存储库 URL，如：<code class="notion-inline-code"><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json">https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json</a></code></li></ol><ol start="4" class="notion-list notion-list-numbered notion-block-1d9073b4a4c68025b4a3d721d978aa8e"><li>在插件目录下找到 MetaTube，点击安装</li></ol><ol start="5" class="notion-list notion-list-numbered notion-block-1d9073b4a4c680779361fff37ff76586"><li>重启 Jellyfin</li></ol><div class="notion-text notion-block-1d9073b4a4c680709a98d2a080cb07a1">注意事项：</div><div class="notion-text notion-block-1d9073b4a4c6802588fae33c1add55c5">第一次扫描媒体库的时候一定要把元数据下载器关闭，否则扫描会失败！</div></div></details><details class="notion-toggle notion-block-1d8073b4a4c680daad75c8bf6ea64a8b"><summary><h4 class="notion-h notion-h3 notion-block-1d8073b4a4c680daad75c8bf6ea64a8b" data-id="1d8073b4a4c680daad75c8bf6ea64a8b"><span><div id="1d8073b4a4c680daad75c8bf6ea64a8b" class="notion-header-anchor"></div><span class="notion-h-title">10.3 开启硬件解码</span></span></h4></summary><div><details class="notion-toggle notion-block-1d9073b4a4c680208833f6b3fd5ceb1c"><summary><b>问题一</b></summary><div><div class="notion-text notion-block-1d8073b4a4c6806cb430d9bdc85240f6">这一步困扰了我好久，我在根据官方文档打上了Nvidia相关驱动并reboot后，发现Ubuntu服务器直接断网了，在确认网卡硬件没有损坏后，我排查了各个方面，最终发现最后一次reboot启动之后和之前多次启动的内核版本不同，才确定问题的原因：nvidia官方驱动的安装会导致Ubuntu自动升级内核版本，而新的内核版本不兼容老的网卡驱动，所以导致Ubuntu服务器直接断网（谁懂啊，服务器一直提示网卡驱动有问题，而更新网卡驱动需要有网，但现在网卡驱动有问题所以没有网，翻箱倒柜找出一个上古U盘前来救急折腾半天，而且服务器放的位置不好挪，全程以一个诡异的姿态去操作这台老破机器，才最终确定了原因）</div><div class="notion-text notion-block-1d9073b4a4c68084b296f28bba0c4a59">打显卡驱动这一步略去不表，详见下方的官方文档：</div><div class="notion-text notion-block-1d9073b4a4c680129a28d9edc2221217"><span class="notion-link-mention"><a href="https://jellyfin.org/docs/general/administration/hardware-acceleration/" target="_blank" rel="noopener noreferrer" class="notion-link-mention-link"><img class="notion-link-mention-icon" src="https://jellyfin.org/images/favicon.ico" alt="jellyfin"/><span class="notion-link-mention-provider">jellyfin</span><span class="notion-link-mention-title">Hardware Acceleration | Jellyfin</span></a><div class="notion-link-mention-preview"><article class="notion-link-mention-card"><img class="notion-link-mention-preview-thumbnail" src="https://jellyfin.org/images/social.png?v2" alt="Hardware Acceleration | Jellyfin"/><div class="notion-link-mention-preview-content"><p class="notion-link-mention-preview-title">Hardware Acceleration | Jellyfin</p><p class="notion-link-mention-preview-description">The Jellyfin server can offload on the fly video transcoding by utilizing an integrated or discrete graphics card (GPU) suitable to accelerate this workloads very efficiently without straining your CPU.</p><div class="notion-link-mention-preview-footer"><img class="notion-link-mention-preview-icon" src="https://jellyfin.org/images/favicon.ico" alt="jellyfin"/><span class="notion-link-mention-preview-provider">jellyfin</span></div></div></article></div></span></div></div></details><details class="notion-toggle notion-block-1d9073b4a4c680ec9120c505c7ec483a"><summary><b>问题二</b></summary><div><div class="notion-text notion-block-1d9073b4a4c68025b9c0da54ad3f6a8f">这台机器的CPU是i5-6300HQ，对应的核心显卡是Intel Corporation HD Graphics 530（第6代，8代之后才支持QSV，因此核显只支持VAAPI），独立显卡是Nvidia GTX950M（官网查不到，貌似比桌面端少了hevc编码，而且由于独立显卡架构较老，不支持HDR色彩映射）</div><div class="notion-text notion-block-1dd073b4a4c6800a98aed1d67663b052">相应的，如果用核显进行硬件解码，设置如下：</div><details class="notion-toggle notion-block-1dd073b4a4c680eb8b6bc264956a3602"><summary><b>Intel Corporation HD Graphics 530</b></summary><div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1dd073b4a4c680fe8806e3b07846b13d"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Aca5eb7bc-2da2-452b-8dad-8c7726486c44%3A080ecb78fdb800d40442d75bd14467f.jpg?table=block&amp;id=1dd073b4-a4c6-80fe-8806-e3b07846b13d&amp;t=1dd073b4-a4c6-80fe-8806-e3b07846b13d" alt="硬件加速：VAAPI
VA-API设备：相应的核显路径
只勾选图中的解码格式" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">硬件加速：VAAPI
VA-API设备：相应的核显路径
只勾选图中的解码格式</figcaption></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1dd073b4a4c680669d9fd1023f01bfd6"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A3f662717-557b-442b-a96e-bb14d11c167e%3Acfdeaca7c07377efabce89c5edf90c0.jpg?table=block&amp;id=1dd073b4-a4c6-8066-9d9f-d1023f01bfd6&amp;t=1dd073b4-a4c6-8066-9d9f-d1023f01bfd6" alt="设置如图" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">设置如图</figcaption></div></figure></div></details><div class="notion-text notion-block-1dd073b4a4c68024b314f92aab4cc968">如果使用独显进行硬件解码，设置如下：</div><details class="notion-toggle notion-block-1dd073b4a4c6802bab99fe180276161e"><summary><b>Nvidia GTX950M</b></summary><div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1dd073b4a4c680c0bebeebc17ef22de9"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A196cace0-c804-45fe-becd-ced23a162507%3Aimage.png?table=block&amp;id=1dd073b4-a4c6-80c0-bebe-ebc17ef22de9&amp;t=1dd073b4-a4c6-80c0-bebe-ebc17ef22de9" alt="设置如图" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">设置如图</figcaption></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1dd073b4a4c6800fa40bd1e8a81c9170"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A7a06aff9-9ddc-4239-a2e8-f2646ae331e9%3Aimage.png?table=block&amp;id=1dd073b4-a4c6-800f-a40b-d1e8a81c9170&amp;t=1dd073b4-a4c6-800f-a40b-d1e8a81c9170" alt="不勾选“允许以HEVC格式编码”" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">不勾选“允许以HEVC格式编码”</figcaption></div></figure></div></details></div></details></div></details></div></details><details class="notion-toggle notion-block-1dc073b4a4c680c494a4f2668960e044"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1dc073b4a4c680c494a4f2668960e044" data-id="1dc073b4a4c680c494a4f2668960e044"><span><div id="1dc073b4a4c680c494a4f2668960e044" class="notion-header-anchor"></div><span class="notion-h-title">11 安装alist实现网盘聚合及本地文件webdav服务访问</span></span></h3></summary><div><details class="notion-toggle notion-block-1dc073b4a4c6803087e3c34130aa0590"><summary><h4 class="notion-h notion-h3 notion-block-1dc073b4a4c6803087e3c34130aa0590" data-id="1dc073b4a4c6803087e3c34130aa0590"><span><div id="1dc073b4a4c6803087e3c34130aa0590" class="notion-header-anchor"></div><span class="notion-h-title">11.1 安装alist</span></span></h4></summary><div><div class="notion-text notion-block-1dc073b4a4c68069abe2f7a2c000b2b1">输入下列脚本一键安装</div></div></details><details class="notion-toggle notion-block-1dc073b4a4c680bd8aa3cd9da7dde676"><summary><h4 class="notion-h notion-h3 notion-block-1dc073b4a4c680bd8aa3cd9da7dde676" data-id="1dc073b4a4c680bd8aa3cd9da7dde676"><span><div id="1dc073b4a4c680bd8aa3cd9da7dde676" class="notion-header-anchor"></div><span class="notion-h-title">11.2 将Ubuntu服务器本地路径用webdav协议挂载到公网</span></span></h4></summary><div><div class="notion-text notion-block-1dc073b4a4c6806980e3fda2dff1b0d5">参照下面的文档，很简单：</div><div class="notion-row"><a target="_blank" rel="noopener noreferrer" class="notion-bookmark notion-block-1dc073b4a4c680e5895fcb6104ab571f" href="https://alist.nn.ci/zh/guide/drivers/common.html"><div><div class="notion-bookmark-title">通用项</div><div class="notion-bookmark-description">通用项 挂载路径 唯一标识，对外展示的名称，要挂载到的位置，如果要挂载到根目录，就是 / 挂载路径名称重复使用 挂载路径名称没有填写 序号 当有多个账户时，用于排序，越小越靠前，可以填写负数 备注 随便你想填什么，只是提醒你这个存储是什么 从 已挂载的存储 中引用认证、令牌等，同一个Token多个网盘使用 目前仅支持如下网盘： 中国移动云盘 阿里云盘O...</div><div class="notion-bookmark-link"><div class="notion-bookmark-link-icon"><img src="https://www.notion.so/image/https%3A%2F%2Falist.nn.ci%2Ffavicon.ico?table=block&amp;id=1dc073b4-a4c6-80e5-895f-cb6104ab571f&amp;t=1dc073b4-a4c6-80e5-895f-cb6104ab571f" alt="通用项" loading="lazy" decoding="async"/></div><div class="notion-bookmark-link-text">https://alist.nn.ci/zh/guide/drivers/common.html</div></div></div><div class="notion-bookmark-image"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Falist.nn.ci%2Fimg%2Fdrivers%2Fcommon%2Fpath_b.png%23light?table=block&amp;id=1dc073b4-a4c6-80e5-895f-cb6104ab571f&amp;t=1dc073b4-a4c6-80e5-895f-cb6104ab571f" alt="通用项" loading="lazy" decoding="async"/></div></a></div><div class="notion-text notion-block-1dc073b4a4c6801ca175fb687ae29d13">这里顺带提一下隐藏文件夹的设置，在“元数据”项中，通过在网盘显示的路径（注意，不是实际在服务器上的路径），正则表达式匹配来进行隐藏（支持单个文件或文件夹）。如下：</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1dc073b4a4c680cf98fed2baacf2d4a5"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A1af0c138-cb8f-4c3f-a601-7ae81417105c%3Aimage.png?table=block&amp;id=1dc073b4-a4c6-80cf-98fe-d2baacf2d4a5&amp;t=1dc073b4-a4c6-80cf-98fe-d2baacf2d4a5" alt="notion image" loading="lazy" decoding="async"/></div></figure></div></details></div></details><details class="notion-toggle notion-block-1d6073b4a4c680868a9efb09f7477beb"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1d6073b4a4c680868a9efb09f7477beb" data-id="1d6073b4a4c680868a9efb09f7477beb"><span><div id="1d6073b4a4c680868a9efb09f7477beb" class="notion-header-anchor"></div><span class="notion-h-title">12 设置frp和nginx实现稳定公网访问</span></span></h3></summary><div><blockquote class="notion-quote notion-block-1d6073b4a4c6802f8e1cfe6d408893b5"><div>没有在前面进行这一步是因为两天前我还在乐滋滋地用ipv6公网访问我的所有服务，结果今天就发现联通把我光猫的所属网段下所有ipv6的端口全部封了！！！（不得不感叹一下上海网络检查的速度，要不说魔都效率高呢）。所以纵然ipv6的地址数量浩瀚到可以给每一粒沙子都分配地址，但现实国情就是：现在的ipv6在大部分区域都变成了只能进不能出的单向通道（只能访问服务，但不能提供服务），这基本是掐死了个人用户的DIY空间。
此外，入户的公网ipv4地址，那是根本申请不下来啊……
但，“只要思想不滑坡，方法总比困难多”：虽然利用frp实现内网穿透延迟高、还耗费中继服务器的流量，但它好歹能用啊。而且我需要公网访问的家庭网络服务，对延迟并不敏感
那么，说干就干</div></blockquote><details class="notion-toggle notion-block-1d6073b4a4c680469247dcbd2482dbaa"><summary><h4 class="notion-h notion-h3 notion-block-1d6073b4a4c680469247dcbd2482dbaa" data-id="1d6073b4a4c680469247dcbd2482dbaa"><span><div id="1d6073b4a4c680469247dcbd2482dbaa" class="notion-header-anchor"></div><span class="notion-h-title">12.1 利用frp通过自定义域名访问内网的web服务</span></span></h4></summary><div><details class="notion-toggle notion-block-1d6073b4a4c68022ad83f948b9b0a899"><summary><b>12.1.1 配置 frps.toml</b></summary><div><div class="notion-text notion-block-1d6073b4a4c680afaf0acc6a7016e8f8">在 frps.toml 文件中添加以下内容，以指定 HTTP 请求的监听端口为 28080：</div><div class="notion-text notion-block-1d6073b4a4c6807f885dfaed93e1f4ca">如果需要配置 HTTPS 代理，还需要设置 <code class="notion-inline-code">vhostHTTPSPort</code>。</div></div></details><details class="notion-toggle notion-block-1d6073b4a4c680f8abaddb5b2a163446"><summary><b>12.1.2 配置 frpc.toml</b></summary><div><div class="notion-text notion-block-1d6073b4a4c680ac9424f3baf736b0ad">在 frpc.toml 文件中添加以下内容，确保设置了正确的服务器 IP 地址、本地 Web 服务监听端口和自定义域名：</div></div></details><details class="notion-toggle notion-block-1d6073b4a4c6807ea9daea95ad151d57"><summary><b>12.1.3 添加相应的dns解析</b></summary><div><div class="notion-text notion-block-1d6073b4a4c680d88e2ce2dc0206bf70">在相应的域名托管平台，将步骤6.1.2中customDomains中填写的对应的域名，添加A记录解析平台到serverAddr对应的地址</div></div></details><details class="notion-toggle notion-block-1d6073b4a4c68016b164ea15bad5f7d8"><summary><b>12.1.4 访问测试</b></summary><div><div class="notion-text notion-block-1d6073b4a4c680be89dcf50293ecc02b">使用浏览器访问 <code class="notion-inline-code">http://navidrome.yourdomain.com:28080</code> 即可访问内网机器上的 4533 端口服务，访问 <code class="notion-inline-code">http://qbittorrent.yourdomain.com:28080</code> 可以访问内网机器上的 10001 端口服务。</div><div class="notion-text notion-block-1d6073b4a4c680c897bdf4b21c774b61">但很显然，输入端口的方式仍然不够优雅,所以下一步，我们配置一下nginx代理</div></div></details></div></details><details class="notion-toggle notion-block-1d6073b4a4c6809f9d1ad445b1e8ff48"><summary><h4 class="notion-h notion-h3 notion-block-1d6073b4a4c6809f9d1ad445b1e8ff48" data-id="1d6073b4a4c6809f9d1ad445b1e8ff48"><span><div id="1d6073b4a4c6809f9d1ad445b1e8ff48" class="notion-header-anchor"></div><span class="notion-h-title">12.2 利用nginx实现端口转发</span></span></h4></summary><div><div class="notion-text notion-block-1d6073b4a4c680a7a91ad35d4b22b0b1">在具有公网ip的中继服务器上，部署nginx服务，并在编写好的配置文件中加入如下的配置</div><div class="notion-text notion-block-1d6073b4a4c680e684b0ebf798620f0a">完成了如上的配置之后，这时nginx会将例如对于该域名navidrome.yourdomain.com（默认是80端口）的访问，转发到中继服务器的28080端口（由frp监听），从而穿透到内网的相应端口，实现服务</div><div class="notion-text notion-block-1d6073b4a4c6805bbba3f1a2be164cac">这样我们只需通过配置好的有规律的域名，就能访问到内网机器的对应服务，非常舒服</div></div></details></div></details><details class="notion-toggle notion-block-1dd073b4a4c6807fbaf0c7fc7e718736"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1dd073b4a4c6807fbaf0c7fc7e718736" data-id="1dd073b4a4c6807fbaf0c7fc7e718736"><span><div id="1dd073b4a4c6807fbaf0c7fc7e718736" class="notion-header-anchor"></div><span class="notion-h-title">13 内网Ubuntu服务器部署nginx以方便ipv6不带端口号访问</span></span></h3></summary><div><details class="notion-toggle notion-block-1de073b4a4c680479bb0e0f874e13ce6"><summary><h4 class="notion-h notion-h3 notion-block-1de073b4a4c680479bb0e0f874e13ce6" data-id="1de073b4a4c680479bb0e0f874e13ce6"><span><div id="1de073b4a4c680479bb0e0f874e13ce6" class="notion-header-anchor"></div><span class="notion-h-title">13.1 安装nginx</span></span></h4></summary><div><div class="notion-text notion-block-1de073b4a4c680e38ae1e3d81070f4f6">官方有专门的对于ubuntu系统的安装指南，详见下面的链接：</div><div class="notion-row"><a target="_blank" rel="noopener noreferrer" class="notion-bookmark notion-block-1de073b4a4c680bea956f57700492e7c" href="https://nginx.org/en/linux_packages.html"><div><div class="notion-bookmark-title">nginx: Linux packages</div><div class="notion-bookmark-description">nginx packages are available for the following Linux distributions and
versions:</div><div class="notion-bookmark-link"><div class="notion-bookmark-link-icon"><img src="https://www.notion.so/image/https%3A%2F%2Fnginx.org%2Ffavicon.ico?table=block&amp;id=1de073b4-a4c6-80be-a956-f57700492e7c&amp;t=1de073b4-a4c6-80be-a956-f57700492e7c" alt="nginx: Linux packages" loading="lazy" decoding="async"/></div><div class="notion-bookmark-link-text">https://nginx.org/en/linux_packages.html</div></div></div></a></div><div class="notion-text notion-block-1de073b4a4c680339ea0f982f244010a">安装好后，默认的相关路径如下</div><table class="notion-simple-table notion-block-1de073b4a4c6806a9a93ce1234ccccbb"><tbody><tr class="notion-simple-table-row notion-block-1de073b4a4c6802c9725e1f6ab4c9c52"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>类型</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>路径</b></div></td></tr><tr class="notion-simple-table-row notion-block-1de073b4a4c680d1b68ad8349f221e5c"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>主程序</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><code class="notion-inline-code"><b>/usr/sbin/nginx</b></code></div></td></tr><tr class="notion-simple-table-row notion-block-1de073b4a4c68038bd58f33afac79c39"><td class="" style="width:120px"><div class="notion-simple-table-cell"><b>配置文件</b></div></td><td class="" style="width:120px"><div class="notion-simple-table-cell"><code class="notion-inline-code"><b>/etc/nginx/nginx.conf</b></code></div></td></tr></tbody></table></div></details><details class="notion-toggle notion-block-1de073b4a4c680f6bd0ec3b2ea964bb2"><summary><h4 class="notion-h notion-h3 notion-block-1de073b4a4c680f6bd0ec3b2ea964bb2" data-id="1de073b4a4c680f6bd0ec3b2ea964bb2"><span><div id="1de073b4a4c680f6bd0ec3b2ea964bb2" class="notion-header-anchor"></div><span class="notion-h-title">13.2 配置nginx</span></span></h4></summary><div><div class="notion-text notion-block-1de073b4a4c680f884e6f6290b27133d">在默认的配置文件中，我加入了下面这一段，通过map进行分类，并正则表达式效率高一些</div></div></details></div></details><details class="notion-toggle notion-block-1de073b4a4c680359998ee9ce3308c42"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1de073b4a4c680359998ee9ce3308c42" data-id="1de073b4a4c680359998ee9ce3308c42"><span><div id="1de073b4a4c680359998ee9ce3308c42" class="notion-header-anchor"></div><span class="notion-h-title">14 ipv6访问的小插曲</span></span></h3></summary><div><details class="notion-toggle notion-block-1df073b4a4c680a394afd2eac5b64fcd"><summary><h4 class="notion-h notion-h3 notion-block-1df073b4a4c680a394afd2eac5b64fcd" data-id="1df073b4a4c680a394afd2eac5b64fcd"><span><div id="1df073b4a4c680a394afd2eac5b64fcd" class="notion-header-anchor"></div><span class="notion-h-title">14.1 插曲一</span></span></h4></summary><div><blockquote class="notion-quote notion-block-1de073b4a4c68018a8b0c2277cddac0a"><div>在配置好ipv6公网访问的那段时间，我总会在一天中的某个随机的时段，无法用ipv6访问我的内网服务器，而在剩下的大部分时间，都是可以正常访问网页服务的，在这期间，ssh服务是始终稳定不受影响的。
总结下来就是：http协议的ipv6网页访问时不时抽风；tcp协议的ssh服务用ipv6却始终稳定
除此之外，每当网页的ipv6访问抽风出现502错误时，我用curl对应的端口和ping域名或ipv6的地址，都是能正常连通的。
以上的这些怪异表现让我百思不得其解
终于在我又一次烦躁不安地检查并确认了光猫防火墙、路由器防火墙都被关闭，且curl与ping都正常之后，我下意识地在网页用ipv6的地址进行访问时，打开F12检查了一下。然后便看到了下面这样的画面……</div></blockquote><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1de073b4a4c680d49a15d26ab57b7b37"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:602.9403076171875px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A218b15a6-a951-41be-a0e8-96c9fc2a1f12%3A1745426674336.png?table=block&amp;id=1de073b4-a4c6-80d4-9a15-d26ab57b7b37&amp;t=1de073b4-a4c6-80d4-9a15-d26ab57b7b37" alt="等等，remote address？！马萨卡！" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">等等，remote address？！马萨卡！</figcaption></div></figure><div class="notion-text notion-block-1de073b4a4c6802cb2b3d4e6889f3fd4">此时，笔者内心犹如一万匹草泥马奔腾而过。要知道，我在排查问题的时候，也尝试过把clash切到直连模式并关掉，但始终忘了在windows系统中将这个代理服务器关闭</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1de073b4a4c68047931ad46928859d0d"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3A75cc7321-2e72-4796-b64d-90a394dc2e78%3A1745427365958.png?table=block&amp;id=1de073b4-a4c6-8047-931a-d46928859d0d&amp;t=1de073b4-a4c6-8047-931a-d46928859d0d" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-1de073b4a4c680599a0ddfae13d03f70">所以，之前网页的ipv6访问时不时抽风，是因为我在用电脑访问ubuntu服务器的ipv6地址时，被时不时代理到了本地的 <code class="notion-inline-code"><b>127.0.0.1:7890</b></code><b> </b>所以页面才会返回502。而ssh服务却不受这一影响，因此始终正常。</div><div class="notion-text notion-block-1de073b4a4c6805297fbd6f5565a3203">终于破案了。</div><div class="notion-text notion-block-1de073b4a4c68060add8cedf773f4dc6">解决方法也很简单，clash中设置一下绕过系统代理的ip/域名即可，如下：</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1de073b4a4c68016ac09c7425074942f"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Af6d884fc-4e2a-468f-8c7a-829301a217ee%3A1745427915409.png?table=block&amp;id=1de073b4-a4c6-8016-ac09-c7425074942f&amp;t=1de073b4-a4c6-8016-ac09-c7425074942f" alt="notion image" loading="lazy" decoding="async"/></div></figure></div></details><details class="notion-toggle notion-block-1df073b4a4c6806fb990de2250f56784"><summary><h4 class="notion-h notion-h3 notion-block-1df073b4a4c6806fb990de2250f56784" data-id="1df073b4a4c6806fb990de2250f56784"><span><div id="1df073b4a4c6806fb990de2250f56784" class="notion-header-anchor"></div><span class="notion-h-title">14.2 插曲二</span></span></h4></summary><div><blockquote class="notion-quote notion-block-1df073b4a4c680f193fbca7597fd486e"><div>本来已经美滋滋地享用“域名ddns解析为ipv6地址，以直接访问内网ubuntu服务器的网页”，结果今天在外面一尝试，直接通过域名访问的方式（默认80端口）又寄了，但带对应的端口号访问却依然正常。
初步可以判断是运营商把80和443端口给封了。
我才用一天啊……
去球吧，上海联通。
在路由器配置一下端口转发，改成250端口（暴躁）</div></blockquote><div class="notion-text notion-block-1df073b4a4c680fd9f65f237c36a630c">将13.2节的nginx配置修改如下：</div><div class="notion-text notion-block-1df073b4a4c680b8afc9f82ba280f86e">讲一下几个改动点：</div><div class="notion-text notion-block-1df073b4a4c680a48df2eb72fba45e6f">1.将所有的对80端口的监听改成了250</div><div class="notion-text notion-block-1df073b4a4c680dea14cda2d346bb6de">2.由于qbittorrent默认设置-webui-验证这一项开启了“点击劫持”保护和CSRF保护，导致nginx设置后无法正常访问qbittorrent的服务，因此需要在原来的nginx配置文件中加入下面这一段：</div><div class="notion-text notion-block-1df073b4a4c680139915d45fb2cf7be9">其中：</div><div class="notion-text notion-block-1df073b4a4c6800aad1cf2740897802c"><b>1. </b><code class="notion-inline-code"><b>X-Forwarded-Host</b></code><b> 的修正作用</b></div><div class="notion-text notion-block-1df073b4a4c6804db773f764749ef45e"><b>原配置：</b></div><div class="notion-text notion-block-1df073b4a4c680c58b6cf0847cc41263"><b>作用：</b></div><ul class="notion-list notion-list-disc notion-block-1df073b4a4c6808b913cf4243af8f07b"><li><b>传递代理信息</b>：<code class="notion-inline-code"><b>X-Forwarded-Host</b></code> 头告知后端（qBittorrent）客户端原始请求的主机名和端口（即 <code class="notion-inline-code"><b>$server_name</b></code> 匹配的域名 <code class="notion-inline-code"><b>qbittorrent.ddnsv6.jfseed.com</b></code> 和端口 <code class="notion-inline-code"><b>250</b></code>）。</li></ul><ul class="notion-list notion-list-disc notion-block-1df073b4a4c68056944ae19956d9a8fd"><li><b>修复后端识别问题</b>：</li><ul class="notion-list notion-list-disc notion-block-1df073b4a4c68056944ae19956d9a8fd"><div class="notion-text notion-block-1df073b4a4c680cc89adfce826c4685e">qBittorrent 默认会校验请求来源是否合法。如果反向代理未正确传递原始域名和端口，后端可能认为请求来自非法代理（例如缺失 <code class="notion-inline-code"><b>Host</b></code> 头或 <code class="notion-inline-code"><b>X-Forwarded-Host</b></code> 头），从而触发安全拦截。</div><div class="notion-text notion-block-1df073b4a4c68081b034c52ce1f3421e">此设置确保后端能正确识别原始请求的域名和端口，避免因反向代理导致的安全校验失败。</div></ul></ul><hr class="notion-hr notion-block-1df073b4a4c680e9a11bd787a0737758"/><div class="notion-text notion-block-1df073b4a4c68048bef2fe7321786955"><b>2. </b><code class="notion-inline-code"><b>Referer</b></code><b> 和 </b><code class="notion-inline-code"><b>Origin</b></code><b> 头的控制</b></div><div class="notion-text notion-block-1df073b4a4c680f6a9ccfe4b671d9b3a"><b>配置：</b></div><div class="notion-text notion-block-1df073b4a4c680cea6f4d57fab673ab5"><b>作用：</b></div><ul class="notion-list notion-list-disc notion-block-1df073b4a4c680bbb936f60803ae47d1"><li><b>清除敏感头信息</b>：</li><ul class="notion-list notion-list-disc notion-block-1df073b4a4c680bbb936f60803ae47d1"><div class="notion-text notion-block-1df073b4a4c68088a7dad3c14eed4b9b">qBittorrent 的 <b>CSRF 防护</b> 会检查 <code class="notion-inline-code"><b>Referer</b></code> 和 <code class="notion-inline-code"><b>Origin</b></code> 头，验证它们是否与当前服务的域名一致。</div><div class="notion-text notion-block-1df073b4a4c680bd8978d07dc7e10fb6">当通过 <code class="notion-inline-code"><b>http://qbittorrent.ddnsv6.jfseed.com:250</b></code> 访问时，浏览器默认会发送 <code class="notion-inline-code"><b>Referer: http://qbittorrent.ddnsv6.jfseed.com:250/...</b></code> 和 <code class="notion-inline-code"><b>Origin: http://qbittorrent.ddnsv6.jfseed.com:250</b></code>。</div><div class="notion-text notion-block-1df073b4a4c6804cbb80d75159bd1634">如果后端校验逻辑 <b>严格匹配域名且拒绝带端口的来源</b>（如只允许 <code class="notion-inline-code"><b>qbittorrent.ddnsv6.jfseed.com</b></code> 不带 <code class="notion-inline-code"><b>:250</b></code>），这些头会被视为非法，导致请求被拦截。</div></ul></ul><ul class="notion-list notion-list-disc notion-block-1df073b4a4c68012b040de165cce83ae"><li><b>强制置空绕过校验</b>：</li><ul class="notion-list notion-list-disc notion-block-1df073b4a4c68012b040de165cce83ae"><div class="notion-text notion-block-1df073b4a4c6803db927cbf51fb67a0d">通过 <code class="notion-inline-code"><b>proxy_hide_header</b></code> 和 <code class="notion-inline-code"><b>proxy_set_header</b></code> 清空这两个头，后端无法获取到带端口的信息，从而跳过 CSRF 校验。</div><div class="notion-text notion-block-1df073b4a4c68010a0ddc80892830ac4">（注意：此方法可能存在安全风险，需确保其他防护措施已到位。）</div></ul></ul><hr class="notion-hr notion-block-1df073b4a4c680efa5defaf27846c42a"/><div class="notion-text notion-block-1df073b4a4c680ba9255c898eeb906c4"><b>3. </b><code class="notion-inline-code"><b>X-Frame-Options</b></code><b> 的防护兼容</b></div><div class="notion-text notion-block-1df073b4a4c6808fba2cefa6e53bf0e0"><b>配置：</b></div><div class="notion-text notion-block-1df073b4a4c680159179dba4809d87d9"><b>作用：</b></div><ul class="notion-list notion-list-disc notion-block-1df073b4a4c68007bad4de2397da9656"><li><b>防止点击劫持（Clickjacking）</b>：</li><ul class="notion-list notion-list-disc notion-block-1df073b4a4c68007bad4de2397da9656"><div class="notion-text notion-block-1df073b4a4c680aab755f1ee67095d81">该响应头告诉浏览器此页面只能被嵌入到同源（相同域名、协议、端口）的框架中。</div><div class="notion-text notion-block-1df073b4a4c680c6a4bee5b6133d0f4d">qBittorrent 默认可能要求此头为 <code class="notion-inline-code"><b>SAMEORIGIN</b></code> 或 <code class="notion-inline-code"><b>DENY</b></code>，但反向代理未传递时会导致浏览器拦截页面加载。</div><div class="notion-text notion-block-1df073b4a4c680a8b9c6c9c49491390b">主动添加此头可满足劫持保护的要求，确保页面正常渲染。</div></ul></ul><hr class="notion-hr notion-block-1df073b4a4c6809d99dcc47f15353b74"/><div class="notion-text notion-block-1df073b4a4c680c49fddf20ee0adbed0"><b>综合生效原理</b></div><ol start="1" class="notion-list notion-list-numbered notion-block-1df073b4a4c680b8ad48f800ea3de7a5"><li><b>修复后端域名识别</b>：</li><ol class="notion-list notion-list-numbered notion-block-1df073b4a4c680b8ad48f800ea3de7a5"><div class="notion-text notion-block-1df073b4a4c68043a026f86feed22033"><code class="notion-inline-code"><b>X-Forwarded-Host</b></code> 提供准确的客户端原始请求信息，使后端（qBittorrent）能正确关联域名和端口，避免因反向代理导致的域名混淆。</div></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-1df073b4a4c680999142e7d000881733"><li><b>绕过严格端口校验</b>：</li><ol class="notion-list notion-list-numbered notion-block-1df073b4a4c680999142e7d000881733"><ul class="notion-list notion-list-disc notion-block-1df073b4a4c680efbd37fd1747f17ed4"><li>清空 <code class="notion-inline-code"><b>Referer</b></code> 和 <code class="notion-inline-code"><b>Origin</b></code> 头，使后端无法检测到客户端实际访问的端口（<code class="notion-inline-code"><b>:250</b></code>），从而绕过对非标准端口的拦截。</li></ul><ul class="notion-list notion-list-disc notion-block-1df073b4a4c6801bba52e37d2d3caee0"><li>若后端仅校验 <code class="notion-inline-code"><b>Host</b></code> 头（通过 <code class="notion-inline-code"><b>proxy_set_header Host $host</b></code> 已传递为 <code class="notion-inline-code"><b>qbittorrent.ddnsv6.jfseed.com</b></code>），则校验通过。</li></ul></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-1df073b4a4c680bc8204e016bfc2d60e"><li><b>满足安全响应头要求</b>：</li><ol class="notion-list notion-list-numbered notion-block-1df073b4a4c680bc8204e016bfc2d60e"><div class="notion-text notion-block-1df073b4a4c6809cb2ffef5757376443"><code class="notion-inline-code"><b>X-Frame-Options</b></code> 的显式设置确保浏览器不会因安全策略拦截页面。</div></ol></ol></div></details></div></details><details class="notion-toggle notion-block-1db073b4a4c68010ba68da0e64785959"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1db073b4a4c68010ba68da0e64785959" data-id="1db073b4a4c68010ba68da0e64785959"><span><div id="1db073b4a4c68010ba68da0e64785959" class="notion-header-anchor"></div><span class="notion-h-title">15 成品展示</span></span></h3></summary><div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1dd073b4a4c680a69eacf4e55126bc07"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ae869dbcf-8d9a-42d1-8a46-3fbe2050d426%3A%E5%BE%AE%E4%BF%A1%E5%9B%BE%E7%89%87_20250422150047.jpg?table=block&amp;id=1dd073b4-a4c6-80a6-9eac-f4e55126bc07&amp;t=1dd073b4-a4c6-80a6-9eac-f4e55126bc07" alt="主体：联想小新Ideapad-70015ISK
外挂硬盘：西数WD85PURZ（容量8T）
zigbee通信模块：主芯片CC2652P" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">主体：联想小新Ideapad-70015ISK
外挂硬盘：西数WD85PURZ（容量8T）
zigbee通信模块：主芯片CC2652P</figcaption></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1dd073b4a4c680068d06d2c4de792530"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Adff6732c-75b1-4e77-84bf-7a5c1c51f47a%3Aimage.png?table=block&amp;id=1dd073b4-a4c6-8006-8d06-d2c4de792530&amp;t=1dd073b4-a4c6-8006-8d06-d2c4de792530" alt="CPU待机平均功耗4.4W左右" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">CPU待机平均功耗4.4W左右</figcaption></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-1dd073b4a4c6806d82d9df21e06c6521"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:400.7045593261719px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/attachment%3Ae27b4a24-84c2-403b-a400-48061f691733%3Aimage.png?table=block&amp;id=1dd073b4-a4c6-806d-82d9-df21e06c6521&amp;t=1dd073b4-a4c6-806d-82d9-df21e06c6521" alt="CPU峰值功耗（播放4K高码率视频，硬件解码）43W左右" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">CPU峰值功耗（播放4K高码率视频，硬件解码）43W左右</figcaption></div></figure><div class="notion-blank notion-block-1dd073b4a4c680d8b5e1e4d4628ee910"> </div></div></details><details class="notion-toggle notion-block-1e3073b4a4c68014bf59c5b66c2a1682"><summary><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-1e3073b4a4c68014bf59c5b66c2a1682" data-id="1e3073b4a4c68014bf59c5b66c2a1682"><span><div id="1e3073b4a4c68014bf59c5b66c2a1682" class="notion-header-anchor"></div><span class="notion-h-title">16 后续</span></span></h3></summary><div><details class="notion-toggle notion-block-1e3073b4a4c6801b98dbe267f6fdfd9e"><summary><h4 class="notion-h notion-h3 notion-block-1e3073b4a4c6801b98dbe267f6fdfd9e" data-id="1e3073b4a4c6801b98dbe267f6fdfd9e"><span><div id="1e3073b4a4c6801b98dbe267f6fdfd9e" class="notion-header-anchor"></div><span class="notion-h-title">16.1 安装transmission（qBEE不支持qt种子）实现qt下载</span></span></h4></summary><div><div class="notion-text notion-block-1e3073b4a4c680959001c2d3caf8670f">安装流程详见官方文档：</div><div class="notion-row"><a target="_blank" rel="noopener noreferrer" class="notion-bookmark notion-block-1e3073b4a4c680e9968cd569c2d23884" href="https://help.ubuntu.com/community/TransmissionHowTo"><div><div class="notion-bookmark-title">TransmissionHowTo - Community Help Wiki</div><div class="notion-bookmark-description">The material on this wiki is available under a free license, see Copyright / License for detailsYou can contribute to this wiki, see 
		Wiki Guide for details</div><div class="notion-bookmark-link"><div class="notion-bookmark-link-icon"><img src="https://www.notion.so/image/https%3A%2F%2Fhelp.ubuntu.com%2Ffavicon.ico?table=block&amp;id=1e3073b4-a4c6-80e9-968c-d569c2d23884&amp;t=1e3073b4-a4c6-80e9-968c-d569c2d23884" alt="TransmissionHowTo - Community Help Wiki" loading="lazy" decoding="async"/></div><div class="notion-bookmark-link-text">https://help.ubuntu.com/community/TransmissionHowTo</div></div></div></a></div><div class="notion-text notion-block-1d7073b4a4c680a1aed5c5f078961cd4">在安装好后，可能会出现systemd无法正常工作的错误，可以参考下面这篇文章进行解决：</div><a target="_blank" rel="noopener noreferrer" href="https://github.com/transmission/transmission/issues/6991" class="notion-external notion-external-block notion-row notion-block-1e3073b4a4c6801f86d8ef4f5da9d434"><div class="notion-external-image"><svg viewBox="0 0 260 260"><g><path d="M128.00106,0 C57.3172926,0 0,57.3066942 0,128.00106 C0,184.555281 36.6761997,232.535542 87.534937,249.460899 C93.9320223,250.645779 96.280588,246.684165 96.280588,243.303333 C96.280588,240.251045 96.1618878,230.167899 96.106777,219.472176 C60.4967585,227.215235 52.9826207,204.369712 52.9826207,204.369712 C47.1599584,189.574598 38.770408,185.640538 38.770408,185.640538 C27.1568785,177.696113 39.6458206,177.859325 39.6458206,177.859325 C52.4993419,178.762293 59.267365,191.04987 59.267365,191.04987 C70.6837675,210.618423 89.2115753,204.961093 96.5158685,201.690482 C97.6647155,193.417512 100.981959,187.77078 104.642583,184.574357 C76.211799,181.33766 46.324819,170.362144 46.324819,121.315702 C46.324819,107.340889 51.3250588,95.9223682 59.5132437,86.9583937 C58.1842268,83.7344152 53.8029229,70.715562 60.7532354,53.0843636 C60.7532354,53.0843636 71.5019501,49.6441813 95.9626412,66.2049595 C106.172967,63.368876 117.123047,61.9465949 128.00106,61.8978432 C138.879073,61.9465949 149.837632,63.368876 160.067033,66.2049595 C184.49805,49.6441813 195.231926,53.0843636 195.231926,53.0843636 C202.199197,70.715562 197.815773,83.7344152 196.486756,86.9583937 C204.694018,95.9223682 209.660343,107.340889 209.660343,121.315702 C209.660343,170.478725 179.716133,181.303747 151.213281,184.472614 C155.80443,188.444828 159.895342,196.234518 159.895342,208.176593 C159.895342,225.303317 159.746968,239.087361 159.746968,243.303333 C159.746968,246.709601 162.05102,250.70089 168.53925,249.443941 C219.370432,232.499507 256,184.536204 256,128.00106 C256,57.3066942 198.691187,0 128.00106,0 Z M47.9405593,182.340212 C47.6586465,182.976105 46.6581745,183.166873 45.7467277,182.730227 C44.8183235,182.312656 44.2968914,181.445722 44.5978808,180.80771 C44.8734344,180.152739 45.876026,179.97045 46.8023103,180.409216 C47.7328342,180.826786 48.2627451,181.702199 47.9405593,182.340212 Z M54.2367892,187.958254 C53.6263318,188.524199 52.4329723,188.261363 51.6232682,187.366874 C50.7860088,186.474504 50.6291553,185.281144 51.2480912,184.70672 C51.8776254,184.140775 53.0349512,184.405731 53.8743302,185.298101 C54.7115892,186.201069 54.8748019,187.38595 54.2367892,187.958254 Z M58.5562413,195.146347 C57.7719732,195.691096 56.4895886,195.180261 55.6968417,194.042013 C54.9125733,192.903764 54.9125733,191.538713 55.713799,190.991845 C56.5086651,190.444977 57.7719732,190.936735 58.5753181,192.066505 C59.3574669,193.22383 59.3574669,194.58888 58.5562413,195.146347 Z M65.8613592,203.471174 C65.1597571,204.244846 63.6654083,204.03712 62.5716717,202.981538 C61.4524999,201.94927 61.1409122,200.484596 61.8446341,199.710926 C62.5547146,198.935137 64.0575422,199.15346 65.1597571,200.200564 C66.2704506,201.230712 66.6095936,202.705984 65.8613592,203.471174 Z M75.3025151,206.281542 C74.9930474,207.284134 73.553809,207.739857 72.1039724,207.313809 C70.6562556,206.875043 69.7087748,205.700761 70.0012857,204.687571 C70.302275,203.678621 71.7478721,203.20382 73.2083069,203.659543 C74.6539041,204.09619 75.6035048,205.261994 75.3025151,206.281542 Z M86.046947,207.473627 C86.0829806,208.529209 84.8535871,209.404622 83.3316829,209.4237 C81.8013,209.457614 80.563428,208.603398 80.5464708,207.564772 C80.5464708,206.498591 81.7483088,205.631657 83.2786917,205.606221 C84.8005962,205.576546 86.046947,206.424403 86.046947,207.473627 Z M96.6021471,207.069023 C96.7844366,208.099171 95.7267341,209.156872 94.215428,209.438785 C92.7295577,209.710099 91.3539086,209.074206 91.1652603,208.052538 C90.9808515,206.996955 92.0576306,205.939253 93.5413813,205.66582 C95.054807,205.402984 96.4092596,206.021919 96.6021471,207.069023 Z" fill="#161614"></path></g></svg></div><div class="notion-external-description"><div class="notion-external-title">transmission-daemon fails to notify systemd of correct start</div></div></a><div class="notion-text notion-block-1e3073b4a4c68097ab57e284aac285e3">默认配置文件路径<code class="notion-inline-code">/var/lib/transmission-daemon/info/settings.json</code></div><div class="notion-text notion-block-1e3073b4a4c6803aa495fbc95e0dc24b">transmission的默认webui过于简陋，可以安装如下webui美化：</div><a target="_blank" rel="noopener noreferrer" href="https://github.com/ronggang/transmission-web-control" class="notion-external notion-external-block notion-row notion-block-1e3073b4a4c680a6af94cd9da36c9e19"><div class="notion-external-image"><svg viewBox="0 0 260 260"><g><path d="M128.00106,0 C57.3172926,0 0,57.3066942 0,128.00106 C0,184.555281 36.6761997,232.535542 87.534937,249.460899 C93.9320223,250.645779 96.280588,246.684165 96.280588,243.303333 C96.280588,240.251045 96.1618878,230.167899 96.106777,219.472176 C60.4967585,227.215235 52.9826207,204.369712 52.9826207,204.369712 C47.1599584,189.574598 38.770408,185.640538 38.770408,185.640538 C27.1568785,177.696113 39.6458206,177.859325 39.6458206,177.859325 C52.4993419,178.762293 59.267365,191.04987 59.267365,191.04987 C70.6837675,210.618423 89.2115753,204.961093 96.5158685,201.690482 C97.6647155,193.417512 100.981959,187.77078 104.642583,184.574357 C76.211799,181.33766 46.324819,170.362144 46.324819,121.315702 C46.324819,107.340889 51.3250588,95.9223682 59.5132437,86.9583937 C58.1842268,83.7344152 53.8029229,70.715562 60.7532354,53.0843636 C60.7532354,53.0843636 71.5019501,49.6441813 95.9626412,66.2049595 C106.172967,63.368876 117.123047,61.9465949 128.00106,61.8978432 C138.879073,61.9465949 149.837632,63.368876 160.067033,66.2049595 C184.49805,49.6441813 195.231926,53.0843636 195.231926,53.0843636 C202.199197,70.715562 197.815773,83.7344152 196.486756,86.9583937 C204.694018,95.9223682 209.660343,107.340889 209.660343,121.315702 C209.660343,170.478725 179.716133,181.303747 151.213281,184.472614 C155.80443,188.444828 159.895342,196.234518 159.895342,208.176593 C159.895342,225.303317 159.746968,239.087361 159.746968,243.303333 C159.746968,246.709601 162.05102,250.70089 168.53925,249.443941 C219.370432,232.499507 256,184.536204 256,128.00106 C256,57.3066942 198.691187,0 128.00106,0 Z M47.9405593,182.340212 C47.6586465,182.976105 46.6581745,183.166873 45.7467277,182.730227 C44.8183235,182.312656 44.2968914,181.445722 44.5978808,180.80771 C44.8734344,180.152739 45.876026,179.97045 46.8023103,180.409216 C47.7328342,180.826786 48.2627451,181.702199 47.9405593,182.340212 Z M54.2367892,187.958254 C53.6263318,188.524199 52.4329723,188.261363 51.6232682,187.366874 C50.7860088,186.474504 50.6291553,185.281144 51.2480912,184.70672 C51.8776254,184.140775 53.0349512,184.405731 53.8743302,185.298101 C54.7115892,186.201069 54.8748019,187.38595 54.2367892,187.958254 Z M58.5562413,195.146347 C57.7719732,195.691096 56.4895886,195.180261 55.6968417,194.042013 C54.9125733,192.903764 54.9125733,191.538713 55.713799,190.991845 C56.5086651,190.444977 57.7719732,190.936735 58.5753181,192.066505 C59.3574669,193.22383 59.3574669,194.58888 58.5562413,195.146347 Z M65.8613592,203.471174 C65.1597571,204.244846 63.6654083,204.03712 62.5716717,202.981538 C61.4524999,201.94927 61.1409122,200.484596 61.8446341,199.710926 C62.5547146,198.935137 64.0575422,199.15346 65.1597571,200.200564 C66.2704506,201.230712 66.6095936,202.705984 65.8613592,203.471174 Z M75.3025151,206.281542 C74.9930474,207.284134 73.553809,207.739857 72.1039724,207.313809 C70.6562556,206.875043 69.7087748,205.700761 70.0012857,204.687571 C70.302275,203.678621 71.7478721,203.20382 73.2083069,203.659543 C74.6539041,204.09619 75.6035048,205.261994 75.3025151,206.281542 Z M86.046947,207.473627 C86.0829806,208.529209 84.8535871,209.404622 83.3316829,209.4237 C81.8013,209.457614 80.563428,208.603398 80.5464708,207.564772 C80.5464708,206.498591 81.7483088,205.631657 83.2786917,205.606221 C84.8005962,205.576546 86.046947,206.424403 86.046947,207.473627 Z M96.6021471,207.069023 C96.7844366,208.099171 95.7267341,209.156872 94.215428,209.438785 C92.7295577,209.710099 91.3539086,209.074206 91.1652603,208.052538 C90.9808515,206.996955 92.0576306,205.939253 93.5413813,205.66582 C95.054807,205.402984 96.4092596,206.021919 96.6021471,207.069023 Z" fill="#161614"></path></g></svg></div><div class="notion-external-description"><div class="notion-external-title">transmission-web-control</div><div class="notion-external-block-desc">ronggang<span> • </span>Updated Apr 28, 2025</div></div></a><div class="notion-text notion-block-1e3073b4a4c6806ab99be5334c505160">按照官方的步骤会有一些问题，解决方案如下：</div><a target="_blank" rel="noopener noreferrer" href="https://github.com/ronggang/transmission-web-control/issues/636" class="notion-external notion-external-block notion-row notion-block-1e3073b4a4c680a591d2e7a7c90b99a1"><div class="notion-external-image"><svg viewBox="0 0 260 260"><g><path d="M128.00106,0 C57.3172926,0 0,57.3066942 0,128.00106 C0,184.555281 36.6761997,232.535542 87.534937,249.460899 C93.9320223,250.645779 96.280588,246.684165 96.280588,243.303333 C96.280588,240.251045 96.1618878,230.167899 96.106777,219.472176 C60.4967585,227.215235 52.9826207,204.369712 52.9826207,204.369712 C47.1599584,189.574598 38.770408,185.640538 38.770408,185.640538 C27.1568785,177.696113 39.6458206,177.859325 39.6458206,177.859325 C52.4993419,178.762293 59.267365,191.04987 59.267365,191.04987 C70.6837675,210.618423 89.2115753,204.961093 96.5158685,201.690482 C97.6647155,193.417512 100.981959,187.77078 104.642583,184.574357 C76.211799,181.33766 46.324819,170.362144 46.324819,121.315702 C46.324819,107.340889 51.3250588,95.9223682 59.5132437,86.9583937 C58.1842268,83.7344152 53.8029229,70.715562 60.7532354,53.0843636 C60.7532354,53.0843636 71.5019501,49.6441813 95.9626412,66.2049595 C106.172967,63.368876 117.123047,61.9465949 128.00106,61.8978432 C138.879073,61.9465949 149.837632,63.368876 160.067033,66.2049595 C184.49805,49.6441813 195.231926,53.0843636 195.231926,53.0843636 C202.199197,70.715562 197.815773,83.7344152 196.486756,86.9583937 C204.694018,95.9223682 209.660343,107.340889 209.660343,121.315702 C209.660343,170.478725 179.716133,181.303747 151.213281,184.472614 C155.80443,188.444828 159.895342,196.234518 159.895342,208.176593 C159.895342,225.303317 159.746968,239.087361 159.746968,243.303333 C159.746968,246.709601 162.05102,250.70089 168.53925,249.443941 C219.370432,232.499507 256,184.536204 256,128.00106 C256,57.3066942 198.691187,0 128.00106,0 Z M47.9405593,182.340212 C47.6586465,182.976105 46.6581745,183.166873 45.7467277,182.730227 C44.8183235,182.312656 44.2968914,181.445722 44.5978808,180.80771 C44.8734344,180.152739 45.876026,179.97045 46.8023103,180.409216 C47.7328342,180.826786 48.2627451,181.702199 47.9405593,182.340212 Z M54.2367892,187.958254 C53.6263318,188.524199 52.4329723,188.261363 51.6232682,187.366874 C50.7860088,186.474504 50.6291553,185.281144 51.2480912,184.70672 C51.8776254,184.140775 53.0349512,184.405731 53.8743302,185.298101 C54.7115892,186.201069 54.8748019,187.38595 54.2367892,187.958254 Z M58.5562413,195.146347 C57.7719732,195.691096 56.4895886,195.180261 55.6968417,194.042013 C54.9125733,192.903764 54.9125733,191.538713 55.713799,190.991845 C56.5086651,190.444977 57.7719732,190.936735 58.5753181,192.066505 C59.3574669,193.22383 59.3574669,194.58888 58.5562413,195.146347 Z M65.8613592,203.471174 C65.1597571,204.244846 63.6654083,204.03712 62.5716717,202.981538 C61.4524999,201.94927 61.1409122,200.484596 61.8446341,199.710926 C62.5547146,198.935137 64.0575422,199.15346 65.1597571,200.200564 C66.2704506,201.230712 66.6095936,202.705984 65.8613592,203.471174 Z M75.3025151,206.281542 C74.9930474,207.284134 73.553809,207.739857 72.1039724,207.313809 C70.6562556,206.875043 69.7087748,205.700761 70.0012857,204.687571 C70.302275,203.678621 71.7478721,203.20382 73.2083069,203.659543 C74.6539041,204.09619 75.6035048,205.261994 75.3025151,206.281542 Z M86.046947,207.473627 C86.0829806,208.529209 84.8535871,209.404622 83.3316829,209.4237 C81.8013,209.457614 80.563428,208.603398 80.5464708,207.564772 C80.5464708,206.498591 81.7483088,205.631657 83.2786917,205.606221 C84.8005962,205.576546 86.046947,206.424403 86.046947,207.473627 Z M96.6021471,207.069023 C96.7844366,208.099171 95.7267341,209.156872 94.215428,209.438785 C92.7295577,209.710099 91.3539086,209.074206 91.1652603,208.052538 C90.9808515,206.996955 92.0576306,205.939253 93.5413813,205.66582 C95.054807,205.402984 96.4092596,206.021919 96.6021471,207.069023 Z" fill="#161614"></path></g></svg></div><div class="notion-external-description"><div class="notion-external-title">更新后始终停留在官方界面，不能切换</div></div></a><div class="notion-text notion-block-1e3073b4a4c6809c854ad38967402ac5">安装好transmission后，可以将其加入peerbanhelper中</div></div></details></div></details><details class="notion-toggle notion-block-222073b4a4c6805e86fcd76755a539b1"><summary><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-222073b4a4c6805e86fcd76755a539b1" data-id="222073b4a4c6805e86fcd76755a539b1"><span><div id="222073b4a4c6805e86fcd76755a539b1" class="notion-header-anchor"></div><span class="notion-h-title">17 添加新功能：telegram签到</span></span></h4></summary><div><div class="notion-text notion-block-222073b4a4c68035b6f4d6a216bf12de">使用开源项目<a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://github.com/amchii/tg-signer">tg-signer</a></div><h4 class="notion-h notion-h3 notion-block-222073b4a4c68039b9bced5176a94612" data-id="222073b4a4c68039b9bced5176a94612"><span><div id="222073b4a4c68039b9bced5176a94612" class="notion-header-anchor"></div><a class="notion-hash-link" href="#222073b4a4c68039b9bced5176a94612" title="使用 nohup"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>使用 </b><code class="notion-inline-code"><b>nohup</b></code></span></span></h4><h4 class="notion-h notion-h3 notion-block-222073b4a4c6809d91d0d31ef1a0e534" data-id="222073b4a4c6809d91d0d31ef1a0e534"><span><div id="222073b4a4c6809d91d0d31ef1a0e534" class="notion-header-anchor"></div><a class="notion-hash-link" href="#222073b4a4c6809d91d0d31ef1a0e534" title="说明："><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>说明：</b></span></span></h4><ul class="notion-list notion-list-disc notion-block-222073b4a4c680aba921d7062786d355"><li><code class="notion-inline-code"><b>nohup</b></code>：忽略 <code class="notion-inline-code"><b>SIGHUP</b></code> 信号（终端关闭时不会终止进程）。</li></ul><ul class="notion-list notion-list-disc notion-block-222073b4a4c6807694bccb5e259e17c7"><li><code class="notion-inline-code"><b>&gt; output.log</b></code>：将标准输出重定向到 <code class="notion-inline-code"><b>output.log</b></code> 文件。</li></ul><ul class="notion-list notion-list-disc notion-block-222073b4a4c680eaac81daf166a625eb"><li><code class="notion-inline-code"><b>2&gt;&amp;1</b></code>：将标准错误（stderr）也重定向到标准输出（即同一个日志文件）。</li></ul><ul class="notion-list notion-list-disc notion-block-222073b4a4c68061bd76d2ce20a4b214"><li><code class="notion-inline-code"><b>&amp;</b></code>：让命令在后台运行。</li></ul><h4 class="notion-h notion-h3 notion-block-222073b4a4c68067aa1fc273f4c54007" data-id="222073b4a4c68067aa1fc273f4c54007"><span><div id="222073b4a4c68067aa1fc273f4c54007" class="notion-header-anchor"></div><a class="notion-hash-link" href="#222073b4a4c68067aa1fc273f4c54007" title="查看日志："><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>查看日志：</b></span></span></h4><h4 class="notion-h notion-h3 notion-block-222073b4a4c680c1a63ed4a63f033e8f" data-id="222073b4a4c680c1a63ed4a63f033e8f"><span><div id="222073b4a4c680c1a63ed4a63f033e8f" class="notion-header-anchor"></div><a class="notion-hash-link" href="#222073b4a4c680c1a63ed4a63f033e8f" title="终止进程："><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>终止进程：</b></span></span></h4><ol start="1" class="notion-list notion-list-numbered notion-block-222073b4a4c680b5a638f064592f530b"><li>先找到进程 ID：</li><ol class="notion-list notion-list-numbered notion-block-222073b4a4c680b5a638f064592f530b"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-222073b4a4c680c093f4c8dc5fd8f09e"><li>然后杀掉进程：</li><ol class="notion-list notion-list-numbered notion-block-222073b4a4c680c093f4c8dc5fd8f09e"></ol></ol></div></details><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-1d3073b4a4c6804da608e7f401e1b8f5" data-id="1d3073b4a4c6804da608e7f401e1b8f5"><span><div id="1d3073b4a4c6804da608e7f401e1b8f5" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1d3073b4a4c6804da608e7f401e1b8f5" title="🤗 总结"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">🤗 总结</span></span></h2><div class="notion-text notion-block-1d3073b4a4c6800fba95f6faea5a37b0">搭建前自己其实并没有一个整体的规划，想到什么需求就一点点往上加，一步步走下来，不知不觉就折腾了一堆东西。</div><div class="notion-text notion-block-1dc073b4a4c6809a8a9dc7b87006698f">虽然连个RAID阵列都没有（后续再加吧），也远不如购买一个成品NAS跑黑群晖来的方便快捷，但DIY的乐趣在于，高度的掌控感、可扩展性与自由度，以及看着老旧机器焕发新生的成就感。</div><div class="notion-text notion-block-1dc073b4a4c6801a8ce0c784177a7f6b">整体操作下来其实并没有难度，只是步骤很多很繁琐。但只要不接触内核、驱动，这些都是小问题。</div><div class="notion-text notion-block-1dc073b4a4c680f4875cdbd599d0ed21">如果以后有新功能添加，再来续更。</div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-1d3073b4a4c680778768f0915d4fa8f4" data-id="1d3073b4a4c680778768f0915d4fa8f4"><span><div id="1d3073b4a4c680778768f0915d4fa8f4" class="notion-header-anchor"></div><a class="notion-hash-link" href="#1d3073b4a4c680778768f0915d4fa8f4" title="📎 参考文章"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📎 参考文章</span></span></h2><ul class="notion-list notion-list-disc notion-block-1d5073b4a4c680efb87fcfc998bf38e6"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.bilibili.com/video//BV1Bs4y1X7mH">Ubuntu Server 22.04 LTS 的安装步骤指南</a></li></ul><ul class="notion-list notion-list-disc notion-block-1d5073b4a4c680b3bca5fd63f03f84af"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.bilibili.com/video/BV1jiUrYgEMY/">IPv6详解，访问家庭内网设备，保护网络安全，IPv6发展得怎么样了？IPv6发展了这么多年，为什么依旧难以普及？</a></li></ul><ul class="notion-list notion-list-disc notion-block-1d3073b4a4c68072b126c4545e79cbab"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.bilibili.com/video/BV1VyyUYVEMq">什么是BT协议？BT入门保姆级教程，webUI、屏蔽吸血客户端PCDN详解</a></li></ul><ul class="notion-list notion-list-disc notion-block-1e0073b4a4c68090aec2c406bcf143fa"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://hostloc.com/thread-564532-1-1.html">qbittorrent的webUI在开启CSRF保护后本机caddy反代失败的问题</a></li></ul><ul class="notion-list notion-list-disc notion-block-1e0073b4a4c680398fc7dde4e829f0f3"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.cnblogs.com/dabai0030/p/15976726.html">qBittorrent 无法访问，提示 Unauthorized （全网最全）</a></li></ul><div class="notion-blank notion-block-1d3073b4a4c68013bfa9d366aab10328"> </div><div class="notion-blank notion-block-1d3073b4a4c6809d9fbed63676350a43"> </div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[document.write()、textContent、innerText 与innerHTML的区别]]></title>
            <link>https://lawyerjiang.top/article/key/js/1</link>
            <guid>https://lawyerjiang.top/article/key/js/1</guid>
            <pubDate>Wed, 09 Oct 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[几个易混的常见方法和属性,在此记录做下区别]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-11a073b4a4c6808bb320e7e651d4a023"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-11a073b4a4c6810da6a7ee3dd27995b6" data-id="11a073b4a4c6810da6a7ee3dd27995b6"><span><div id="11a073b4a4c6810da6a7ee3dd27995b6" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c6810da6a7ee3dd27995b6" title="📝 主旨内容"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📝 主旨内容</span></span></h2><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-11a073b4a4c68170b778c3d617eab76b" data-id="11a073b4a4c68170b778c3d617eab76b"><span><div id="11a073b4a4c68170b778c3d617eab76b" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c68170b778c3d617eab76b" title="document.write()与innerHTML的区别"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">document.write()与innerHTML的区别</span></span></h3><blockquote class="notion-quote notion-block-11a073b4a4c68135a19acfe498a7616d"><div>document.write()是document对象中的方法，在页面中插入的位置为脚本元素script的位置，可以多次调用实现拼接。文档解析完再调用会覆盖原有内容，否则不会。</div></blockquote><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-11a073b4a4c6808c95a7e5b9d615c09d" data-id="11a073b4a4c6808c95a7e5b9d615c09d"><span><div id="11a073b4a4c6808c95a7e5b9d615c09d" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c6808c95a7e5b9d615c09d" title="document.write()"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">document.write()</span></span></h4><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c680b88a41ef7782106b74"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:320px"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2F1b4368d3-6947-4efa-adfb-b00746a59f40%2Fce71767e-f55e-4d43-9d7a-e38beb9012dc.png?table=block&amp;id=11a073b4-a4c6-80b8-8a41-ef7782106b74&amp;t=11a073b4-a4c6-80b8-8a41-ef7782106b74&amp;width=586.8613138686131&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-11a073b4a4c680e1ae25ca03c37c4c55">我们先看这段代码</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c6801bb458dc828058afa1"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:708px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2F6a09a739-daa7-451b-b249-4537b1493596%2F756e412a-0b36-4e4d-b2f5-99bf013b13fa.png?table=block&amp;id=11a073b4-a4c6-801b-b458-dc828058afa1&amp;t=11a073b4-a4c6-801b-b458-dc828058afa1&amp;width=708&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-11a073b4a4c680f78f71ee21cdedc765"><b>解析：</b><div class="notion-text-children"><div class="notion-text notion-block-11a073b4a4c6804b94bec16cb2e09187">上面这段代码的效果是，利用window.onload方法在页面加载完成后再调用document.write()方法。因此页面原本的内容会被覆盖掉。</div></div></div><div class="notion-blank notion-block-11a073b4a4c680fb8c30e4cc8b2eded0"> </div><div class="notion-text notion-block-11a073b4a4c68074b0e5e7be900dde01">再看这段代码</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c6806580f3e975f867745c"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:81.22370936902486px"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2Fbda091ce-0d53-4247-a6b1-a7e195d9a022%2Fa74c7221-a962-4dc4-989b-6fd85be9d524.png?table=block&amp;id=11a073b4-a4c6-8065-80f3-e975f867745c&amp;t=11a073b4-a4c6-8065-80f3-e975f867745c&amp;width=708&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-11a073b4a4c68096aa5cc06da4809b55"><b>解析：</b><div class="notion-text-children"><div class="notion-text notion-block-11a073b4a4c6803cb212d71dbde8430e">在匿名函数结尾多加了一堆括号()将匿名函数变成了立即执行函数</div><div class="notion-text notion-block-11a073b4a4c6803ca083f36739c9b029">此时匿名函数会立即执行，不会等待页面加载完成。</div><div class="notion-text notion-block-11a073b4a4c680e7acd6f1f63bb637fd">这意味着 <code class="notion-inline-code">document.write(&quot;做大做强，再创辉煌！&quot;)</code> 会在当前上下文中立即执行，而不是等待页面加载完成。<code class="notion-inline-code">window.onload</code> 会变成无效的事件绑定被设置为 <code class="notion-inline-code">undefined</code>，因为函数已经执行完毕，返回值为 <code class="notion-inline-code">undefined</code>。</div><div class="notion-text notion-block-11a073b4a4c680908d7ad55a2fb74b45">由于script标签在body末尾，因此<code class="notion-inline-code">document.write()</code> 中的内容被插入在页面末尾。</div></div></div><div class="notion-blank notion-block-11a073b4a4c680728a92e8200eba4509"> </div><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-11a073b4a4c680a8af39ec97d57e4d3b" data-id="11a073b4a4c680a8af39ec97d57e4d3b"><span><div id="11a073b4a4c680a8af39ec97d57e4d3b" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c680a8af39ec97d57e4d3b" title="innerHTML"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">innerHTML</span></span></h4><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c68003860ad66c8b8c27ba"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2Fa3230dc1-25c8-4e67-8522-8127f67f3732%2Fimage.png?table=block&amp;id=11a073b4-a4c6-8003-860a-d66c8b8c27ba&amp;t=11a073b4-a4c6-8003-860a-d66c8b8c27ba&amp;width=707.984375&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-11a073b4a4c68019894cedf4a842c502">针对特定元素内容进行更改，不会覆盖其他元素的内容</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c6806ab759df45906e37f3"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:623.9375px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2Fbb7247e3-3656-4c89-8001-59ccf4e18be5%2Fimage.png?table=block&amp;id=11a073b4-a4c6-806a-b759-df45906e37f3&amp;t=11a073b4-a4c6-806a-b759-df45906e37f3&amp;width=623.9375&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c680249f1df874ee9168cd"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:708px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2Fabf87e26-651b-4ac1-b841-0c395754894d%2F0fa4197c-4999-40ce-8dfd-3e9ecdfb88bc.png?table=block&amp;id=11a073b4-a4c6-8024-9f1d-f874ee9168cd&amp;t=11a073b4-a4c6-8024-9f1d-f874ee9168cd&amp;width=708&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c680d59512c3f2ed3a2463"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:708px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2Fc4297a8b-453f-4687-adb3-c814fc07c559%2F8b14c9de-fd92-4fd6-a248-396b2ffcd34a.png?table=block&amp;id=11a073b4-a4c6-80d5-9512-c3f2ed3a2463&amp;t=11a073b4-a4c6-80d5-9512-c3f2ed3a2463&amp;width=708&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-blank notion-block-11a073b4a4c68000ac10c3924aedf815"> </div><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-11a073b4a4c68097ad1cfcd94c6a8e87" data-id="11a073b4a4c68097ad1cfcd94c6a8e87"><span><div id="11a073b4a4c68097ad1cfcd94c6a8e87" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c68097ad1cfcd94c6a8e87" title="总结："><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>总结：</b></span></span></h4><table class="notion-simple-table notion-block-11a073b4a4c68050b37dedf9b827a515"><tbody><tr class="notion-simple-table-row notion-block-dc3b7069bb814266a70feaea01e20ca8"><td class="" style="width:120px"><div class="notion-simple-table-cell">ㅤ</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">document.write()</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">innerHTML</div></td></tr><tr class="notion-simple-table-row notion-block-24649afc40f94d06af08d9b21bd8f17f"><td class="" style="width:120px"><div class="notion-simple-table-cell">类型</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">document对象中的方法</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">存在于Element对象中的属性</div></td></tr><tr class="notion-simple-table-row notion-block-43844ed2bf5c49dd81c048d21a161828"><td class="" style="width:120px"><div class="notion-simple-table-cell">插入位置</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">脚本元素script的位置</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">指定的元素内</div></td></tr><tr class="notion-simple-table-row notion-block-11a073b4a4c68042b86dfa188469dfab"><td class="" style="width:120px"><div class="notion-simple-table-cell">拼接方法</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">多次调用</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">利用+=</div></td></tr><tr class="notion-simple-table-row notion-block-11a073b4a4c6806ca491e9d646b89693"><td class="" style="width:120px"><div class="notion-simple-table-cell">覆盖问题</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">文档解析完再调用会覆盖，否则不会</div></td><td class="" style="width:120px"><div class="notion-simple-table-cell">直接调用会覆盖原内容</div></td></tr></tbody></table><div class="notion-blank notion-block-11a073b4a4c680f6956beac5b373a464"> </div><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-11a073b4a4c68138b753e3b0f20264dc" data-id="11a073b4a4c68138b753e3b0f20264dc"><span><div id="11a073b4a4c68138b753e3b0f20264dc" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c68138b753e3b0f20264dc" title="textContent、innerText 与innerHTML的区别"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>textContent、innerText 与innerHTML的区别</b></span></span></h3><ul class="notion-list notion-list-disc notion-block-11a073b4a4c680af9d25e5712a378126"><li>textContent 会获取除标签外的所有内容</li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c6800e96dcc3cebecaceff"><li>innerText 会受到 css 的影响，仅会获取实际可以看到的内容，隐藏内容会被忽略</li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c68054abf0e3fe9dd91af5"><li>innerHTML 会获取所有内容，包括标签</li></ul><div class="notion-text notion-block-11a073b4a4c68029b40fe1a314ce485d">直接用一段代码来展示</div><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c680a3a19eda3488ed3ded"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:497.984375px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2F7f12e0da-37fa-46b5-a1be-5bceeae7cf15%2Fimage.png?table=block&amp;id=11a073b4-a4c6-80a3-a19e-da3488ed3ded&amp;t=11a073b4-a4c6-80a3-a19e-da3488ed3ded&amp;width=497.984375&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-text notion-block-11a073b4a4c680c485caf51690d4bb6b">从结果里我们可以清晰的看出 textContent、innerText 和 innerHTML 的区别。</div><div class="notion-blank notion-block-11a073b4a4c68077ba4cf41e5d9d0bc0"> </div><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-11a073b4a4c680a68311e87664b60f1e" data-id="11a073b4a4c680a68311e87664b60f1e"><span><div id="11a073b4a4c680a68311e87664b60f1e" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c680a68311e87664b60f1e" title="总结差异"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title"><b>总结差异</b></span></span></h4><ol start="1" class="notion-list notion-list-numbered notion-block-11a073b4a4c680fd9185ecd3f5af4979"><li>行为区别</li><ol class="notion-list notion-list-numbered notion-block-11a073b4a4c680fd9185ecd3f5af4979"><ul class="notion-list notion-list-disc notion-block-11a073b4a4c6803fa034d5b0196707b1"><li><code class="notion-inline-code">textContent</code> 和 <code class="notion-inline-code">innerText</code> 获取的是元素内容；<code class="notion-inline-code">innerHTML</code> 获取的是元素的 html 文本</li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c6800a8288d99b37f2c12e"><li><code class="notion-inline-code">textContent</code> 会获取所有元素的内容，包括 <code class="notion-inline-code">script</code> 和 <code class="notion-inline-code">style</code> 元素；<code class="notion-inline-code">innerText</code> 不会</li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c6800389a4d2c8cb200a78"><li><code class="notion-inline-code">innerText</code> 会受到 css 影响，不会返回隐藏内容；<code class="notion-inline-code">textContent</code> 不会</li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c6806c8e80fc9c26b9f6d2"><li>使用 <code class="notion-inline-code">innerHTML</code> 设置内容，会将内容解析为 html，所以性能相对较差，还可能存在 XSS 攻击；而因为文本不会被解析，则 <code class="notion-inline-code">textContent</code> 和 <code class="notion-inline-code">innerText</code> 不会有这个问题，性能更好。</li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c6803fb0f3ccad3bc7f639"><li>因为 <code class="notion-inline-code">innerText</code> 受样式影响，会触发重排，而 <code class="notion-inline-code">textContent</code> 不会。</li></ul></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-11a073b4a4c6806c8c2aca4e8ee7fe81"><li>归属区别</li><ol class="notion-list notion-list-numbered notion-block-11a073b4a4c6806c8c2aca4e8ee7fe81"><ul class="notion-list notion-list-disc notion-block-11a073b4a4c680a4a49ce0d605133d71"><li><code class="notion-inline-code">textContent</code> 是 <code class="notion-inline-code">Node</code> 对象的属性</li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c680109772e9ef24c0250c"><li><code class="notion-inline-code">innerText</code> 是 <code class="notion-inline-code">Element</code> 对象的属性</li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c680d7b442ded65bae0e06"><li><code class="notion-inline-code">innerHTML</code> 是 <code class="notion-inline-code">HTMLElement</code> 对象的属性</li></ul><div class="notion-blank notion-block-11a073b4a4c680fbb649dd412f663d67"> </div></ol></ol><h4 class="notion-h notion-h3 notion-h-indent-2 notion-block-11a073b4a4c68089a03bfe7a7206290d" data-id="11a073b4a4c68089a03bfe7a7206290d"><span><div id="11a073b4a4c68089a03bfe7a7206290d" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c68089a03bfe7a7206290d" title="用法上的区别"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">用法上的区别</span></span></h4><ul class="notion-list notion-list-disc notion-block-11a073b4a4c6802c9013d830fd6278e3"><li><b>textContent和innerText只能设置纯文本，innerHTML可以进行标签的生成</b></li></ul><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-11a073b4a4c6800ea722db2cac8e1e1c"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:511px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2Fcaa4ed8a-e10e-48f2-bd00-3812baa63706%2Fimage.png?table=block&amp;id=11a073b4-a4c6-800e-a722-db2cac8e1e1c&amp;t=11a073b4-a4c6-800e-a722-db2cac8e1e1c&amp;width=511&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure><div class="notion-blank notion-block-11a073b4a4c680718b32cc8d9d0c70dc"> </div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-11a073b4a4c681a083cae25e77e2516e" data-id="11a073b4a4c681a083cae25e77e2516e"><span><div id="11a073b4a4c681a083cae25e77e2516e" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c681a083cae25e77e2516e" title="🤗 总结归纳"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">🤗 总结归纳</span></span></h2><div class="notion-text notion-block-11a073b4a4c68116aa54e5fc3c1b6545">时间紧任务重，初学最重要的是掌握主干，像我这样钻研细节实属愚蠢。</div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-11a073b4a4c6811a8065c74d65f8aadf" data-id="11a073b4a4c6811a8065c74d65f8aadf"><span><div id="11a073b4a4c6811a8065c74d65f8aadf" class="notion-header-anchor"></div><a class="notion-hash-link" href="#11a073b4a4c6811a8065c74d65f8aadf" title="📎 参考文章"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📎 参考文章</span></span></h2><ul class="notion-list notion-list-disc notion-block-11a073b4a4c6819da992d2bd05a9e8d0"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://blog.csdn.net/sunyctf/article/details/124873855">https://blog.csdn.net/sunyctf/article/details/124873855</a></li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c681fb89fcf86e4bb81ddb"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.iszy.cc/posts/diff-innerhtml-innertext-textcontent/">https://www.iszy.cc/posts/diff-innerhtml-innertext-textcontent/</a></li></ul><ul class="notion-list notion-list-disc notion-block-11a073b4a4c680a5b0f2cd12a21ecd8a"><li><a target="_blank" rel="noopener noreferrer" class="notion-link" href="https://www.bilibili.com/video/BV1s4411176S/?spm_id_from=333.337.search-card.all.click&amp;vd_source=8ad3c3948eb6ed01e72cb5dfa3a3218f">https://www.bilibili.com/video/BV1s4411176S/?spm_id_from=333.337.search-card.all.click&amp;vd_source=8ad3c3948eb6ed01e72cb5dfa3a3218f</a></li></ul></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[起点]]></title>
            <link>https://lawyerjiang.top/article/life/1</link>
            <guid>https://lawyerjiang.top/article/life/1</guid>
            <pubDate>Sat, 28 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[路在脚下]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-10f073b4a4c680afa809d08f13c6188b"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><div class="notion-text notion-block-10f073b4a4c6807b83dcdd8450068fe5">即将迈入法律行业，再看张明楷老师的这段话，感慨万千：<div class="notion-text-children"><div class="notion-text notion-block-10f073b4a4c6802ab234c7c2dbf1fd79"><span class="notion-default"><b>法学是典型的先苦后甜、胜者通吃的长线专业。你们必须经受各种痛苦的经历，无法承受的人趁早出局。入学第一天你们就应该知道，这个专业要背最厚的书，参加最难的考试，忍受最低的一次就业率，更重要的是，必须在精神上脱胎换骨。法学是成年人的工作，如果不快点毁掉你们的童年，你们怎么真正成熟！法学是统治者的事业，如果不毁掉你们的平民心态，怎么能进入领导者的行列！ 法学是研究人性恶的科学，如果不深刻的直面邪恶，你们又怎么能彻底的明白正义！</b></span></div></div></div><div class="notion-text notion-block-10f073b4a4c680f898c1fa357a0d3de9">自勉。</div><div class="notion-text notion-block-10f073b4a4c680378c14dd4eebec5ba3">我一定，也必将成为一名优秀的知识产权律师！
衮衮诸君，且待我们日后相见！</div></main></div>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[解引用“指向空间已被释放的指针”，会得到怎样的值？]]></title>
            <link>https://lawyerjiang.top/article/key/c/5</link>
            <guid>https://lawyerjiang.top/article/key/c/5</guid>
            <pubDate>Sat, 07 Sep 2024 00:00:00 GMT</pubDate>
            <description><![CDATA[变量未销毁时，只有自己能够修改，但是销毁之后，计算机也有了修改的权力]]></description>
            <content:encoded><![CDATA[<div id="notion-article" class="mx-auto overflow-hidden "><main class="notion light-mode notion-page notion-block-29af864a52974a4690d981d5561a4be7"><div class="notion-viewport"></div><div class="notion-collection-page-properties"></div><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-fd18d1eec569442f9bcdeafd0d6c3fcc" data-id="fd18d1eec569442f9bcdeafd0d6c3fcc"><span><div id="fd18d1eec569442f9bcdeafd0d6c3fcc" class="notion-header-anchor"></div><a class="notion-hash-link" href="#fd18d1eec569442f9bcdeafd0d6c3fcc" title="📝 主旨内容"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">📝 主旨内容</span></span></h2><h2 class="notion-h notion-h1 notion-h-indent-0 notion-block-4a5ea6518c7e4fd39cc9c9657674e361" data-id="4a5ea6518c7e4fd39cc9c9657674e361"><span><div id="4a5ea6518c7e4fd39cc9c9657674e361" class="notion-header-anchor"></div><a class="notion-hash-link" href="#4a5ea6518c7e4fd39cc9c9657674e361" title="1.什么是野指针"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">1.什么是野指针</span></span></h2><blockquote class="notion-quote notion-block-926e7617c7654c72b76fcabd1e258dc9"><div>概念：野指针就是指针指向的位置是不可知的（随机的、不正确的、没有明确规划的）</div></blockquote><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-fae06b11ec894206b73c56531ec59eb0" data-id="fae06b11ec894206b73c56531ec59eb0"><span><div id="fae06b11ec894206b73c56531ec59eb0" class="notion-header-anchor"></div><a class="notion-hash-link" href="#fae06b11ec894206b73c56531ec59eb0" title="野指针的成因"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">野指针的成因</span></span></h3><ol start="1" class="notion-list notion-list-numbered notion-block-97508a68b0574649a92bc7e9da65ff1f"><li>指针未初始化</li><ol class="notion-list notion-list-numbered notion-block-97508a68b0574649a92bc7e9da65ff1f"></ol></ol><ol start="2" class="notion-list notion-list-numbered notion-block-413e1173dbdd4d98a651cf91eaafe9a3"><li>指针越界访问</li><ol class="notion-list notion-list-numbered notion-block-413e1173dbdd4d98a651cf91eaafe9a3"></ol></ol><ol start="3" class="notion-list notion-list-numbered notion-block-7442b92163a043aa9ebf29b329b96bc1"><li>指针指向的空间释放</li><ol class="notion-list notion-list-numbered notion-block-7442b92163a043aa9ebf29b329b96bc1"></ol></ol><h3 class="notion-h notion-h2 notion-h-indent-1 notion-block-2709f07c842f4bad94bb8c7791225635" data-id="2709f07c842f4bad94bb8c7791225635"><span><div id="2709f07c842f4bad94bb8c7791225635" class="notion-header-anchor"></div><a class="notion-hash-link" href="#2709f07c842f4bad94bb8c7791225635" title="2.对野指针，解引用“已被释放的指向空间”，会得到怎样的值？"><svg viewBox="0 0 16 16" width="16" height="16"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg></a><span class="notion-h-title">2.对野指针，解引用“已被释放的指向空间”，会得到怎样的值？</span></span></h3><blockquote class="notion-quote notion-block-2d1ed506ed384eecbb4be4e7e806310c"><div>我们看下野指针成因的最后一段示例代码</div></blockquote><div class="notion-callout notion-gray_background_co notion-block-7a0eb255e6844daba4dcd5c1fdf299d5"><div class="notion-callout-text"><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-019f3d5a6d7b456e828cf53677c8a6b4"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:100%;max-width:100%;flex-direction:column;height:100%"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2F4d3e4144-33f9-4f18-89d1-2609941b43c7%2Fimage.png?table=block&amp;id=019f3d5a-6d7b-456e-828c-f53677c8a6b4&amp;t=019f3d5a-6d7b-456e-828c-f53677c8a6b4&amp;width=561&amp;cache=v2" alt="但我们会发现，哪怕a已被释放，当printf(”%d\n”, *p)的时候，输出居然仍是10。" loading="lazy" decoding="async"/><figcaption class="notion-asset-caption">但我们会发现，哪怕a已被释放，当printf(”%d\n”, *p)的时候，输出居然仍是10。</figcaption></div></figure><figure class="notion-asset-wrapper notion-asset-wrapper-image notion-block-c13a5fd274564c2e88e7eb0edbc35449"><div style="position:relative;display:flex;justify-content:center;align-self:center;width:395px;max-width:100%;flex-direction:column"><img style="object-fit:cover" src="https://www.notion.so/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F2a956162-2cbc-4187-b3d9-a0b2f9d23af3%2F30709860-23ad-432d-9a17-d513c6122f65%2Fimage.png?table=block&amp;id=c13a5fd2-7456-4c2e-88e7-eb0edbc35449&amp;t=c13a5fd2-7456-4c2e-88e7-eb0edbc35449&amp;width=395&amp;cache=v2" alt="notion image" loading="lazy" decoding="async"/></div></figure></div></div><ul class="notion-list notion-list-disc notion-block-1a46bfea8a214ffe9f377f73aeaf6ae7"><li>我们可以这样理解：
<b>变量未销毁时，只有自己能够修改，但是销毁之后，计算机也有了修改的权力</b>，每一个语句过后，计算机都有可能修改那个位置的值，导致值发生变化。因而当野指针仍沿着原地址访问时，该值是不可预料的。</li></ul><blockquote class="notion-quote notion-block-25419b67aeaf478d967c9ca552a8ba31"><div>但以上我们只解释了为什么野指针指向的值会发生改变，但改变的值会是多少？这个问题在我学完函数栈帧后会进一步来进行解答。</div></blockquote></main></div>]]></content:encoded>
        </item>
    </channel>
</rss>