Site updated: 2023-09-09 23:00:34

This commit is contained in:
qinglong committed 2023-09-09 23:00:36 +08:00
1 parent 640dd11dcc
commit 2792046524
176 files changed
+340 -348

No files matched your search

+78 -76
View File
@@ -8,7 +8,7 @@
<author>
<name>Hito Li</name>
</author>
<updated>2023-07-08T02:51:00.000Z</updated>
<updated>2023-09-09T08:48:17.000Z</updated>
<category term="hito" />
<category term="無言" />
<category term="博客" />
@@ -17,6 +17,82 @@
<category term="心得体会" />
<category term="技术分享" />
<category term="踩坑" />
<entry>
<id>https://hitoli.com/2023/09/09/squid-stunnel-%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91/</id>
<title>squid+stunnel 科学上网</title>
<link rel="alternate" href="https://hitoli.com/2023/09/09/squid-stunnel-%E7%A7%91%E5%AD%A6%E4%B8%8A%E7%BD%91/"/>
<content type="html">&lt;h6 id=&#34;前言&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#前言&#34;&gt;#&lt;/a&gt; 前言&lt;/h6&gt;
&lt;p&gt;科学上网的方法有多重,有很多第三方提供的免费方案,这些方案优缺点暂时不予讨论。实际工作生活中还是会有需要自己搭建的情况,这次介绍的是使用 squid+stunnel 方案进行搭建。&lt;/p&gt;
&lt;h6 id=&#34;准备&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#准备&#34;&gt;#&lt;/a&gt; 准备&lt;/h6&gt;
&lt;p&gt;一台可以访问外网的服务器,如香港的云主机并安装 Ubuntu 系统。&lt;/p&gt;
&lt;h6 id=&#34;squid部分&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#squid部分&#34;&gt;#&lt;/a&gt; squid 部分&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;1、安装&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&#34;highlight bash&#34;&gt;&lt;figcaption data-lang=&#34;bash&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token function&#34;&gt;apt-get&lt;/span&gt; &lt;span class=&#34;token function&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;token parameter variable&#34;&gt;-y&lt;/span&gt; squid&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;ul&gt;
&lt;li&gt;2、配置&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;note info&#34;&gt;
&lt;p&gt;生成用户文件&lt;/p&gt;
&lt;/div&gt;
&lt;figure class=&#34;highlight bash&#34;&gt;&lt;figcaption data-lang=&#34;bash&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token function&#34;&gt;apt-get&lt;/span&gt; &lt;span class=&#34;token function&#34;&gt;install&lt;/span&gt; apache2-utils&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;2&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;htpasswd &lt;span class=&#34;token parameter variable&#34;&gt;-c&lt;/span&gt; /etc/squid/squid_user.txt 用户名&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;div class=&#34;note info&#34;&gt;
&lt;p&gt;修改 squid 配置&lt;br /&gt;
1、直接修改 /etc/squid/squid.conf 文件&lt;br /&gt;
2、修改 /etc/squid/conf.d/debian.conf 文件&lt;br /&gt;
两种方式都一样,在底部加入以下代码&lt;/p&gt;
&lt;/div&gt;
&lt;figure class=&#34;highlight yaml&#34;&gt;&lt;figcaption data-lang=&#34;YAML&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#dns 服务器地址&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;2&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;dns_nameservers 8.8.8.8 8.8.4.4&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;3&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;dns_v4_first on&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;4&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 监听端口&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;5&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;http_port 3128&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;6&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 定义 squid 密码文件与 ncsa_auth 文件位置&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;7&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/squid_user.txt&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;8&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 认证进程的数量&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;9&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;auth_param basic children 15&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;10&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 认证对话框显示提示信息&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;11&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;auth_param basic realm Squid proxy&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;caching web server&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;12&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 认证有效期&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;13&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;auth_param basic credentialsttl 24 hours&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;14&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 是否区分用户名大小,off 为不区分&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;15&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;auth_param basic casesensitive off&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;16&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 对定义的 squid_user 文件内的用户开启认证访问&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;17&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;acl 用户名 proxy_auth REQUIRED&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;18&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 允许 squid_user 文件内用户进行代理&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;19&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;http_access allow 用户名&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;20&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 顺序匹配,最后添加拒绝所有未允许的规则。不添加会发现,未匹配到的规则会被放行&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;21&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;http_access deny all&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;22&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 缓存设置&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;23&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;cache_dir ufs /var/spool/squid 100 16 256 read&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;only&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;24&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;cache_mem 0 MB&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;25&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;coredump_dir /var/spool/squid&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;26&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;# 配置高匿,不允许设置任何多余头信息,保持原请求 header。&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;27&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;header_access Via deny all&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;28&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;header_access X&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;Forwarded&lt;span cLine truncated
&lt;p&gt;至次已经可以通过填写安装 squid 的服务器 ip 加端口 3128 加用户名密码进行代理访问了(通过访问&lt;span class=&#34;blue&#34;&gt;&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly93d3cuaXAuY24v&#34;&gt; https://www.ip.cn/&lt;/span&gt;&lt;/span&gt; 查看 ip 就会发现自己的出口 ip 已经变成了 squid 服务器的 ip 了)。但是要想科学上网还必须对代理的数据进行加密,否则访问外网还是会被我国的长城防火墙阻挡,所以还需要安装 stunnel 来实现此目的。&lt;/p&gt;
&lt;/div&gt;
&lt;h6 id=&#34;stunnel服务端部分&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#stunnel服务端部分&#34;&gt;#&lt;/a&gt; stunnel 服务端部分&lt;/h6&gt;
&lt;ul&gt;
&lt;li&gt;1、安装(和 squid 装在一起)&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&#34;highlight bash&#34;&gt;&lt;figcaption data-lang=&#34;bash&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token function&#34;&gt;apt-get&lt;/span&gt; &lt;span class=&#34;token function&#34;&gt;install&lt;/span&gt; &lt;span class=&#34;token parameter variable&#34;&gt;-y&lt;/span&gt; stunnel&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;ul&gt;
&lt;li&gt;2、生成 TLS/SSL 证书&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&#34;highlight bash&#34;&gt;&lt;figcaption data-lang=&#34;bash&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;openssl req &lt;span class=&#34;token parameter variable&#34;&gt;-new&lt;/span&gt; &lt;span class=&#34;token parameter variable&#34;&gt;-x509&lt;/span&gt; &lt;span class=&#34;token parameter variable&#34;&gt;-days&lt;/span&gt; &lt;span class=&#34;token number&#34;&gt;3650&lt;/span&gt; &lt;span class=&#34;token parameter variable&#34;&gt;-nodes&lt;/span&gt; &lt;span class=&#34;token parameter variable&#34;&gt;-out&lt;/span&gt; stunnel.pem &lt;span class=&#34;token parameter variable&#34;&gt;-keyout&lt;/span&gt; stunnel.pem&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;3、将证书 stunnel.pem 放到 /etc/stunnel/ 目录下&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;4、修改 stunnel 配置 (/etc/stunnle/stunnle.conf)&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&#34;highlight yaml&#34;&gt;&lt;figcaption data-lang=&#34;YAML&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 设置stunnel的pid文件路径&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;2&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;pid = /etc/stunnel/stunnel.pid&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;3&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 设置stunnel工作的用户(组)&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;4&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;setuid = root&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;5&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;setgid = root&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;6&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;7&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 开启日志等级:emerg (0)&lt;span class=&#34;token punctuation&#34;&gt;,&lt;/span&gt; alert (1)&lt;span class=&#34;token punctuation&#34;&gt;,&lt;/span&gt; crit (2)&lt;span class=&#34;token punctuation&#34;&gt;,&lt;/span&gt; err (3)&lt;span class=&#34;token punctuation&#34;&gt;,&lt;/span&gt; warning (4)&lt;span class=&#34;token punctuation&#34;&gt;,&lt;/span&gt; notice (5)&lt;span class=&#34;token punctuation&#34;&gt;,&lt;/span&gt; info (6)&lt;span class=&#34;token punctuation&#34;&gt;,&lt;/span&gt; or debug (7)&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;8&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;debug = 7&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;9&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 日志文件路径&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;10&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;output = /etc/stunnel/stunnel.log&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;11&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;12&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 证书文件&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;13&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;cert = /etc/stunnel/stunnel.pem&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;14&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 私钥文件&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;15&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;key = /etc/stunnel/stunnel.pem&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;16&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;17&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 自定义服务名squid&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;proxy&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;18&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;[&lt;/span&gt;squid&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;proxy&lt;span class=&#34;token punctuation&#34;&gt;]&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;19&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 服务监听的端口,client要连接这个端口与server通信&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;20&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;accept = 1234(自定义)&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;21&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 服务要连接的端口,连接到squid的3128端口,将数据发给squid&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;22&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;connect = 3128&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;h6 id=&#34;stunnel客户端部分&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#stunnel客户端部分&#34;&gt;#&lt;/a&gt; stunnel 客户端部分&lt;/h6&gt;
&lt;div class=&#34;note info&#34;&gt;
&lt;p&gt;可以安装在要代理的机器上,在需要代理的情况下再开启(代理地址填 127.0.0.1 加客户端监听端口)。也可以安装在国内的服务器上一直保持连接(代理信息填国内服务器 ip 加客户端监听端口)。本示例客户端为 windows 系统&lt;/p&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;1、下载地址&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class=&#34;blue&#34;&gt;&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly93d3cuc3R1bm5lbC5vcmcvZG93bmxvYWRzLmh0bWw=&#34;&gt;https://www.stunnel.org/downloads.html&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;2、修改配置(C:\Program Files (x86)\stunnel\config\stunnel.conf)&lt;/li&gt;
&lt;/ul&gt;
&lt;figure class=&#34;highlight yaml&#34;&gt;&lt;figcaption data-lang=&#34;YAML&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;[&lt;/span&gt;squid&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;proxy&lt;span class=&#34;token punctuation&#34;&gt;]&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;2&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;client = yes&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;3&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 监听3128端口,那么用户浏览器的代理设置就是 stunnel&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;client&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;ip&lt;span class=&#34;token punctuation&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;token number&#34;&gt;3128&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;4&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;accept = 3128&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;5&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 要连接到的stunnel server的ip与端口&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;6&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;connect = stunnel服务端ip&lt;span class=&#34;token punctuation&#34;&gt;:&lt;/span&gt;1234(服务端自定义端口)&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;7&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;8&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 需要验证对方发过来的证书&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;9&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;verify = 2&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;10&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;; 用来进行证书验证的文件(stunnel服务端生成的证书复制到以下目录并改名为stunnel&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;server.pem)&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;11&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;CAfile = C&lt;span class=&#34;token punctuation&#34;&gt;:&lt;/span&gt;\Program Files (x86)\stunnel\config\stunnel&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;server.pem&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;div class=&#34;note primary&#34;&gt;
&lt;p&gt;至次配置好代理 ip 为 stunnel 客户端 ip 加端口 3128 就可以正式科学上网了。如果只想对需要科学的 url 进行代理,可以通过安装 Proxy SwitchyOmega 插件实现(规则地址可通过&lt;span class=&#34;blue&#34;&gt;&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly9naXRodWIuY29tL2dmd2xpc3QvZ2Z3bGlzdA==&#34;&gt; https://github.com/gfwlist/gfwlist&lt;/span&gt;&lt;/span&gt; 获取)。&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2023/09/09/6a38fcb32752.png&#34; alt=&#34;&#34; /&gt;&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2023/09/09/72892168bfeb.png&#34; alt=&#34;&#34; /&gt;&lt;/p&gt;
</content>
<updated>2023-09-09T08:48:17.000Z</updated>
</entry>
<entry>
<id>https://hitoli.com/2023/09/09/Windows-11%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%E6%81%A2%E5%A4%8D%E8%80%81%E7%89%88%E6%9C%AC/</id>
<title>Windows 11右键菜单恢复老版本</title>
<link rel="alternate" href="https://hitoli.com/2023/09/09/Windows-11%E5%8F%B3%E9%94%AE%E8%8F%9C%E5%8D%95%E6%81%A2%E5%A4%8D%E8%80%81%E7%89%88%E6%9C%AC/"/>
<content type="html">&lt;h6 id=&#34;恢复方法&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#恢复方法&#34;&gt;#&lt;/a&gt; 恢复方法&lt;/h6&gt;
&lt;p&gt;1、按【Win+X】&lt;/p&gt;
&lt;p&gt;2、选择【终端管理员】&lt;/p&gt;
&lt;p&gt;3、输入以下命令并回车:&lt;br /&gt;
&lt;code&gt;reg add &amp;quot;HKCU\Software\Classes\CLSID\&amp;#123;86ca1aa0-34aa-4e8b-a509-50c905bae2a2&amp;#125;\InprocServer32&amp;quot; /f /ve&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;4、重启电脑&lt;/p&gt;
</content>
<category term="Windows " scheme="https://hitoli.com/categories/Windows/" />
<category term="Windows 11" scheme="https://hitoli.com/tags/Windows-11/" />
<updated>2023-09-09T08:38:00.000Z</updated>
</entry>
<entry>
<id>https://hitoli.com/2023/07/08/%E8%A7%A3%E5%86%B3Lombok%E6%8A%A5%E9%94%99/</id>
<title>解决Lombok报错</title>
@@ -196,7 +272,7 @@ Lombok supports: OpenJDK javac, ECJ&lt;/p&gt;
<title>命令大杂烩</title>
<link rel="alternate" href="https://hitoli.com/2023/04/16/%E5%91%BD%E4%BB%A4%E5%A4%A7%E6%9D%82%E7%83%A9/"/>
<content type="html">&lt;h4 id=&#34;日常命令记录&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#日常命令记录&#34;&gt;#&lt;/a&gt; 日常命令记录&lt;/h4&gt;
&lt;figure class=&#34;highlight bash&#34;&gt;&lt;figcaption data-lang=&#34;bash&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#windows 系统修复&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;2&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;DISM.exe /Online /Cleanup-image /Scanhealth&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;3&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;DISM.exe /Online /Cleanup-image /Restorehealth &lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;4&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;sfc /scannow&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;5&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;6&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#windows 网络修复&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;7&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;netsh winsock reset&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;8&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;9&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#合并 ts 文件&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;10&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;copy /b c:&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;Users&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;hito&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;Downloads&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;*.ts d:&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;token number&#34;&gt;50&lt;/span&gt;.mp4&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;11&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;12&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#windows11 家庭版安装 Hyper-V(以下命令拷贝到 txt 文本后重命名为 bat 文件然后用管理员权限运行)&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;13&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token function&#34;&gt;pushd&lt;/span&gt; &lt;span class=&#34;token string&#34;&gt;&#34;%~dp0&#34;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;14&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token function&#34;&gt;dir&lt;/span&gt; /b %SystemRoot%&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;servicing&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;Packages&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;*Hyper-V*.mum &lt;span class=&#34;token operator&#34;&gt;&gt;&gt;&lt;/span&gt; hyper-v.txt&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;15&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token keyword&#34;&gt;for&lt;/span&gt; /f %%i &lt;span class=&#34;token keyword&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;token punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;token string&#34;&gt;&#39;findstr /i . hyper-v.txt 2^&gt;nul&#39;&lt;/span&gt;&lt;span class=&#34;token punctuation&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;token keyword&#34;&gt;do&lt;/span&gt; dism /online /norestart /add-package:&lt;span class=&#34;token string&#34;&gt;&#34;%SystemRoot%\servicing\Packages\%%i&#34;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;16&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;del hyper-v.txt&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;17&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;18&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;19&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#mysql 查看索引使用情况&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;20&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;EXPLAIN SELECT A.XXX, B.XXX FROM TABLE1 A, TABLE2 B ON A.XXX &lt;span class=&#34;token operator&#34;&gt;=&lt;/span&gt; B.XXX&lt;span class=&#34;token punctuation&#34;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content>
&lt;figure class=&#34;highlight bash&#34;&gt;&lt;figcaption data-lang=&#34;bash&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#windows 系统修复&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;2&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;DISM.exe /Online /Cleanup-image /Scanhealth&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;3&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;DISM.exe /Online /Cleanup-image /Restorehealth &lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;4&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;sfc /scannow&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;5&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;6&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#windows 网络修复&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;7&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;netsh winsock reset&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;8&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;9&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#合并 ts 文件&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;10&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;copy /b c:&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;Users&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;hito&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;Downloads&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;*.ts d:&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;&lt;span class=&#34;token number&#34;&gt;50&lt;/span&gt;.mp4&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;11&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;12&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#windows11 家庭版安装 Hyper-V(以下命令拷贝到 txt 文本后重命名为 bat 文件然后用管理员权限运行)&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;13&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token function&#34;&gt;pushd&lt;/span&gt; &lt;span class=&#34;token string&#34;&gt;&#34;%~dp0&#34;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;14&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token function&#34;&gt;dir&lt;/span&gt; /b %SystemRoot%&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;servicing&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;Packages&lt;span class=&#34;token punctuation&#34;&gt;\&lt;/span&gt;*Hyper-V*.mum &lt;span class=&#34;token operator&#34;&gt;&gt;&gt;&lt;/span&gt; hyper-v.txt&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;15&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token keyword&#34;&gt;for&lt;/span&gt; /f %%i &lt;span class=&#34;token keyword&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;token punctuation&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;token string&#34;&gt;&#39;findstr /i . hyper-v.txt 2^&gt;nul&#39;&lt;/span&gt;&lt;span class=&#34;token punctuation&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;token keyword&#34;&gt;do&lt;/span&gt; dism /online /norestart /add-package:&lt;span class=&#34;token string&#34;&gt;&#34;%SystemRoot%\servicing\Packages\%%i&#34;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;16&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;del hyper-v.txt&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;17&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;18&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;19&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#mysql 查看索引使用情况&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;20&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;EXPLAIN SELECT A.XXX, B.XXX FROM TABLE1 A, TABLE2 B ON A.XXX &lt;span class=&#34;token operator&#34;&gt;=&lt;/span&gt; B.XXX&lt;span class=&#34;token punctuation&#34;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;21&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;22&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token comment&#34;&gt;#mysql 使用触发器插入数据自动生产 uuid 主键&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;23&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;inLine truncated
<category term="生活" scheme="https://hitoli.com/categories/%E7%94%9F%E6%B4%BB/" />
<category term="技术分享" scheme="https://hitoli.com/categories/%E7%94%9F%E6%B4%BB/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/" />
<category term="命令" scheme="https://hitoli.com/tags/%E5%91%BD%E4%BB%A4/" />
@@ -567,78 +643,4 @@ Lombok supports: OpenJDK javac, ECJ&lt;/p&gt;
<category term="蜡烛图" scheme="https://hitoli.com/tags/%E8%9C%A1%E7%83%9B%E5%9B%BE/" />
<updated>2022-11-24T00:53:00.000Z</updated>
</entry>
<entry>
<id>https://hitoli.com/2022/11/21/mysql%E6%95%B0%E6%8D%AE%E5%BA%93auto-increment%E8%87%AA%E5%A2%9E%E9%95%BF%E4%B8%8D%E5%8F%98%E7%9A%84%E5%A4%84%E7%90%86%E6%96%B9%E6%B3%95/</id>
<title>mysql数据库auto_increment自增长不变的处理方法</title>
<link rel="alternate" href="https://hitoli.com/2022/11/21/mysql%E6%95%B0%E6%8D%AE%E5%BA%93auto-increment%E8%87%AA%E5%A2%9E%E9%95%BF%E4%B8%8D%E5%8F%98%E7%9A%84%E5%A4%84%E7%90%86%E6%96%B9%E6%B3%95/"/>
<content type="html">&lt;h4 id=&#34;问题描述&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#问题描述&#34;&gt;#&lt;/a&gt; 问题描述&lt;/h4&gt;
&lt;p&gt;今天无意中发现原本能正常增加的 id 突然不变了,查看 sql 发现是取的对应表的自增 id。虽然存到表中的新数据自增 id 变化了,但返回的 id 总是不变。经过查询发现表的自增 id 是存在 information_schema 库中的 tables 表中。tables 表中存储了所有表的对应信息,其中有个 auto_increment 字段存储的就是对应表的下一个自增值。但是 mysql 在新版本中修改了此值的更新规则,老版本中是实时更新,新版本修改为 24 小时更新一次。为了不修改原代码中的逻辑,只能通过修改 mysql 配置使项目正常工作了。&lt;/p&gt;
&lt;h4 id=&#34;解决办法&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#解决办法&#34;&gt;#&lt;/a&gt; 解决办法&lt;/h4&gt;
&lt;figure class=&#34;highlight yaml&#34;&gt;&lt;figcaption data-lang=&#34;YAML&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;mysql数据库auto_increment自增长不变的处理方法&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;2&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;修改/etc/mysql/mysql.conf.d/mysqld.cnf&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;3&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;增加一行information_schema_stats_expiry = 0&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;4&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;保存后重启mysql&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;5&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;sudo systemctl restart mysql.service&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;6&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;7&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;查询是否生效&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;8&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;show global variables like &#39;information_schema_stats_expiry&#39;;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;9&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;show session variables like &#39;information_schema_stats_expiry&#39;;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;</content>
<category term="工作" scheme="https://hitoli.com/categories/%E5%B7%A5%E4%BD%9C/" />
<category term="解决问题" scheme="https://hitoli.com/categories/%E5%B7%A5%E4%BD%9C/%E8%A7%A3%E5%86%B3%E9%97%AE%E9%A2%98/" />
<category term="mysql" scheme="https://hitoli.com/tags/mysql/" />
<updated>2022-11-21T06:15:00.000Z</updated>
</entry>
<entry>
<id>https://hitoli.com/2022/11/13/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7/</id>
<title>数据库管理工具</title>
<link rel="alternate" href="https://hitoli.com/2022/11/13/%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7/"/>
<content type="html">&lt;h4 id=&#34;引言&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#引言&#34;&gt;#&lt;/a&gt; 引言&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;很多朋友安装了 mysql 后不知道可以用工具管理,所以专门找了两个数据库管理工具方便大家使用。&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;navicat&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#navicat&#34;&gt;#&lt;/a&gt; Navicat&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly9uYXMuaGl0b2xpLmNvbToxODAwNy8lRTglQkQlQUYlRTQlQkIlQjYvTXlTUUwlRTUlQjclQTUlRTUlODUlQjcvTmF2aWNhdC56aXA=&#34;&gt;下载&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;安装一路下一步即可 (&lt;span class=&#34;red&#34;&gt;注意:&lt;/span&gt;安装完成后先不要运行)&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2022/11/13/navicat.jpg&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;li&gt;注册&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2022/11/13/88f1592aed1ffbf3dbfeadda4fa4773f.jpg&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;note info&#34;&gt;
&lt;p&gt;1、运行注册机&lt;br /&gt;
2、修改 Your Name(可不改)&lt;br /&gt;
3、点击 Patch(&lt;span class=&#34;blue&#34;&gt;此时会提示:navicat.exe - x64 -&amp;gt; Cracked&lt;/span&gt;)&lt;br /&gt;
4、运行 navicat&lt;br /&gt;
5、点击第一个 Generate 获取注册码 (&lt;span class=&#34;yellow&#34;&gt;Your Name 上一行&lt;/span&gt;)&lt;br /&gt;
6、点击 Copy 然后粘贴到 navicat 窗口上(也可能会自动粘贴进去)&lt;br /&gt;
7、点击 navicat 上的激活按钮,等待一会,失败后会弹出手动激活按钮&lt;br /&gt;
8、点击手动激活,窗口上会有一个 request code,把框里的值复制到注册机对应的 request code 框内。&lt;br /&gt;
9、点击第二个 Generate 获取 Activation Code(激活码),把码复制到 navicat 对应的框内。&lt;br /&gt;
10、点击激活完成激活。&lt;/p&gt;
&lt;/div&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;查看注册信息&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2022/11/13/025adbe8193bc597a06d70eb8691c82c.jpg&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;li&gt;测试连接&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2022/11/13/19b7ff68e8bd4471aa398c04fc989299.jpg&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;li&gt;新建库&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2022/11/13/38a3f946af40173bdc114208fc3b50bc.jpg&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id=&#34;dbeaver&#34;&gt;&lt;a class=&#34;anchor&#34; href=&#34;#dbeaver&#34;&gt;#&lt;/a&gt; DBeaver&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly9uYXMuaGl0b2xpLmNvbToxODAwNy8lRTglQkQlQUYlRTQlQkIlQjYvTXlTUUwlRTUlQjclQTUlRTUlODUlQjcvZGJlYXZlci1lZS0yMS4zLnppcA==&#34;&gt;下载&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class=&#34;exturl&#34; data-url=&#34;aHR0cHM6Ly9uYXMuaGl0b2xpLmNvbToxODAwNy8lRTglQkQlQUYlRTQlQkIlQjYvTXlTUUwlRTUlQjclQTUlRTUlODUlQjcvamRrLTExLjAuMTEuemlw&#34;&gt;下载 jdk&lt;/span&gt;&lt;span class=&#34;label danger&#34;&gt;✔️有 JAVA 环境的不用下载&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;修改&lt;span class=&#34;red&#34;&gt; dbeaver.ini&lt;/span&gt; 配置文件&lt;/li&gt;
&lt;/ol&gt;
&lt;figure class=&#34;highlight yaml&#34;&gt;&lt;figcaption data-lang=&#34;YAML&#34;&gt;&lt;/figcaption&gt;&lt;table&gt;&lt;tr&gt;&lt;td data-num=&#34;1&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;vm&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;2&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;D&lt;span class=&#34;token punctuation&#34;&gt;:&lt;/span&gt;\jdk&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;11.0.11\bin&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;3&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;startup&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;4&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;plugins/org.eclipse.equinox.launcher_1.6.300.v20210813&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;1054.jar&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;5&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;launcher.library&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;6&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.2.300.v20210828&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;token number&#34;&gt;0802&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;7&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;vmargs&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;8&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;XX&lt;span class=&#34;token punctuation&#34;&gt;:&lt;/span&gt;+IgnoreUnrecognizedVMOptions&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;9&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;add&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;modules=ALL&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;SYSTEM&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;10&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;Dosgi.requiredJavaVersion=11&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;11&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;Xms128m&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;12&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;Xmx2048m&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;13&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;Djavax.net.ssl.trustStoreType=WINDOWS&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;ROOT&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;14&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;Ddbeaver.distribution.type=zip&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td data-num=&#34;15&#34;&gt;&lt;/td&gt;&lt;td&gt;&lt;pre&gt;&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;javaagent&lt;span class=&#34;token punctuation&#34;&gt;:&lt;/span&gt;F&lt;span class=&#34;token punctuation&#34;&gt;:&lt;/span&gt;\green program\dbeaver\dbeaver&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;agent\dbeaver&lt;span class=&#34;token punctuation&#34;&gt;-&lt;/span&gt;agent.jar&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;&lt;div class=&#34;note info&#34;&gt;
&lt;p&gt;第一二行指定&lt;span class=&#34;red&#34;&gt; jdk&lt;/span&gt; 地址&lt;br /&gt;
最后一行指定&lt;span class=&#34;red&#34;&gt; dbeaver-agent.jar 注册工具&lt;/span&gt;的位置&lt;/p&gt;
&lt;/div&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;启动&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2022/11/13/f9c6b3b245e93698b1331b9e0bdc26f3.jpg&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;li&gt;注册成功&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2022/11/13/e16dea0c920dfbbf9138c22f5b86a050.jpg&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;li&gt;测试连接&lt;br /&gt;
&lt;img data-src=&#34;https://nas.hitoli.com:18014/images/2022/11/13/cf0094eb3183006c459c8996c403527e.jpg&#34; alt=&#34;&#34; /&gt;&lt;/li&gt;
&lt;/ol&gt;
</content>
<category term="Windows" scheme="https://hitoli.com/categories/Windows/" />
<category term="工具" scheme="https://hitoli.com/categories/Windows/%E5%B7%A5%E5%85%B7/" />
<category term="mysql" scheme="https://hitoli.com/tags/mysql/" />
<category term="数据库工具" scheme="https://hitoli.com/tags/%E6%95%B0%E6%8D%AE%E5%BA%93%E5%B7%A5%E5%85%B7/" />
<updated>2022-11-13T09:31:00.000Z</updated>
</entry>
</feed>