This commit is contained in:
spiritLHLS
2024-01-15 13:17:14 +00:00
parent 4d8dfe9812
commit e66057e4a4
314 changed files with 2493 additions and 1711 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
import{_ as s,v as a,b as p,R as o}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1704976888000}'),e={name:"case/case5.md"},n=o('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/spiritLHLS/addswap" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addswap</a></p><h1 id="addswap" tabindex="-1">addswap <a class="header-anchor" href="#addswap" aria-label="Permalink to &quot;addswap&quot;"></a></h1><p>为openvz、kvm虚拟化的linux服务器增加swap分区(虚拟内存)</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/addswap/main/addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span></span></code></pre></div><p>已增加openvz架构重启swap自动添加的</p><p>openvz这个添加=掩耳盗铃实际受到虚拟化限制应该是无法添加的只能由虚拟化的宿主机控制同理LXC虚拟化的也只能由宿主机控制都无法自主添加虚拟内存SWAP</p><p>因此,该项目不再更新,除非另有需求</p><p><strong>单位换算:输入 1024 产生 1G SWAP内存</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h1><p>kvm分区原版脚本源自 <a href="https://www.moerats.com/" target="_blank" rel="noreferrer">https://www.moerats.com/</a></p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://www.moerats.com/usr/shell/swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span></span></code></pre></div><p>openVZ分区原版脚本源自</p><p><a href="http://linux-problem-solver.blogspot.com/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permitted-error.html" target="_blank" rel="noreferrer">http://linux-problem-solver.blogspot.com/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permitted-error.html</a></p><p>感谢 <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> 提供优化建议</p>',15),t=[n];function l(r,c,C,i,h,d){return a(),p("div",null,t)}const A=s(e,[["render",l]]);export{m as __pageData,A as default};
import{_ as s,v as a,b as p,R as o}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1705324601000}'),e={name:"case/case5.md"},n=o('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/spiritLHLS/addswap" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addswap</a></p><h1 id="addswap" tabindex="-1">addswap <a class="header-anchor" href="#addswap" aria-label="Permalink to &quot;addswap&quot;"></a></h1><p>为openvz、kvm虚拟化的linux服务器增加swap分区(虚拟内存)</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/addswap/main/addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span></span></code></pre></div><p>已增加openvz架构重启swap自动添加的</p><p>openvz这个添加=掩耳盗铃实际受到虚拟化限制应该是无法添加的只能由虚拟化的宿主机控制同理LXC虚拟化的也只能由宿主机控制都无法自主添加虚拟内存SWAP</p><p>因此,该项目不再更新,除非另有需求</p><p><strong>单位换算:输入 1024 产生 1G SWAP内存</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h1><p>kvm分区原版脚本源自 <a href="https://www.moerats.com/" target="_blank" rel="noreferrer">https://www.moerats.com/</a></p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://www.moerats.com/usr/shell/swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span></span></code></pre></div><p>openVZ分区原版脚本源自</p><p><a href="http://linux-problem-solver.blogspot.com/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permitted-error.html" target="_blank" rel="noreferrer">http://linux-problem-solver.blogspot.com/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permitted-error.html</a></p><p>感谢 <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> 提供优化建议</p>',15),t=[n];function l(r,c,C,i,h,d){return a(),p("div",null,t)}const A=s(e,[["render",l]]);export{m as __pageData,A as default};

View File

@@ -1 +1 @@
import{_ as s,v as a,b as p,R as o}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1704976888000}'),e={name:"case/case5.md"},n=o('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/spiritLHLS/addswap" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addswap</a></p><h1 id="addswap" tabindex="-1">addswap <a class="header-anchor" href="#addswap" aria-label="Permalink to &quot;addswap&quot;"></a></h1><p>为openvz、kvm虚拟化的linux服务器增加swap分区(虚拟内存)</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/addswap/main/addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span></span></code></pre></div><p>已增加openvz架构重启swap自动添加的</p><p>openvz这个添加=掩耳盗铃实际受到虚拟化限制应该是无法添加的只能由虚拟化的宿主机控制同理LXC虚拟化的也只能由宿主机控制都无法自主添加虚拟内存SWAP</p><p>因此,该项目不再更新,除非另有需求</p><p><strong>单位换算:输入 1024 产生 1G SWAP内存</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h1><p>kvm分区原版脚本源自 <a href="https://www.moerats.com/" target="_blank" rel="noreferrer">https://www.moerats.com/</a></p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://www.moerats.com/usr/shell/swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span></span></code></pre></div><p>openVZ分区原版脚本源自</p><p><a href="http://linux-problem-solver.blogspot.com/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permitted-error.html" target="_blank" rel="noreferrer">http://linux-problem-solver.blogspot.com/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permitted-error.html</a></p><p>感谢 <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> 提供优化建议</p>',15),t=[n];function l(r,c,C,i,h,d){return a(),p("div",null,t)}const A=s(e,[["render",l]]);export{m as __pageData,A as default};
import{_ as s,v as a,b as p,R as o}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case5.md","filePath":"case/case5.md","lastUpdated":1705324601000}'),e={name:"case/case5.md"},n=o('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/spiritLHLS/addswap" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addswap</a></p><h1 id="addswap" tabindex="-1">addswap <a class="header-anchor" href="#addswap" aria-label="Permalink to &quot;addswap&quot;"></a></h1><p>为openvz、kvm虚拟化的linux服务器增加swap分区(虚拟内存)</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/addswap/main/addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addswap.sh</span></span></code></pre></div><p>已增加openvz架构重启swap自动添加的</p><p>openvz这个添加=掩耳盗铃实际受到虚拟化限制应该是无法添加的只能由虚拟化的宿主机控制同理LXC虚拟化的也只能由宿主机控制都无法自主添加虚拟内存SWAP</p><p>因此,该项目不再更新,除非另有需求</p><p><strong>单位换算:输入 1024 产生 1G SWAP内存</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h1><p>kvm分区原版脚本源自 <a href="https://www.moerats.com/" target="_blank" rel="noreferrer">https://www.moerats.com/</a></p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://www.moerats.com/usr/shell/swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span></span></code></pre></div><p>openVZ分区原版脚本源自</p><p><a href="http://linux-problem-solver.blogspot.com/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permitted-error.html" target="_blank" rel="noreferrer">http://linux-problem-solver.blogspot.com/2013/08/create-fake-swap-in-openvz-vps-if-you-get-swapon-failed-operation-not-permitted-error.html</a></p><p>感谢 <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> 提供优化建议</p>',15),t=[n];function l(r,c,C,i,h,d){return a(),p("div",null,t)}const A=s(e,[["render",l]]);export{m as __pageData,A as default};

View File

@@ -1 +1 @@
import{_ as a,v as s,b as e,R as r}from"./chunks/framework.70afa331.js";const y=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case6.md","filePath":"case/case6.md","lastUpdated":1704976888000}'),t={name:"case/case6.md"},p=r('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/spiritLHLS/addzram" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addzram</a></p><h1 id="addzram" tabindex="-1">addzram <a class="header-anchor" href="#addzram" aria-label="Permalink to &quot;addzram&quot;"></a></h1><p>为linux服务器启用zram(压缩内存)</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span></span></code></pre></div><p>类同前面的addswap项目</p><p>同样是给机器优化内存占用的东西只不过zram是压缩内存占用swap是附加虚拟内存增加内存空间二者都会占用CPU资源zram在CPU性能冗余的机器上使用更优</p><p>(理论上zram会比swap的性能占用低但未实际测试过)</p><p><strong>单位换算:输入 1024 产生 1G 的 zram 设备压缩内存zram 设备大小不能大于实际内存大小</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h1><p>感谢 <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> 提供优化建议</p>',11),n=[p];function o(l,c,d,i,h,m){return s(),e("div",null,n)}const A=a(t,[["render",o]]);export{y as __pageData,A as default};
import{_ as a,v as s,b as e,R as r}from"./chunks/framework.70afa331.js";const y=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case6.md","filePath":"case/case6.md","lastUpdated":1705324601000}'),t={name:"case/case6.md"},p=r('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/spiritLHLS/addzram" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addzram</a></p><h1 id="addzram" tabindex="-1">addzram <a class="header-anchor" href="#addzram" aria-label="Permalink to &quot;addzram&quot;"></a></h1><p>为linux服务器启用zram(压缩内存)</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span></span></code></pre></div><p>类同前面的addswap项目</p><p>同样是给机器优化内存占用的东西只不过zram是压缩内存占用swap是附加虚拟内存增加内存空间二者都会占用CPU资源zram在CPU性能冗余的机器上使用更优</p><p>(理论上zram会比swap的性能占用低但未实际测试过)</p><p><strong>单位换算:输入 1024 产生 1G 的 zram 设备压缩内存zram 设备大小不能大于实际内存大小</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h1><p>感谢 <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> 提供优化建议</p>',11),n=[p];function o(l,c,d,i,h,m){return s(),e("div",null,n)}const A=a(t,[["render",o]]);export{y as __pageData,A as default};

View File

@@ -1 +1 @@
import{_ as a,v as s,b as e,R as r}from"./chunks/framework.70afa331.js";const y=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case6.md","filePath":"case/case6.md","lastUpdated":1704976888000}'),t={name:"case/case6.md"},p=r('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/spiritLHLS/addzram" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addzram</a></p><h1 id="addzram" tabindex="-1">addzram <a class="header-anchor" href="#addzram" aria-label="Permalink to &quot;addzram&quot;"></a></h1><p>为linux服务器启用zram(压缩内存)</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span></span></code></pre></div><p>类同前面的addswap项目</p><p>同样是给机器优化内存占用的东西只不过zram是压缩内存占用swap是附加虚拟内存增加内存空间二者都会占用CPU资源zram在CPU性能冗余的机器上使用更优</p><p>(理论上zram会比swap的性能占用低但未实际测试过)</p><p><strong>单位换算:输入 1024 产生 1G 的 zram 设备压缩内存zram 设备大小不能大于实际内存大小</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h1><p>感谢 <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> 提供优化建议</p>',11),n=[p];function o(l,c,d,i,h,m){return s(),e("div",null,n)}const A=a(t,[["render",o]]);export{y as __pageData,A as default};
import{_ as a,v as s,b as e,R as r}from"./chunks/framework.70afa331.js";const y=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case6.md","filePath":"case/case6.md","lastUpdated":1705324601000}'),t={name:"case/case6.md"},p=r('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/spiritLHLS/addzram" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/addzram</a></p><h1 id="addzram" tabindex="-1">addzram <a class="header-anchor" href="#addzram" aria-label="Permalink to &quot;addzram&quot;"></a></h1><p>为linux服务器启用zram(压缩内存)</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/addzram/main/addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">addzram.sh</span></span></code></pre></div><p>类同前面的addswap项目</p><p>同样是给机器优化内存占用的东西只不过zram是压缩内存占用swap是附加虚拟内存增加内存空间二者都会占用CPU资源zram在CPU性能冗余的机器上使用更优</p><p>(理论上zram会比swap的性能占用低但未实际测试过)</p><p><strong>单位换算:输入 1024 产生 1G 的 zram 设备压缩内存zram 设备大小不能大于实际内存大小</strong></p><h1 id="致谢" tabindex="-1">致谢 <a class="header-anchor" href="#致谢" aria-label="Permalink to &quot;致谢&quot;"></a></h1><p>感谢 <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> 提供优化建议</p>',11),n=[p];function o(l,c,d,i,h,m){return s(),e("div",null,n)}const A=a(t,[["render",o]]);export{y as __pageData,A as default};

View File

@@ -1 +1 @@
import{_ as a,v as e,b as t,R as o}from"./chunks/framework.70afa331.js";const v=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1704976888000}'),n={name:"case/case7.md"},s=o('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/oneclickvirt/convoypanel-scripts" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/convoypanel-scripts</a></p><h1 id="convoypanel-scripts" tabindex="-1">convoypanel-scripts <a class="header-anchor" href="#convoypanel-scripts" aria-label="Permalink to &quot;convoypanel-scripts&quot;"></a></h1><h3 id="one-click-installation-of-convoy-panel" tabindex="-1">One-click installation of convoy panel <a class="header-anchor" href="#one-click-installation-of-convoy-panel" aria-label="Permalink to &quot;One-click installation of convoy panel&quot;"></a></h3><p>Prerequisites for installation:</p><ul><li>PVE is installed</li><li>System is debian 11</li><li>CPU at least 2 cores, hard disk at least 20G, memory at least 4G (memory covers swap)</li></ul><p><strong>I don&#39;t guarantee that this script is error-free, it&#39;s just for my own amusement.</strong></p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -L https://github.com/oneclickvirt/convoypanel-scripts/raw/main/installconvoy.sh -o installconvoy.sh &amp;&amp; chmod +x installconvoy.sh &amp;&amp; bash installconvoy.sh</span></span></code></pre></div><h3 id="thanks" tabindex="-1">Thanks <a class="header-anchor" href="#thanks" aria-label="Permalink to &quot;Thanks&quot;"></a></h3><p>Base on <a href="https://github.com/oneclickvirt/pve" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/pve</a></p><p>Base on <a href="https://docs.convoypanel.com/guide/deployment/#installation" target="_blank" rel="noreferrer">https://docs.convoypanel.com/guide/deployment/#installation</a></p><p>Base on <a href="https://github.com/ConvoyPanel/panel" target="_blank" rel="noreferrer">https://github.com/ConvoyPanel/panel</a></p>',12),l=[s];function i(r,c,p,h,d,m){return e(),t("div",null,l)}const y=a(n,[["render",i]]);export{v as __pageData,y as default};
import{_ as a,v as e,b as t,R as o}from"./chunks/framework.70afa331.js";const v=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1705324601000}'),n={name:"case/case7.md"},s=o('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/oneclickvirt/convoypanel-scripts" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/convoypanel-scripts</a></p><h1 id="convoypanel-scripts" tabindex="-1">convoypanel-scripts <a class="header-anchor" href="#convoypanel-scripts" aria-label="Permalink to &quot;convoypanel-scripts&quot;"></a></h1><h3 id="one-click-installation-of-convoy-panel" tabindex="-1">One-click installation of convoy panel <a class="header-anchor" href="#one-click-installation-of-convoy-panel" aria-label="Permalink to &quot;One-click installation of convoy panel&quot;"></a></h3><p>Prerequisites for installation:</p><ul><li>PVE is installed</li><li>System is debian 11</li><li>CPU at least 2 cores, hard disk at least 20G, memory at least 4G (memory covers swap)</li></ul><p><strong>I don&#39;t guarantee that this script is error-free, it&#39;s just for my own amusement.</strong></p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -L https://github.com/oneclickvirt/convoypanel-scripts/raw/main/installconvoy.sh -o installconvoy.sh &amp;&amp; chmod +x installconvoy.sh &amp;&amp; bash installconvoy.sh</span></span></code></pre></div><h3 id="thanks" tabindex="-1">Thanks <a class="header-anchor" href="#thanks" aria-label="Permalink to &quot;Thanks&quot;"></a></h3><p>Base on <a href="https://github.com/oneclickvirt/pve" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/pve</a></p><p>Base on <a href="https://docs.convoypanel.com/guide/deployment/#installation" target="_blank" rel="noreferrer">https://docs.convoypanel.com/guide/deployment/#installation</a></p><p>Base on <a href="https://github.com/ConvoyPanel/panel" target="_blank" rel="noreferrer">https://github.com/ConvoyPanel/panel</a></p>',12),l=[s];function i(r,c,p,h,d,m){return e(),t("div",null,l)}const y=a(n,[["render",i]]);export{v as __pageData,y as default};

View File

@@ -1 +1 @@
import{_ as a,v as e,b as t,R as o}from"./chunks/framework.70afa331.js";const v=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1704976888000}'),n={name:"case/case7.md"},s=o('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/oneclickvirt/convoypanel-scripts" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/convoypanel-scripts</a></p><h1 id="convoypanel-scripts" tabindex="-1">convoypanel-scripts <a class="header-anchor" href="#convoypanel-scripts" aria-label="Permalink to &quot;convoypanel-scripts&quot;"></a></h1><h3 id="one-click-installation-of-convoy-panel" tabindex="-1">One-click installation of convoy panel <a class="header-anchor" href="#one-click-installation-of-convoy-panel" aria-label="Permalink to &quot;One-click installation of convoy panel&quot;"></a></h3><p>Prerequisites for installation:</p><ul><li>PVE is installed</li><li>System is debian 11</li><li>CPU at least 2 cores, hard disk at least 20G, memory at least 4G (memory covers swap)</li></ul><p><strong>I don&#39;t guarantee that this script is error-free, it&#39;s just for my own amusement.</strong></p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -L https://github.com/oneclickvirt/convoypanel-scripts/raw/main/installconvoy.sh -o installconvoy.sh &amp;&amp; chmod +x installconvoy.sh &amp;&amp; bash installconvoy.sh</span></span></code></pre></div><h3 id="thanks" tabindex="-1">Thanks <a class="header-anchor" href="#thanks" aria-label="Permalink to &quot;Thanks&quot;"></a></h3><p>Base on <a href="https://github.com/oneclickvirt/pve" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/pve</a></p><p>Base on <a href="https://docs.convoypanel.com/guide/deployment/#installation" target="_blank" rel="noreferrer">https://docs.convoypanel.com/guide/deployment/#installation</a></p><p>Base on <a href="https://github.com/ConvoyPanel/panel" target="_blank" rel="noreferrer">https://github.com/ConvoyPanel/panel</a></p>',12),l=[s];function i(r,c,p,h,d,m){return e(),t("div",null,l)}const y=a(n,[["render",i]]);export{v as __pageData,y as default};
import{_ as a,v as e,b as t,R as o}from"./chunks/framework.70afa331.js";const v=JSON.parse('{"title":"仓库","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"case/case7.md","filePath":"case/case7.md","lastUpdated":1705324601000}'),n={name:"case/case7.md"},s=o('<h1 id="仓库" tabindex="-1">仓库 <a class="header-anchor" href="#仓库" aria-label="Permalink to &quot;仓库&quot;"></a></h1><p><a href="https://github.com/oneclickvirt/convoypanel-scripts" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/convoypanel-scripts</a></p><h1 id="convoypanel-scripts" tabindex="-1">convoypanel-scripts <a class="header-anchor" href="#convoypanel-scripts" aria-label="Permalink to &quot;convoypanel-scripts&quot;"></a></h1><h3 id="one-click-installation-of-convoy-panel" tabindex="-1">One-click installation of convoy panel <a class="header-anchor" href="#one-click-installation-of-convoy-panel" aria-label="Permalink to &quot;One-click installation of convoy panel&quot;"></a></h3><p>Prerequisites for installation:</p><ul><li>PVE is installed</li><li>System is debian 11</li><li>CPU at least 2 cores, hard disk at least 20G, memory at least 4G (memory covers swap)</li></ul><p><strong>I don&#39;t guarantee that this script is error-free, it&#39;s just for my own amusement.</strong></p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -L https://github.com/oneclickvirt/convoypanel-scripts/raw/main/installconvoy.sh -o installconvoy.sh &amp;&amp; chmod +x installconvoy.sh &amp;&amp; bash installconvoy.sh</span></span></code></pre></div><h3 id="thanks" tabindex="-1">Thanks <a class="header-anchor" href="#thanks" aria-label="Permalink to &quot;Thanks&quot;"></a></h3><p>Base on <a href="https://github.com/oneclickvirt/pve" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/pve</a></p><p>Base on <a href="https://docs.convoypanel.com/guide/deployment/#installation" target="_blank" rel="noreferrer">https://docs.convoypanel.com/guide/deployment/#installation</a></p><p>Base on <a href="https://github.com/ConvoyPanel/panel" target="_blank" rel="noreferrer">https://github.com/ConvoyPanel/panel</a></p>',12),l=[s];function i(r,c,p,h,d,m){return e(),t("div",null,l)}const y=a(n,[["render",i]]);export{v as __pageData,y as default};

View File

@@ -1 +1 @@
import{_ as e,v as t,b as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Linux相关项目","titleTemplate":"与Linux相关的一些一键脚本项目","description":"","frontmatter":{"layout":"home","title":"Linux相关项目","titleTemplate":"与Linux相关的一些一键脚本项目","hero":{"name":"Linux相关项目","text":"与Linux相关的一些一键脚本项目","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"注意事项","details":"注意每个项目说明,部分项目有可能对系统造成不可修复的错误,需要重装系统,请仔细查看说明"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1704976888000}'),i={name:"case/index.md"};function s(n,r,o,c,d,l){return t(),a("div")}const x=e(i,[["render",s]]);export{m as __pageData,x as default};
import{_ as e,v as t,b as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Linux相关项目","titleTemplate":"与Linux相关的一些一键脚本项目","description":"","frontmatter":{"layout":"home","title":"Linux相关项目","titleTemplate":"与Linux相关的一些一键脚本项目","hero":{"name":"Linux相关项目","text":"与Linux相关的一些一键脚本项目","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"注意事项","details":"注意每个项目说明,部分项目有可能对系统造成不可修复的错误,需要重装系统,请仔细查看说明"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1705324601000}'),i={name:"case/index.md"};function s(n,r,o,c,d,l){return t(),a("div")}const x=e(i,[["render",s]]);export{m as __pageData,x as default};

View File

@@ -1 +1 @@
import{_ as e,v as t,b as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Linux相关项目","titleTemplate":"与Linux相关的一些一键脚本项目","description":"","frontmatter":{"layout":"home","title":"Linux相关项目","titleTemplate":"与Linux相关的一些一键脚本项目","hero":{"name":"Linux相关项目","text":"与Linux相关的一些一键脚本项目","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"注意事项","details":"注意每个项目说明,部分项目有可能对系统造成不可修复的错误,需要重装系统,请仔细查看说明"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1704976888000}'),i={name:"case/index.md"};function s(n,r,o,c,d,l){return t(),a("div")}const x=e(i,[["render",s]]);export{m as __pageData,x as default};
import{_ as e,v as t,b as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Linux相关项目","titleTemplate":"与Linux相关的一些一键脚本项目","description":"","frontmatter":{"layout":"home","title":"Linux相关项目","titleTemplate":"与Linux相关的一些一键脚本项目","hero":{"name":"Linux相关项目","text":"与Linux相关的一些一键脚本项目","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"查看项目 →","link":"/case/case1"}]},"features":[{"title":"注意事项","details":"注意每个项目说明,部分项目有可能对系统造成不可修复的错误,需要重装系统,请仔细查看说明"}]},"headers":[],"relativePath":"case/index.md","filePath":"case/index.md","lastUpdated":1705324601000}'),i={name:"case/index.md"};function s(n,r,o,c,d,l){return t(),a("div")}const x=e(i,[["render",s]]);export{m as __pageData,x as default};

View File

@@ -1 +1 @@
import{_ as e,v as t,b as a}from"./chunks/framework.70afa331.js";const c=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册欢迎你提出高质量的Pull Request帮助一键虚拟化项目变得更好","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册欢迎你提出高质量的Pull Request帮助一键虚拟化项目变得更好","hero":{"name":"开发手册","text":"开发手册","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1704976888000}'),s={name:"developer/index.md"};function n(r,o,i,l,d,p){return t(),a("div")}const u=e(s,[["render",n]]);export{c as __pageData,u as default};
import{_ as e,v as t,b as a}from"./chunks/framework.70afa331.js";const c=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册欢迎你提出高质量的Pull Request帮助一键虚拟化项目变得更好","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册欢迎你提出高质量的Pull Request帮助一键虚拟化项目变得更好","hero":{"name":"开发手册","text":"开发手册","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1705324601000}'),s={name:"developer/index.md"};function n(r,o,i,l,d,p){return t(),a("div")}const u=e(s,[["render",n]]);export{c as __pageData,u as default};

View File

@@ -1 +1 @@
import{_ as e,v as t,b as a}from"./chunks/framework.70afa331.js";const c=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册欢迎你提出高质量的Pull Request帮助一键虚拟化项目变得更好","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册欢迎你提出高质量的Pull Request帮助一键虚拟化项目变得更好","hero":{"name":"开发手册","text":"开发手册","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1704976888000}'),s={name:"developer/index.md"};function n(r,o,i,l,d,p){return t(),a("div")}const u=e(s,[["render",n]]);export{c as __pageData,u as default};
import{_ as e,v as t,b as a}from"./chunks/framework.70afa331.js";const c=JSON.parse('{"title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册欢迎你提出高质量的Pull Request帮助一键虚拟化项目变得更好","description":"","frontmatter":{"layout":"home","title":"开发手册","titleTemplate":"欢迎使用一键虚拟化项目开发手册欢迎你提出高质量的Pull Request帮助一键虚拟化项目变得更好","hero":{"name":"开发手册","text":"开发手册","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"开始使用 →","link":"/developer/l10n"}]}},"headers":[],"relativePath":"developer/index.md","filePath":"developer/index.md","lastUpdated":1705324601000}'),s={name:"developer/index.md"};function n(r,o,i,l,d,p){return t(),a("div")}const u=e(s,[["render",n]]);export{c as __pageData,u as default};

View File

@@ -1 +1 @@
import{_ as e,v as o,b as t,R as a}from"./chunks/framework.70afa331.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1704976888000}'),l={name:"developer/l10n.md"},r=a('<p><strong>你可以在开发新功能时遵循以下步骤来支持本地化</strong></p><h2 id="介绍" tabindex="-1">介绍 <a class="header-anchor" href="#介绍" aria-label="Permalink to &quot;介绍&quot;"></a></h2><ol><li>你可以直接使用 <code>/resource/l10n/zh-CN.toml</code> 中已有的文本配置来替换新功能中的文本</li><li>如果新功能中有新增文本,请参考 <code>zh-CN.toml</code> 的配置文本,将新文本拉取到 <code>zh-CN.toml</code> 等其他语言的配置文件中,并添加翻译</li></ol><h2 id="新本地化文本的添加" tabindex="-1">新本地化文本的添加 <a class="header-anchor" href="#新本地化文本的添加" aria-label="Permalink to &quot;新本地化文本的添加&quot;"></a></h2><ol><li>在 <code>/resource/l10n/</code> 中添加新的语言文本配置</li><li>在新的语言文本配置中拉取其他语言已有的文本配置</li><li>为新的语言文本配置添加翻译</li></ol>',5),s=[r];function d(i,n,c,h,p,_){return o(),t("div",null,s)}const f=e(l,[["render",d]]);export{u as __pageData,f as default};
import{_ as e,v as o,b as t,R as a}from"./chunks/framework.70afa331.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1705324601000}'),l={name:"developer/l10n.md"},r=a('<p><strong>你可以在开发新功能时遵循以下步骤来支持本地化</strong></p><h2 id="介绍" tabindex="-1">介绍 <a class="header-anchor" href="#介绍" aria-label="Permalink to &quot;介绍&quot;"></a></h2><ol><li>你可以直接使用 <code>/resource/l10n/zh-CN.toml</code> 中已有的文本配置来替换新功能中的文本</li><li>如果新功能中有新增文本,请参考 <code>zh-CN.toml</code> 的配置文本,将新文本拉取到 <code>zh-CN.toml</code> 等其他语言的配置文件中,并添加翻译</li></ol><h2 id="新本地化文本的添加" tabindex="-1">新本地化文本的添加 <a class="header-anchor" href="#新本地化文本的添加" aria-label="Permalink to &quot;新本地化文本的添加&quot;"></a></h2><ol><li>在 <code>/resource/l10n/</code> 中添加新的语言文本配置</li><li>在新的语言文本配置中拉取其他语言已有的文本配置</li><li>为新的语言文本配置添加翻译</li></ol>',5),s=[r];function d(i,n,c,h,p,_){return o(),t("div",null,s)}const f=e(l,[["render",d]]);export{u as __pageData,f as default};

View File

@@ -1 +1 @@
import{_ as e,v as o,b as t,R as a}from"./chunks/framework.70afa331.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1704976888000}'),l={name:"developer/l10n.md"},r=a('<p><strong>你可以在开发新功能时遵循以下步骤来支持本地化</strong></p><h2 id="介绍" tabindex="-1">介绍 <a class="header-anchor" href="#介绍" aria-label="Permalink to &quot;介绍&quot;"></a></h2><ol><li>你可以直接使用 <code>/resource/l10n/zh-CN.toml</code> 中已有的文本配置来替换新功能中的文本</li><li>如果新功能中有新增文本,请参考 <code>zh-CN.toml</code> 的配置文本,将新文本拉取到 <code>zh-CN.toml</code> 等其他语言的配置文件中,并添加翻译</li></ol><h2 id="新本地化文本的添加" tabindex="-1">新本地化文本的添加 <a class="header-anchor" href="#新本地化文本的添加" aria-label="Permalink to &quot;新本地化文本的添加&quot;"></a></h2><ol><li>在 <code>/resource/l10n/</code> 中添加新的语言文本配置</li><li>在新的语言文本配置中拉取其他语言已有的文本配置</li><li>为新的语言文本配置添加翻译</li></ol>',5),s=[r];function d(i,n,c,h,p,_){return o(),t("div",null,s)}const f=e(l,[["render",d]]);export{u as __pageData,f as default};
import{_ as e,v as o,b as t,R as a}from"./chunks/framework.70afa331.js";const u=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"developer/l10n.md","filePath":"developer/l10n.md","lastUpdated":1705324601000}'),l={name:"developer/l10n.md"},r=a('<p><strong>你可以在开发新功能时遵循以下步骤来支持本地化</strong></p><h2 id="介绍" tabindex="-1">介绍 <a class="header-anchor" href="#介绍" aria-label="Permalink to &quot;介绍&quot;"></a></h2><ol><li>你可以直接使用 <code>/resource/l10n/zh-CN.toml</code> 中已有的文本配置来替换新功能中的文本</li><li>如果新功能中有新增文本,请参考 <code>zh-CN.toml</code> 的配置文本,将新文本拉取到 <code>zh-CN.toml</code> 等其他语言的配置文件中,并添加翻译</li></ol><h2 id="新本地化文本的添加" tabindex="-1">新本地化文本的添加 <a class="header-anchor" href="#新本地化文本的添加" aria-label="Permalink to &quot;新本地化文本的添加&quot;"></a></h2><ol><li>在 <code>/resource/l10n/</code> 中添加新的语言文本配置</li><li>在新的语言文本配置中拉取其他语言已有的文本配置</li><li>为新的语言文本配置添加翻译</li></ol>',5),s=[r];function d(i,n,c,h,p,_){return o(),t("div",null,s)}const f=e(l,[["render",d]]);export{u as __pageData,f as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as t,b as n,R as o}from"./chunks/framework.70afa331.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/l10n.md","filePath":"en_US/developer/l10n.md","lastUpdated":1704976888000}'),a={name:"en_US/developer/l10n.md"},i=o('<p><strong>You can follow these steps to support localization when developing new features</strong></p><h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;"></a></h2><ol><li>You can directly use the text configuration already available in <code>/resource/l10n/en-US.toml</code> to replace the text in the new feature.</li><li>If there is new text in the new feature, please refer to the configuration text in <code>en-US.toml</code>, pull the new text into the configuration files of other languages such as <code>en-US.toml</code>, and add translations.</li></ol><h2 id="adding-a-new-localized-text-file" tabindex="-1">Adding a new localized text file <a class="header-anchor" href="#adding-a-new-localized-text-file" aria-label="Permalink to &quot;Adding a new localized text file&quot;"></a></h2><ol><li>Add a new language text configuration in <code>/resource/l10n/</code>.</li><li>Pull existing text configurations from other languages in the new language text configuration.</li><li>Add translations for the new language text configuration.</li></ol>',5),l=[i];function r(d,s,c,u,f,h){return t(),n("div",null,l)}const x=e(a,[["render",r]]);export{p as __pageData,x as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as t,b as n,R as o}from"./chunks/framework.70afa331.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/developer/l10n.md","filePath":"en_US/developer/l10n.md","lastUpdated":1704976888000}'),a={name:"en_US/developer/l10n.md"},i=o('<p><strong>You can follow these steps to support localization when developing new features</strong></p><h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;"></a></h2><ol><li>You can directly use the text configuration already available in <code>/resource/l10n/en-US.toml</code> to replace the text in the new feature.</li><li>If there is new text in the new feature, please refer to the configuration text in <code>en-US.toml</code>, pull the new text into the configuration files of other languages such as <code>en-US.toml</code>, and add translations.</li></ol><h2 id="adding-a-new-localized-text-file" tabindex="-1">Adding a new localized text file <a class="header-anchor" href="#adding-a-new-localized-text-file" aria-label="Permalink to &quot;Adding a new localized text file&quot;"></a></h2><ol><li>Add a new language text configuration in <code>/resource/l10n/</code>.</li><li>Pull existing text configurations from other languages in the new language text configuration.</li><li>Add translations for the new language text configuration.</li></ol>',5),l=[i];function r(d,s,c,u,f,h){return t(),n("div",null,l)}const x=e(a,[["render",r]]);export{p as __pageData,x as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as t,b as a,R as r}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/dashboard.md","filePath":"en_US/guide/dashboard.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/dashboard.md"},i=r('<h2 id="preparation-work" tabindex="-1">Preparation Work <a class="header-anchor" href="#preparation-work" aria-label="Permalink to &quot;Preparation Work&quot;"></a></h2><p>To virtualize a server, you will need:</p><ol><li><p>A server (VPS or Dedicated Server) that can connect to the public internet. It&#39;s preferable if this server can access GitHub&#39;s RAW pages perfectly, as some projects and components might not use CDN acceleration.</p></li><li><p>A stable SSH connection from your local machine. If the connection isn&#39;t stable, you can use the <code>screen</code> command to create a window and execute commands within that window.</p></li></ol><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>If you&#39;re unfamiliar with the <code>screen</code> command, please search for relevant tutorials to learn it, or you can use <code>tmux</code> as an alternative.</p></div><ol start="3"><li>Ensure that the server&#39;s system and hardware meet the requirements specified by the corresponding project. Refer to the project&#39;s documentation for detailed information.</li></ol><p><strong>This document will use a VPS as an example, and the VPS should be clean without any native environment issues. If necessary, reinstall the system to ensure the initial environment&#39;s cleanliness.</strong></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The PVE project might cause problems on the host machine. If you&#39;re not familiar with debugging bugs and fixing system issues, it&#39;s not recommended to use PVE in a production environment. When using PVE-related scripts, make sure the host machine can be reinstalled at any time.</p></div><p>Please make sure to keep the original formatting by enclosing the translation in <code>and</code> for easy copying.</p><h2 id="project-repository" tabindex="-1">Project Repository <a class="header-anchor" href="#project-repository" aria-label="Permalink to &quot;Project Repository&quot;"></a></h2><p>Welcome Star and Fork, all resources are open source, no non-open source parts, reproduced as well as the use of please write on the source of this site, thank you!</p><h3 id="pve" tabindex="-1">PVE <a class="header-anchor" href="#pve" aria-label="Permalink to &quot;PVE&quot;"></a></h3><p>Allows for the creation of KVM virtualized virtual machines and LXC virtualized containers.</p><p><a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/pve</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Fpve&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><h3 id="lxd" tabindex="-1">LXD <a class="header-anchor" href="#lxd" aria-label="Permalink to &quot;LXD&quot;"></a></h3><p>LXC Virtualization Containers Can Be Created.</p><p><a href="https://github.com/spiritLHLS/lxd" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/lxd</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Flxd&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><h3 id="docker" tabindex="-1">Docker <a class="header-anchor" href="#docker" aria-label="Permalink to &quot;Docker&quot;"></a></h3><p>Docker virtualized containers Can Be Created.</p><p><a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/docker</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Fdocker&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><br><br>',24),s=[i];function n(c,l,p,h,d,m){return t(),a("div",null,s)}const b=e(o,[["render",n]]);export{f as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as t,b as a,R as r}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/dashboard.md","filePath":"en_US/guide/dashboard.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/dashboard.md"},i=r('<h2 id="preparation-work" tabindex="-1">Preparation Work <a class="header-anchor" href="#preparation-work" aria-label="Permalink to &quot;Preparation Work&quot;"></a></h2><p>To virtualize a server, you will need:</p><ol><li><p>A server (VPS or Dedicated Server) that can connect to the public internet. It&#39;s preferable if this server can access GitHub&#39;s RAW pages perfectly, as some projects and components might not use CDN acceleration.</p></li><li><p>A stable SSH connection from your local machine. If the connection isn&#39;t stable, you can use the <code>screen</code> command to create a window and execute commands within that window.</p></li></ol><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>If you&#39;re unfamiliar with the <code>screen</code> command, please search for relevant tutorials to learn it, or you can use <code>tmux</code> as an alternative.</p></div><ol start="3"><li>Ensure that the server&#39;s system and hardware meet the requirements specified by the corresponding project. Refer to the project&#39;s documentation for detailed information.</li></ol><p><strong>This document will use a VPS as an example, and the VPS should be clean without any native environment issues. If necessary, reinstall the system to ensure the initial environment&#39;s cleanliness.</strong></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The PVE project might cause problems on the host machine. If you&#39;re not familiar with debugging bugs and fixing system issues, it&#39;s not recommended to use PVE in a production environment. When using PVE-related scripts, make sure the host machine can be reinstalled at any time.</p></div><p>Please make sure to keep the original formatting by enclosing the translation in <code>and</code> for easy copying.</p><h2 id="project-repository" tabindex="-1">Project Repository <a class="header-anchor" href="#project-repository" aria-label="Permalink to &quot;Project Repository&quot;"></a></h2><p>Welcome Star and Fork, all resources are open source, no non-open source parts, reproduced as well as the use of please write on the source of this site, thank you!</p><h3 id="pve" tabindex="-1">PVE <a class="header-anchor" href="#pve" aria-label="Permalink to &quot;PVE&quot;"></a></h3><p>Allows for the creation of KVM virtualized virtual machines and LXC virtualized containers.</p><p><a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/pve</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Fpve&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><h3 id="lxd" tabindex="-1">LXD <a class="header-anchor" href="#lxd" aria-label="Permalink to &quot;LXD&quot;"></a></h3><p>LXC Virtualization Containers Can Be Created.</p><p><a href="https://github.com/spiritLHLS/lxd" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/lxd</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Flxd&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><h3 id="docker" tabindex="-1">Docker <a class="header-anchor" href="#docker" aria-label="Permalink to &quot;Docker&quot;"></a></h3><p>Docker virtualized containers Can Be Created.</p><p><a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/docker</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Fdocker&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><br><br>',24),s=[i];function n(c,l,p,h,d,m){return t(),a("div",null,s)}const b=e(o,[["render",n]]);export{f as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as a,v as e,b as s,R as t}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/dashboardq.md","filePath":"en_US/guide/dashboardq.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/dashboardq.md"},n=t('<p>Give me a cup of coffee.</p><p><a href="https://ko-fi.com/spiritlhl" target="_blank" rel="noreferrer">https://ko-fi.com/spiritlhl</a></p><p>USDT-TRC20</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">TZ7nf8XAL9zQUo63xokazaBdCPeCgPfcwd</span></span></code></pre></div>',4),r=[n];function p(d,i,c,l,h,_){return e(),s("div",null,r)}const u=a(o,[["render",p]]);export{m as __pageData,u as default};

View File

@@ -1 +0,0 @@
import{_ as a,v as e,b as s,R as t}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/dashboardq.md","filePath":"en_US/guide/dashboardq.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/dashboardq.md"},n=t('<p>Give me a cup of coffee.</p><p><a href="https://ko-fi.com/spiritlhl" target="_blank" rel="noreferrer">https://ko-fi.com/spiritlhl</a></p><p>USDT-TRC20</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">TZ7nf8XAL9zQUo63xokazaBdCPeCgPfcwd</span></span></code></pre></div>',4),r=[n];function p(d,i,c,l,h,_){return e(),s("div",null,r)}const u=a(o,[["render",p]]);export{m as __pageData,u as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{_ as e,v as t,b as o,R as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/docker_precheck.md","filePath":"en_US/guide/docker_precheck.md","lastUpdated":1704976888000}'),n={name:"en_US/guide/docker_precheck.md"},s=a('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;"></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don&#39;t confuse them with the customized parts.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If the host has an IPV6 network, the installation will change the network structure of the host, please make sure that the host can reset the system at any time and that there is no important data on the host before running.</p></div><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><p>Bulk or individual NAT server provisioning via docker</p><p>Default use of debian system optional alpine system, each container comes with 1 external ssh port, 25 internal and external network ports, you can choose whether to bind IPV6 address</p><p>The default creation of unprivileged containers, and does not mount and host docker daemon communication, so ** host created docker virtualization NAT servers can not be nested within the virtualization docker **</p><p>By default, lxcfs is installed and enabled, so that when querying resources within a container, CPU and memory use the configured view instead of the host&#39;s view.</p><p>Since most cloud servers have ext4 filesystems, even xfs filesystems do not enable the pquota option, so <strong>sharing the host&#39;s hard disk by default does not limit the disk size of each container</strong>.</p><h2 id="configuration-requirements" tabindex="-1">Configuration requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to &quot;Configuration requirements&quot;"></a></h2><p>The system can be installed docker can be used, the network can connect to the Github raw interface can be used, hardware configuration as long as not pull across the line, free hard disk has 3G on it!</p><p>(If you need to bind an IPV6 address, then please make sure to use the installation script of this set of scripts for docker installation, you need it to automatically preset some of the settings)</p><p>If the hardware resources are just a little bit better, need to limit more things and need to limit the size of the hard disk, you can use the LXD partition of the script batch open LXC virtualization containers</p><p>If the hardware is very good and you have a lot of resources, you can use the PVE partition script to batch open KVM virtualized VMs.</p>',15),i=[s];function r(c,d,h,u,l,p){return t(),o("div",null,i)}const k=e(n,[["render",r]]);export{m as __pageData,k as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as t,b as o,R as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/docker_precheck.md","filePath":"en_US/guide/docker_precheck.md","lastUpdated":1704976888000}'),n={name:"en_US/guide/docker_precheck.md"},s=a('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;"></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don&#39;t confuse them with the customized parts.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If the host has an IPV6 network, the installation will change the network structure of the host, please make sure that the host can reset the system at any time and that there is no important data on the host before running.</p></div><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><p>Bulk or individual NAT server provisioning via docker</p><p>Default use of debian system optional alpine system, each container comes with 1 external ssh port, 25 internal and external network ports, you can choose whether to bind IPV6 address</p><p>The default creation of unprivileged containers, and does not mount and host docker daemon communication, so ** host created docker virtualization NAT servers can not be nested within the virtualization docker **</p><p>By default, lxcfs is installed and enabled, so that when querying resources within a container, CPU and memory use the configured view instead of the host&#39;s view.</p><p>Since most cloud servers have ext4 filesystems, even xfs filesystems do not enable the pquota option, so <strong>sharing the host&#39;s hard disk by default does not limit the disk size of each container</strong>.</p><h2 id="configuration-requirements" tabindex="-1">Configuration requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to &quot;Configuration requirements&quot;"></a></h2><p>The system can be installed docker can be used, the network can connect to the Github raw interface can be used, hardware configuration as long as not pull across the line, free hard disk has 3G on it!</p><p>(If you need to bind an IPV6 address, then please make sure to use the installation script of this set of scripts for docker installation, you need it to automatically preset some of the settings)</p><p>If the hardware resources are just a little bit better, need to limit more things and need to limit the size of the hard disk, you can use the LXD partition of the script batch open LXC virtualization containers</p><p>If the hardware is very good and you have a lot of resources, you can use the PVE partition script to batch open KVM virtualized VMs.</p>',15),i=[s];function r(c,d,h,u,l,p){return t(),o("div",null,i)}const k=e(n,[["render",r]]);export{m as __pageData,k as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as a,b as s,R as n}from"./chunks/framework.70afa331.js";const h=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/docker_qa.md","filePath":"en_US/guide/docker_qa.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/docker_qa.md"},l=n('<h1 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h1><h2 id="common-docker-commands" tabindex="-1">Common Docker Commands <a class="header-anchor" href="#common-docker-commands" aria-label="Permalink to &quot;Common Docker Commands&quot;"></a></h2><p>Check real-time resource usage of a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker stats &lt;container_name&gt;</span></span></code></pre></div><p>Enter a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker exec -it &lt;container_name&gt; /bin/bash</span></span></code></pre></div><p>Clean Docker cache, remove unused resources including images, containers, networks, etc.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker system prune -a</span></span></code></pre></div><p>Uninstall all Docker images and containers</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rm -f $(docker ps -aq); docker rmi $(docker images -aq)</span></span></code></pre></div><p>View logs of a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker logs &lt;container_name_or_ID&gt;</span></span></code></pre></div><p>View overall disk usage of Docker</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker system df</span></span></code></pre></div><p>List all containers</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker ps -a</span></span></code></pre></div><p>List all images</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker images</span></span></code></pre></div><p>Remove a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rm -f &lt;container_name_or_ID&gt;</span></span></code></pre></div><p>Remove a specific image</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rmi &lt;image_name_or_ID&gt;</span></span></code></pre></div>',22),t=[l];function c(p,i,r,d,m,g){return a(),s("div",null,t)}const C=e(o,[["render",c]]);export{h as __pageData,C as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as a,b as s,R as n}from"./chunks/framework.70afa331.js";const h=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/docker_qa.md","filePath":"en_US/guide/docker_qa.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/docker_qa.md"},l=n('<h1 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h1><h2 id="common-docker-commands" tabindex="-1">Common Docker Commands <a class="header-anchor" href="#common-docker-commands" aria-label="Permalink to &quot;Common Docker Commands&quot;"></a></h2><p>Check real-time resource usage of a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker stats &lt;container_name&gt;</span></span></code></pre></div><p>Enter a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker exec -it &lt;container_name&gt; /bin/bash</span></span></code></pre></div><p>Clean Docker cache, remove unused resources including images, containers, networks, etc.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker system prune -a</span></span></code></pre></div><p>Uninstall all Docker images and containers</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rm -f $(docker ps -aq); docker rmi $(docker images -aq)</span></span></code></pre></div><p>View logs of a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker logs &lt;container_name_or_ID&gt;</span></span></code></pre></div><p>View overall disk usage of Docker</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker system df</span></span></code></pre></div><p>List all containers</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker ps -a</span></span></code></pre></div><p>List all images</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker images</span></span></code></pre></div><p>Remove a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rm -f &lt;container_name_or_ID&gt;</span></span></code></pre></div><p>Remove a specific image</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rmi &lt;image_name_or_ID&gt;</span></span></code></pre></div>',22),t=[l];function c(p,i,r,d,m,g){return a(),s("div",null,t)}const C=e(o,[["render",c]]);export{h as __pageData,C as default};

View File

@@ -1 +0,0 @@
import{_ as r,v as e,b as t,R as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/docker_thanks.md","filePath":"en_US/guide/docker_thanks.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/docker_thanks.md"},n=a('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://hub.docker.com/_/debian" target="_blank" rel="noreferrer">https://hub.docker.com/_/debian</a></p><p><a href="https://hub.docker.com/r/redroid/redroid" target="_blank" rel="noreferrer">https://hub.docker.com/r/redroid/redroid</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://guacamole.apache.org/doc/gug/introduction.html" target="_blank" rel="noreferrer">https://guacamole.apache.org/doc/gug/introduction.html</a></p><p><a href="https://blog.imoeq.com/oracle-arm-run-android-by-docker" target="_blank" rel="noreferrer">https://blog.imoeq.com/oracle-arm-run-android-by-docker</a></p><p><a href="https://blog.imoeq.com/scrcpy-run-a-android-web-page" target="_blank" rel="noreferrer">https://blog.imoeq.com/scrcpy-run-a-android-web-page</a></p><p><a href="https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/" target="_blank" rel="noreferrer">https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/</a></p><p><a href="https://releases.hashicorp.com/vagrant/" target="_blank" rel="noreferrer">https://releases.hashicorp.com/vagrant/</a></p><p><a href="https://github.com/hashicorp/vagrant/" target="_blank" rel="noreferrer">https://github.com/hashicorp/vagrant/</a></p><p><a href="https://app.vagrantup.com/peru" target="_blank" rel="noreferrer">https://app.vagrantup.com/peru</a></p><p><a href="https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1" target="_blank" rel="noreferrer">https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1</a></p><p><a href="https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4" target="_blank" rel="noreferrer">https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4</a></p><p><a href="https://github.com/jlesage/docker-firefox" target="_blank" rel="noreferrer">https://github.com/jlesage/docker-firefox</a></p><p><a href="https://github.com/linuxserver/docker-webtop" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-webtop</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/linuxserver/docker-chromium" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-chromium</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> and @CoiaPrant for providing docker guidance.</p>',19),h=[n];function c(i,p,s,l,d,g){return e(),t("div",null,h)}const b=r(o,[["render",c]]);export{m as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as r,v as e,b as t,R as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/docker_thanks.md","filePath":"en_US/guide/docker_thanks.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/docker_thanks.md"},n=a('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://hub.docker.com/_/debian" target="_blank" rel="noreferrer">https://hub.docker.com/_/debian</a></p><p><a href="https://hub.docker.com/r/redroid/redroid" target="_blank" rel="noreferrer">https://hub.docker.com/r/redroid/redroid</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://guacamole.apache.org/doc/gug/introduction.html" target="_blank" rel="noreferrer">https://guacamole.apache.org/doc/gug/introduction.html</a></p><p><a href="https://blog.imoeq.com/oracle-arm-run-android-by-docker" target="_blank" rel="noreferrer">https://blog.imoeq.com/oracle-arm-run-android-by-docker</a></p><p><a href="https://blog.imoeq.com/scrcpy-run-a-android-web-page" target="_blank" rel="noreferrer">https://blog.imoeq.com/scrcpy-run-a-android-web-page</a></p><p><a href="https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/" target="_blank" rel="noreferrer">https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/</a></p><p><a href="https://releases.hashicorp.com/vagrant/" target="_blank" rel="noreferrer">https://releases.hashicorp.com/vagrant/</a></p><p><a href="https://github.com/hashicorp/vagrant/" target="_blank" rel="noreferrer">https://github.com/hashicorp/vagrant/</a></p><p><a href="https://app.vagrantup.com/peru" target="_blank" rel="noreferrer">https://app.vagrantup.com/peru</a></p><p><a href="https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1" target="_blank" rel="noreferrer">https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1</a></p><p><a href="https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4" target="_blank" rel="noreferrer">https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4</a></p><p><a href="https://github.com/jlesage/docker-firefox" target="_blank" rel="noreferrer">https://github.com/jlesage/docker-firefox</a></p><p><a href="https://github.com/linuxserver/docker-webtop" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-webtop</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/linuxserver/docker-chromium" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-chromium</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> and @CoiaPrant for providing docker guidance.</p>',19),h=[n];function c(i,p,s,l,d,g){return e(),t("div",null,h)}const b=r(o,[["render",c]]);export{m as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as t,b as o,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/lxd_precheck.md","filePath":"en_US/guide/lxd_precheck.md","lastUpdated":1704976888000}'),a={name:"en_US/guide/lxd_precheck.md"},r=n('<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to &quot;Preface&quot;"></a></h1><p>The following is the introduction of the non-customized part, the customized part has its own corresponding introduction, do not get confused!</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to &quot;Requirements&quot;"></a></h2><p>Hardware requirements.</p><ul><li>System: Debian 8+, Ubuntu 18+ (20.04 recommended).</li><li>Virtualization: KVM, VMWARE recommended.</li><li>Memory: At least 512MB of RAM</li><li>Hard disk: hard disk (system disk) at least 10G</li><li>Network: Independent IPV4 address, IPV6 is optional, bandwidth can download scripts on the line, the network can connect to the Github raw page on the line</li></ul><p>PS: If the hardware is very good and has a lot of resources, you can use PVE to batch open KVM virtualized VMs <a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">Jump</a></p><p>PS: If the hardware resources are even worse, virtualization is not supported, you can use the docker version, the adaption surface is wider <a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">Jump</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><ul><li><p>This set of script development using <strong>Ubuntu20</strong>, Ubuntu other long-term maintenance version should also be no problem, Debian can not use zfs automatically switch to another storage type!</p></li><li><p>Set up both TCP and UDP forwarding, in addition to SSH ports, other mapping intranet and extranet ports are the same.</p></li><li><p>Support for docker nested virtualization of open LXC containers has been set up, and the default normal version and pure probe version use the debian11 system.</p></li><li><p>lxcfs has been set to be enabled by default, so that querying resources within a container uses the configured view rather than the host&#39;s view</p></li><li><p>Have blocked the container may be used to abuse the toolkit and IPV4 network TCP/UDP protocol ports ( 3389 8888 54321 65432 ), to prevent the container is used for scanning and blasting, and can be external process checking for problems automatically shut down</p></li><li><p>Has supported one-click configuration of IPV6 addresses for LXC containers (provided that the mother hen has an IPV6 subnet, no IPV6 address is not configured), automatically adapted to the size of the subnet</p></li><li><p>Ensure that the disk you want to open is the default system disk (sda or sda1) and not the mounted disk (sdb and so on), if you are not sure, use <code>fdisk -l</code> and <code>df</code> to check.</p></li><li><p>See <a href="https://github.com/spiritLHLS/lxd/blob/main/README_other.md" target="_blank" rel="noreferrer">Other notes</a> for details on mounting other disks.</p></li><li><p>One-click scripts support custom restrictions on all content, the normal version supports multiple runs of the batch generation does not overwrite the previously generated configuration</p></li></ul><h2 id="detecting-the-environment" tabindex="-1">Detecting the environment <a class="header-anchor" href="#detecting-the-environment" aria-label="Permalink to &quot;Detecting the environment&quot;"></a></h2><p><strong>Use the subsequent script must execute this command to detect the hen whether it meets the requirements</strong></p><p>Command:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash &lt;(wget -qO- --no-check-certificate https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/pre_check.sh)</span></span></code></pre></div>',14),s=[r];function i(d,c,h,l,p,u){return t(),o("div",null,s)}const b=e(a,[["render",i]]);export{f as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as t,b as o,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/lxd_precheck.md","filePath":"en_US/guide/lxd_precheck.md","lastUpdated":1704976888000}'),a={name:"en_US/guide/lxd_precheck.md"},r=n('<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to &quot;Preface&quot;"></a></h1><p>The following is the introduction of the non-customized part, the customized part has its own corresponding introduction, do not get confused!</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to &quot;Requirements&quot;"></a></h2><p>Hardware requirements.</p><ul><li>System: Debian 8+, Ubuntu 18+ (20.04 recommended).</li><li>Virtualization: KVM, VMWARE recommended.</li><li>Memory: At least 512MB of RAM</li><li>Hard disk: hard disk (system disk) at least 10G</li><li>Network: Independent IPV4 address, IPV6 is optional, bandwidth can download scripts on the line, the network can connect to the Github raw page on the line</li></ul><p>PS: If the hardware is very good and has a lot of resources, you can use PVE to batch open KVM virtualized VMs <a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">Jump</a></p><p>PS: If the hardware resources are even worse, virtualization is not supported, you can use the docker version, the adaption surface is wider <a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">Jump</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><ul><li><p>This set of script development using <strong>Ubuntu20</strong>, Ubuntu other long-term maintenance version should also be no problem, Debian can not use zfs automatically switch to another storage type!</p></li><li><p>Set up both TCP and UDP forwarding, in addition to SSH ports, other mapping intranet and extranet ports are the same.</p></li><li><p>Support for docker nested virtualization of open LXC containers has been set up, and the default normal version and pure probe version use the debian11 system.</p></li><li><p>lxcfs has been set to be enabled by default, so that querying resources within a container uses the configured view rather than the host&#39;s view</p></li><li><p>Have blocked the container may be used to abuse the toolkit and IPV4 network TCP/UDP protocol ports ( 3389 8888 54321 65432 ), to prevent the container is used for scanning and blasting, and can be external process checking for problems automatically shut down</p></li><li><p>Has supported one-click configuration of IPV6 addresses for LXC containers (provided that the mother hen has an IPV6 subnet, no IPV6 address is not configured), automatically adapted to the size of the subnet</p></li><li><p>Ensure that the disk you want to open is the default system disk (sda or sda1) and not the mounted disk (sdb and so on), if you are not sure, use <code>fdisk -l</code> and <code>df</code> to check.</p></li><li><p>See <a href="https://github.com/spiritLHLS/lxd/blob/main/README_other.md" target="_blank" rel="noreferrer">Other notes</a> for details on mounting other disks.</p></li><li><p>One-click scripts support custom restrictions on all content, the normal version supports multiple runs of the batch generation does not overwrite the previously generated configuration</p></li></ul><h2 id="detecting-the-environment" tabindex="-1">Detecting the environment <a class="header-anchor" href="#detecting-the-environment" aria-label="Permalink to &quot;Detecting the environment&quot;"></a></h2><p><strong>Use the subsequent script must execute this command to detect the hen whether it meets the requirements</strong></p><p>Command:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash &lt;(wget -qO- --no-check-certificate https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/pre_check.sh)</span></span></code></pre></div>',14),s=[r];function i(d,c,h,l,p,u){return t(),o("div",null,s)}const b=e(a,[["render",i]]);export{f as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as a,b as t,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/lxd_qa.md","filePath":"en_US/guide/lxd_qa.md","lastUpdated":1704976888000}'),n={name:"en_US/guide/lxd_qa.md"},o=s('<h2 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h2><h2 id="what-if-the-lxc-command-says-it-can-t-be-found-after-lxd-is-installed" tabindex="-1">What if the lxc command says it can&#39;t be found after LXD is installed? <a class="header-anchor" href="#what-if-the-lxc-command-says-it-can-t-be-found-after-lxd-is-installed" aria-label="Permalink to &quot;What if the lxc command says it can&#39;t be found after LXD is installed?&quot;"></a></h2><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">! lxc -h &gt;/dev/null 2&gt;&amp;1 &amp;&amp; echo &#39;alias lxc=&quot;/snap/bin/lxc&quot;&#39; &gt;&gt; /root/.bashrc &amp;&amp; source /root/.bashrc</span></span>\n<span class="line"><span style="color:#A6ACCD;">export PATH=$PATH:/snap/bin</span></span></code></pre></div><p>After executing this command try</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">lxc -h</span></span></code></pre></div><p>to see if the lxc command is fixed.</p><h2 id="what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" tabindex="-1">What to do if you open centos7 and find that CGroupV1 is not supported? <a class="header-anchor" href="#what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" aria-label="Permalink to &quot;What to do if you open centos7 and find that CGroupV1 is not supported?&quot;"></a></h2><p>Enable CGroup V1: To enable CGroup V1 on an Ubuntu system, you need to edit the kernel boot parameters.</p><p>Please note that before changing kernel boot parameters, make sure to backup important data and settings to prevent unexpected problems.</p><p>Edit the ```/etc/default/grub<code>file and add</code>systemd.unified_cgroup_hierarchy=0<code>to the end of the parameters in</code>GRUB_CMDLINE_LINUX_DEFAULT``, just like:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash systemd.unified_cgroup_hierarchy=0&quot;</span></span></code></pre></div><p>Save the file and run the following command to update the GRUB boot.</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">sudo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update-grub</span></span></code></pre></div><p>Reboot the system for the changes to take effect</p><p>If the above changes still do not support the opening of centos7, try using a different host system.</p><h2 id="currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" tabindex="-1">Currently verified VPS vendors that can open containers with separate IPV6 addresses. <a class="header-anchor" href="#currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" aria-label="Permalink to &quot;Currently verified VPS vendors that can open containers with separate IPV6 addresses.&quot;"></a></h2><p><a href="https://my.kuroit.com/aff.php?aff=5" target="_blank" rel="noreferrer">kuroit</a> Phoenix, USA regular</p><p><a href="https://t.me/vps_reviews/338" target="_blank" rel="noreferrer">datalix</a> German AMD Promotions</p><p><a href="https://billing.luxvps.xyz/aff.php?aff=36" target="_blank" rel="noreferrer">luxvps</a> German AMD Promotions</p>',19),r=[o];function p(i,l,d,c,h,u){return a(),t("div",null,r)}const b=e(n,[["render",p]]);export{m as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as e,v as a,b as t,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/lxd_qa.md","filePath":"en_US/guide/lxd_qa.md","lastUpdated":1704976888000}'),n={name:"en_US/guide/lxd_qa.md"},o=s('<h2 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h2><h2 id="what-if-the-lxc-command-says-it-can-t-be-found-after-lxd-is-installed" tabindex="-1">What if the lxc command says it can&#39;t be found after LXD is installed? <a class="header-anchor" href="#what-if-the-lxc-command-says-it-can-t-be-found-after-lxd-is-installed" aria-label="Permalink to &quot;What if the lxc command says it can&#39;t be found after LXD is installed?&quot;"></a></h2><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">! lxc -h &gt;/dev/null 2&gt;&amp;1 &amp;&amp; echo &#39;alias lxc=&quot;/snap/bin/lxc&quot;&#39; &gt;&gt; /root/.bashrc &amp;&amp; source /root/.bashrc</span></span>\n<span class="line"><span style="color:#A6ACCD;">export PATH=$PATH:/snap/bin</span></span></code></pre></div><p>After executing this command try</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">lxc -h</span></span></code></pre></div><p>to see if the lxc command is fixed.</p><h2 id="what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" tabindex="-1">What to do if you open centos7 and find that CGroupV1 is not supported? <a class="header-anchor" href="#what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" aria-label="Permalink to &quot;What to do if you open centos7 and find that CGroupV1 is not supported?&quot;"></a></h2><p>Enable CGroup V1: To enable CGroup V1 on an Ubuntu system, you need to edit the kernel boot parameters.</p><p>Please note that before changing kernel boot parameters, make sure to backup important data and settings to prevent unexpected problems.</p><p>Edit the ```/etc/default/grub<code>file and add</code>systemd.unified_cgroup_hierarchy=0<code>to the end of the parameters in</code>GRUB_CMDLINE_LINUX_DEFAULT``, just like:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash systemd.unified_cgroup_hierarchy=0&quot;</span></span></code></pre></div><p>Save the file and run the following command to update the GRUB boot.</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">sudo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update-grub</span></span></code></pre></div><p>Reboot the system for the changes to take effect</p><p>If the above changes still do not support the opening of centos7, try using a different host system.</p><h2 id="currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" tabindex="-1">Currently verified VPS vendors that can open containers with separate IPV6 addresses. <a class="header-anchor" href="#currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" aria-label="Permalink to &quot;Currently verified VPS vendors that can open containers with separate IPV6 addresses.&quot;"></a></h2><p><a href="https://my.kuroit.com/aff.php?aff=5" target="_blank" rel="noreferrer">kuroit</a> Phoenix, USA regular</p><p><a href="https://t.me/vps_reviews/338" target="_blank" rel="noreferrer">datalix</a> German AMD Promotions</p><p><a href="https://billing.luxvps.xyz/aff.php?aff=36" target="_blank" rel="noreferrer">luxvps</a> German AMD Promotions</p>',19),r=[o];function p(i,l,d,c,h,u){return a(),t("div",null,r)}const b=e(n,[["render",p]]);export{m as __pageData,b as default};

View File

@@ -1 +0,0 @@
import{_ as t,v as e,b as r,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/lxd_thanks.md","filePath":"en_US/guide/lxd_thanks.md","lastUpdated":1704976888000}'),a={name:"en_US/guide/lxd_thanks.md"},s=n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://lxdware.com/" target="_blank" rel="noreferrer">https://lxdware.com/</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> for providing guidance.</p>',11),o=[s];function i(c,l,p,d,h,u){return e(),r("div",null,o)}const x=t(a,[["render",i]]);export{f as __pageData,x as default};

View File

@@ -1 +0,0 @@
import{_ as t,v as e,b as r,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/lxd_thanks.md","filePath":"en_US/guide/lxd_thanks.md","lastUpdated":1704976888000}'),a={name:"en_US/guide/lxd_thanks.md"},s=n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://lxdware.com/" target="_blank" rel="noreferrer">https://lxdware.com/</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> for providing guidance.</p>',11),o=[s];function i(c,l,p,d,h,u){return e(),r("div",null,o)}const x=t(a,[["render",i]]);export{f as __pageData,x as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
import{_ as r,v as e,b as t,R as a}from"./chunks/framework.70afa331.js";const b=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/pve_thanks.md","filePath":"en_US/guide/pve_thanks.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/pve_thanks.md"},n=a('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://forum.proxmox.com/" target="_blank" rel="noreferrer">https://forum.proxmox.com/</a></p><p><a href="https://blog.ilolicon.com/archives/615" target="_blank" rel="noreferrer">https://blog.ilolicon.com/archives/615</a></p><p><a href="https://github.com/Ella-Alinda/somescripts/blob/main/nat.sh" target="_blank" rel="noreferrer">https://github.com/Ella-Alinda/somescripts/blob/main/nat.sh</a></p><p><a href="https://pve.proxmox.com/pve-docs/qm.1.html" target="_blank" rel="noreferrer">https://pve.proxmox.com/pve-docs/qm.1.html</a></p><p><a href="https://down.idc.wiki/Image/realServer-Template/" target="_blank" rel="noreferrer">https://down.idc.wiki/Image/realServer-Template/</a></p><p><a href="https://mirrors.tuna.tsinghua.edu.cn/proxmox/" target="_blank" rel="noreferrer">https://mirrors.tuna.tsinghua.edu.cn/proxmox/</a></p><p><a href="https://github.com/roacn/pve/blob/main/pve.sh" target="_blank" rel="noreferrer">https://github.com/roacn/pve/blob/main/pve.sh</a></p><p><a href="https://github.com/spiritLHLS/lxc" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/lxc</a></p><p><a href="https://github.com/leitbogioro/Tools" target="_blank" rel="noreferrer">https://github.com/leitbogioro/Tools</a></p><p><a href="https://github.com/jiangcuo/Proxmox-Arm64" target="_blank" rel="noreferrer">https://github.com/jiangcuo/Proxmox-Arm64</a></p><p><a href="https://github.com/jiangcuo/run_proxmox_in_docker" target="_blank" rel="noreferrer">https://github.com/jiangcuo/run_proxmox_in_docker</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> for providing PVE guidance.</p>',15),p=[n];function s(i,h,l,m,c,g){return e(),t("div",null,p)}const d=r(o,[["render",s]]);export{b as __pageData,d as default};

View File

@@ -1 +0,0 @@
import{_ as r,v as e,b as t,R as a}from"./chunks/framework.70afa331.js";const b=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en_US/guide/pve_thanks.md","filePath":"en_US/guide/pve_thanks.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/pve_thanks.md"},n=a('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://forum.proxmox.com/" target="_blank" rel="noreferrer">https://forum.proxmox.com/</a></p><p><a href="https://blog.ilolicon.com/archives/615" target="_blank" rel="noreferrer">https://blog.ilolicon.com/archives/615</a></p><p><a href="https://github.com/Ella-Alinda/somescripts/blob/main/nat.sh" target="_blank" rel="noreferrer">https://github.com/Ella-Alinda/somescripts/blob/main/nat.sh</a></p><p><a href="https://pve.proxmox.com/pve-docs/qm.1.html" target="_blank" rel="noreferrer">https://pve.proxmox.com/pve-docs/qm.1.html</a></p><p><a href="https://down.idc.wiki/Image/realServer-Template/" target="_blank" rel="noreferrer">https://down.idc.wiki/Image/realServer-Template/</a></p><p><a href="https://mirrors.tuna.tsinghua.edu.cn/proxmox/" target="_blank" rel="noreferrer">https://mirrors.tuna.tsinghua.edu.cn/proxmox/</a></p><p><a href="https://github.com/roacn/pve/blob/main/pve.sh" target="_blank" rel="noreferrer">https://github.com/roacn/pve/blob/main/pve.sh</a></p><p><a href="https://github.com/spiritLHLS/lxc" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/lxc</a></p><p><a href="https://github.com/leitbogioro/Tools" target="_blank" rel="noreferrer">https://github.com/leitbogioro/Tools</a></p><p><a href="https://github.com/jiangcuo/Proxmox-Arm64" target="_blank" rel="noreferrer">https://github.com/jiangcuo/Proxmox-Arm64</a></p><p><a href="https://github.com/jiangcuo/run_proxmox_in_docker" target="_blank" rel="noreferrer">https://github.com/jiangcuo/run_proxmox_in_docker</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> for providing PVE guidance.</p>',15),p=[n];function s(i,h,l,m,c,g){return e(),t("div",null,p)}const d=r(o,[["render",s]]);export{b as __pageData,d as default};

View File

@@ -1 +1 @@
import{_ as e,v as t,b as n}from"./chunks/framework.70afa331.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en_US/developer/index.md","filePath":"en_US/developer/index.md","lastUpdated":1704976888000}'),a={name:"en_US/developer/index.md"};function o(l,i,r,p,m,s){return t(),n("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
import{_ as e,v as t,b as n}from"./chunks/framework.70afa331.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1705324601000}'),a={name:"en/developer/index.md"};function o(l,i,r,p,m,s){return t(),n("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};

View File

@@ -1 +1 @@
import{_ as e,v as t,b as n}from"./chunks/framework.70afa331.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en_US/developer/index.md","filePath":"en_US/developer/index.md","lastUpdated":1704976888000}'),a={name:"en_US/developer/index.md"};function o(l,i,r,p,m,s){return t(),n("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};
import{_ as e,v as t,b as n}from"./chunks/framework.70afa331.js";const d=JSON.parse('{"title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","description":"","frontmatter":{"layout":"home","title":"Development Manual","titleTemplate":"Welcome to the oneclickvirt Development Manual.","hero":{"name":"Development Manual","text":"Welcome to the oneclickvirt Development Manual.","image":"https://raw.githubusercontent.com/spiritlhls/pages/main/logo.png","actions":[{"theme":"brand","text":"Start Now →","link":"/en_US/developer/l10n"}]}},"headers":[],"relativePath":"en/developer/index.md","filePath":"en/developer/index.md","lastUpdated":1705324601000}'),a={name:"en/developer/index.md"};function o(l,i,r,p,m,s){return t(),n("div")}const v=e(a,[["render",o]]);export{d as __pageData,v as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as n,R as o}from"./chunks/framework.70afa331.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1705324601000}'),a={name:"en/developer/l10n.md"},i=o('<p><strong>You can follow these steps to support localization when developing new features</strong></p><h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;"></a></h2><ol><li>You can directly use the text configuration already available in <code>/resource/l10n/en-US.toml</code> to replace the text in the new feature.</li><li>If there is new text in the new feature, please refer to the configuration text in <code>en-US.toml</code>, pull the new text into the configuration files of other languages such as <code>en-US.toml</code>, and add translations.</li></ol><h2 id="adding-a-new-localized-text-file" tabindex="-1">Adding a new localized text file <a class="header-anchor" href="#adding-a-new-localized-text-file" aria-label="Permalink to &quot;Adding a new localized text file&quot;"></a></h2><ol><li>Add a new language text configuration in <code>/resource/l10n/</code>.</li><li>Pull existing text configurations from other languages in the new language text configuration.</li><li>Add translations for the new language text configuration.</li></ol>',5),l=[i];function r(d,s,c,u,f,h){return t(),n("div",null,l)}const x=e(a,[["render",r]]);export{p as __pageData,x as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as n,R as o}from"./chunks/framework.70afa331.js";const p=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/developer/l10n.md","filePath":"en/developer/l10n.md","lastUpdated":1705324601000}'),a={name:"en/developer/l10n.md"},i=o('<p><strong>You can follow these steps to support localization when developing new features</strong></p><h2 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;"></a></h2><ol><li>You can directly use the text configuration already available in <code>/resource/l10n/en-US.toml</code> to replace the text in the new feature.</li><li>If there is new text in the new feature, please refer to the configuration text in <code>en-US.toml</code>, pull the new text into the configuration files of other languages such as <code>en-US.toml</code>, and add translations.</li></ol><h2 id="adding-a-new-localized-text-file" tabindex="-1">Adding a new localized text file <a class="header-anchor" href="#adding-a-new-localized-text-file" aria-label="Permalink to &quot;Adding a new localized text file&quot;"></a></h2><ol><li>Add a new language text configuration in <code>/resource/l10n/</code>.</li><li>Pull existing text configurations from other languages in the new language text configuration.</li><li>Add translations for the new language text configuration.</li></ol>',5),l=[i];function r(d,s,c,u,f,h){return t(),n("div",null,l)}const x=e(a,[["render",r]]);export{p as __pageData,x as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as a,R as r}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/dashboard.md","filePath":"en/guide/dashboard.md","lastUpdated":1705324601000}'),o={name:"en/guide/dashboard.md"},i=r('<h2 id="preparation-work" tabindex="-1">Preparation Work <a class="header-anchor" href="#preparation-work" aria-label="Permalink to &quot;Preparation Work&quot;"></a></h2><p>To virtualize a server, you will need:</p><ol><li><p>A server (VPS or Dedicated Server) that can connect to the public internet. It&#39;s preferable if this server can access GitHub&#39;s RAW pages perfectly, as some projects and components might not use CDN acceleration.</p></li><li><p>A stable SSH connection from your local machine. If the connection isn&#39;t stable, you can use the <code>screen</code> command to create a window and execute commands within that window.</p></li></ol><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>If you&#39;re unfamiliar with the <code>screen</code> command, please search for relevant tutorials to learn it, or you can use <code>tmux</code> as an alternative.</p></div><ol start="3"><li>Ensure that the server&#39;s system and hardware meet the requirements specified by the corresponding project. Refer to the project&#39;s documentation for detailed information.</li></ol><p><strong>This document will use a VPS as an example, and the VPS should be clean without any native environment issues. If necessary, reinstall the system to ensure the initial environment&#39;s cleanliness.</strong></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The PVE project might cause problems on the host machine. If you&#39;re not familiar with debugging bugs and fixing system issues, it&#39;s not recommended to use PVE in a production environment. When using PVE-related scripts, make sure the host machine can be reinstalled at any time.</p></div><p>Please make sure to keep the original formatting by enclosing the translation in <code>and</code> for easy copying.</p><h2 id="project-repository" tabindex="-1">Project Repository <a class="header-anchor" href="#project-repository" aria-label="Permalink to &quot;Project Repository&quot;"></a></h2><p>Welcome Star and Fork, all resources are open source, no non-open source parts, reproduced as well as the use of please write on the source of this site, thank you!</p><h3 id="pve" tabindex="-1">PVE <a class="header-anchor" href="#pve" aria-label="Permalink to &quot;PVE&quot;"></a></h3><p>Allows for the creation of KVM virtualized virtual machines and LXC virtualized containers.</p><p><a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/pve</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Fpve&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><h3 id="lxd" tabindex="-1">LXD <a class="header-anchor" href="#lxd" aria-label="Permalink to &quot;LXD&quot;"></a></h3><p>LXC Virtualization Containers Can Be Created.</p><p><a href="https://github.com/spiritLHLS/lxd" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/lxd</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Flxd&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><h3 id="docker" tabindex="-1">Docker <a class="header-anchor" href="#docker" aria-label="Permalink to &quot;Docker&quot;"></a></h3><p>Docker virtualized containers Can Be Created.</p><p><a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/docker</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Fdocker&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><br><br>',24),s=[i];function n(c,l,p,h,d,m){return t(),a("div",null,s)}const b=e(o,[["render",n]]);export{f as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as a,R as r}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/dashboard.md","filePath":"en/guide/dashboard.md","lastUpdated":1705324601000}'),o={name:"en/guide/dashboard.md"},i=r('<h2 id="preparation-work" tabindex="-1">Preparation Work <a class="header-anchor" href="#preparation-work" aria-label="Permalink to &quot;Preparation Work&quot;"></a></h2><p>To virtualize a server, you will need:</p><ol><li><p>A server (VPS or Dedicated Server) that can connect to the public internet. It&#39;s preferable if this server can access GitHub&#39;s RAW pages perfectly, as some projects and components might not use CDN acceleration.</p></li><li><p>A stable SSH connection from your local machine. If the connection isn&#39;t stable, you can use the <code>screen</code> command to create a window and execute commands within that window.</p></li></ol><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>If you&#39;re unfamiliar with the <code>screen</code> command, please search for relevant tutorials to learn it, or you can use <code>tmux</code> as an alternative.</p></div><ol start="3"><li>Ensure that the server&#39;s system and hardware meet the requirements specified by the corresponding project. Refer to the project&#39;s documentation for detailed information.</li></ol><p><strong>This document will use a VPS as an example, and the VPS should be clean without any native environment issues. If necessary, reinstall the system to ensure the initial environment&#39;s cleanliness.</strong></p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>The PVE project might cause problems on the host machine. If you&#39;re not familiar with debugging bugs and fixing system issues, it&#39;s not recommended to use PVE in a production environment. When using PVE-related scripts, make sure the host machine can be reinstalled at any time.</p></div><p>Please make sure to keep the original formatting by enclosing the translation in <code>and</code> for easy copying.</p><h2 id="project-repository" tabindex="-1">Project Repository <a class="header-anchor" href="#project-repository" aria-label="Permalink to &quot;Project Repository&quot;"></a></h2><p>Welcome Star and Fork, all resources are open source, no non-open source parts, reproduced as well as the use of please write on the source of this site, thank you!</p><h3 id="pve" tabindex="-1">PVE <a class="header-anchor" href="#pve" aria-label="Permalink to &quot;PVE&quot;"></a></h3><p>Allows for the creation of KVM virtualized virtual machines and LXC virtualized containers.</p><p><a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/pve</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Fpve&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><h3 id="lxd" tabindex="-1">LXD <a class="header-anchor" href="#lxd" aria-label="Permalink to &quot;LXD&quot;"></a></h3><p>LXC Virtualization Containers Can Be Created.</p><p><a href="https://github.com/spiritLHLS/lxd" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/lxd</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Flxd&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><h3 id="docker" tabindex="-1">Docker <a class="header-anchor" href="#docker" aria-label="Permalink to &quot;Docker&quot;"></a></h3><p>Docker virtualized containers Can Be Created.</p><p><a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">https://github.com/spiritLHLS/docker</a></p><p><a href="https://hits.seeyoufarm.com" target="_blank" rel="noreferrer"><img src="https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FspiritLHLS%2Fdocker&amp;count_bg=%2379C83D&amp;title_bg=%23555555&amp;icon=&amp;icon_color=%23E7E7E7&amp;title=hits&amp;edge_flat=false" alt="Hits"></a></p><br><br>',24),s=[i];function n(c,l,p,h,d,m){return t(),a("div",null,s)}const b=e(o,[["render",n]]);export{f as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as a,v as e,b as s,R as t}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1705324601000}'),o={name:"en/guide/dashboardq.md"},n=t('<p>Give me a cup of coffee.</p><p><a href="https://ko-fi.com/spiritlhl" target="_blank" rel="noreferrer">https://ko-fi.com/spiritlhl</a></p><p>USDT-TRC20</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">TZ7nf8XAL9zQUo63xokazaBdCPeCgPfcwd</span></span></code></pre></div>',4),r=[n];function p(d,i,c,l,h,f){return e(),s("div",null,r)}const u=a(o,[["render",p]]);export{m as __pageData,u as default};

View File

@@ -0,0 +1 @@
import{_ as a,v as e,b as s,R as t}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/dashboardq.md","filePath":"en/guide/dashboardq.md","lastUpdated":1705324601000}'),o={name:"en/guide/dashboardq.md"},n=t('<p>Give me a cup of coffee.</p><p><a href="https://ko-fi.com/spiritlhl" target="_blank" rel="noreferrer">https://ko-fi.com/spiritlhl</a></p><p>USDT-TRC20</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">TZ7nf8XAL9zQUo63xokazaBdCPeCgPfcwd</span></span></code></pre></div>',4),r=[n];function p(d,i,c,l,h,f){return e(),s("div",null,r)}const u=a(o,[["render",p]]);export{m as __pageData,u as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as o,R as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1705324601000}'),n={name:"en/guide/docker/docker_precheck.md"},s=a('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;"></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don&#39;t confuse them with the customized parts.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If the host has an IPV6 network, the installation will change the network structure of the host, please make sure that the host can reset the system at any time and that there is no important data on the host before running.</p></div><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><p>Bulk or individual NAT server provisioning via docker</p><p>Default use of debian system optional alpine system, each container comes with 1 external ssh port, 25 internal and external network ports, you can choose whether to bind IPV6 address</p><p>The default creation of unprivileged containers, and does not mount and host docker daemon communication, so ** host created docker virtualization NAT servers can not be nested within the virtualization docker **</p><p>By default, lxcfs is installed and enabled, so that when querying resources within a container, CPU and memory use the configured view instead of the host&#39;s view.</p><p>Since most cloud servers have ext4 filesystems, even xfs filesystems do not enable the pquota option, so <strong>sharing the host&#39;s hard disk by default does not limit the disk size of each container</strong>.</p><h2 id="configuration-requirements" tabindex="-1">Configuration requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to &quot;Configuration requirements&quot;"></a></h2><p>The system can be installed docker can be used, the network can connect to the Github raw interface can be used, hardware configuration as long as not pull across the line, free hard disk has 3G on it!</p><p>(If you need to bind an IPV6 address, then please make sure to use the installation script of this set of scripts for docker installation, you need it to automatically preset some of the settings)</p><p>If the hardware resources are just a little bit better, need to limit more things and need to limit the size of the hard disk, you can use the LXD partition of the script batch open LXC virtualization containers</p><p>If the hardware is very good and you have a lot of resources, you can use the PVE partition script to batch open KVM virtualized VMs.</p>',15),r=[s];function i(c,d,h,u,l,p){return t(),o("div",null,r)}const k=e(n,[["render",i]]);export{m as __pageData,k as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as o,R as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Introduction","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_precheck.md","filePath":"en/guide/docker/docker_precheck.md","lastUpdated":1705324601000}'),n={name:"en/guide/docker/docker_precheck.md"},s=a('<h1 id="introduction" tabindex="-1">Introduction <a class="header-anchor" href="#introduction" aria-label="Permalink to &quot;Introduction&quot;"></a></h1><p>The following is an introduction to the non-customized sections. Please ensure that you don&#39;t confuse them with the customized parts.</p><div class="warning custom-block"><p class="custom-block-title">WARNING</p><p>If the host has an IPV6 network, the installation will change the network structure of the host, please make sure that the host can reset the system at any time and that there is no important data on the host before running.</p></div><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><p>Bulk or individual NAT server provisioning via docker</p><p>Default use of debian system optional alpine system, each container comes with 1 external ssh port, 25 internal and external network ports, you can choose whether to bind IPV6 address</p><p>The default creation of unprivileged containers, and does not mount and host docker daemon communication, so ** host created docker virtualization NAT servers can not be nested within the virtualization docker **</p><p>By default, lxcfs is installed and enabled, so that when querying resources within a container, CPU and memory use the configured view instead of the host&#39;s view.</p><p>Since most cloud servers have ext4 filesystems, even xfs filesystems do not enable the pquota option, so <strong>sharing the host&#39;s hard disk by default does not limit the disk size of each container</strong>.</p><h2 id="configuration-requirements" tabindex="-1">Configuration requirements <a class="header-anchor" href="#configuration-requirements" aria-label="Permalink to &quot;Configuration requirements&quot;"></a></h2><p>The system can be installed docker can be used, the network can connect to the Github raw interface can be used, hardware configuration as long as not pull across the line, free hard disk has 3G on it!</p><p>(If you need to bind an IPV6 address, then please make sure to use the installation script of this set of scripts for docker installation, you need it to automatically preset some of the settings)</p><p>If the hardware resources are just a little bit better, need to limit more things and need to limit the size of the hard disk, you can use the LXD partition of the script batch open LXC virtualization containers</p><p>If the hardware is very good and you have a lot of resources, you can use the PVE partition script to batch open KVM virtualized VMs.</p>',15),r=[s];function i(c,d,h,u,l,p){return t(),o("div",null,r)}const k=e(n,[["render",i]]);export{m as __pageData,k as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as a,b as s,R as n}from"./chunks/framework.70afa331.js";const h=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_qa.md","filePath":"en/guide/docker/docker_qa.md","lastUpdated":1705324601000}'),o={name:"en/guide/docker/docker_qa.md"},l=n('<h1 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h1><h2 id="common-docker-commands" tabindex="-1">Common Docker Commands <a class="header-anchor" href="#common-docker-commands" aria-label="Permalink to &quot;Common Docker Commands&quot;"></a></h2><p>Check real-time resource usage of a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker stats &lt;container_name&gt;</span></span></code></pre></div><p>Enter a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker exec -it &lt;container_name&gt; /bin/bash</span></span></code></pre></div><p>Clean Docker cache, remove unused resources including images, containers, networks, etc.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker system prune -a</span></span></code></pre></div><p>Uninstall all Docker images and containers</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rm -f $(docker ps -aq); docker rmi $(docker images -aq)</span></span></code></pre></div><p>View logs of a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker logs &lt;container_name_or_ID&gt;</span></span></code></pre></div><p>View overall disk usage of Docker</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker system df</span></span></code></pre></div><p>List all containers</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker ps -a</span></span></code></pre></div><p>List all images</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker images</span></span></code></pre></div><p>Remove a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rm -f &lt;container_name_or_ID&gt;</span></span></code></pre></div><p>Remove a specific image</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rmi &lt;image_name_or_ID&gt;</span></span></code></pre></div>',22),t=[l];function c(p,i,r,d,m,g){return a(),s("div",null,t)}const C=e(o,[["render",c]]);export{h as __pageData,C as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as a,b as s,R as n}from"./chunks/framework.70afa331.js";const h=JSON.parse('{"title":"Solve the puzzle","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/docker/docker_qa.md","filePath":"en/guide/docker/docker_qa.md","lastUpdated":1705324601000}'),o={name:"en/guide/docker/docker_qa.md"},l=n('<h1 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h1><h2 id="common-docker-commands" tabindex="-1">Common Docker Commands <a class="header-anchor" href="#common-docker-commands" aria-label="Permalink to &quot;Common Docker Commands&quot;"></a></h2><p>Check real-time resource usage of a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker stats &lt;container_name&gt;</span></span></code></pre></div><p>Enter a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker exec -it &lt;container_name&gt; /bin/bash</span></span></code></pre></div><p>Clean Docker cache, remove unused resources including images, containers, networks, etc.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker system prune -a</span></span></code></pre></div><p>Uninstall all Docker images and containers</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rm -f $(docker ps -aq); docker rmi $(docker images -aq)</span></span></code></pre></div><p>View logs of a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker logs &lt;container_name_or_ID&gt;</span></span></code></pre></div><p>View overall disk usage of Docker</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker system df</span></span></code></pre></div><p>List all containers</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker ps -a</span></span></code></pre></div><p>List all images</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker images</span></span></code></pre></div><p>Remove a specific container</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rm -f &lt;container_name_or_ID&gt;</span></span></code></pre></div><p>Remove a specific image</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">docker rmi &lt;image_name_or_ID&gt;</span></span></code></pre></div>',22),t=[l];function c(p,i,r,d,m,g){return a(),s("div",null,t)}const C=e(o,[["render",c]]);export{h as __pageData,C as default};

View File

@@ -0,0 +1 @@
import{_ as r,v as e,b as t,R as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1705324601000}'),o={name:"en/guide/docker/docker_thanks.md"},n=a('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://hub.docker.com/_/debian" target="_blank" rel="noreferrer">https://hub.docker.com/_/debian</a></p><p><a href="https://hub.docker.com/r/redroid/redroid" target="_blank" rel="noreferrer">https://hub.docker.com/r/redroid/redroid</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://guacamole.apache.org/doc/gug/introduction.html" target="_blank" rel="noreferrer">https://guacamole.apache.org/doc/gug/introduction.html</a></p><p><a href="https://blog.imoeq.com/oracle-arm-run-android-by-docker" target="_blank" rel="noreferrer">https://blog.imoeq.com/oracle-arm-run-android-by-docker</a></p><p><a href="https://blog.imoeq.com/scrcpy-run-a-android-web-page" target="_blank" rel="noreferrer">https://blog.imoeq.com/scrcpy-run-a-android-web-page</a></p><p><a href="https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/" target="_blank" rel="noreferrer">https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/</a></p><p><a href="https://releases.hashicorp.com/vagrant/" target="_blank" rel="noreferrer">https://releases.hashicorp.com/vagrant/</a></p><p><a href="https://github.com/hashicorp/vagrant/" target="_blank" rel="noreferrer">https://github.com/hashicorp/vagrant/</a></p><p><a href="https://app.vagrantup.com/peru" target="_blank" rel="noreferrer">https://app.vagrantup.com/peru</a></p><p><a href="https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1" target="_blank" rel="noreferrer">https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1</a></p><p><a href="https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4" target="_blank" rel="noreferrer">https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4</a></p><p><a href="https://github.com/jlesage/docker-firefox" target="_blank" rel="noreferrer">https://github.com/jlesage/docker-firefox</a></p><p><a href="https://github.com/linuxserver/docker-webtop" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-webtop</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/linuxserver/docker-chromium" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-chromium</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> and @CoiaPrant for providing docker guidance.</p>',19),c=[n];function h(i,p,s,l,d,g){return e(),t("div",null,c)}const b=r(o,[["render",h]]);export{m as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as r,v as e,b as t,R as a}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/docker/docker_thanks.md","filePath":"en/guide/docker/docker_thanks.md","lastUpdated":1705324601000}'),o={name:"en/guide/docker/docker_thanks.md"},n=a('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://hub.docker.com/_/debian" target="_blank" rel="noreferrer">https://hub.docker.com/_/debian</a></p><p><a href="https://hub.docker.com/r/redroid/redroid" target="_blank" rel="noreferrer">https://hub.docker.com/r/redroid/redroid</a></p><p><a href="https://github.com/NetrisTV/ws-scrcpy" target="_blank" rel="noreferrer">https://github.com/NetrisTV/ws-scrcpy</a></p><p><a href="https://guacamole.apache.org/doc/gug/introduction.html" target="_blank" rel="noreferrer">https://guacamole.apache.org/doc/gug/introduction.html</a></p><p><a href="https://blog.imoeq.com/oracle-arm-run-android-by-docker" target="_blank" rel="noreferrer">https://blog.imoeq.com/oracle-arm-run-android-by-docker</a></p><p><a href="https://blog.imoeq.com/scrcpy-run-a-android-web-page" target="_blank" rel="noreferrer">https://blog.imoeq.com/scrcpy-run-a-android-web-page</a></p><p><a href="https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/" target="_blank" rel="noreferrer">https://www.howtoforge.com/how-to-install-apache-guacamole-as-docker-container-on-ubuntu/</a></p><p><a href="https://releases.hashicorp.com/vagrant/" target="_blank" rel="noreferrer">https://releases.hashicorp.com/vagrant/</a></p><p><a href="https://github.com/hashicorp/vagrant/" target="_blank" rel="noreferrer">https://github.com/hashicorp/vagrant/</a></p><p><a href="https://app.vagrantup.com/peru" target="_blank" rel="noreferrer">https://app.vagrantup.com/peru</a></p><p><a href="https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1" target="_blank" rel="noreferrer">https://medium.com/axon-technologies/installing-a-windows-virtual-machine-in-a-linux-docker-container-c78e4c3f9ba1</a></p><p><a href="https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4" target="_blank" rel="noreferrer">https://forum.garudalinux.org/t/error-while-attempting-to-create-a-virtual-machine-with-virt-manager/18534/4</a></p><p><a href="https://github.com/jlesage/docker-firefox" target="_blank" rel="noreferrer">https://github.com/jlesage/docker-firefox</a></p><p><a href="https://github.com/linuxserver/docker-webtop" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-webtop</a></p><p><a href="https://github.com/yoursunny/ndpresponder" target="_blank" rel="noreferrer">https://github.com/yoursunny/ndpresponder</a></p><p><a href="https://github.com/linuxserver/docker-chromium" target="_blank" rel="noreferrer">https://github.com/linuxserver/docker-chromium</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> and @CoiaPrant for providing docker guidance.</p>',19),c=[n];function h(i,p,s,l,d,g){return e(),t("div",null,c)}const b=r(o,[["render",h]]);export{m as __pageData,b as default};

View File

@@ -0,0 +1,27 @@
import{_ as e,v as t,b as a,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Attach free IPV6 address segments to host machines","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1705324601000}'),n={name:"en/guide/incus/incus_custom.md"},o=s(`<h1 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to &quot;Attach free IPV6 address segments to host machines&quot;"></a></h1><p>Some machines don&#39;t have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn&#39;t have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 或 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>自定义</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h2 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to &quot;Initial environment modifications&quot;"></a></h2><p>Execute</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">touch /etc/cloud/cloud-init.disabled</span></span></code></pre></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active systemd-networkd</span></span></code></pre></div><p>and</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active networking</span></span></code></pre></div><p>See which case this falls into, if it&#39;s the former active and the latter inactive, you need to reinstall/DD a system that isn&#39;t configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;"># Judge for yourself whether you need to disable the original network management or not</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl stop systemd-networkd</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl disable systemd-networkd</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl stop systemd-networkd.socket</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl disable systemd-networkd.socket</span></span></code></pre></div><p>If you want to install <code>ifupdown</code> to control the network, this tool is available on all major linux systems.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install ifupdown -y</span></span></code></pre></div><p>If you want to install <code>ifupdown2</code> for network management, which is generally only available on debian systems, you can install</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install ifupdown2 -y</span></span></code></pre></div><p>After the installation is complete, select which package is installed behind to convert the format.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl start networking</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl enable networking</span></span></code></pre></div><p>Then restart the server, check whether the machine&#39;s network will be rebooted due to the modification of the case of loss of connection, and run<code>uptime</code>to observe that the startup has been more than 1 minute before proceeding to the next steps</p><p>If it is inactive and active, there is no need to switch the network management program and you can proceed directly to the next step.</p><p>Since some servers have default intranet IPV6 routes that will conflict with the tunnel, you can use the following command to remove the default IPV6 routes</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">default_route=$(ip -6 route show | awk &#39;/default via/{print $3}&#39;) &amp;&amp; [ -n &quot;$default_route&quot; ] &amp;&amp; ip -6 route del default via $default_route dev eth0</span></span></code></pre></div><p>This assumes that your client&#39;s server&#39;s default NIC is <code>eth0</code>, you can use <code>ip -6 route</code> to see the default route and replace it, the default route starts with <code>default via</code>, and uses <code>dev</code> to specify the default NIC, you just need to find it according to this rule</p><h2 id="tunnelbroker-net" tabindex="-1">tunnelbroker_net <a class="header-anchor" href="#tunnelbroker-net" aria-label="Permalink to &quot;tunnelbroker_net&quot;"></a></h2><p>Combined with a script that opens containers with IPV6 addresses with a single click, you can attach an IPV6 address from he to each container</p><p>The downside is that the addresses are dark/dirty, and cloudflare&#39;s cdn will most likely not be able to latch on, test it yourself</p><ol><li>Register an account at <a href="https://tunnelbroker.net/" target="_blank" rel="noreferrer">https://tunnelbroker.net/</a> and click<code>Create Regular Tunnel</code>on the left.</li></ol><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/35923be5-821f-45c8-8401-962ea3f97726" alt="1"></p><ol start="2"><li>Fill in your server&#39;s IPV4 address in the red box, choose a connection point that is physically close to your server, for example, if your machine is in Los Angeles, choose a connection point on the west coast of the United States, and then click<code>Create Tunnel</code>to create the tunnel when you are prompted by the green box!</li></ol><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/cab04113-4d6a-4d6f-9952-d3851057fc4a" alt="2"></p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/518dc62a-c8d0-48e3-bb13-befc39348990" alt="3"></p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/6188de3f-e83c-400e-9594-dd3f73aaf46a" alt="4"></p><ol start="3"><li>Wait for the following screen, click<code>Example Configurations</code>and select the corresponding system, for example, the host of incus is definitely Debian/Ubuntu.</li></ol><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/9f0045fc-b1ac-4954-9ecd-1fba47d07d8a" alt="5"></p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/2fb7c951-371c-452c-b775-78f69b980a2c" alt="6"></p><ol start="4"><li>The boxed part is the file to be modified and the content to be filled in.</li></ol><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/c0156902-b4c0-4001-823e-50f611215393" alt="7"></p><ol start="5"><li>Exchange the format of the command then add IPV6 settings to your network configuration file.</li></ol><p>Then open <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> and select<code>Option</code>for<code>TunnelBrokerNet</code>, another drop-down selection box to choose the name of the package you successfully installed previously, then paste what you copied in the input box.</p><p>Then click<code>Covert</code>to convert the format, and wait for the page to refresh to show the converted configuration file.</p><p>Then use vim or vi to modify the<code>/etc/network/interfaces</code>file to add content, or modify the following command to add new content</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Here, copy and paste the contents of the configuration file in the red box, and then run this command.</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you can use<code>cat /etc/network/interfaces</code>to see if the configuration file is written correctly.</p><ol start="6"><li>If all of the above is OK, then you need to enable the network interfaces</li></ol><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><ol start="7"><li>Then you can test the IP address of the network interface.</li></ol><p>Execute the<code>ifconfig</code>command, and there should be a he-ipv6 interface, similar to the following:</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/1760af85-2b60-4352-ad8c-3c69e49fc1e4" alt="8"></p><p>Or execute:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl ipv6.ip.sb</span></span></code></pre></div><p>Returns the IPV6 address you bound to</p><ol start="8"><li>Additional settings for NAT VPS</li></ol><p>IPv4 NAT VPS may require some additional settings beyond the IP replacement operation mentioned earlier, otherwise it may still not be able to access the IPv6 network.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install ufw -y</span></span>
<span class="line"><span style="color:#A6ACCD;">ufw allow 41</span></span></code></pre></div><p>Add the relevant routing rules</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">route -A inet6 add ::/0 dev he-ipv6</span></span></code></pre></div><ol start="9"><li>If the IPV6 network is no longer needed and you want to delete it, delete the he-ipv6 network interface configuration.</li></ol><p>If you want to delete the he-ipv6 network interface configuration (if not, it will be enabled automatically after reboot), remember to modify the<code>/etc/network/interfaces</code>file to remove the content added in the red box before.</p><p>Then reboot the server to remove the</p><h2 id="tunnelbroker-ch" tabindex="-1">tunnelbroker_ch <a class="header-anchor" href="#tunnelbroker-ch" aria-label="Permalink to &quot;tunnelbroker_ch&quot;"></a></h2><p>Similar to the above, first register an account at <a href="https://www.tunnelbroker.ch/" target="_blank" rel="noreferrer">https://www.tunnelbroker.ch/</a> and click on the activation email after registering.</p><p>Then you have to fill in the IPV4 address of your server.</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/e018c7bc-e73c-4c68-88b6-b073f0dbd150" alt=""></p><p>After creating an account, you need to go to the Config page instead of the details page.</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/d919dda7-571d-45b1-9d2f-03f29866269e" alt=""></p><p>Don&#39;t use the following page, first refresh the page without the light blue box and then stop refreshing it</p><p>Don&#39;t stop refreshing after the light blue box pops up</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/aefd1477-d5f5-4a4e-a66c-80ef5f9250c6" alt=""></p><p>Record the content of the last red box on the following page, and prepare to modify the host configuration file.</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/9329974c-9549-4ff2-a8a0-a53c00e2863d" alt=""></p><p>Copy the last red box of the page without the blank lines.</p><p>Then open <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> and select<code>Option</code>for<code>TunnelBrokerCh</code>, another drop-down selection box to choose the name of the package you successfully installed previously, then paste what you copied in the input box.</p><p>Then click<code>Covert</code>to convert the format, and wait for the page to refresh to show the converted configuration file.</p><p>Then use vim or vi to modify the<code>/etc/network/interfaces</code>file to add content, or modify the following command to add new content</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Modify the</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you&#39;ll need to reboot the system a bit, or run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><p>Make sure the environment is OK before you do anything else</p><h2 id="ip4market-ru" tabindex="-1">ip4market_ru <a class="header-anchor" href="#ip4market-ru" aria-label="Permalink to &quot;ip4market_ru&quot;"></a></h2><p>Similar to the above, first register an account at <a href="https://tb.ip4market.ru/" target="_blank" rel="noreferrer">https://tb.ip4market.ru</a>, the registered email address must be an unseen email address, the phone number can be written randomly without verification, and the IP address should be the IPV4 address of the host you want to attach.</p><p>The IP address is the IPV4 address of the host computer you are attaching to<img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/24df37f2-12fe-49b6-87df-f07213346fbe" alt=""></p><p>Then you have to go through Recaptcha&#39;s human-machine verification, and click register.</p><p>You will receive an activation email with your password, memorize it.</p><p>Then login on the homepage</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/38b3f5a7-a5e1-47e0-b13e-8570e946c61c" alt=""></p><p>Then you will be taken to this page</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/fc1d38b9-b45a-41de-a931-5dbe96e9791c" alt=""></p><p>Hold down the right button and copy the four lines framed in red, which are</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">Server IPv4.</span></span>
<span class="line"><span style="color:#A6ACCD;">Client IPv4</span></span>
<span class="line"><span style="color:#A6ACCD;">Server IPv6</span></span>
<span class="line"><span style="color:#A6ACCD;">Client IPv6</span></span></code></pre></div><p>For these four lines, press ctrl+c to copy or right-click to copy</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/69c946e6-e82f-4665-b3c1-3c97e27f8487" alt=""></p><p>Then open <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> and select<code>Option</code>for<code>ip4market</code>, another drop-down selection box to choose the name of the package you successfully installed previously, then paste what you copied in the input box.</p><p>Then click<code>Covert</code>to convert the formatting</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/b9ca3ee1-4f13-4e10-bdc8-1ed1cc23ab05" alt=""></p><p>Then the page will be refreshed automatically and you need to modify the contents of the<code>/etc/network/interfaces</code>file with vim or vi commands, or modify the following commands to add new contents.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Modify the</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you&#39;ll need to reboot the system a bit, or run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><p>Make sure the environment is OK before you do anything else</p><h2 id="netassist-ua" tabindex="-1">netassist_ua <a class="header-anchor" href="#netassist-ua" aria-label="Permalink to &quot;netassist_ua&quot;"></a></h2><p>Similar to the above operation, first in <a href="https://tb.netassist.ua/" target="_blank" rel="noreferrer">https://tb.netassist.ua/</a> register an account first, after registration, click on the activation of the mail, the activation page will have a password display, remember to record!</p><p>Then fill in the IPV4 address of your server, you can change it later, just fill in a random one first.</p><p>Then you will get to this page</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/4af680d4-3b01-495a-91d1-3cf4f187d0df" alt="a"></p><p>The first red box is the location of your host&#39;s IPV4 address, if you want to modify it, modify it there, and then click change to save.</p><p>The second red box is for\`\`\`Linux\`\`, and then click on show</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/099d43a0-0397-4e02-9275-9ec3099c0ff1" alt="b"></p><p>The above content will appear, copy all the boxed parts without blank lines.</p><p>Then open <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> and select<code>Option</code>for<code>NetAssist</code>, another drop-down selection box to choose the name of the package you successfully installed previously, then paste what you copied in the input box.</p><p>Then click on<code>Covert</code>to convert the formatting</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/7324c7ff-d22f-4c17-b3c2-b5338ca6dfee" alt="c"></p><p>Then the page will be refreshed automatically and you need to modify the contents of the<code>/etc/network/interfaces</code>file with vim or vi commands, or modify the following commands to add new contents.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Modify the</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you&#39;ll need to reboot the system a bit, or run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><p>Make sure the environment is OK before you do anything else</p><h2 id="transfer-ipv6-subnets-between-different-servers" tabindex="-1">Transfer IPV6 subnets between different servers <a class="header-anchor" href="#transfer-ipv6-subnets-between-different-servers" aria-label="Permalink to &quot;Transfer IPV6 subnets between different servers&quot;"></a></h2><p>Related repository: <a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></p><p>This method will provide a way to split a /80 out of the IPV6 segment on A and attach it to B to use.</p><h3 id="features" tabindex="-1">Features <a class="header-anchor" href="#features" aria-label="Permalink to &quot;Features&quot;"></a></h3><ul><li>Self-built IPv6 tunnel for sit/gre/ipip protocols</li><li>Support to customize the IPV6 subnet size to be cut out, and the appropriate IPV6 subnet information in CIDR format will be calculated automatically.</li><li>Automatically recognizes the IPV6 subnet size of the server side</li><li>will automatically set up the tunnel server and print the commands that the client needs to execute</li><li>Setting up the IPV6 tunnel is easy to understand and easy to remove</li></ul><h3 id="environmental-preparation" tabindex="-1">Environmental Preparation <a class="header-anchor" href="#environmental-preparation" aria-label="Permalink to &quot;Environmental Preparation&quot;"></a></h3><table><thead><tr><th>VPS(A)</th><th>VPS(B)</th></tr></thead><tbody><tr><td>one IPV4 address (server_ipv4)</td><td>one IPV4 address (clinet_ipv4)</td></tr><tr><td>one IPV6 subnet</td><td>no IPV6 address</td></tr><tr><td>Hereafter referred to as server</td><td>Hereafter referred to as client</td></tr></tbody></table><h3 id="usage" tabindex="-1">Usage <a class="header-anchor" href="#usage" aria-label="Permalink to &quot;Usage&quot;"></a></h3><p>Download Script</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -L https://raw.githubusercontent.com/oneclickvirt/6in4/main/6in4.sh -o 6in4.sh &amp;&amp; chmod +x 6in4.sh</span></span></code></pre></div><p>Execute it</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">./6in4.sh client_ipv4 &lt;mode_type&gt; &lt;subnet_size&gt;</span></span></code></pre></div><table><thead><tr><th>Options</th><th>Optional Option 1</th><th>Optional Option 2</th><th>Optional Option 3</th></tr></thead><tbody><tr><td>&lt;mode_type&gt;</td><td>gre</td><td>sit</td><td>ipip</td></tr><tr><td>&lt;subnet_size&gt;</td><td>64</td><td>80</td><td>112</td></tr></tbody></table><p><code>&lt;mode_type&gt;</code> only support those three protocols for now, the more advanced the more recommended, no fill in the default is <code>sit</code> protocol</p><p><code>&lt;subnet_size&gt;</code> as long as it is larger than the original system subnet mask, and is a multiple of 8, if you don&#39;t fill it in, it defaults to <code>80</code>.</p><p>Remember to replace <code>client_ipv4</code> with the IPV4 address of the machine you want to attach IPV6 to, and the command you need to execute on the client side will be sent back to you after execution, see the instructions after execution for details.</p><p>To prevent you from forgetting to copy the commands, the commands themselves will be written to the <code>6in4.log</code> file under the current path, you can use <code>cat 6in4.log</code> to query the commands that need to be executed on the client side</p><p>For copied commands, be sure to select option <code>6in4</code> in <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> before converting!</p><p>Then the page will be refreshed automatically and you need to modify the contents of the<code>/etc/network/interfaces</code>file with vim or vi commands, or modify the following commands to add new contents.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Modify here</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you&#39;ll need to reboot the system a bit, or run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><p>Make sure the environment is OK before you do anything else</p><h3 id="check-server-status" tabindex="-1">Check server status <a class="header-anchor" href="#check-server-status" aria-label="Permalink to &quot;Check server status&quot;"></a></h3><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl status ndpresponder</span></span></code></pre></div><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ip addr show</span></span></code></pre></div><h3 id="check-client-status" tabindex="-1">Check client status <a class="header-anchor" href="#check-client-status" aria-label="Permalink to &quot;Check client status&quot;"></a></h3><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ip addr show</span></span></code></pre></div><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl ipv6.ip.sb</span></span></code></pre></div><h3 id="delete-tunnel" tabindex="-1">Delete tunnel <a class="header-anchor" href="#delete-tunnel" aria-label="Permalink to &quot;Delete tunnel&quot;"></a></h3><p>server</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ip link set server-ipv6 down</span></span>
<span class="line"><span style="color:#A6ACCD;">ip tunnel del server-ipv6</span></span></code></pre></div><p>client</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ip link set user-ipv6 down</span></span>
<span class="line"><span style="color:#A6ACCD;">ip tunnel del user-ipv6</span></span></code></pre></div><p>The above deletion is only temporary, for permanent deletion you must modify and delete the contents of the <code>/etc/network/interfaces</code> file that you have previously added.</p><h3 id="one-more-thing" tabindex="-1">one more thing <a class="header-anchor" href="#one-more-thing" aria-label="Permalink to &quot;one more thing&quot;"></a></h3><p>In fact <a href="https://tunnelbroker.net/" target="_blank" rel="noreferrer">https://tunnelbroker.net/</a> supports the application of IPV6 subnets of size <code>/48</code></p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/07987e41-0158-430c-bcc5-f7cd8652b2c4" alt=""></p><p>Make the request here, then when converting the format change the original <code>/64</code> IPV6 address to a <code>/48</code> IPV6 address and you&#39;ll get a larger IPV6 subnet!</p>`,161),i=[o];function l(r,c,p,d,h,u){return t(),a("div",null,i)}const g=e(n,[["render",l]]);export{m as __pageData,g as default};

View File

@@ -0,0 +1,27 @@
import{_ as e,v as t,b as a,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Attach free IPV6 address segments to host machines","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_custom.md","filePath":"en/guide/incus/incus_custom.md","lastUpdated":1705324601000}'),n={name:"en/guide/incus/incus_custom.md"},o=s(`<h1 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to &quot;Attach free IPV6 address segments to host machines&quot;"></a></h1><p>Some machines don&#39;t have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn&#39;t have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 或 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>自定义</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h2 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to &quot;Initial environment modifications&quot;"></a></h2><p>Execute</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">touch /etc/cloud/cloud-init.disabled</span></span></code></pre></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active systemd-networkd</span></span></code></pre></div><p>and</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active networking</span></span></code></pre></div><p>See which case this falls into, if it&#39;s the former active and the latter inactive, you need to reinstall/DD a system that isn&#39;t configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;"># Judge for yourself whether you need to disable the original network management or not</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl stop systemd-networkd</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl disable systemd-networkd</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl stop systemd-networkd.socket</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl disable systemd-networkd.socket</span></span></code></pre></div><p>If you want to install <code>ifupdown</code> to control the network, this tool is available on all major linux systems.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install ifupdown -y</span></span></code></pre></div><p>If you want to install <code>ifupdown2</code> for network management, which is generally only available on debian systems, you can install</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install ifupdown2 -y</span></span></code></pre></div><p>After the installation is complete, select which package is installed behind to convert the format.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl start networking</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl enable networking</span></span></code></pre></div><p>Then restart the server, check whether the machine&#39;s network will be rebooted due to the modification of the case of loss of connection, and run<code>uptime</code>to observe that the startup has been more than 1 minute before proceeding to the next steps</p><p>If it is inactive and active, there is no need to switch the network management program and you can proceed directly to the next step.</p><p>Since some servers have default intranet IPV6 routes that will conflict with the tunnel, you can use the following command to remove the default IPV6 routes</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">default_route=$(ip -6 route show | awk &#39;/default via/{print $3}&#39;) &amp;&amp; [ -n &quot;$default_route&quot; ] &amp;&amp; ip -6 route del default via $default_route dev eth0</span></span></code></pre></div><p>This assumes that your client&#39;s server&#39;s default NIC is <code>eth0</code>, you can use <code>ip -6 route</code> to see the default route and replace it, the default route starts with <code>default via</code>, and uses <code>dev</code> to specify the default NIC, you just need to find it according to this rule</p><h2 id="tunnelbroker-net" tabindex="-1">tunnelbroker_net <a class="header-anchor" href="#tunnelbroker-net" aria-label="Permalink to &quot;tunnelbroker_net&quot;"></a></h2><p>Combined with a script that opens containers with IPV6 addresses with a single click, you can attach an IPV6 address from he to each container</p><p>The downside is that the addresses are dark/dirty, and cloudflare&#39;s cdn will most likely not be able to latch on, test it yourself</p><ol><li>Register an account at <a href="https://tunnelbroker.net/" target="_blank" rel="noreferrer">https://tunnelbroker.net/</a> and click<code>Create Regular Tunnel</code>on the left.</li></ol><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/35923be5-821f-45c8-8401-962ea3f97726" alt="1"></p><ol start="2"><li>Fill in your server&#39;s IPV4 address in the red box, choose a connection point that is physically close to your server, for example, if your machine is in Los Angeles, choose a connection point on the west coast of the United States, and then click<code>Create Tunnel</code>to create the tunnel when you are prompted by the green box!</li></ol><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/cab04113-4d6a-4d6f-9952-d3851057fc4a" alt="2"></p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/518dc62a-c8d0-48e3-bb13-befc39348990" alt="3"></p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/6188de3f-e83c-400e-9594-dd3f73aaf46a" alt="4"></p><ol start="3"><li>Wait for the following screen, click<code>Example Configurations</code>and select the corresponding system, for example, the host of incus is definitely Debian/Ubuntu.</li></ol><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/9f0045fc-b1ac-4954-9ecd-1fba47d07d8a" alt="5"></p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/2fb7c951-371c-452c-b775-78f69b980a2c" alt="6"></p><ol start="4"><li>The boxed part is the file to be modified and the content to be filled in.</li></ol><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/c0156902-b4c0-4001-823e-50f611215393" alt="7"></p><ol start="5"><li>Exchange the format of the command then add IPV6 settings to your network configuration file.</li></ol><p>Then open <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> and select<code>Option</code>for<code>TunnelBrokerNet</code>, another drop-down selection box to choose the name of the package you successfully installed previously, then paste what you copied in the input box.</p><p>Then click<code>Covert</code>to convert the format, and wait for the page to refresh to show the converted configuration file.</p><p>Then use vim or vi to modify the<code>/etc/network/interfaces</code>file to add content, or modify the following command to add new content</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Here, copy and paste the contents of the configuration file in the red box, and then run this command.</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you can use<code>cat /etc/network/interfaces</code>to see if the configuration file is written correctly.</p><ol start="6"><li>If all of the above is OK, then you need to enable the network interfaces</li></ol><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><ol start="7"><li>Then you can test the IP address of the network interface.</li></ol><p>Execute the<code>ifconfig</code>command, and there should be a he-ipv6 interface, similar to the following:</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/1760af85-2b60-4352-ad8c-3c69e49fc1e4" alt="8"></p><p>Or execute:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl ipv6.ip.sb</span></span></code></pre></div><p>Returns the IPV6 address you bound to</p><ol start="8"><li>Additional settings for NAT VPS</li></ol><p>IPv4 NAT VPS may require some additional settings beyond the IP replacement operation mentioned earlier, otherwise it may still not be able to access the IPv6 network.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install ufw -y</span></span>
<span class="line"><span style="color:#A6ACCD;">ufw allow 41</span></span></code></pre></div><p>Add the relevant routing rules</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">route -A inet6 add ::/0 dev he-ipv6</span></span></code></pre></div><ol start="9"><li>If the IPV6 network is no longer needed and you want to delete it, delete the he-ipv6 network interface configuration.</li></ol><p>If you want to delete the he-ipv6 network interface configuration (if not, it will be enabled automatically after reboot), remember to modify the<code>/etc/network/interfaces</code>file to remove the content added in the red box before.</p><p>Then reboot the server to remove the</p><h2 id="tunnelbroker-ch" tabindex="-1">tunnelbroker_ch <a class="header-anchor" href="#tunnelbroker-ch" aria-label="Permalink to &quot;tunnelbroker_ch&quot;"></a></h2><p>Similar to the above, first register an account at <a href="https://www.tunnelbroker.ch/" target="_blank" rel="noreferrer">https://www.tunnelbroker.ch/</a> and click on the activation email after registering.</p><p>Then you have to fill in the IPV4 address of your server.</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/e018c7bc-e73c-4c68-88b6-b073f0dbd150" alt=""></p><p>After creating an account, you need to go to the Config page instead of the details page.</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/d919dda7-571d-45b1-9d2f-03f29866269e" alt=""></p><p>Don&#39;t use the following page, first refresh the page without the light blue box and then stop refreshing it</p><p>Don&#39;t stop refreshing after the light blue box pops up</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/aefd1477-d5f5-4a4e-a66c-80ef5f9250c6" alt=""></p><p>Record the content of the last red box on the following page, and prepare to modify the host configuration file.</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/9329974c-9549-4ff2-a8a0-a53c00e2863d" alt=""></p><p>Copy the last red box of the page without the blank lines.</p><p>Then open <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> and select<code>Option</code>for<code>TunnelBrokerCh</code>, another drop-down selection box to choose the name of the package you successfully installed previously, then paste what you copied in the input box.</p><p>Then click<code>Covert</code>to convert the format, and wait for the page to refresh to show the converted configuration file.</p><p>Then use vim or vi to modify the<code>/etc/network/interfaces</code>file to add content, or modify the following command to add new content</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Modify the</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you&#39;ll need to reboot the system a bit, or run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><p>Make sure the environment is OK before you do anything else</p><h2 id="ip4market-ru" tabindex="-1">ip4market_ru <a class="header-anchor" href="#ip4market-ru" aria-label="Permalink to &quot;ip4market_ru&quot;"></a></h2><p>Similar to the above, first register an account at <a href="https://tb.ip4market.ru/" target="_blank" rel="noreferrer">https://tb.ip4market.ru</a>, the registered email address must be an unseen email address, the phone number can be written randomly without verification, and the IP address should be the IPV4 address of the host you want to attach.</p><p>The IP address is the IPV4 address of the host computer you are attaching to<img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/24df37f2-12fe-49b6-87df-f07213346fbe" alt=""></p><p>Then you have to go through Recaptcha&#39;s human-machine verification, and click register.</p><p>You will receive an activation email with your password, memorize it.</p><p>Then login on the homepage</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/38b3f5a7-a5e1-47e0-b13e-8570e946c61c" alt=""></p><p>Then you will be taken to this page</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/fc1d38b9-b45a-41de-a931-5dbe96e9791c" alt=""></p><p>Hold down the right button and copy the four lines framed in red, which are</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">Server IPv4.</span></span>
<span class="line"><span style="color:#A6ACCD;">Client IPv4</span></span>
<span class="line"><span style="color:#A6ACCD;">Server IPv6</span></span>
<span class="line"><span style="color:#A6ACCD;">Client IPv6</span></span></code></pre></div><p>For these four lines, press ctrl+c to copy or right-click to copy</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/69c946e6-e82f-4665-b3c1-3c97e27f8487" alt=""></p><p>Then open <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> and select<code>Option</code>for<code>ip4market</code>, another drop-down selection box to choose the name of the package you successfully installed previously, then paste what you copied in the input box.</p><p>Then click<code>Covert</code>to convert the formatting</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/b9ca3ee1-4f13-4e10-bdc8-1ed1cc23ab05" alt=""></p><p>Then the page will be refreshed automatically and you need to modify the contents of the<code>/etc/network/interfaces</code>file with vim or vi commands, or modify the following commands to add new contents.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Modify the</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you&#39;ll need to reboot the system a bit, or run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><p>Make sure the environment is OK before you do anything else</p><h2 id="netassist-ua" tabindex="-1">netassist_ua <a class="header-anchor" href="#netassist-ua" aria-label="Permalink to &quot;netassist_ua&quot;"></a></h2><p>Similar to the above operation, first in <a href="https://tb.netassist.ua/" target="_blank" rel="noreferrer">https://tb.netassist.ua/</a> register an account first, after registration, click on the activation of the mail, the activation page will have a password display, remember to record!</p><p>Then fill in the IPV4 address of your server, you can change it later, just fill in a random one first.</p><p>Then you will get to this page</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/4af680d4-3b01-495a-91d1-3cf4f187d0df" alt="a"></p><p>The first red box is the location of your host&#39;s IPV4 address, if you want to modify it, modify it there, and then click change to save.</p><p>The second red box is for\`\`\`Linux\`\`, and then click on show</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/099d43a0-0397-4e02-9275-9ec3099c0ff1" alt="b"></p><p>The above content will appear, copy all the boxed parts without blank lines.</p><p>Then open <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> and select<code>Option</code>for<code>NetAssist</code>, another drop-down selection box to choose the name of the package you successfully installed previously, then paste what you copied in the input box.</p><p>Then click on<code>Covert</code>to convert the formatting</p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/7324c7ff-d22f-4c17-b3c2-b5338ca6dfee" alt="c"></p><p>Then the page will be refreshed automatically and you need to modify the contents of the<code>/etc/network/interfaces</code>file with vim or vi commands, or modify the following commands to add new contents.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Modify the</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you&#39;ll need to reboot the system a bit, or run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><p>Make sure the environment is OK before you do anything else</p><h2 id="transfer-ipv6-subnets-between-different-servers" tabindex="-1">Transfer IPV6 subnets between different servers <a class="header-anchor" href="#transfer-ipv6-subnets-between-different-servers" aria-label="Permalink to &quot;Transfer IPV6 subnets between different servers&quot;"></a></h2><p>Related repository: <a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></p><p>This method will provide a way to split a /80 out of the IPV6 segment on A and attach it to B to use.</p><h3 id="features" tabindex="-1">Features <a class="header-anchor" href="#features" aria-label="Permalink to &quot;Features&quot;"></a></h3><ul><li>Self-built IPv6 tunnel for sit/gre/ipip protocols</li><li>Support to customize the IPV6 subnet size to be cut out, and the appropriate IPV6 subnet information in CIDR format will be calculated automatically.</li><li>Automatically recognizes the IPV6 subnet size of the server side</li><li>will automatically set up the tunnel server and print the commands that the client needs to execute</li><li>Setting up the IPV6 tunnel is easy to understand and easy to remove</li></ul><h3 id="environmental-preparation" tabindex="-1">Environmental Preparation <a class="header-anchor" href="#environmental-preparation" aria-label="Permalink to &quot;Environmental Preparation&quot;"></a></h3><table><thead><tr><th>VPS(A)</th><th>VPS(B)</th></tr></thead><tbody><tr><td>one IPV4 address (server_ipv4)</td><td>one IPV4 address (clinet_ipv4)</td></tr><tr><td>one IPV6 subnet</td><td>no IPV6 address</td></tr><tr><td>Hereafter referred to as server</td><td>Hereafter referred to as client</td></tr></tbody></table><h3 id="usage" tabindex="-1">Usage <a class="header-anchor" href="#usage" aria-label="Permalink to &quot;Usage&quot;"></a></h3><p>Download Script</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -L https://raw.githubusercontent.com/oneclickvirt/6in4/main/6in4.sh -o 6in4.sh &amp;&amp; chmod +x 6in4.sh</span></span></code></pre></div><p>Execute it</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">./6in4.sh client_ipv4 &lt;mode_type&gt; &lt;subnet_size&gt;</span></span></code></pre></div><table><thead><tr><th>Options</th><th>Optional Option 1</th><th>Optional Option 2</th><th>Optional Option 3</th></tr></thead><tbody><tr><td>&lt;mode_type&gt;</td><td>gre</td><td>sit</td><td>ipip</td></tr><tr><td>&lt;subnet_size&gt;</td><td>64</td><td>80</td><td>112</td></tr></tbody></table><p><code>&lt;mode_type&gt;</code> only support those three protocols for now, the more advanced the more recommended, no fill in the default is <code>sit</code> protocol</p><p><code>&lt;subnet_size&gt;</code> as long as it is larger than the original system subnet mask, and is a multiple of 8, if you don&#39;t fill it in, it defaults to <code>80</code>.</p><p>Remember to replace <code>client_ipv4</code> with the IPV4 address of the machine you want to attach IPV6 to, and the command you need to execute on the client side will be sent back to you after execution, see the instructions after execution for details.</p><p>To prevent you from forgetting to copy the commands, the commands themselves will be written to the <code>6in4.log</code> file under the current path, you can use <code>cat 6in4.log</code> to query the commands that need to be executed on the client side</p><p>For copied commands, be sure to select option <code>6in4</code> in <a href="https://ipv6tunnel.spiritlhl.top/" target="_blank" rel="noreferrer">https://ipv6tunnel.spiritlhl.top/</a> before converting!</p><p>Then the page will be refreshed automatically and you need to modify the contents of the<code>/etc/network/interfaces</code>file with vim or vi commands, or modify the following commands to add new contents.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">tee -a /etc/network/interfaces &lt;&lt;EOF</span></span>
<span class="line"><span style="color:#A6ACCD;"># Modify here</span></span>
<span class="line"><span style="color:#A6ACCD;">EOF</span></span></code></pre></div><p>Then you&#39;ll need to reboot the system a bit, or run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt-get install net-tools iproute2 -y</span></span>
<span class="line"><span style="color:#A6ACCD;">systemctl restart networking</span></span></code></pre></div><p>Make sure the environment is OK before you do anything else</p><h3 id="check-server-status" tabindex="-1">Check server status <a class="header-anchor" href="#check-server-status" aria-label="Permalink to &quot;Check server status&quot;"></a></h3><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl status ndpresponder</span></span></code></pre></div><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ip addr show</span></span></code></pre></div><h3 id="check-client-status" tabindex="-1">Check client status <a class="header-anchor" href="#check-client-status" aria-label="Permalink to &quot;Check client status&quot;"></a></h3><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ip addr show</span></span></code></pre></div><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl ipv6.ip.sb</span></span></code></pre></div><h3 id="delete-tunnel" tabindex="-1">Delete tunnel <a class="header-anchor" href="#delete-tunnel" aria-label="Permalink to &quot;Delete tunnel&quot;"></a></h3><p>server</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ip link set server-ipv6 down</span></span>
<span class="line"><span style="color:#A6ACCD;">ip tunnel del server-ipv6</span></span></code></pre></div><p>client</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">ip link set user-ipv6 down</span></span>
<span class="line"><span style="color:#A6ACCD;">ip tunnel del user-ipv6</span></span></code></pre></div><p>The above deletion is only temporary, for permanent deletion you must modify and delete the contents of the <code>/etc/network/interfaces</code> file that you have previously added.</p><h3 id="one-more-thing" tabindex="-1">one more thing <a class="header-anchor" href="#one-more-thing" aria-label="Permalink to &quot;one more thing&quot;"></a></h3><p>In fact <a href="https://tunnelbroker.net/" target="_blank" rel="noreferrer">https://tunnelbroker.net/</a> supports the application of IPV6 subnets of size <code>/48</code></p><p><img src="https://github.com/oneclickvirt/oneclickvirt.github.io/assets/103393591/07987e41-0158-430c-bcc5-f7cd8652b2c4" alt=""></p><p>Make the request here, then when converting the format change the original <code>/64</code> IPV6 address to a <code>/48</code> IPV6 address and you&#39;ll get a larger IPV6 subnet!</p>`,161),i=[o];function l(r,c,p,d,h,u){return t(),a("div",null,i)}const g=e(n,[["render",l]]);export{m as __pageData,g as default};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as n,R as o}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_precheck.md","filePath":"en/guide/incus/incus_precheck.md","lastUpdated":1705324601000}'),a={name:"en/guide/incus/incus_precheck.md"},s=o('<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to &quot;Preface&quot;"></a></h1><p>The following is the introduction of the non-customized part, the customized part has its own corresponding introduction, do not get confused!</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>incus</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to &quot;Requirements&quot;"></a></h2><p>Hardware requirements.</p><ul><li>System: Debian 8+, Ubuntu 18+ (20.04 recommended).</li><li>Virtualization: KVM, VMWARE recommended.</li><li>Memory: At least 512MB of RAM</li><li>Hard disk: hard disk (system disk) at least 10G</li><li>Network: Independent IPV4 address, IPV6 is optional, bandwidth can download scripts on the line, the network can connect to the Github raw page on the line</li></ul><p>PS: If the hardware is very good and has a lot of resources, you can use PVE to batch open KVM virtualized VMs <a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">Jump</a></p><p>PS: If the hardware resources are even worse, virtualization is not supported, you can use the docker version, the adaption surface is wider <a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">Jump</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><ul><li><p>This set of script development using <strong>Ubuntu20</strong>, Ubuntu other long-term maintenance version should also be no problem, Debian can not use zfs automatically switch to another storage type!</p></li><li><p>Set up both TCP and UDP forwarding, in addition to SSH ports, other mapping intranet and extranet ports are the same.</p></li><li><p>Support for docker nested virtualization of open incus containers has been set up, and the default normal version and pure probe version use the debian11 system.</p></li><li><p>lxcfs has been set to be enabled by default, so that querying resources within a container uses the configured view rather than the host&#39;s view</p></li><li><p>Have blocked the container may be used to abuse the toolkit and IPV4 network TCP/UDP protocol ports ( 3389 8888 54321 65432 ), to prevent the container is used for scanning and blasting, and can be external process checking for problems automatically shut down</p></li><li><p>Has supported one-click configuration of IPV6 addresses for incus containers (provided that the mother hen has an IPV6 subnet, no IPV6 address is not configured), automatically adapted to the size of the subnet</p></li><li><p>Ensure that the disk you want to open is the default system disk (sda or sda1) and not the mounted disk (sdb and so on), if you are not sure, use <code>fdisk -l</code> and <code>df</code> to check.</p></li><li><p>See <a href="https://github.com/oneclickvirt/incus/blob/main/README_other.md" target="_blank" rel="noreferrer">Other notes</a> for details on mounting other disks.</p></li><li><p>One-click scripts support custom restrictions on all content, the normal version supports multiple runs of the batch generation does not overwrite the previously generated configuration</p></li></ul><h2 id="detecting-the-environment" tabindex="-1">Detecting the environment <a class="header-anchor" href="#detecting-the-environment" aria-label="Permalink to &quot;Detecting the environment&quot;"></a></h2><p><strong>Use the subsequent script must execute this command to detect the hen whether it meets the requirements</strong></p><p>Command:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash &lt;(wget -qO- --no-check-certificate https://raw.githubusercontent.com/oneclickvirt/incus/main/scripts/pre_check.sh)</span></span></code></pre></div>',14),r=[s];function i(c,d,h,l,u,p){return t(),n("div",null,r)}const b=e(a,[["render",i]]);export{f as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as n,R as o}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_precheck.md","filePath":"en/guide/incus/incus_precheck.md","lastUpdated":1705324601000}'),a={name:"en/guide/incus/incus_precheck.md"},s=o('<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to &quot;Preface&quot;"></a></h1><p>The following is the introduction of the non-customized part, the customized part has its own corresponding introduction, do not get confused!</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>incus</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to &quot;Requirements&quot;"></a></h2><p>Hardware requirements.</p><ul><li>System: Debian 8+, Ubuntu 18+ (20.04 recommended).</li><li>Virtualization: KVM, VMWARE recommended.</li><li>Memory: At least 512MB of RAM</li><li>Hard disk: hard disk (system disk) at least 10G</li><li>Network: Independent IPV4 address, IPV6 is optional, bandwidth can download scripts on the line, the network can connect to the Github raw page on the line</li></ul><p>PS: If the hardware is very good and has a lot of resources, you can use PVE to batch open KVM virtualized VMs <a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">Jump</a></p><p>PS: If the hardware resources are even worse, virtualization is not supported, you can use the docker version, the adaption surface is wider <a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">Jump</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><ul><li><p>This set of script development using <strong>Ubuntu20</strong>, Ubuntu other long-term maintenance version should also be no problem, Debian can not use zfs automatically switch to another storage type!</p></li><li><p>Set up both TCP and UDP forwarding, in addition to SSH ports, other mapping intranet and extranet ports are the same.</p></li><li><p>Support for docker nested virtualization of open incus containers has been set up, and the default normal version and pure probe version use the debian11 system.</p></li><li><p>lxcfs has been set to be enabled by default, so that querying resources within a container uses the configured view rather than the host&#39;s view</p></li><li><p>Have blocked the container may be used to abuse the toolkit and IPV4 network TCP/UDP protocol ports ( 3389 8888 54321 65432 ), to prevent the container is used for scanning and blasting, and can be external process checking for problems automatically shut down</p></li><li><p>Has supported one-click configuration of IPV6 addresses for incus containers (provided that the mother hen has an IPV6 subnet, no IPV6 address is not configured), automatically adapted to the size of the subnet</p></li><li><p>Ensure that the disk you want to open is the default system disk (sda or sda1) and not the mounted disk (sdb and so on), if you are not sure, use <code>fdisk -l</code> and <code>df</code> to check.</p></li><li><p>See <a href="https://github.com/oneclickvirt/incus/blob/main/README_other.md" target="_blank" rel="noreferrer">Other notes</a> for details on mounting other disks.</p></li><li><p>One-click scripts support custom restrictions on all content, the normal version supports multiple runs of the batch generation does not overwrite the previously generated configuration</p></li></ul><h2 id="detecting-the-environment" tabindex="-1">Detecting the environment <a class="header-anchor" href="#detecting-the-environment" aria-label="Permalink to &quot;Detecting the environment&quot;"></a></h2><p><strong>Use the subsequent script must execute this command to detect the hen whether it meets the requirements</strong></p><p>Command:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash &lt;(wget -qO- --no-check-certificate https://raw.githubusercontent.com/oneclickvirt/incus/main/scripts/pre_check.sh)</span></span></code></pre></div>',14),r=[s];function i(c,d,h,l,u,p){return t(),n("div",null,r)}const b=e(a,[["render",i]]);export{f as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as a,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qa.md","filePath":"en/guide/incus/incus_qa.md","lastUpdated":1705324601000}'),o={name:"en/guide/incus/incus_qa.md"},n=s('<h2 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h2><h2 id="what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" tabindex="-1">What to do if you open centos7 and find that CGroupV1 is not supported? <a class="header-anchor" href="#what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" aria-label="Permalink to &quot;What to do if you open centos7 and find that CGroupV1 is not supported?&quot;"></a></h2><p>Enable CGroup V1: To enable CGroup V1 on an Ubuntu system, you need to edit the kernel boot parameters.</p><p>Please note that before changing kernel boot parameters, make sure to backup important data and settings to prevent unexpected problems.</p><p>Edit the ```/etc/default/grub<code>file and add</code>systemd.unified_cgroup_hierarchy=0<code>to the end of the parameters in</code>GRUB_CMDLINE_LINUX_DEFAULT``, just like:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash systemd.unified_cgroup_hierarchy=0&quot;</span></span></code></pre></div><p>Save the file and run the following command to update the GRUB boot.</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">sudo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update-grub</span></span></code></pre></div><p>Reboot the system for the changes to take effect</p><p>If the above changes still do not support the opening of centos7, try using a different host system.</p><h2 id="currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" tabindex="-1">Currently verified VPS vendors that can open containers with separate IPV6 addresses. <a class="header-anchor" href="#currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" aria-label="Permalink to &quot;Currently verified VPS vendors that can open containers with separate IPV6 addresses.&quot;"></a></h2><p><a href="https://my.kuroit.com/aff.php?aff=5" target="_blank" rel="noreferrer">kuroit</a> Phoenix, USA regular</p><p><a href="https://t.me/vps_reviews/338" target="_blank" rel="noreferrer">datalix</a> German AMD Promotions</p><p><a href="https://billing.luxvps.xyz/aff.php?aff=36" target="_blank" rel="noreferrer">luxvps</a> German AMD Promotions</p>',14),r=[n];function p(i,d,l,c,h,u){return t(),a("div",null,r)}const v=e(o,[["render",p]]);export{m as __pageData,v as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as a,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/incus/incus_qa.md","filePath":"en/guide/incus/incus_qa.md","lastUpdated":1705324601000}'),o={name:"en/guide/incus/incus_qa.md"},n=s('<h2 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h2><h2 id="what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" tabindex="-1">What to do if you open centos7 and find that CGroupV1 is not supported? <a class="header-anchor" href="#what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" aria-label="Permalink to &quot;What to do if you open centos7 and find that CGroupV1 is not supported?&quot;"></a></h2><p>Enable CGroup V1: To enable CGroup V1 on an Ubuntu system, you need to edit the kernel boot parameters.</p><p>Please note that before changing kernel boot parameters, make sure to backup important data and settings to prevent unexpected problems.</p><p>Edit the ```/etc/default/grub<code>file and add</code>systemd.unified_cgroup_hierarchy=0<code>to the end of the parameters in</code>GRUB_CMDLINE_LINUX_DEFAULT``, just like:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash systemd.unified_cgroup_hierarchy=0&quot;</span></span></code></pre></div><p>Save the file and run the following command to update the GRUB boot.</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">sudo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update-grub</span></span></code></pre></div><p>Reboot the system for the changes to take effect</p><p>If the above changes still do not support the opening of centos7, try using a different host system.</p><h2 id="currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" tabindex="-1">Currently verified VPS vendors that can open containers with separate IPV6 addresses. <a class="header-anchor" href="#currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" aria-label="Permalink to &quot;Currently verified VPS vendors that can open containers with separate IPV6 addresses.&quot;"></a></h2><p><a href="https://my.kuroit.com/aff.php?aff=5" target="_blank" rel="noreferrer">kuroit</a> Phoenix, USA regular</p><p><a href="https://t.me/vps_reviews/338" target="_blank" rel="noreferrer">datalix</a> German AMD Promotions</p><p><a href="https://billing.luxvps.xyz/aff.php?aff=36" target="_blank" rel="noreferrer">luxvps</a> German AMD Promotions</p>',14),r=[n];function p(i,d,l,c,h,u){return t(),a("div",null,r)}const v=e(o,[["render",p]]);export{m as __pageData,v as default};

View File

@@ -0,0 +1 @@
import{_ as t,v as e,b as r,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1705324601000}'),s={name:"en/guide/incus/incus_thanks.md"},a=n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://lxdware.com/" target="_blank" rel="noreferrer">https://lxdware.com/</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p>',10),o=[a];function i(c,p,l,d,h,u){return e(),r("div",null,o)}const x=t(s,[["render",i]]);export{f as __pageData,x as default};

View File

@@ -0,0 +1 @@
import{_ as t,v as e,b as r,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/incus/incus_thanks.md","filePath":"en/guide/incus/incus_thanks.md","lastUpdated":1705324601000}'),s={name:"en/guide/incus/incus_thanks.md"},a=n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://lxdware.com/" target="_blank" rel="noreferrer">https://lxdware.com/</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p>',10),o=[a];function i(c,p,l,d,h,u){return e(),r("div",null,o)}const x=t(s,[["render",i]]);export{f as __pageData,x as default};

View File

@@ -1,4 +1,4 @@
import{_ as e,v as t,b as a,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Attach free IPV6 address segments to host machines","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/lxd_custom.md","filePath":"en_US/guide/lxd_custom.md","lastUpdated":1704976888000}'),n={name:"en_US/guide/lxd_custom.md"},o=s(`<h1 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to &quot;Attach free IPV6 address segments to host machines&quot;"></a></h1><p>Some machines don&#39;t have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn&#39;t have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 或 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>自定义</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h2 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to &quot;Initial environment modifications&quot;"></a></h2><p>Execute</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">touch /etc/cloud/cloud-init.disabled</span></span></code></pre></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active systemd-networkd</span></span></code></pre></div><p>and</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active networking</span></span></code></pre></div><p>See which case this falls into, if it&#39;s the former active and the latter inactive, you need to reinstall/DD a system that isn&#39;t configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;"># Judge for yourself whether you need to disable the original network management or not</span></span>
import{_ as e,v as t,b as a,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Attach free IPV6 address segments to host machines","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1705324601000}'),n={name:"en/guide/lxd/lxd_custom.md"},o=s(`<h1 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to &quot;Attach free IPV6 address segments to host machines&quot;"></a></h1><p>Some machines don&#39;t have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn&#39;t have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 或 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>自定义</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h2 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to &quot;Initial environment modifications&quot;"></a></h2><p>Execute</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">touch /etc/cloud/cloud-init.disabled</span></span></code></pre></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active systemd-networkd</span></span></code></pre></div><p>and</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active networking</span></span></code></pre></div><p>See which case this falls into, if it&#39;s the former active and the latter inactive, you need to reinstall/DD a system that isn&#39;t configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;"># Judge for yourself whether you need to disable the original network management or not</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl stop systemd-networkd</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl disable systemd-networkd</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl stop systemd-networkd.socket</span></span>

View File

@@ -1,4 +1,4 @@
import{_ as e,v as t,b as a,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Attach free IPV6 address segments to host machines","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/lxd_custom.md","filePath":"en_US/guide/lxd_custom.md","lastUpdated":1704976888000}'),n={name:"en_US/guide/lxd_custom.md"},o=s(`<h1 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to &quot;Attach free IPV6 address segments to host machines&quot;"></a></h1><p>Some machines don&#39;t have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn&#39;t have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 或 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>自定义</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h2 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to &quot;Initial environment modifications&quot;"></a></h2><p>Execute</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">touch /etc/cloud/cloud-init.disabled</span></span></code></pre></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active systemd-networkd</span></span></code></pre></div><p>and</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active networking</span></span></code></pre></div><p>See which case this falls into, if it&#39;s the former active and the latter inactive, you need to reinstall/DD a system that isn&#39;t configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;"># Judge for yourself whether you need to disable the original network management or not</span></span>
import{_ as e,v as t,b as a,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Attach free IPV6 address segments to host machines","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_custom.md","filePath":"en/guide/lxd/lxd_custom.md","lastUpdated":1705324601000}'),n={name:"en/guide/lxd/lxd_custom.md"},o=s(`<h1 id="attach-free-ipv6-address-segments-to-host-machines" tabindex="-1">Attach free IPV6 address segments to host machines <a class="header-anchor" href="#attach-free-ipv6-address-segments-to-host-machines" aria-label="Permalink to &quot;Attach free IPV6 address segments to host machines&quot;"></a></h1><p>Some machines don&#39;t have an IPV6 /64 subnet on the machine itself, here is a method given to attach an IPV6 subnet for free.</p><p>Here is a solution using the 6in4 method for a host machine that doesn&#39;t have an IPV6 address on its own.</p><div class="tip custom-block"><p class="custom-block-title">TIP</p><p>The operations on this page must be performed on the original system, and ensure that no other scripts from this project are installed(Except for PVE, which needs to be installed first), as this may lead to environment conflicts.</p></div><p>Here are the platforms that are currently running in 2023 that offer IPV6 subnets for free.</p><table><thead><tr><th>Supported Platforms</th><th>Corresponding Required Installation Packages</th><th>Protocols</th><th>Number of Channels/Subnets</th></tr></thead><tbody><tr><td>tunnelbroker.net</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64 或 5✖/64</td></tr><tr><td>tunnelbroker.ch</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>3✖/64</td></tr><tr><td>ip4market.ru</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td>netassist.ua</td><td>ifupdown OR ifupdown2</td><td>v4tunnel OR sit</td><td>1✖/64</td></tr><tr><td><a href="https://github.com/oneclickvirt/6in4" target="_blank" rel="noreferrer">https://github.com/oneclickvirt/6in4</a></td><td>ifupdown2</td><td>sit、gre、ipip</td><td>自定义</td></tr></tbody></table><p>The free platform only solves the problem that IPV6 is not available, it does not provide premium IPV6 bandwidth.</p><p>If you need high quality bandwidth, please build your own tunnel. When both ifupdown and ifupdown2 are available, try ifupdown first to see if it can be installed successfully, otherwise install ifupdown2.</p><p>After the installation is complete, select which package is installed behind to convert the format.</p><h2 id="initial-environment-modifications" tabindex="-1">Initial environment modifications <a class="header-anchor" href="#initial-environment-modifications" aria-label="Permalink to &quot;Initial environment modifications&quot;"></a></h2><p>Execute</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">touch /etc/cloud/cloud-init.disabled</span></span></code></pre></div><p>Turn off the automated overwrite of cloud-init first, and then to see what the local machine is using to manage the network, run</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active systemd-networkd</span></span></code></pre></div><p>and</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">systemctl is-active networking</span></span></code></pre></div><p>See which case this falls into, if it&#39;s the former active and the latter inactive, you need to reinstall/DD a system that isn&#39;t configured this way, or switch the local machine to use ifupdown/ifupdown2 to manage network execution</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;"># Judge for yourself whether you need to disable the original network management or not</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl stop systemd-networkd</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl disable systemd-networkd</span></span>
<span class="line"><span style="color:#A6ACCD;"># systemctl stop systemd-networkd.socket</span></span>

View File

@@ -1,4 +1,4 @@
import{_ as s,v as a,b as e,R as n}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"LXD Installation Guide","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/lxd_install.md","filePath":"en_US/guide/lxd_install.md","lastUpdated":1704976888000}'),t={name:"en_US/guide/lxd_install.md"},o=n(`<h1 id="lxd-installation-guide" tabindex="-1">LXD Installation Guide <a class="header-anchor" href="#lxd-installation-guide" aria-label="Permalink to &quot;LXD Installation Guide&quot;"></a></h1><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="manual-installation" tabindex="-1">Manual Installation <a class="header-anchor" href="#manual-installation" aria-label="Permalink to &quot;Manual Installation&quot;"></a></h2><p>Recommended for beginners to avoid potential troubleshooting. However, if you&#39;re experienced and comfortable with debugging bugs, you can also use the later one-click installation method for convenience.</p><h3 id="disable-firewall" tabindex="-1">Disable Firewall <a class="header-anchor" href="#disable-firewall" aria-label="Permalink to &quot;Disable Firewall&quot;"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">apt</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update</span></span>
import{_ as s,v as a,b as e,R as n}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"LXD Installation Guide","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_install.md","filePath":"en/guide/lxd/lxd_install.md","lastUpdated":1705324601000}'),t={name:"en/guide/lxd/lxd_install.md"},o=n(`<h1 id="lxd-installation-guide" tabindex="-1">LXD Installation Guide <a class="header-anchor" href="#lxd-installation-guide" aria-label="Permalink to &quot;LXD Installation Guide&quot;"></a></h1><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="manual-installation" tabindex="-1">Manual Installation <a class="header-anchor" href="#manual-installation" aria-label="Permalink to &quot;Manual Installation&quot;"></a></h2><p>Recommended for beginners to avoid potential troubleshooting. However, if you&#39;re experienced and comfortable with debugging bugs, you can also use the later one-click installation method for convenience.</p><h3 id="disable-firewall" tabindex="-1">Disable Firewall <a class="header-anchor" href="#disable-firewall" aria-label="Permalink to &quot;Disable Firewall&quot;"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">apt</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update</span></span>
<span class="line"><span style="color:#FFCB6B;">apt</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">wget</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">sudo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dos2unix</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">ufw</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">jq</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-y</span></span>
<span class="line"><span style="color:#FFCB6B;">ufw</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">disable</span></span></code></pre></div><h3 id="enabling-virtual-memory-swap" tabindex="-1">Enabling Virtual Memory SWAP <a class="header-anchor" href="#enabling-virtual-memory-swap" aria-label="Permalink to &quot;Enabling Virtual Memory SWAP&quot;"></a></h3><p>The amount of memory depends on how many instances you want to run. If you want to run 8 instances and calculate, you&#39;ll need 2GB of memory. If your actual physical memory is 512MB, you&#39;ll need an additional 1.5GB. To be cautious, allocate 2GB of virtual memory.</p><p>Execute the following commands: Enter &#39;1&#39;, then enter &#39;2048&#39;. This signifies allocating 2GB of virtual memory.</p><p>Command:</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span></span></code></pre></div><h3 id="installing-lxd" tabindex="-1">Installing LXD <a class="header-anchor" href="#installing-lxd" aria-label="Permalink to &quot;Installing LXD&quot;"></a></h3><p>Actually, the virtual memory allocated for swap should be twice the size of the actual memory. So, it&#39;s reasonable to allocate 1GB if the actual memory is 500MB. The scenario I described above is an excessive allocation.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt install snapd -y</span></span>
<span class="line"><span style="color:#A6ACCD;">snap install lxd</span></span>

View File

@@ -1,4 +1,4 @@
import{_ as s,v as a,b as e,R as n}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"LXD Installation Guide","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/lxd_install.md","filePath":"en_US/guide/lxd_install.md","lastUpdated":1704976888000}'),t={name:"en_US/guide/lxd_install.md"},o=n(`<h1 id="lxd-installation-guide" tabindex="-1">LXD Installation Guide <a class="header-anchor" href="#lxd-installation-guide" aria-label="Permalink to &quot;LXD Installation Guide&quot;"></a></h1><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="manual-installation" tabindex="-1">Manual Installation <a class="header-anchor" href="#manual-installation" aria-label="Permalink to &quot;Manual Installation&quot;"></a></h2><p>Recommended for beginners to avoid potential troubleshooting. However, if you&#39;re experienced and comfortable with debugging bugs, you can also use the later one-click installation method for convenience.</p><h3 id="disable-firewall" tabindex="-1">Disable Firewall <a class="header-anchor" href="#disable-firewall" aria-label="Permalink to &quot;Disable Firewall&quot;"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">apt</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update</span></span>
import{_ as s,v as a,b as e,R as n}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"LXD Installation Guide","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_install.md","filePath":"en/guide/lxd/lxd_install.md","lastUpdated":1705324601000}'),t={name:"en/guide/lxd/lxd_install.md"},o=n(`<h1 id="lxd-installation-guide" tabindex="-1">LXD Installation Guide <a class="header-anchor" href="#lxd-installation-guide" aria-label="Permalink to &quot;LXD Installation Guide&quot;"></a></h1><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="manual-installation" tabindex="-1">Manual Installation <a class="header-anchor" href="#manual-installation" aria-label="Permalink to &quot;Manual Installation&quot;"></a></h2><p>Recommended for beginners to avoid potential troubleshooting. However, if you&#39;re experienced and comfortable with debugging bugs, you can also use the later one-click installation method for convenience.</p><h3 id="disable-firewall" tabindex="-1">Disable Firewall <a class="header-anchor" href="#disable-firewall" aria-label="Permalink to &quot;Disable Firewall&quot;"></a></h3><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">apt</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update</span></span>
<span class="line"><span style="color:#FFCB6B;">apt</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">install</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">wget</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">sudo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">dos2unix</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">ufw</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">jq</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-y</span></span>
<span class="line"><span style="color:#FFCB6B;">ufw</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">disable</span></span></code></pre></div><h3 id="enabling-virtual-memory-swap" tabindex="-1">Enabling Virtual Memory SWAP <a class="header-anchor" href="#enabling-virtual-memory-swap" aria-label="Permalink to &quot;Enabling Virtual Memory SWAP&quot;"></a></h3><p>The amount of memory depends on how many instances you want to run. If you want to run 8 instances and calculate, you&#39;ll need 2GB of memory. If your actual physical memory is 512MB, you&#39;ll need an additional 1.5GB. To be cautious, allocate 2GB of virtual memory.</p><p>Execute the following commands: Enter &#39;1&#39;, then enter &#39;2048&#39;. This signifies allocating 2GB of virtual memory.</p><p>Command:</p><div class="language-shell"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">curl</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-L</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-o</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">chmod</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">+x</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span><span style="color:#A6ACCD;"> </span><span style="color:#89DDFF;">&amp;&amp;</span><span style="color:#A6ACCD;"> </span><span style="color:#FFCB6B;">bash</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">swap.sh</span></span></code></pre></div><h3 id="installing-lxd" tabindex="-1">Installing LXD <a class="header-anchor" href="#installing-lxd" aria-label="Permalink to &quot;Installing LXD&quot;"></a></h3><p>Actually, the virtual memory allocated for swap should be twice the size of the actual memory. So, it&#39;s reasonable to allocate 1GB if the actual memory is 500MB. The scenario I described above is an excessive allocation.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">apt install snapd -y</span></span>
<span class="line"><span style="color:#A6ACCD;">snap install lxd</span></span>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as o,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_precheck.md","filePath":"en/guide/lxd/lxd_precheck.md","lastUpdated":1705324601000}'),a={name:"en/guide/lxd/lxd_precheck.md"},r=n('<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to &quot;Preface&quot;"></a></h1><p>The following is the introduction of the non-customized part, the customized part has its own corresponding introduction, do not get confused!</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to &quot;Requirements&quot;"></a></h2><p>Hardware requirements.</p><ul><li>System: Debian 8+, Ubuntu 18+ (20.04 recommended).</li><li>Virtualization: KVM, VMWARE recommended.</li><li>Memory: At least 512MB of RAM</li><li>Hard disk: hard disk (system disk) at least 10G</li><li>Network: Independent IPV4 address, IPV6 is optional, bandwidth can download scripts on the line, the network can connect to the Github raw page on the line</li></ul><p>PS: If the hardware is very good and has a lot of resources, you can use PVE to batch open KVM virtualized VMs <a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">Jump</a></p><p>PS: If the hardware resources are even worse, virtualization is not supported, you can use the docker version, the adaption surface is wider <a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">Jump</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><ul><li><p>This set of script development using <strong>Ubuntu20</strong>, Ubuntu other long-term maintenance version should also be no problem, Debian can not use zfs automatically switch to another storage type!</p></li><li><p>Set up both TCP and UDP forwarding, in addition to SSH ports, other mapping intranet and extranet ports are the same.</p></li><li><p>Support for docker nested virtualization of open LXC containers has been set up, and the default normal version and pure probe version use the debian11 system.</p></li><li><p>lxcfs has been set to be enabled by default, so that querying resources within a container uses the configured view rather than the host&#39;s view</p></li><li><p>Have blocked the container may be used to abuse the toolkit and IPV4 network TCP/UDP protocol ports ( 3389 8888 54321 65432 ), to prevent the container is used for scanning and blasting, and can be external process checking for problems automatically shut down</p></li><li><p>Has supported one-click configuration of IPV6 addresses for LXC containers (provided that the mother hen has an IPV6 subnet, no IPV6 address is not configured), automatically adapted to the size of the subnet</p></li><li><p>Ensure that the disk you want to open is the default system disk (sda or sda1) and not the mounted disk (sdb and so on), if you are not sure, use <code>fdisk -l</code> and <code>df</code> to check.</p></li><li><p>See <a href="https://github.com/spiritLHLS/lxd/blob/main/README_other.md" target="_blank" rel="noreferrer">Other notes</a> for details on mounting other disks.</p></li><li><p>One-click scripts support custom restrictions on all content, the normal version supports multiple runs of the batch generation does not overwrite the previously generated configuration</p></li></ul><h2 id="detecting-the-environment" tabindex="-1">Detecting the environment <a class="header-anchor" href="#detecting-the-environment" aria-label="Permalink to &quot;Detecting the environment&quot;"></a></h2><p><strong>Use the subsequent script must execute this command to detect the hen whether it meets the requirements</strong></p><p>Command:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash &lt;(wget -qO- --no-check-certificate https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/pre_check.sh)</span></span></code></pre></div>',14),s=[r];function i(d,c,h,l,p,u){return t(),o("div",null,s)}const b=e(a,[["render",i]]);export{f as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as t,b as o,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"Preface","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_precheck.md","filePath":"en/guide/lxd/lxd_precheck.md","lastUpdated":1705324601000}'),a={name:"en/guide/lxd/lxd_precheck.md"},r=n('<h1 id="preface" tabindex="-1">Preface <a class="header-anchor" href="#preface" aria-label="Permalink to &quot;Preface&quot;"></a></h1><p>The following is the introduction of the non-customized part, the customized part has its own corresponding introduction, do not get confused!</p><p>If your host does not have an IPV6 subnet and you want to assign IPV6 addresses to containers, then please check the <code>Customize</code> partition in the <code>LXD</code> module for the <code>Attach a free IPV6 address segment</code> to the host, and attach an IPV6 subnet to the host before installing the environment.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to &quot;Requirements&quot;"></a></h2><p>Hardware requirements.</p><ul><li>System: Debian 8+, Ubuntu 18+ (20.04 recommended).</li><li>Virtualization: KVM, VMWARE recommended.</li><li>Memory: At least 512MB of RAM</li><li>Hard disk: hard disk (system disk) at least 10G</li><li>Network: Independent IPV4 address, IPV6 is optional, bandwidth can download scripts on the line, the network can connect to the Github raw page on the line</li></ul><p>PS: If the hardware is very good and has a lot of resources, you can use PVE to batch open KVM virtualized VMs <a href="https://github.com/spiritLHLS/pve" target="_blank" rel="noreferrer">Jump</a></p><p>PS: If the hardware resources are even worse, virtualization is not supported, you can use the docker version, the adaption surface is wider <a href="https://github.com/spiritLHLS/docker" target="_blank" rel="noreferrer">Jump</a></p><h2 id="project-features" tabindex="-1">Project Features <a class="header-anchor" href="#project-features" aria-label="Permalink to &quot;Project Features&quot;"></a></h2><ul><li><p>This set of script development using <strong>Ubuntu20</strong>, Ubuntu other long-term maintenance version should also be no problem, Debian can not use zfs automatically switch to another storage type!</p></li><li><p>Set up both TCP and UDP forwarding, in addition to SSH ports, other mapping intranet and extranet ports are the same.</p></li><li><p>Support for docker nested virtualization of open LXC containers has been set up, and the default normal version and pure probe version use the debian11 system.</p></li><li><p>lxcfs has been set to be enabled by default, so that querying resources within a container uses the configured view rather than the host&#39;s view</p></li><li><p>Have blocked the container may be used to abuse the toolkit and IPV4 network TCP/UDP protocol ports ( 3389 8888 54321 65432 ), to prevent the container is used for scanning and blasting, and can be external process checking for problems automatically shut down</p></li><li><p>Has supported one-click configuration of IPV6 addresses for LXC containers (provided that the mother hen has an IPV6 subnet, no IPV6 address is not configured), automatically adapted to the size of the subnet</p></li><li><p>Ensure that the disk you want to open is the default system disk (sda or sda1) and not the mounted disk (sdb and so on), if you are not sure, use <code>fdisk -l</code> and <code>df</code> to check.</p></li><li><p>See <a href="https://github.com/spiritLHLS/lxd/blob/main/README_other.md" target="_blank" rel="noreferrer">Other notes</a> for details on mounting other disks.</p></li><li><p>One-click scripts support custom restrictions on all content, the normal version supports multiple runs of the batch generation does not overwrite the previously generated configuration</p></li></ul><h2 id="detecting-the-environment" tabindex="-1">Detecting the environment <a class="header-anchor" href="#detecting-the-environment" aria-label="Permalink to &quot;Detecting the environment&quot;"></a></h2><p><strong>Use the subsequent script must execute this command to detect the hen whether it meets the requirements</strong></p><p>Command:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">bash &lt;(wget -qO- --no-check-certificate https://raw.githubusercontent.com/spiritLHLS/lxd/main/scripts/pre_check.sh)</span></span></code></pre></div>',14),s=[r];function i(d,c,h,l,p,u){return t(),o("div",null,s)}const b=e(a,[["render",i]]);export{f as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as a,b as t,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_qa.md","filePath":"en/guide/lxd/lxd_qa.md","lastUpdated":1705324601000}'),n={name:"en/guide/lxd/lxd_qa.md"},o=s('<h2 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h2><h2 id="what-if-the-lxc-command-says-it-can-t-be-found-after-lxd-is-installed" tabindex="-1">What if the lxc command says it can&#39;t be found after LXD is installed? <a class="header-anchor" href="#what-if-the-lxc-command-says-it-can-t-be-found-after-lxd-is-installed" aria-label="Permalink to &quot;What if the lxc command says it can&#39;t be found after LXD is installed?&quot;"></a></h2><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">! lxc -h &gt;/dev/null 2&gt;&amp;1 &amp;&amp; echo &#39;alias lxc=&quot;/snap/bin/lxc&quot;&#39; &gt;&gt; /root/.bashrc &amp;&amp; source /root/.bashrc</span></span>\n<span class="line"><span style="color:#A6ACCD;">export PATH=$PATH:/snap/bin</span></span></code></pre></div><p>After executing this command try</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">lxc -h</span></span></code></pre></div><p>to see if the lxc command is fixed.</p><h2 id="what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" tabindex="-1">What to do if you open centos7 and find that CGroupV1 is not supported? <a class="header-anchor" href="#what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" aria-label="Permalink to &quot;What to do if you open centos7 and find that CGroupV1 is not supported?&quot;"></a></h2><p>Enable CGroup V1: To enable CGroup V1 on an Ubuntu system, you need to edit the kernel boot parameters.</p><p>Please note that before changing kernel boot parameters, make sure to backup important data and settings to prevent unexpected problems.</p><p>Edit the ```/etc/default/grub<code>file and add</code>systemd.unified_cgroup_hierarchy=0<code>to the end of the parameters in</code>GRUB_CMDLINE_LINUX_DEFAULT``, just like:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash systemd.unified_cgroup_hierarchy=0&quot;</span></span></code></pre></div><p>Save the file and run the following command to update the GRUB boot.</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">sudo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update-grub</span></span></code></pre></div><p>Reboot the system for the changes to take effect</p><p>If the above changes still do not support the opening of centos7, try using a different host system.</p><h2 id="currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" tabindex="-1">Currently verified VPS vendors that can open containers with separate IPV6 addresses. <a class="header-anchor" href="#currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" aria-label="Permalink to &quot;Currently verified VPS vendors that can open containers with separate IPV6 addresses.&quot;"></a></h2><p><a href="https://my.kuroit.com/aff.php?aff=5" target="_blank" rel="noreferrer">kuroit</a> Phoenix, USA regular</p><p><a href="https://t.me/vps_reviews/338" target="_blank" rel="noreferrer">datalix</a> German AMD Promotions</p><p><a href="https://billing.luxvps.xyz/aff.php?aff=36" target="_blank" rel="noreferrer">luxvps</a> German AMD Promotions</p>',19),r=[o];function p(l,i,d,c,h,u){return a(),t("div",null,r)}const b=e(n,[["render",p]]);export{m as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as e,v as a,b as t,R as s}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/lxd/lxd_qa.md","filePath":"en/guide/lxd/lxd_qa.md","lastUpdated":1705324601000}'),n={name:"en/guide/lxd/lxd_qa.md"},o=s('<h2 id="solve-the-puzzle" tabindex="-1">Solve the puzzle <a class="header-anchor" href="#solve-the-puzzle" aria-label="Permalink to &quot;Solve the puzzle&quot;"></a></h2><h2 id="what-if-the-lxc-command-says-it-can-t-be-found-after-lxd-is-installed" tabindex="-1">What if the lxc command says it can&#39;t be found after LXD is installed? <a class="header-anchor" href="#what-if-the-lxc-command-says-it-can-t-be-found-after-lxd-is-installed" aria-label="Permalink to &quot;What if the lxc command says it can&#39;t be found after LXD is installed?&quot;"></a></h2><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">! lxc -h &gt;/dev/null 2&gt;&amp;1 &amp;&amp; echo &#39;alias lxc=&quot;/snap/bin/lxc&quot;&#39; &gt;&gt; /root/.bashrc &amp;&amp; source /root/.bashrc</span></span>\n<span class="line"><span style="color:#A6ACCD;">export PATH=$PATH:/snap/bin</span></span></code></pre></div><p>After executing this command try</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">lxc -h</span></span></code></pre></div><p>to see if the lxc command is fixed.</p><h2 id="what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" tabindex="-1">What to do if you open centos7 and find that CGroupV1 is not supported? <a class="header-anchor" href="#what-to-do-if-you-open-centos7-and-find-that-cgroupv1-is-not-supported" aria-label="Permalink to &quot;What to do if you open centos7 and find that CGroupV1 is not supported?&quot;"></a></h2><p>Enable CGroup V1: To enable CGroup V1 on an Ubuntu system, you need to edit the kernel boot parameters.</p><p>Please note that before changing kernel boot parameters, make sure to backup important data and settings to prevent unexpected problems.</p><p>Edit the ```/etc/default/grub<code>file and add</code>systemd.unified_cgroup_hierarchy=0<code>to the end of the parameters in</code>GRUB_CMDLINE_LINUX_DEFAULT``, just like:</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">GRUB_CMDLINE_LINUX_DEFAULT=&quot;quiet splash systemd.unified_cgroup_hierarchy=0&quot;</span></span></code></pre></div><p>Save the file and run the following command to update the GRUB boot.</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">sudo</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">update-grub</span></span></code></pre></div><p>Reboot the system for the changes to take effect</p><p>If the above changes still do not support the opening of centos7, try using a different host system.</p><h2 id="currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" tabindex="-1">Currently verified VPS vendors that can open containers with separate IPV6 addresses. <a class="header-anchor" href="#currently-verified-vps-vendors-that-can-open-containers-with-separate-ipv6-addresses" aria-label="Permalink to &quot;Currently verified VPS vendors that can open containers with separate IPV6 addresses.&quot;"></a></h2><p><a href="https://my.kuroit.com/aff.php?aff=5" target="_blank" rel="noreferrer">kuroit</a> Phoenix, USA regular</p><p><a href="https://t.me/vps_reviews/338" target="_blank" rel="noreferrer">datalix</a> German AMD Promotions</p><p><a href="https://billing.luxvps.xyz/aff.php?aff=36" target="_blank" rel="noreferrer">luxvps</a> German AMD Promotions</p>',19),r=[o];function p(l,i,d,c,h,u){return a(),t("div",null,r)}const b=e(n,[["render",p]]);export{m as __pageData,b as default};

View File

@@ -0,0 +1 @@
import{_ as t,v as e,b as r,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_thanks.md","filePath":"en/guide/lxd/lxd_thanks.md","lastUpdated":1705324601000}'),a={name:"en/guide/lxd/lxd_thanks.md"},s=n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://lxdware.com/" target="_blank" rel="noreferrer">https://lxdware.com/</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> for providing guidance.</p>',11),o=[s];function i(l,c,p,d,h,u){return e(),r("div",null,o)}const x=t(a,[["render",i]]);export{f as __pageData,x as default};

View File

@@ -0,0 +1 @@
import{_ as t,v as e,b as r,R as n}from"./chunks/framework.70afa331.js";const f=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"en/guide/lxd/lxd_thanks.md","filePath":"en/guide/lxd/lxd_thanks.md","lastUpdated":1705324601000}'),a={name:"en/guide/lxd/lxd_thanks.md"},s=n('<h2 id="acknowledgements" tabindex="-1">Acknowledgements <a class="header-anchor" href="#acknowledgements" aria-label="Permalink to &quot;Acknowledgements&quot;"></a></h2><p><a href="https://github.com/lxc/lxd" target="_blank" rel="noreferrer">https://github.com/lxc/lxd</a></p><p><a href="https://lxdware.com/" target="_blank" rel="noreferrer">https://lxdware.com/</a></p><p><a href="https://discuss.linuxcontainers.org/" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-to-run-docker-inside-lxc-container/13017/4</a></p><p><a href="https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/error-seccomp-notify-not-supported-on-container-start/15038/3</a></p><p><a href="https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028" target="_blank" rel="noreferrer">https://discuss.linuxcontainers.org/t/how-do-i-assign-a-public-ipv6-address-to-a-lxc-container/6028</a></p><p><a href="https://github.com/turtle0x1/LxdMosaic" target="_blank" rel="noreferrer">https://github.com/turtle0x1/LxdMosaic</a></p><p><a href="https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/index.html" target="_blank" rel="noreferrer">https://openzfs.github.io/openzfs-docs/Getting Started/Debian/index.html</a></p><p><a href="https://github.com/SuperManito/LinuxMirrors" target="_blank" rel="noreferrer">https://github.com/SuperManito/LinuxMirrors</a></p><p>Thank <a href="https://github.com/Ella-Alinda" target="_blank" rel="noreferrer">@Ella-Alinda</a> <a href="https://github.com/fscarmen" target="_blank" rel="noreferrer">@fscarmen</a> for providing guidance.</p>',11),o=[s];function i(l,c,p,d,h,u){return e(),r("div",null,o)}const x=t(a,[["render",i]]);export{f as __pageData,x as default};

View File

@@ -1,4 +1,4 @@
import{_ as s,v as e,b as a,R as n}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Some custom scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en_US/guide/pve_custom.md","filePath":"en_US/guide/pve_custom.md","lastUpdated":1704976888000}'),o={name:"en_US/guide/pve_custom.md"},t=n(`<h1 id="some-custom-scripts" tabindex="-1">Some custom scripts <a class="header-anchor" href="#some-custom-scripts" aria-label="Permalink to &quot;Some custom scripts&quot;"></a></h1><p>Each script may have its own system requirements, check them out!</p><h2 id="installing-proxmox-ve-7-on-a-non-debian-system" tabindex="-1">Installing Proxmox VE 7 on a non-Debian system <a class="header-anchor" href="#installing-proxmox-ve-7-on-a-non-debian-system" aria-label="Permalink to &quot;Installing Proxmox VE 7 on a non-Debian system&quot;"></a></h2><p>Minimum local hardware requirements are the same as for the previous normal installation.</p><p>You need to install docker first.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -sSL https://get.docker.com/ | sh</span></span>
import{_ as s,v as e,b as a,R as n}from"./chunks/framework.70afa331.js";const m=JSON.parse('{"title":"Some custom scripts","description":"","frontmatter":{"outline":"deep"},"headers":[],"relativePath":"en/guide/pve/pve_custom.md","filePath":"en/guide/pve/pve_custom.md","lastUpdated":1705324601000}'),o={name:"en/guide/pve/pve_custom.md"},t=n(`<h1 id="some-custom-scripts" tabindex="-1">Some custom scripts <a class="header-anchor" href="#some-custom-scripts" aria-label="Permalink to &quot;Some custom scripts&quot;"></a></h1><p>Each script may have its own system requirements, check them out!</p><h2 id="installing-proxmox-ve-7-on-a-non-debian-system" tabindex="-1">Installing Proxmox VE 7 on a non-Debian system <a class="header-anchor" href="#installing-proxmox-ve-7-on-a-non-debian-system" aria-label="Permalink to &quot;Installing Proxmox VE 7 on a non-Debian system&quot;"></a></h2><p>Minimum local hardware requirements are the same as for the previous normal installation.</p><p>You need to install docker first.</p><div class="language-"><button title="Copy Code" class="copy"></button><span class="lang"></span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#A6ACCD;">curl -sSL https://get.docker.com/ | sh</span></span>
<span class="line"><span style="color:#A6ACCD;">curl -L &quot;https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)&quot; -o /usr/local/bin/docker-compose</span></span>
<span class="line"><span style="color:#A6ACCD;">chmod +x /usr/local/bin/docker-compose</span></span>
<span class="line"><span style="color:#A6ACCD;">docker-compose --version</span></span></code></pre></div><p>Then use <code>uname -m</code> to query the architecture and use the command corresponding to the architecture</p><p>The opened PVE panel information is:</p><p>Login username and password are both <code>root</code>, after logging in be sure to use web SSH to change the password to avoid being blown up.</p><p>When using host SSH, be sure to log into the corresponding <code>https://IPV4:8006</code> to use SSH on the web panel, do not use the host&#39;s port 22 to manipulate the PVE.</p><p>Because the SSH on the web panel is inside Docker, it does not support subsequent one-click configurations, so please configure your own gateway, etc. to use it.</p><p>X86 architecture</p><div class="language-bash"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki material-theme-palenight"><code><span class="line"><span style="color:#FFCB6B;">docker</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">run</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">-idt</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">--network</span><span style="color:#A6ACCD;"> </span><span style="color:#C3E88D;">host</span><span style="color:#A6ACCD;"> \\</span></span>

Some files were not shown because too many files have changed in this diff Show More