/
frp.html
235 lines (220 loc) · 28.1 KB
/
frp.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>“frp-内网穿透-远程访问家中电脑” | LaohuのBlog</title><meta name="author" content="侯昌虎"><meta name="copyright" content="侯昌虎"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="frp用于没有公网IP的场合,比如办公室电脑连接的网络没有公网IP,你在外面就无法访问到家中电脑(除非使用向日葵等软件,这些软件也是内置了内网穿透的客户端,服务器是他们公司提供,所以这类软件不可能会免费使用,就会对客户端进行限速,远远没有windows自带的远程桌面流畅,当然也可以自制远程桌面软件)。这时就需要用到frp内网穿透,将你的电脑数据发送到frp服务器上,这样你在外网可以通过访问f">
<meta property="og:type" content="article">
<meta property="og:title" content="“frp-内网穿透-远程访问家中电脑”">
<meta property="og:url" content="https://laohu-one.github.io/frp.html">
<meta property="og:site_name" content="LaohuのBlog">
<meta property="og:description" content="frp用于没有公网IP的场合,比如办公室电脑连接的网络没有公网IP,你在外面就无法访问到家中电脑(除非使用向日葵等软件,这些软件也是内置了内网穿透的客户端,服务器是他们公司提供,所以这类软件不可能会免费使用,就会对客户端进行限速,远远没有windows自带的远程桌面流畅,当然也可以自制远程桌面软件)。这时就需要用到frp内网穿透,将你的电脑数据发送到frp服务器上,这样你在外网可以通过访问f">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://pic2.zhimg.com/80/v2-bebad73666764388926f4c46b0c4b429_720w.webp">
<meta property="article:published_time" content="2023-03-19T01:32:00.000Z">
<meta property="article:modified_time" content="2023-07-16T04:50:49.415Z">
<meta property="article:author" content="侯昌虎">
<meta property="article:tag" content="frp">
<meta property="article:tag" content="内网穿透">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://pic2.zhimg.com/80/v2-bebad73666764388926f4c46b0c4b429_720w.webp"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://laohu-one.github.io/frp.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: undefined,
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":230},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
source: {
justifiedGallery: {
js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
}
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: '“frp-内网穿透-远程访问家中电脑”',
isPost: true,
isHome: false,
isHighlightShrink: false,
isToc: true,
postUpdate: '2023-07-16 12:50:49'
}</script><noscript><style type="text/css">
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
</style></noscript><script>(win=>{
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.getCSS = (url,id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><link rel="stylesheet" href="//at.alicdn.com/t/c/font_4094579_df7va6toeq.css"><meta name="generator" content="Hexo 6.3.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/img/touxiang.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">23</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">29</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">11</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 目录</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw iconfont icon-icon-lift"></i><span> 工具</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" target="_blank" rel="noopener" href="https://yun.laohu.space"><i class="fa-fw iconfont icon-daohang-kucun"></i><span> 个人网盘</span></a></li><li><a class="site-page child" target="_blank" rel="noopener" href="https://tu.laohu.space"><i class="fa-fw iconfont icon-icon-picture"></i><span> 共享图床</span></a></li></ul></div></div></div></div><div class="post" id="body-wrap"><header class="post-bg" id="page-header" style="background-image: url('https://pic2.zhimg.com/80/v2-bebad73666764388926f4c46b0c4b429_720w.webp')"><nav id="nav"><span id="blog-info"><a href="/" title="LaohuのBlog"><span class="site-name">LaohuのBlog</span></a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 归档</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 目录</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw iconfont icon-icon-lift"></i><span> 工具</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" target="_blank" rel="noopener" href="https://yun.laohu.space"><i class="fa-fw iconfont icon-daohang-kucun"></i><span> 个人网盘</span></a></li><li><a class="site-page child" target="_blank" rel="noopener" href="https://tu.laohu.space"><i class="fa-fw iconfont icon-icon-picture"></i><span> 共享图床</span></a></li></ul></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="post-info"><h1 class="post-title">“frp-内网穿透-远程访问家中电脑”</h1><div id="post-meta"><div class="meta-firstline"><span class="post-meta-date"><i class="far fa-calendar-alt fa-fw post-meta-icon"></i><span class="post-meta-label">发表于</span><time class="post-meta-date-created" datetime="2023-03-19T01:32:00.000Z" title="发表于 2023-03-19 09:32:00">2023-03-19</time><span class="post-meta-separator">|</span><i class="fas fa-history fa-fw post-meta-icon"></i><span class="post-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2023-07-16T04:50:49.415Z" title="更新于 2023-07-16 12:50:49">2023-07-16</time></span><span class="post-meta-categories"><span class="post-meta-separator">|</span><i class="fas fa-inbox fa-fw post-meta-icon"></i><a class="post-meta-categories" href="/categories/%E8%BD%AF%E8%B7%AF%E7%94%B1/">软路由</a></span></div><div class="meta-secondline"><span class="post-meta-separator">|</span><span class="post-meta-pv-cv" id="" data-flag-title="“frp-内网穿透-远程访问家中电脑”"><i class="far fa-eye fa-fw post-meta-icon"></i><span class="post-meta-label">阅读量:</span><span id="busuanzi_value_page_pv"><i class="fa-solid fa-spinner fa-spin"></i></span></span></div></div></div></header><main class="layout" id="content-inner"><div id="post"><article class="post-content" id="article-container"><hr>
<p> frp用于没有公网IP的场合,比如办公室电脑连接的网络没有公网IP,你在外面就无法访问到家中电脑(除非使用向日葵等软件,这些软件也是内置了内网穿透的客户端,服务器是他们公司提供,所以这类软件不可能会免费使用,就会对客户端进行限速,远远没有windows自带的远程桌面流畅,当然也可以自制远程桌面软件)。这时就需要用到frp内网穿透,将你的电脑数据发送到frp服务器上,这样你在外网可以通过访问frp服务器来访问你家中的电脑。<br> 具体操作:需要先在具有公网IP的服务器(电脑)上安装frp服务端,再在需要被访问的电脑(或路由器)上安装frpc客户端,然后修改客户端配置文件,连接服务端,服务端打开对应的端口。</p>
<hr>
<h1 id="frpc-客户端"><a href="#frpc-客户端" class="headerlink" title="frpc 客户端"></a>frpc 客户端</h1><p> 先在github上下载frp的软件包,里面包含客户端和服务端,只有十几兆大小。frp中文文档 <a target="_blank" rel="noopener" href="https://github.com/fatedier/frp/blob/master/README_zh.md">https://github.com/fatedier/frp/blob/master/README_zh.md</a> frp下载地址<a target="_blank" rel="noopener" href="https://github.com/fatedier/frp/releases">https://github.com/fatedier/frp/releases</a> 下载windows amd64.zip. </p>
<p> 解压后先将文件夹放进安全隔离区,否则系统会删除,编辑frpc.ini文件,文本打开 </p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">#服务器数据匹配认证</span><br><span class="line">[common] </span><br><span class="line">server_addr = fd.laohu.space #公网服务器ip</span><br><span class="line">server_port = 7000 #与服务端bind_port一致 不修改</span><br><span class="line">taken = 123 #服务器端密钥</span><br><span class="line"></span><br><span class="line">#客户端数据</span><br><span class="line">[zhuji-AAA] #客户端名称 必须修改,每个客户端名称必须不同</span><br><span class="line">type = tcp #网络通讯协议</span><br><span class="line">local_ip = 127.0.0.1 #本地IP地址,默认即可</span><br><span class="line">local_port = 3389 # 需要穿透的端口,3389是windows远程桌面的连接端口</span><br><span class="line">remote_port = 24567 # 远程服务器端口(自定义) 必须修改</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p>设置完后 使用cmd/powershell 进入当前目录,执行下列命令启动客户端</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">./frpc.exe -c ./frpc.ini</span><br><span class="line"></span><br></pre></td></tr></table></figure>
<p>报错1:</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">2023/03/19 10:32:39 [E] [service.go:289] token in login doesn't match token from configuration</span><br><span class="line">2023/03/19 10:32:39 [W] [service.go:133] login to server failed: token in login doesn't match token from configuration</span><br><span class="line">token in login doesn't match token from configuration</span><br></pre></td></tr></table></figure>
<p>chatgpt:这个报错提示登录时提供的 token 值与配置文件中的 token 值不匹配。这可能是由于在配置文件中使用了错误的 token 值或者在登录时使用了错误的 token 值导致的。请检查配置文件中的 token 值是否与登录时提供的值匹配,并尝试重新登录。</p>
<p>这个问题就很麻烦,因为我服务器是在openwrt路由器上安装的,可能是它上面设置的密码的格式和客户端设置的密码格式不一样,就导致即使输入相同的密码也无法连接。只能是把密码取消掉,但是如果客户端在路由器上登录,又必须要填写密码,就搞得很头疼。</p>
<p>报错2:</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">lk, jm hngbvgcfxdsznjmk hbgvfcx </span><br></pre></td></tr></table></figure>
<p>端口要设定在服务器允许的范围内,默认是 10000-50000<br>服务器需要开放对应的端口,不然防火墙就阻止了。</p>
<p>如果电脑是通过路由器的frp客户端连接frp服务器,电脑需要开启防火墙的7000端口。 </p>
<h2 id="开机自启动frp客户端"><a href="#开机自启动frp客户端" class="headerlink" title="开机自启动frp客户端"></a>开机自启动frp客户端</h2><p>新建个bat文件</p>
<figure class="highlight plaintext"><table><tr><td class="code"><pre><span class="line">@echo off</span><br><span class="line">if "%1" == "h" goto begin</span><br><span class="line">mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit</span><br><span class="line">:begin</span><br><span class="line">REM</span><br><span class="line">cd frp所在路径</span><br><span class="line">frpc -c frpc.ini</span><br><span class="line">exit</span><br></pre></td></tr></table></figure>
<p>创建bat文件的快捷方式,放到开机自启动文件夹内</p>
<p>win+r 输入:shell:startup 进入自启动文件夹</p>
<h1 id="frps-服务端"><a href="#frps-服务端" class="headerlink" title="frps 服务端"></a>frps 服务端</h1><p>服务端跟客户端类似,</p>
</article><div class="post-copyright"><div class="post-copyright__author"><span class="post-copyright-meta">文章作者: </span><span class="post-copyright-info"><a href="https://laohu-one.github.io">侯昌虎</a></span></div><div class="post-copyright__type"><span class="post-copyright-meta">文章链接: </span><span class="post-copyright-info"><a href="https://laohu-one.github.io/frp.html">https://laohu-one.github.io/frp.html</a></span></div><div class="post-copyright__notice"><span class="post-copyright-meta">版权声明: </span><span class="post-copyright-info">本博客所有文章除特别声明外,均采用 <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a> 许可协议。转载请注明来自 <a href="https://laohu-one.github.io" target="_blank">LaohuのBlog</a>!</span></div></div><div class="tag_share"><div class="post-meta__tag-list"><a class="post-meta__tags" href="/tags/frp/">frp</a><a class="post-meta__tags" href="/tags/%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F/">内网穿透</a></div><div class="post_share"></div></div><nav class="pagination-post" id="pagination"><div class="prev-post pull-left"><a href="/cloud.html" title="内网服务器搭建共享网盘"><img class="cover" src="https://th.bing.com/th/id/R.fdf91e6f12d8c0b6752daaa684416556?rik=qbWucKmyEoz6Uw&pid=ImgRaw&r=0" onerror="onerror=null;src='/img/404.jpg'" alt="cover of previous post"><div class="pagination-info"><div class="label">上一篇</div><div class="prev_info">内网服务器搭建共享网盘</div></div></a></div><div class="next-post pull-right"><a href="/petalinux.html" title="“petalinux操作笔记”"><img class="cover" src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fblog%2F202104%2F22%2F20210422220415_2e4bd.jpg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1681472116&t=5fc793f6aa64ff88aa186fa857b5e125" onerror="onerror=null;src='/img/404.jpg'" alt="cover of next post"><div class="pagination-info"><div class="label">下一篇</div><div class="next_info">“petalinux操作笔记”</div></div></a></div></nav><hr/><div id="post-comment"><div class="comment-head"><div class="comment-headline"><i class="fas fa-comments fa-fw"></i><span> 评论</span></div></div><div class="comment-wrap"><div><div id="twikoo-wrap"></div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/img/touxiang.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">侯昌虎</div><div class="author-info__description">跟着心走,那就是对的</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">23</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">29</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">11</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="http://changhu.tpddns.cn:4000"><i></i><span>点击进入本站的高速网址</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="tencent://AddContact/?fromId=45&fromSubId=1&subcmd=all&uin=424362229" target="_blank" title=""><i class="iconfont icon-qq"></i></a><a class="social-icon" href="https://s1.ax1x.com/2023/06/08/pCAuKzt.jpg" target="_blank" title=""><i class="iconfont icon-weixin"></i></a><a class="social-icon" href="https://github.com/laohu-one" target="_blank" title="Github"><i class="fab fa-github" style="color: #24292e;"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">记录自己的折腾笔记,记性不太好,得找个本本记记,有一起折腾的可以参考我的文章,有问题在评论区讨论。</div></div><div class="sticky_layout"><div class="card-widget" id="card-toc"><div class="item-headline"><i class="fas fa-stream"></i><span>目录</span><span class="toc-percentage"></span></div><div class="toc-content"><ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#frpc-%E5%AE%A2%E6%88%B7%E7%AB%AF"><span class="toc-number">1.</span> <span class="toc-text">frpc 客户端</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#%E5%BC%80%E6%9C%BA%E8%87%AA%E5%90%AF%E5%8A%A8frp%E5%AE%A2%E6%88%B7%E7%AB%AF"><span class="toc-number">1.1.</span> <span class="toc-text">开机自启动frp客户端</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#frps-%E6%9C%8D%E5%8A%A1%E7%AB%AF"><span class="toc-number">2.</span> <span class="toc-text">frps 服务端</span></a></li></ol></div></div><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/yolov5.html" title="linux板上运行yolov5 目标检测"><img src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X3BuZy84U0lYdjBOclZBbmt2b21zTzVnMVcweDNpYlZVdDJ6YzJKMFRGQlVpY0hJalZkN0gxbWdmMVdoaWNPUERQNG1NT040aWFqUVN5SmZUVk9TbWJ5WlJiMW5HWGcvNjQw?x-oss-process=image/format,png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="linux板上运行yolov5 目标检测"/></a><div class="content"><a class="title" href="/yolov5.html" title="linux板上运行yolov5 目标检测">linux板上运行yolov5 目标检测</a><time datetime="2023-07-17T06:18:45.000Z" title="发表于 2023-07-17 14:18:45">2023-07-17</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/plc.html" title="200SMART PLC单片机"><img src="https://pic1.zhimg.com/v2-7c6505eed9db133f0d85db3315335864_r.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="200SMART PLC单片机"/></a><div class="content"><a class="title" href="/plc.html" title="200SMART PLC单片机">200SMART PLC单片机</a><time datetime="2023-07-14T01:20:31.000Z" title="发表于 2023-07-14 09:20:31">2023-07-14</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/nginx.html" title="部署 Nginx Proxy Manger 反向代理 配置阿里云SSL证书"><img src="https://tu.laohu.space/i/2023/05/30/6475d534344a9.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="部署 Nginx Proxy Manger 反向代理 配置阿里云SSL证书"/></a><div class="content"><a class="title" href="/nginx.html" title="部署 Nginx Proxy Manger 反向代理 配置阿里云SSL证书">部署 Nginx Proxy Manger 反向代理 配置阿里云SSL证书</a><time datetime="2023-07-10T09:05:10.000Z" title="发表于 2023-07-10 17:05:10">2023-07-10</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/mp157.html" title="嵌入式linux mp157 开发"><img src="https://tse3-mm.cn.bing.net/th/id/OIP-C.nzZHvPW4TzWzHEnMhVZLsgHaEK?pid=ImgDet&rs=1" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="嵌入式linux mp157 开发"/></a><div class="content"><a class="title" href="/mp157.html" title="嵌入式linux mp157 开发">嵌入式linux mp157 开发</a><time datetime="2023-06-13T08:34:55.000Z" title="发表于 2023-06-13 16:34:55">2023-06-13</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/do-ipsce.html" title="docker 部署 ipsec 服务器"><img src="https://pic3.zhimg.com/80/v2-ede5e509f2c00a447134024105e4e2de_720w.webp" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="docker 部署 ipsec 服务器"/></a><div class="content"><a class="title" href="/do-ipsce.html" title="docker 部署 ipsec 服务器">docker 部署 ipsec 服务器</a><time datetime="2023-06-11T07:52:10.000Z" title="发表于 2023-06-11 15:52:10">2023-06-11</time></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div class="copyright">©2020 - 2023 By 侯昌虎</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="readmode" type="button" title="阅读模式"><i class="fas fa-book-open"></i></button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button class="close" id="mobile-toc-button" type="button" title="目录"><i class="fas fa-list-ul"></i></button><a id="to_comment" href="#post-comment" title="直达评论"><i class="fas fa-comments"></i></a><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.umd.min.js"></script><div class="js-pjax"><script>(()=>{
const init = () => {
twikoo.init(Object.assign({
el: '#twikoo-wrap',
envId: 'https://twikoo.laohu.space',
region: '',
onCommentLoaded: function () {
btf.loadLightbox(document.querySelectorAll('#twikoo .tk-content img:not(.tk-owo-emotion)'))
}
}, null))
}
const getCount = () => {
const countELement = document.getElementById('twikoo-count')
if(!countELement) return
twikoo.getCommentsCount({
envId: 'https://twikoo.laohu.space',
region: '',
urls: [window.location.pathname],
includeReply: false
}).then(function (res) {
countELement.textContent = res[0].count
}).catch(function (err) {
console.error(err);
});
}
const runFn = () => {
init()
}
const loadTwikoo = () => {
if (typeof twikoo === 'object') {
setTimeout(runFn,0)
return
}
getScript('https://cdn.jsdelivr.net/npm/twikoo/dist/twikoo.all.min.js').then(runFn)
}
if ('Twikoo' === 'Twikoo' || !false) {
if (false) btf.loadComment(document.getElementById('twikoo-wrap'), loadTwikoo)
else loadTwikoo()
} else {
window.loadOtherComment = () => {
loadTwikoo()
}
}
})()</script></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>