-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
178 lines (166 loc) · 31.2 KB
/
index.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
<!DOCTYPE html><html lang="en" 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"><title>Blog of Shane Hu - Welcome, friends!</title><noscript>Please enable JavaScript to view the site</noscript><link rel="icon" href="/img/pwa/favicon.ico"><!-- index.css--><link rel="stylesheet" href="/css/index.css?v=1.11.3"><!-- inject head--><link rel="stylesheet" href="https://cdn2.codesign.qq.com/icons/7pOrz0WXB5ZWJPX/latest/iconfont.css"><!-- aplayer--><!-- swiper--><!-- fancybox ui--><!-- katex--><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.9/katex.min.css"><!-- Open Graph--><meta name="description"><!-- pwa--><meta name="apple-mobile-web-app-capable" content="Blog of Shane Hu"><meta name="theme-color" content="var(--efu-main)"><meta name="apple-mobile-web-app-status-bar-style" content="var(--efu-main)"><link rel="bookmark" href="/img/pwa/favicon.ico"><link rel="apple-touch-icon" href="/img/pwa/favicon.ico" sizes="180x180"><script>console.log(
"%c Program: Hexo %c Theme: Solitude %c Version: v1.11.3",
"border-radius:5px 0 0 5px;padding: 5px 10px;color:white;background:#ff3842;",
"padding: 5px 10px;color:white;background:#3e9f50;",
"padding: 5px 10px;color:white;background:#0084ff;border-radius:0 5px 5px 0",
)
</script><script>(()=>{
const 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
}
};
window.utils = {
saveToLocal: saveToLocal,
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)
}),
getScript: (url, attr = {}) => 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()
}
Object.keys(attr).forEach(key => {
script.setAttribute(key, attr[key])
})
document.head.appendChild(script)
}),
addGlobalFn: (key, fn, name = false, parent = window) => {
const globalFn = parent.globalFn || {}
const keyObj = globalFn[key] || {}
if (name && keyObj[name]) return
name = name || Object.keys(keyObj).length
keyObj[name] = fn
globalFn[key] = keyObj
parent.globalFn = globalFn
},
}
})()</script><!-- global head--><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localsearch: undefined,
runtime: '2024-06-03 00:00:00',
lazyload: {
enable: true,
error: '/img/error_load.webp'
},
copyright: {"limit":50,"author":"Author: Shane Hu","link":"Link: ","source":"Source: Blog of Shane Hu","info":"Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source."},
highlight: {
enable: true,
limit: 200,
expand: true,
copy: true,
syntax: 'highlight.js'
},
randomlink: false,
lang: {"theme":{"dark":"Dark","light":"Light"},"copy":{"success":"Copied","error":"Copy failed"},"backtop":"Back to top","time":{"day":" days ago","hour":" hours ago","just":"just","min":" minutes ago","month":" months ago"},"day":" days","f12":"Developer mode is turned on, please follow the GPL.","totalk":"You don't need to delete blank lines, just type in your comments."},
aside: {
sayhello: {
morning: '一日之计在于晨',
noon: '吃饱了才有力气干活',
afternoon: '集中精力,攻克难关',
night: '不要太劳累了,早睡更健康',
goodnight: '睡个好觉,保证精力充沛',
},
sayhello2: [],
sayhello3: {
prefix: 'Long time no see,',
back: 'Welcome back again,',
},
},
covercolor: {
enable: false
},
comment: false,
lightbox: 'null',
post_ai: false,
right_menu: false,
};</script><!-- page-config head--><script id="config-diff">var PAGE_CONFIG = {
is_post: false,
is_page: false,
is_home: true,
page: 'solitude',
toc: false,
comment: false,
ai_text: false
}</script><meta name="generator" content="Hexo 7.2.0"></head><body id="body" data-type="solitude"><!-- universe--><canvas id="universe"></canvas><!-- loading--><!-- console--><div id="console"><div class="close-btn" onclick="sco.hideConsole()"><i class="solitude st-close-fill"></i></div><div class="button-group"><div class="console-btn-item"><span class="darkmode_switchbutton" onclick="sco.switchDarkMode()" title="Day and night switching"><i class="solitude st-moon-clear-fill"></i></span></div><div class="console-btn-item" id="consoleHideAside"><span class="asideSwitch" onclick="sco.switchHideAside()" title="Sidebar display control"><i class="solitude st-side-bar-fill"></i></span></div></div><div class="console-mask" onclick="sco.hideConsole()"></div></div><!-- sidebar--><div id="sidebar" style="zoom: 1;"><div id="menu-mask" style="display: none;"></div><div id="sidebar-menus"><div class="site-data"><div class="data-item is-center"><div class="data-item-link"><a href="/archives/"><div class="headline">Archives</div><div class="length-num">17</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/categories/"><div class="headline">Categories</div><div class="length-num">5</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/tags/"><div class="headline">Tags</div><div class="length-num">25</div></a></div></div></div><span class="sidebar-menu-item-title">Function</span><div class="sidebar-menu-item"><span class="darkmode_switchbutton menu-child" onclick="sco.switchDarkMode()"><i class="solitude st-moon-clear-fill"></i><span>Display mode</span></span></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>文库</span></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="solitude st-folder-fill"></i><span>文章列表</span></a></li><li><a class="site-page child" href="/categories/"><i class="solitude st-checkbox-multiple-blank-fill"></i><span>全部分类</span></a></li><li><a class="site-page child" href="/tags/"><i class="solitude st-price-tag-fill"></i><span>全部标签</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>关于我</span></a><ul class="menus_item_child"><li><a class="site-page child" href="/about/"><i class="solitude st-contacts-fill"></i><span>自我介绍</span></a></li></ul></div></div><span class="sidebar-menu-item-title">Tags</span><div class="card-widget card-tags card-archives card-webinfo card-allinfo"><div class="card-tag-cloud"><a href="/tags/web/">web<sup>1</sup></a><a href="/tags/http/">http<sup>1</sup></a><a href="/tags/debian/">debian<sup>1</sup></a><a href="/tags/dns/">dns<sup>2</sup></a><a href="/tags/53port/">53port<sup>1</sup></a><a href="/tags/algebra/">algebra<sup>1</sup></a><a href="/tags/mathematics/">mathematics<sup>1</sup></a><a href="/tags/socks5/">socks5<sup>1</sup></a><a href="/tags/Dante/">Dante<sup>1</sup></a><a href="/tags/bind9/">bind9<sup>1</sup></a><a href="/tags/conda/">conda<sup>1</sup></a><a href="/tags/Fonts/">Fonts<sup>1</sup></a><a href="/tags/hexo/">hexo<sup>2</sup></a><a href="/tags/OpenWRT/">OpenWRT<sup>1</sup></a><a href="/tags/server/">server<sup>1</sup></a><a href="/tags/vps/">vps<sup>1</sup></a><a href="/tags/theme/">theme<sup>1</sup></a><a href="/tags/ssl/">ssl<sup>1</sup></a><a href="/tags/jottings/">jottings<sup>2</sup></a><a href="/tags/python/">python<sup>2</sup></a><a href="/tags/mysql/">mysql<sup>2</sup></a><a href="/tags/api/">api<sup>2</sup></a><a href="/tags/udesk/">udesk<sup>2</sup></a><a href="/tags/ydns/">ydns<sup>1</sup></a><a href="/tags/ddns/">ddns<sup>1</sup></a></div></div></div></div><!-- keyboard--><div class="page" id="body-wrap"><header class="not-top-img" id="page-header"><nav class="show" id="nav"><div id="nav-group"><div id="blog_name"><a id="site-name" href="/" title="Back to home"><span class="title">主页</span></a></div><div id="page-name-mask"><div id="page-name"><a id="page-name-text" onclick="sco.toTop()">Blog of Shane Hu</a></div></div><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>文库</span></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="solitude st-folder-fill"></i><span>文章列表</span></a></li><li><a class="site-page child" href="/categories/"><i class="solitude st-checkbox-multiple-blank-fill"></i><span>全部分类</span></a></li><li><a class="site-page child" href="/tags/"><i class="solitude st-price-tag-fill"></i><span>全部标签</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><span>关于我</span></a><ul class="menus_item_child"><li><a class="site-page child" href="/about/"><i class="solitude st-contacts-fill"></i><span>自我介绍</span></a></li></ul></div></div></div><div id="nav-left"></div><div id="nav-right"><div class="nav-button" id="nav-console"><a class="console_switchbutton" onclick="sco.showConsole()" title="Console" href="javascript:void(0);"><i class="solitude st-dashboard-fill"></i></a></div><div class="nav-button" id="nav-totop" onclick="sco.toTop()"><a class="totopbtn"><i class="solitude st-arrow-up-line"></i><span id="percent">0</span></a></div><div id="toggle-menu"><a class="site-page"><i class="solitude st-menu-line"></i></a></div></div></div></nav></header><main class="layout" id="content-inner"><div id="home"><div id="category-bar"><div class="category-bar-items home" id="category-bar-items"><div class="category-bar-item select" id="category-bar-home"><a href="/">Home</a></div><div class="category-bar-item"><a href="/archives/">All articles</a></div><div class="category-bar-item" id="jottings"><a href="/categories/jottings/">jottings</a></div><div class="category-bar-item" id="mathematics"><a href="/categories/mathematics/">mathematics</a></div><div class="category-bar-item" id="software"><a href="/categories/software/">software</a></div><div class="category-bar-item" id="Fonts"><a href="/categories/Fonts/">Fonts</a></div><div class="category-bar-item" id="server"><a href="/categories/server/">server</a></div></div><div class="category-bar-right"><a class="category-bar-more" href="/categories/">More</a></div></div><div class="recent-posts" id="recent-posts"><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/28/240628/')"><div class="post_cover"><a href="/2024/06/28/240628/" title="Untitled"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/img/default.png" alt="Untitled"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">New</span><a class="unvisited-post" href="/2024/06/28/240628/">Unread</a></div><a class="article-title" href="/2024/06/28/240628/" title="Untitled">Untitled</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"></span><span class="post-meta-date"><time datetime="2024-06-28T01:57:07.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/20/2406202/')"><div class="post_cover"><a href="/2024/06/20/2406202/" title="使用 dnscrypt-proxy 解决 dns 被劫持污染问题"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/img/default.png" alt="使用 dnscrypt-proxy 解决 dns 被劫持污染问题"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">jottings</span><a class="unvisited-post" href="/2024/06/20/2406202/">Unread</a></div><a class="article-title" href="/2024/06/20/2406202/" title="使用 dnscrypt-proxy 解决 dns 被劫持污染问题">使用 dnscrypt-proxy 解决 dns 被劫持污染问题</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/dns/" onclick="event.stopPropagation();"><span class="tags-punctuation">dns</span></a></span><span class="post-meta-date"><time datetime="2024-06-20T04:59:01.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/20/240620/')"><div class="post_cover"><a href="/2024/06/20/240620/" title="debian 使用 dnscrypt-proxy 后 53 端口被 1/init systemd 占用问题"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/img/default.png" alt="debian 使用 dnscrypt-proxy 后 53 端口被 1/init systemd 占用问题"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">jottings</span><a class="unvisited-post" href="/2024/06/20/240620/">Unread</a></div><a class="article-title" href="/2024/06/20/240620/" title="debian 使用 dnscrypt-proxy 后 53 端口被 1/init systemd 占用问题">debian 使用 dnscrypt-proxy 后 53 端口被 1/init systemd 占用问题</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/debian/" onclick="event.stopPropagation();"><span class="tags-punctuation">debian</span></a><a class="article-meta__tags" href="/tags/dns/" onclick="event.stopPropagation();"><span class="tags-punctuation">dns</span></a><a class="article-meta__tags" href="/tags/53port/" onclick="event.stopPropagation();"><span class="tags-punctuation">53port</span></a></span><span class="post-meta-date"><time datetime="2024-06-20T02:31:07.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/19/240619/')"><div class="post_cover"><a href="/2024/06/19/240619/" title="HTTP Status 307缓存的处理"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/img/default.png" alt="HTTP Status 307缓存的处理"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">jottings</span><a class="unvisited-post" href="/2024/06/19/240619/">Unread</a></div><a class="article-title" href="/2024/06/19/240619/" title="HTTP Status 307缓存的处理">HTTP Status 307缓存的处理</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/web/" onclick="event.stopPropagation();"><span class="tags-punctuation">web</span></a><a class="article-meta__tags" href="/tags/http/" onclick="event.stopPropagation();"><span class="tags-punctuation">http</span></a></span><span class="post-meta-date"><time datetime="2024-06-19T06:33:02.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/06/Dante/')"><div class="post_cover"><a href="/2024/06/06/Dante/" title="使用 Dante 配置 socks5"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/Dante/image.png" alt="使用 Dante 配置 socks5"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">software</span><span class="original">socks5</span><a class="unvisited-post" href="/2024/06/06/Dante/">Unread</a></div><a class="article-title" href="/2024/06/06/Dante/" title="使用 Dante 配置 socks5">使用 Dante 配置 socks5</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/socks5/" onclick="event.stopPropagation();"><span class="tags-punctuation">socks5</span></a><a class="article-meta__tags" href="/tags/Dante/" onclick="event.stopPropagation();"><span class="tags-punctuation">Dante</span></a></span><span class="post-meta-date"><time datetime="2024-06-06T04:58:10.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/06/solitude/')"><div class="post_cover"><a href="/2024/06/06/solitude/" title="Theme Solitude for hexo"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/2024/06/06/solitude/image.png" alt="Theme Solitude for hexo"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">software</span><span class="original">hexo</span><a class="unvisited-post" href="/2024/06/06/solitude/">Unread</a></div><a class="article-title" href="/2024/06/06/solitude/" title="Theme Solitude for hexo">Theme Solitude for hexo</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/hexo/" onclick="event.stopPropagation();"><span class="tags-punctuation">hexo</span></a><a class="article-meta__tags" href="/tags/theme/" onclick="event.stopPropagation();"><span class="tags-punctuation">theme</span></a></span><span class="post-meta-date"><time datetime="2024-06-06T03:00:55.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/05/udesk2/')"><div class="post_cover"><a href="/2024/06/05/udesk2/" title="通过wps+django使用api更新udesk知识库问题"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/2024/06/05/udesk2/image.png" alt="通过wps+django使用api更新udesk知识库问题"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">jottings</span><a class="unvisited-post" href="/2024/06/05/udesk2/">Unread</a></div><a class="article-title" href="/2024/06/05/udesk2/" title="通过wps+django使用api更新udesk知识库问题">通过wps+django使用api更新udesk知识库问题</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/jottings/" onclick="event.stopPropagation();"><span class="tags-punctuation">jottings</span></a><a class="article-meta__tags" href="/tags/python/" onclick="event.stopPropagation();"><span class="tags-punctuation">python</span></a><a class="article-meta__tags" href="/tags/mysql/" onclick="event.stopPropagation();"><span class="tags-punctuation">mysql</span></a><a class="article-meta__tags" href="/tags/api/" onclick="event.stopPropagation();"><span class="tags-punctuation">api</span></a><a class="article-meta__tags" href="/tags/udesk/" onclick="event.stopPropagation();"><span class="tags-punctuation">udesk</span></a></span><span class="post-meta-date"><time datetime="2024-06-05T08:43:30.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/05/udesk1/')"><div class="post_cover"><a href="/2024/06/05/udesk1/" title="通过 python 使用 api 抓取 udesk 客服系统数据并同步到本地 mysql 数据库"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/2024/06/05/udesk1/image.png" alt="通过 python 使用 api 抓取 udesk 客服系统数据并同步到本地 mysql 数据库"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">jottings</span><a class="unvisited-post" href="/2024/06/05/udesk1/">Unread</a></div><a class="article-title" href="/2024/06/05/udesk1/" title="通过 python 使用 api 抓取 udesk 客服系统数据并同步到本地 mysql 数据库">通过 python 使用 api 抓取 udesk 客服系统数据并同步到本地 mysql 数据库</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/jottings/" onclick="event.stopPropagation();"><span class="tags-punctuation">jottings</span></a><a class="article-meta__tags" href="/tags/python/" onclick="event.stopPropagation();"><span class="tags-punctuation">python</span></a><a class="article-meta__tags" href="/tags/mysql/" onclick="event.stopPropagation();"><span class="tags-punctuation">mysql</span></a><a class="article-meta__tags" href="/tags/api/" onclick="event.stopPropagation();"><span class="tags-punctuation">api</span></a><a class="article-meta__tags" href="/tags/udesk/" onclick="event.stopPropagation();"><span class="tags-punctuation">udesk</span></a></span><span class="post-meta-date"><time datetime="2024-06-05T08:25:19.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/04/Advanced-Algebra/')"><div class="post_cover"><a href="/2024/06/04/Advanced-Algebra/" title="高等代数(上)丘维声 笔记"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/2024/06/04/Advanced-Algebra/image.png" alt="高等代数(上)丘维声 笔记"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">mathematics</span><span class="original">algebra</span><a class="unvisited-post" href="/2024/06/04/Advanced-Algebra/">Unread</a></div><a class="article-title" href="/2024/06/04/Advanced-Algebra/" title="高等代数(上)丘维声 笔记">高等代数(上)丘维声 笔记</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/algebra/" onclick="event.stopPropagation();"><span class="tags-punctuation">algebra</span></a><a class="article-meta__tags" href="/tags/mathematics/" onclick="event.stopPropagation();"><span class="tags-punctuation">mathematics</span></a></span><span class="post-meta-date"><time datetime="2024-06-04T10:47:13.000Z"></time></span></div></div></div><div class="recent-post-item" onclick="pjax.loadUrl('/2024/06/04/server/')"><div class="post_cover"><a href="/2024/06/04/server/" title="服务器基础配置"><img class="post_bg" src= "/img/loading.gif" data-lazy-src="/2024/06/04/server/image.png" alt="服务器基础配置"></a></div><div class="recent-post-info"><div class="recent-post-info-top"><div class="recent-post-info-top-tips"><span class="original">server</span><a class="unvisited-post" href="/2024/06/04/server/">Unread</a></div><a class="article-title" href="/2024/06/04/server/" title="服务器基础配置">服务器基础配置</a></div><div class="content"></div><div class="article-meta-wrap"><span class="article-meta tags"><a class="article-meta__tags" href="/tags/server/" onclick="event.stopPropagation();"><span class="tags-punctuation">server</span></a><a class="article-meta__tags" href="/tags/vps/" onclick="event.stopPropagation();"><span class="tags-punctuation">vps</span></a></span><span class="post-meta-date"><time datetime="2024-06-04T03:27:00.000Z"></time></span></div></div></div><!-- pagination--><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/">2</a><a class="extend next" rel="next" href="/page/2/"><div class="pagination_tips_next">Next</div> <i class="solitude st-arrow-right-bold"></i></a><div class="toPageGroup"><input id="toPageText" oninput="value=value.replace(/[^0-9]/g,'')" maxlength="3" title="To page" onkeyup="if (this.value === '0') this.value = ''"><a id="toPageButton" onclick="sco.toPage()"><i class="solitude st-show-right-line"></i></a></div></div></nav></div></div><!-- aside--><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="card-content"><div class="card-info-avatar is-center"><div class="author-info__top-group"><div class="author-info__sayhi" id="author-info__sayhi" onclick="sco.changeSayHelloText()">sayhello.morning</div></div></div><div class="avatar-img-group"><img class="avatar-img" alt="Avatar" src= "/img/loading.gif" data-lazy-src="/img/head_porttrait.jpeg"><div class="avatar-sticker"><img class="avatar-sticker-img" src= "/img/loading.gif" data-lazy-src="https://7.isyangs.cn/34/65f2e4e0423cc-34.png" alt="Mood sticker"></div></div><div class="author-info__description_group"><div class="author-info__description">分享自己对编程的<b>热爱</b>,对美好生活的<b>向往</b>,对知识海洋<b>探索历程</b>。</div><div class="author-info__description2">相信你可以在这里找到对你有用的知识和教程。</div></div><div class="author-info__bottom-group"><a class="author-info__bottom-group-left" href="/about/"><div class="author-info__name">Shane Hu</div><div class="author-info__desc">Welcome, friends!</div></a><div class="card-info-social-icons is-center"><a class="social-icon" target="_blank" rel="noopener" href="https://github.com/hs3434" title="Github"><i class="solitude st-github-line"></i></a></div></div></div></div><div class="sticky_layout"><div class="card-widget card-tags card-archives card-webinfo card-allinfo"><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/06/"><span class="card-archive-list-date">2024/06</span><div class="card-archive-list-count-group"><span class="card-archive-list-count">17</span><span class="card-archive-list-count-unit">Posts</span></div></a></li></ul><hr><div class="webinfo"><div class="webinfo-item"><div class="webinfo-item-title"><i class="item-icon solitude st-folder-fill"></i><div class="item-name">Posts :</div></div><div class="item-count">17</div></div><div class="webinfo-item"><div class="webinfo-item-title"><i class="item-icon solitude st-calendar-todo-fill"></i><div class="item-name">Runtime :</div></div><div class="item-count" id="runtimeshow"></div></div><div class="webinfo-item"><div class="webinfo-item-title"><i class="item-icon solitude st-loop-left-fill"></i><div class="item-name">Last update :</div></div><time class="item-count" datetime="2024-08-10T13:22:51.728Z"></time></div></div></div></div></div></main><footer id="footer"><div id="footer_deal"></div><div id="st-footer"></div><div id="footer-bar"><div class="footer-bar-links"><div class="footer-bar-left"><div class="copyright">© 2024 By <a class="footer-bar-link" href="/">Shane Hu</a></div></div><div class="footer-bar-right"><a class="footer-bar-link" target="_blank" rel="noopener" href="https://github.com/valor-x/hexo-theme-solitude" alt="主题">主题</a><a class="footer-bar-link cc" target="_blank" rel="noopener" href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" aria-label="copyright"><i class="solitude st-copyright-line"></i><i class="solitude st-creative-commons-by-line"></i><i class="solitude st-creative-commons-nc-line"></i><i class="solitude st-creative-commons-nd-line"></i></a></div></div></div></footer></div><!-- right_menu--><!-- inject body--><div><script src="/js/utils.js?v=1.11.3"></script><script src="/js/main.js?v=1.11.3"></script><script src="/js/third_party/waterfall.min.js?v=1.11.3"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/pjax/0.2.8/pjax.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mermaid/10.9.1/mermaid.min.js"></script><script src="/js/third_party/universe.min.js?v=1.11.3"></script><script>dark()
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/vanilla-lazyload/19.1.3/lazyload.iife.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/node-snackbar/0.1.16/snackbar.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/pace/1.2.4/pace.min.js"></script><div class="js-pjax"><script>mermaid.run();</script></div></div><!-- newest comment--><!-- pjax--><script>const pjax = new Pjax({
elements: 'a:not([target="_blank"])',
selectors: ['title','#body-wrap','#site-config','meta[name="description"]','.js-pjax','meta[property^="og:"]','#config-diff'],
cacheBust: false,
analytics: false,
scrollRestoration: false
})
document.querySelectorAll('script[data-pjax]').forEach(item => {
const newScript = document.createElement('script')
const content = item.text || item.textContent || item.innerHTML || ""
Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
newScript.appendChild(document.createTextNode(content))
item.parentNode.replaceChild(newScript, item)
})
document.addEventListener('pjax:complete', () => {
window.refreshFn()
document.querySelectorAll('script[data-pjax]').forEach(item => {
const newScript = document.createElement('script')
const content = item.text || item.textContent || item.innerHTML || ""
Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
newScript.appendChild(document.createTextNode(content))
item.parentNode.replaceChild(newScript, item)
})
GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update()
})
document.addEventListener('pjax:error', (e) => {
if (e.request.status === 404) {
pjax.loadUrl('/404.html')
}
})</script><!-- theme--><script>initTheme = () => {
let isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
const cachedMode = utils.saveToLocal.get('theme');
if (cachedMode === undefined) {
const nowMode =
isDarkMode ? 'dark' : 'light'
document.documentElement.setAttribute('data-theme', nowMode);
} else {
document.documentElement.setAttribute('data-theme', cachedMode);
}
is_rm && rm.mode(cachedMode === 'dark' && isDarkMode)
}
initTheme()</script><!-- google adsense--><!-- search--><!-- Tianli-Talk--><!-- music--></body></html><script>const posts=["2024/06/28/240628/","2024/06/20/2406202/","2024/06/20/240620/","2024/06/19/240619/","2024/06/06/Dante/","2024/06/06/solitude/","2024/06/05/udesk2/","2024/06/05/udesk1/","2024/06/04/Advanced-Algebra/","2024/06/04/server/","2024/06/04/font/","2024/06/04/ydns/","2024/06/04/conda/","2024/06/04/bind9/","2024/06/04/openwrt/","2024/06/04/ssl/","2024/06/03/hexo/"];function toRandomPost(){ pjax.loadUrl('/'+posts[Math.floor(Math.random()*posts.length)]); }</script>