<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>我们好好学习</title><link>https://mzwjc.com/</link><description>Good Luck To You!</description><item><title>wsl2安装docker+dify+xinference</title><link>https://mzwjc.com/?id=35</link><description>&lt;p&gt;1、wsl2安装ubuntu，这里指定版本安装一个新环境&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;&amp;nbsp;wsl&amp;nbsp;--install&amp;nbsp;-d&amp;nbsp;Ubuntu-22.04&lt;/pre&gt;&lt;p&gt;2、安装完的ubuntu是在c盘的，放到其他盘里，先导出，再倒入&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#导出Ubuntu-22.04到d盘wsl目录里
wsl&amp;nbsp;--export&amp;nbsp;Ubuntu-22.04&amp;nbsp;D:\wsl\ubuntu2204_backup.tar
#注销原先的环境
wsl&amp;nbsp;--unregister&amp;nbsp;Ubuntu-22.04
#导入新环境
wsl&amp;nbsp;--import&amp;nbsp;Ubuntu-22.04&amp;nbsp;D:\wsl\ubuntu2204&amp;nbsp;D:\wsl\ubuntu2204_backup.tar&lt;/pre&gt;&lt;p&gt;3、先在用户目录下，创建一个.wslconfig，添加配置，如用户名是1，目录就在C:\Users\1&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;[experimental]
#网络镜像模式
networkingMode=mirrored
hostAddressLoopback=true
#共用&amp;nbsp;Windows&amp;nbsp;DNS、防火墙、代理设置
dnsTunneling=true
firewall=true
autoProxy=true&lt;/pre&gt;&lt;p&gt;然后直接用win11去下载docker桌面端安装包，安装完成进入后，设置-&amp;gt;Resources-&amp;gt;WSL intergation里 勾上ubuntu，提交就可以了（忘了是不是要重启）&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;wsl&amp;nbsp;-d&amp;nbsp;Ubuntu-22.04&lt;/pre&gt;&lt;p&gt;4、设置root密码&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#默认root没密码，所以执行后会让输入
sudo&amp;nbsp;passwd&amp;nbsp;root&lt;/pre&gt;&lt;p&gt;5、平时使用都是root方便，设置默认用户为root&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#先切root，避免权限问题
su
#输入root密码
vim&amp;nbsp;/etc/wsl.conf
#添加下面的内容
[user]
default=root

#保存后，关闭ubuntu，新开个cmd窗口，重启wsl
wsl&amp;nbsp;--shutdown
#重新再启动，就自动是root&lt;/pre&gt;&lt;p&gt;6、设置默认wsl命令启动的镜像&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;wsl&amp;nbsp;--set-default&amp;nbsp;Ubuntu-22.04

#然后执行wsl就能直接启动这个&lt;/pre&gt;&lt;p&gt;7、安装openssh-server，方便ssh控制&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#&amp;nbsp;习惯东西都放到/opt里
cd&amp;nbsp;/opt
apt&amp;nbsp;update
apt&amp;nbsp;install&amp;nbsp;openssh-server
#&amp;nbsp;安装完后，修改配置支持root登陆
vim&amp;nbsp;/etc/ssh/sshd_config
#&amp;nbsp;找到PermitRootLogin部分应该是注释的，直接添加下面保存
PermitRootLogin&amp;nbsp;yes
PasswordAuthentication&amp;nbsp;yes
#&amp;nbsp;然后启动ssh，就可以局域网访问了（默认wsl的ip和win的ip是同一个，暂时没研究其他的网卡方式）
service&amp;nbsp;ssh&amp;nbsp;start&lt;/pre&gt;&lt;p&gt;8、ubuntu安装docker和docker-compose（win11装了桌面端就可以不用装docker了,docker-compose好像也可以直接用win的）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#&amp;nbsp;用curl方式安装，先装curl
apt&amp;nbsp;install&amp;nbsp;curl
#&amp;nbsp;下载安装
curl&amp;nbsp;-fsSL&amp;nbsp;https://get.docker.com&amp;nbsp;|&amp;nbsp;bash&amp;nbsp;-s&amp;nbsp;docker&amp;nbsp;--mirror&amp;nbsp;Aliyun
#&amp;nbsp;执行docker&amp;nbsp;-v后可以，安装docker&amp;nbsp;compose
curl&amp;nbsp;-L&amp;nbsp;&amp;quot;https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname&amp;nbsp;-s)-$(uname&amp;nbsp;-m)&amp;quot;&amp;nbsp;-o&amp;nbsp;/usr/local/bin/docker-compose
#&amp;nbsp;设置权限
chmod&amp;nbsp;+x&amp;nbsp;/usr/local/bin/docker-compose
#&amp;nbsp;设置软链接
ln&amp;nbsp;-s&amp;nbsp;/usr/local/bin/docker-compose&amp;nbsp;/usr/bin/docker-compose
#&amp;nbsp;查看版本，验证成功
docker-compose&amp;nbsp;version&lt;/pre&gt;&lt;p&gt;9、安装anaconda的py环境管理，直接官网下载，上传到服务器&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;chmod&amp;nbsp;+x&amp;nbsp;Anaconda3-2024.10-1-Linux-x86_64.sh
./Anaconda3-2024.10-1-Linux-x86_64.sh

#&amp;nbsp;安装开始要阅读协议，按空格可以翻页快速到底
#&amp;nbsp;输入yes开始安装，然后设置目录直接回车，用默认目录
#&amp;nbsp;等待安装完成会让输入yes/no,输入yes
#&amp;nbsp;如果错过yes，可以手动
source&amp;nbsp;~/anaconda3/bin/activate
#&amp;nbsp;然后要设置环境变量生效
source&amp;nbsp;~/.bashrc
#&amp;nbsp;然后验证显示版本就完成
conda&amp;nbsp;--version&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: wrap;&quot;&gt;10、安装py环境&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;conda&amp;nbsp;create&amp;nbsp;-n&amp;nbsp;dify&amp;nbsp;python=3.11.7&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: wrap;&quot;&gt;&lt;/span&gt;11、切换环境，安装xinference&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;conda&amp;nbsp;activate&amp;nbsp;dify
pip&amp;nbsp;install&amp;nbsp;&amp;quot;xinference[transformers]&amp;quot;
#安装成功，启动
xinference-local&amp;nbsp;--host&amp;nbsp;0.0.0.0&amp;nbsp;--port&amp;nbsp;9997&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: wrap;&quot;&gt;12、从git下载dify，上传到，进入目录里的docker目录下，复制一个.env.example变成.env，修改里面EXPOSE_NGINX_PORT端口，作为应用的运行端口&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap-mode: wrap;&quot;&gt;&lt;/span&gt;13、如果是没有gpu的，可以运行dify前，把ollama xinference的镜像一并加进去：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#&amp;nbsp;ollama
ollama:
image:&amp;nbsp;ollama/ollama
container_name:&amp;nbsp;ollama
ports:
-&amp;nbsp;11434:11434
volumes:
-&amp;nbsp;./volumes/ollama:/root/.ollama
restart:&amp;nbsp;always
#&amp;nbsp;xinference
xinference:
image:&amp;nbsp;xprobe/xinference:v0.16.2-cpu
container_name:&amp;nbsp;xinference
ports:
-&amp;nbsp;9997:9997
volumes:
-&amp;nbsp;./volumes/xinference/.xinference:/root/.xinference
-&amp;nbsp;./volumes/xinference/.cache/huggingface:/root/.cache/huggingface
-&amp;nbsp;./volumes/xinference/.cache/modelscope:/root/.cache/modelscope
environment:
-&amp;nbsp;XINFERENCE_MODEL_SRC=modelscope
command:&amp;nbsp;xinference-local&amp;nbsp;-H&amp;nbsp;0.0.0.0
restart:&amp;nbsp;always&lt;/pre&gt;&lt;p&gt;14、启动成功后，下载ollama的模型，使用docker exec -it ollama ollama run qwen2.5:7b&lt;/p&gt;</description><pubDate>Sat, 23 Nov 2024 10:02:37 +0800</pubDate></item><item><title>通过frp+服务器+域名将本地网站映射到外网</title><link>https://mzwjc.com/?id=34</link><description>&lt;p&gt;因为要将台式机穿透出去，作为gpu算力使用，借助frp来实现一些接口或dify之类框架的映射，在外网访问台式机电脑。&lt;/p&gt;&lt;p&gt;使用熟悉的老版本frp：&lt;a href=&quot;https://github.com/fatedier/frp/releases/tag/v0.51.3&quot; _src=&quot;https://github.com/fatedier/frp/releases/tag/v0.51.3&quot;&gt;https://github.com/fatedier/frp/releases/tag/v0.51.3&lt;/a&gt; &lt;/p&gt;&lt;p&gt;需要进行反向代理，否则只能做微信开发的接口转发，网站的静态资源无法正常访问，这里直接借助宝塔配置反向代理，也让frp能守护进程方式运行。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;先配置好服务器的frp，配置文件如下，上传到服务器上：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;[common]
#&amp;nbsp;为&amp;nbsp;HTTP&amp;nbsp;类型代理监听的端口，启用后才支持&amp;nbsp;HTTP&amp;nbsp;类型的代理，未配置则默认不启用，这里用180作为外部端口，服务器和宝塔安全组都需要放行
vhost_http_port&amp;nbsp;=&amp;nbsp;180
#&amp;nbsp;服务端监听端口，接收&amp;nbsp;frpc&amp;nbsp;的连接，默认值：7000，与本机客户端匹配使用
bind_port&amp;nbsp;=&amp;nbsp;7000
#&amp;nbsp;鉴权方式:&amp;nbsp;token,&amp;nbsp;oidc，就token就行
authentication_method&amp;nbsp;=&amp;nbsp;token
#&amp;nbsp;鉴权使用的&amp;nbsp;token&amp;nbsp;值，自己设置一个值，客户端要匹配上
token&amp;nbsp;=&amp;nbsp;token_123456

#&amp;nbsp;下面这些是配置frp控制台的，目前没咋用到
#&amp;nbsp;启用&amp;nbsp;Dashboard&amp;nbsp;监听的本地地址
dashboard_addr&amp;nbsp;=&amp;nbsp;0.0.0.0
#&amp;nbsp;启用&amp;nbsp;Dashboard&amp;nbsp;监听的本地端口
dashboard_port&amp;nbsp;=&amp;nbsp;7500
#&amp;nbsp;Dashboard&amp;nbsp;登录账号
dashboard_user&amp;nbsp;=&amp;nbsp;admin
#&amp;nbsp;Dashboard&amp;nbsp;登录密码
dashboard_pwd&amp;nbsp;=&amp;nbsp;123456&lt;/pre&gt;&lt;p&gt;上传上去后，通过服务器的宝塔面板，应用商店中搜索并安装一个supervisor，然后用他创建一个守护进程，填写如下：（按自己的目录来）(要chmod +x 给执行权限)&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://mzwjc.com/zb_users/upload/2024/11/202411041730734668865988.jpg&quot; title=&quot;1730734533175.jpg&quot; alt=&quot;1730734533175.jpg&quot; width=&quot;800&quot; height=&quot;354&quot; border=&quot;0&quot; vspace=&quot;0&quot; style=&quot;width: 800px; height: 354px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;保存后，确认运行状态正常，然后去站点里，创建网站，使用映射的域名，并且在域名解析那边解析到服务器ip上，然后在网站配置的反向代理中，增加以下配置：(发送域名就是写$host)&lt;/p&gt;&lt;p&gt;&lt;img class=&quot;ue-image&quot; src=&quot;https://mzwjc.com/zb_users/upload/2024/11/202411041730734976400189.jpg&quot; title=&quot;1730734921808.jpg&quot; alt=&quot;1730734921808.jpg&quot; width=&quot;800&quot; height=&quot;373&quot; border=&quot;0&quot; vspace=&quot;0&quot; style=&quot;width: 800px; height: 373px;&quot;/&gt;&lt;/p&gt;&lt;p&gt;剩下就是客户端了，客户端配置：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;[common]
server_addr&amp;nbsp;=&amp;nbsp;服务器ip
server_port&amp;nbsp;=&amp;nbsp;7000
#&amp;nbsp;鉴权方式:token,&amp;nbsp;oidc,需要和服务端一致
authentication_method&amp;nbsp;=&amp;nbsp;token
#&amp;nbsp;鉴权使用的&amp;nbsp;token&amp;nbsp;值,需要和服务端一致
token&amp;nbsp;=&amp;nbsp;token_123456
[dify]
type&amp;nbsp;=&amp;nbsp;http
local_ip&amp;nbsp;=&amp;nbsp;127.0.0.1
local_port&amp;nbsp;=&amp;nbsp;本地服务的端口
custom_domains&amp;nbsp;=&amp;nbsp;域名&lt;/pre&gt;&lt;p&gt;然后运行就可以了，win电脑要用cmd之类的工具进入到目录下运行&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 04 Nov 2024 23:22:27 +0800</pubDate></item><item><title>日本旅游-准备篇</title><link>https://mzwjc.com/?id=33</link><description>&lt;p&gt;持续更新…………&lt;/p&gt;&lt;p&gt;时间：2024年8月&lt;/p&gt;&lt;p&gt;地点：浙江宁波&lt;/p&gt;&lt;p&gt;性质：半特种兵穷游模式，即对吃住不讲究，尽量能多打卡一些地方；&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1&gt;1、护照&lt;/h1&gt;&lt;p&gt;1、生活在宁波鄞州区南商这边，最近办理点在“鄞州区政务服务中心”，高德地图搜索即可，上班时间、地点均有&lt;/p&gt;&lt;p&gt;2、大楼里印象中是到2楼公安服务办理，有咨询台的，可以问一下办理护照业务到哪；&lt;/p&gt;&lt;p&gt;3、进入办理大厅，有自助机具来填写申请表格，旁边一般会有服务人员来协助填写，可以办理护照、港澳通行证等，填写细节可以咨询他&lt;/p&gt;&lt;p&gt;4、填写完机具打印出表格后，到旁边的拍照室可以拍证件照；&lt;/p&gt;&lt;p&gt;5、拍完照后，大厅有自助取号机，取号后等到号了，办理即可&lt;/p&gt;&lt;p&gt;6、办理完，扫单子上的二维码进行支付，支付完大概一周时间，可以领取。领取是有24小时的机器的，带当时的单子 和 身份证即可；&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 style=&quot;text-wrap: wrap;&quot;&gt;2、签证&lt;/h1&gt;&lt;p&gt;淘宝上找了家店，不同店可能价格不一样，要求细节可能也会略有差异，展示的那家店的材料清单：&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;日本单次签证材料（可提供清晰电子版本 扫描件或清晰拍照件）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;1. 护照首页 ( 有效期6个月以上即至护照截止日，旧护照无需提供)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;2. 照片 (近半年新拍的2张2寸白底彩色照片3.5*4.5cm，不能美颜，照片不要贴)（可提供电子版本、扫描件、拍照件）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;3. 身份证 正反面&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;4. 户口本（地址页+本人页）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;5. 符合办理单次的经济条件（只有主申请人需要提供这条）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;6. 签证申请表+订单信息表（黑色水笔中文填写，不可有涂改，下单后提供邮箱发送给您）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;额外提供&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;7. 若户籍不属于江浙沪皖赣，提供领区内居住证正反面、社保&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;8. 直系家属随同办理 请提供相应关系证明复印件（如结婚证、出生证、户口本等）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;经济条件（6选1，根据所提供的经济材料选择套餐办理，即不同类型的证明，价格不一样）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;1、在职证明（写明10w年收入）+近1年银行流水单（能体现工资或奖金字样10w进账）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;2、在职证明（写明10w年收入）+近1年税单（年缴税700元）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;3、（无需在职证明）任一银行存款证明原件，无需冻结，金额10W元起&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;4、（无需在职证明）信用卡金卡正反面复印件+最近1个月消费对账单可电子版&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;5、国内4年全日制本科或以上学历，在读生或毕业三年内（学信网学籍证明+毕业证或学生证）&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;text-wrap: nowrap;&quot;&gt;6、其他：房租收入、股票分红证明书等等，能体现10万年收入的其他财力证明。&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 style=&quot;text-wrap: wrap;&quot;&gt;3、机票&lt;/h1&gt;&lt;p&gt;1、飞机票的价格是会根据供需关系而浮动的，如果是国内法定节假日出游的，定了日子后越早买越好，一般只会涨价，如果是非节假日的，可以关注，有些临近的机票可能会因为坐不满而降价。&lt;/p&gt;&lt;p&gt;2、可以多看几个购票软件，当时对比了航旅纵横和携程，机票的航线和价格不一样；&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 style=&quot;text-wrap: wrap;&quot;&gt;4、酒店&lt;/h1&gt;&lt;p&gt;1、同样也要多比下价格，携程、klook、agoda、booking等等，刚开始订的东京成田机场的东横inn，471，结果agoda上只要370，两边都是首次注册首笔订单&lt;/p&gt;&lt;h1 style=&quot;text-wrap: wrap;&quot;&gt;5、工具&lt;/h1&gt;&lt;p&gt;富士山能见度查询：https://fuji-san.info/zh-cn/index.html&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Tue, 03 Sep 2024 22:08:58 +0800</pubDate></item><item><title>MQTT协议使用</title><link>https://mzwjc.com/?id=32</link><description>&lt;h1&gt;服务端&lt;/h1&gt;&lt;p&gt;因为使用的发布/订阅模式，似乎不需要自己写服务端，只要安装现成开源服务器即可，这里选了EMQX&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;#到官网，选择服务器版本，下载安装，已centos7为例：
#下载源码包
wget&amp;nbsp;https://www.emqx.com/zh/downloads/broker/5.6.1/emqx-5.6.1-el7-amd64.tar.gz
#安装
mkdir&amp;nbsp;-p&amp;nbsp;emqx&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;tar&amp;nbsp;-zxvf&amp;nbsp;emqx-5.6.1-el7-amd64.tar.gz&amp;nbsp;-C&amp;nbsp;emqx
#运行
./emqx/bin/emqx&amp;nbsp;start&lt;/pre&gt;&lt;p&gt;安装启动完成后，默认通过ip:18083进入管理后台，默认账号admin密码public，可以通过管理后台查看客户端信息以及使用在线websocket客户端。&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1&gt;授权&lt;br/&gt;&lt;/h1&gt;&lt;p&gt;需要防止别人恶性伪装成客户端来请求，需要增加授权机制，待续&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 style=&quot;text-wrap: wrap;&quot;&gt;客户端（go）&lt;/h1&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;package&amp;nbsp;main

import&amp;nbsp;(
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;fmt&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;MQTT&amp;nbsp;&amp;quot;github.com/eclipse/paho.mqtt.golang&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;log&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;os&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;os/signal&amp;quot;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;time&amp;quot;
)

func&amp;nbsp;main()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;client()
}
func&amp;nbsp;client()&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;创建&amp;nbsp;MQTT&amp;nbsp;客户端配置
&amp;nbsp;&amp;nbsp;&amp;nbsp;opts&amp;nbsp;:=&amp;nbsp;MQTT.NewClientOptions()
&amp;nbsp;&amp;nbsp;&amp;nbsp;//设置mqtt服务器地址
&amp;nbsp;&amp;nbsp;&amp;nbsp;opts.AddBroker(&amp;quot;tcp://服务器地址:1883&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;//设置当前客户端的id
&amp;nbsp;&amp;nbsp;&amp;nbsp;opts.SetClientID(&amp;quot;go-mqtt-client&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;opts.SetUsername(&amp;quot;adminUser1&amp;quot;)&amp;nbsp;//&amp;nbsp;设置用户名
&amp;nbsp;&amp;nbsp;&amp;nbsp;//opts.SetPassword(&amp;quot;your_password&amp;quot;)&amp;nbsp;//&amp;nbsp;设置密码，如果有的话
&amp;nbsp;&amp;nbsp;&amp;nbsp;//opts.SetCleanSession(true)&amp;nbsp;//不接收之前的历史消息，实际未测试到应用场景，因为不会过滤掉遗嘱消息

&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;设置遗嘱消息，会在客户端断开时发送，1代表至少发送一次，false代表不保留，如果用true，那么其他设备一旦订阅这个主题，就会收到该消息
&amp;nbsp;&amp;nbsp;&amp;nbsp;//opts.SetWill(&amp;quot;full/topic/LWT&amp;quot;,&amp;nbsp;&amp;quot;Admin&amp;nbsp;Offline&amp;quot;,&amp;nbsp;1,&amp;nbsp;false)
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;创建&amp;nbsp;MQTT&amp;nbsp;客户端实例
&amp;nbsp;&amp;nbsp;&amp;nbsp;client&amp;nbsp;:=&amp;nbsp;MQTT.NewClient(opts)

&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;连接到&amp;nbsp;MQTT&amp;nbsp;服务器
&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;token&amp;nbsp;:=&amp;nbsp;client.Connect();&amp;nbsp;token.Wait()&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;token.Error()&amp;nbsp;!=&amp;nbsp;nil&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.Fatal(token.Error())
&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;设置消息接收回调函数
&amp;nbsp;&amp;nbsp;&amp;nbsp;messageHandler&amp;nbsp;:=&amp;nbsp;func(client&amp;nbsp;MQTT.Client,&amp;nbsp;msg&amp;nbsp;MQTT.Message)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;fmt.Printf(&amp;quot;【%s】：%s\n&amp;quot;,&amp;nbsp;msg.Topic(),&amp;nbsp;msg.Payload())
&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;订阅主题并设置消息处理函数，接收主题推送
&amp;nbsp;&amp;nbsp;&amp;nbsp;if&amp;nbsp;token&amp;nbsp;:=&amp;nbsp;client.Subscribe(&amp;quot;elec/sys/#&amp;quot;,&amp;nbsp;0,&amp;nbsp;messageHandler);&amp;nbsp;token.Wait()&amp;nbsp;&amp;amp;&amp;amp;&amp;nbsp;token.Error()&amp;nbsp;!=&amp;nbsp;nil&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;log.Fatal(token.Error())
&amp;nbsp;&amp;nbsp;&amp;nbsp;}

&amp;nbsp;&amp;nbsp;&amp;nbsp;time.Sleep(3&amp;nbsp;*&amp;nbsp;time.Second)
&amp;nbsp;&amp;nbsp;&amp;nbsp;//发送消息，让电源开关打开
&amp;nbsp;&amp;nbsp;&amp;nbsp;sendMsg(client,&amp;nbsp;&amp;quot;elec/sys/id1/cmnd/Power&amp;quot;,&amp;nbsp;&amp;quot;on&amp;quot;)
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;创建一个用于接收操作系统中断信号的通道
&amp;nbsp;&amp;nbsp;&amp;nbsp;c&amp;nbsp;:=&amp;nbsp;make(chan&amp;nbsp;os.Signal,&amp;nbsp;1)
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;注册通道以接收操作系统中断信号（通常是&amp;nbsp;Ctrl+C）
&amp;nbsp;&amp;nbsp;&amp;nbsp;signal.Notify(c,&amp;nbsp;os.Interrupt)
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;阻塞程序，直到收到中断信号
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;-c
&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;中断信号已收到，执行清理工作并断开与&amp;nbsp;MQTT&amp;nbsp;服务器的连接
&amp;nbsp;&amp;nbsp;&amp;nbsp;client.Disconnect(250)
}

func&amp;nbsp;sendMsg(client&amp;nbsp;MQTT.Client,&amp;nbsp;topic,&amp;nbsp;msg&amp;nbsp;string)&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;token&amp;nbsp;:=&amp;nbsp;client.Publish(topic,&amp;nbsp;0,&amp;nbsp;false,&amp;nbsp;msg)
&amp;nbsp;&amp;nbsp;&amp;nbsp;token.Wait()
&amp;nbsp;&amp;nbsp;&amp;nbsp;fmt.Printf(&amp;quot;发出给【%s】消息:%s\n&amp;quot;,&amp;nbsp;topic,&amp;nbsp;msg)
}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1 style=&quot;text-wrap: wrap;&quot;&gt;客户端（设备）&lt;/h1&gt;&lt;p&gt;买的是插座，所以：&lt;/p&gt;&lt;p&gt;1、先插到电源上；&lt;/p&gt;&lt;p&gt;2、长按开关，然后用手机在wifi列表里，找到他的名字，连接；&lt;/p&gt;&lt;p&gt;3、连接后会自动打开wifi选择，选择家里wif，输入账号密码，连接wifi成功&lt;/p&gt;&lt;p&gt;4、连接成功后，就可以用内网ip，直接访问设备后台&lt;/p&gt;&lt;p&gt;5、在后台首页Configure进去，然后选择Configure MQTT进去，然后配置服务器的ip、端口等各信息，可以参考官网，示例如下：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;Host：服务器ip地址
Port：默认一般是1883
Client：应该是设备标识，目前不知道如何应用
User：用户名，后台会显示，并且如果要校验账号，则会用到
Password：对应密码，如果要校验账号时就必须要
Topic:&amp;nbsp;官网说时设备唯一主题，但实际测试设置啥都感觉没影响？比如我设置了id1
Full&amp;nbsp;Topic：完整主题，假如我设置elec/sys/id1，那么设备就会忘这个主题推下面接收消息的案例，并且如果要往设备推，也要用这个&lt;/pre&gt;&lt;p&gt;设置完毕后，等待他重启即可。然后去服务器后台，应该就能看到这个设备连接上了&lt;/p&gt;&lt;h1 style=&quot;text-wrap: wrap;&quot;&gt;发送消息说明&lt;/h1&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;#假设设备上配置的完整主题是elec/sys/id1，那么开启电源就是
主题：elec/sys/id1/cmnd/Power&amp;nbsp;
内容：1或者on都可以&lt;/pre&gt;&lt;h1&gt;接收消息说明&lt;/h1&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;#假设设备上配置的完整主题是elec/sys，并且在管理端的客户端上，订阅了elec/sys/#主题，则会收到下面消息
主题：elec/sys/id1/LWT&amp;nbsp;
内容：Online或Offline&amp;nbsp;（目前不知道是不是通过遗嘱消息来实现，只要一订阅里吗会收到）

主题：elec/sys/id1/STATE
内容：应该是设备状态信息
示例：{&amp;quot;Time&amp;quot;:&amp;quot;2024-05-11T15:42:43&amp;quot;,&amp;quot;Uptime&amp;quot;:&amp;quot;0T00:05:09&amp;quot;,&amp;quot;UptimeSec&amp;quot;:309,&amp;quot;Heap&amp;quot;:25,&amp;quot;SleepMode&amp;quot;:&amp;quot;Dynamic&amp;quot;,&amp;quot;Sleep&amp;quot;:50,&amp;quot;LoadAvg&amp;quot;:19,&amp;quot;MqttCount&amp;quot;:1,&amp;quot;POWER&amp;quot;:&amp;quot;OFF&amp;quot;,&amp;quot;Wif{&amp;quot;AP&amp;quot;:1,&amp;quot;SSId&amp;quot;:&amp;quot;TP-LINK_DANDAN&amp;quot;,&amp;quot;BSSId&amp;quot;:&amp;quot;68:77:24:51:2B:26&amp;quot;,&amp;quot;Channel&amp;quot;:6,&amp;quot;Mode&amp;quot;:&amp;quot;11n&amp;quot;,&amp;quot;RSSI&amp;quot;:84,&amp;quot;Signal&amp;quot;:-58,&amp;quot;LinkCount&amp;quot;:1,&amp;quot;Downtime&amp;quot;:&amp;quot;0T00:00:03&amp;quot;}}

主题：elec/sys/id1/SENSOR
内容：应该也是插座一些信息，暂不知道含义
示例：{&amp;quot;Time&amp;quot;:&amp;quot;2024-05-11T15:42:43&amp;quot;,&amp;quot;ENERGY&amp;quot;:{&amp;quot;TotalStartTime&amp;quot;:&amp;quot;2024-05-11T15:30:12&amp;quot;,&amp;quot;Total&amp;quot;:0.000,&amp;quot;Yesterday&amp;quot;:0.000,&amp;quot;Today&amp;quot;:0.000,&amp;quot;Period&amp;quot;:0,&amp;quot;Power&amp;quot;:0,&amp;quot;Apparenter&amp;quot;:0,&amp;quot;ReactivePower&amp;quot;:0,&amp;quot;Factor&amp;quot;:0.00,&amp;quot;Voltage&amp;quot;:0,&amp;quot;Current&amp;quot;:0.000}}

主题：elec/sys/id1/RESULT
内容：有电源变化，其他还未知
示例：{&amp;quot;POWER&amp;quot;:&amp;quot;ON&amp;quot;}

主题：elec/sys/id1/POWER
内容：电源状态，不知道和上面这个差异在哪
示例：ON&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;h1&gt;目前困惑&lt;br/&gt;&lt;/h1&gt;&lt;p&gt;设备发消息和收消息的主题前缀是一样的，那么管理端要接收消息，就得订阅通配主题elec/sys/# ，然后服务端控制电源就会往elec/sys/id1/cmnd/Power发，这导致服务端也收到这个消息了，这是本身mqtt设计如此，应用中自己忽略吗？还是怎么回事？ 感觉额外在接收多余的信息了。&lt;br/&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;实际生产可能是通过规则引擎，在服务器端收到消息的时候，先进行过滤，服务端只收需要的信息，并且用比如kafka的架构，让消息先到kafka，然后再消费来处理业务，那这样发消息的客户端 和 收消息的业务处理端就分开了，未实践， 如果设备量不大，就这样写一个客户端自己处理似乎也能跑。&lt;/p&gt;</description><pubDate>Fri, 10 May 2024 22:56:51 +0800</pubDate></item><item><title>win11 RTX4070Ti 部署langchain-chatchat</title><link>https://mzwjc.com/?id=31</link><description>&lt;p&gt;1、下载py的环境管理工具：Anaconda （等同于node环境的nvm工具）&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2、创建一个专属环境&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;conda&amp;nbsp;create&amp;nbsp;-n&amp;nbsp;langchain&amp;nbsp;python=3.11.7
#安装完后切换
conda&amp;nbsp;activate&amp;nbsp;langchain&lt;/pre&gt;&lt;p&gt;3、下载项目文件&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#通过git或手工下载项目文件
git&amp;nbsp;clone&amp;nbsp;https://github.com/chatchat-space/Langchain-Chatchat.git
#通过Anaconda中的cmd窗口，进入到项目目录&lt;/pre&gt;&lt;p&gt;3、下载模型文件，使用项目默认的模型（下载后应该是在项目目录）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;git&amp;nbsp;lfs&amp;nbsp;install
$&amp;nbsp;git&amp;nbsp;clone&amp;nbsp;https://huggingface.co/THUDM/chatglm3-6b
$&amp;nbsp;git&amp;nbsp;clone&amp;nbsp;https://huggingface.co/BAAI/bge-large-zh&lt;/pre&gt;&lt;p&gt;4、初始化配置文件&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;python&amp;nbsp;copy_config_example.py&lt;/pre&gt;&lt;p&gt;5、对configs/model_config.py文件编辑&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#根据EMBEDDING_MODEL的值bge-large-zh-v1.5，找到下方158行的地方，将路径修改为实际路径，前面加r，例如
bge-large-zh-v1.5&amp;quot;:&amp;nbsp;r&amp;quot;D:\dev\python\model\bge-large-zh&amp;quot;
#同理修改llm模型的路径，在chatglm3-6b在168行&lt;/pre&gt;&lt;p&gt;6、安装&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;pip&amp;nbsp;install&amp;nbsp;-r&amp;nbsp;requirements.txt&amp;nbsp;
pip&amp;nbsp;install&amp;nbsp;-r&amp;nbsp;requirements_api.txt
pip&amp;nbsp;install&amp;nbsp;-r&amp;nbsp;requirements_webui.txt&lt;/pre&gt;&lt;p&gt;7、装完后其实运行不起来，会提示torch和cuda不匹配，需要单独安装，并且在安装前，需要安装nvidia的cuda toolkit 和 cuDNN&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;#现在命令窗口确认当前cuda版本，我的是cuda12.2
nvidia-smi&lt;/pre&gt;&lt;p&gt;8、到nvidia官网下载https://developer.nvidia.com/cuda-downloads?target_os=Windows&amp;amp;target_arch=x86_64&amp;amp;target_version=11&amp;amp;target_type=exe_local&lt;/p&gt;&lt;p&gt;9、安装完后，还要下载cuDNN，地址（需要先注册登录好像）：&lt;a href=&quot;https://developer.nvidia.com/rdp/cudnn-download&quot; _src=&quot;https://developer.nvidia.com/rdp/cudnn-download&quot;&gt;https://developer.nvidia.com/rdp/cudnn-download&lt;/a&gt; &lt;/p&gt;&lt;p&gt;10、下载后，解压出来，将文件夹改名成cudnn放到cuda的目录下，我的目录是：&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;C:\Program&amp;nbsp;Files\NVIDIA&amp;nbsp;GPU&amp;nbsp;Computing&amp;nbsp;Toolkit\CUDA\v12.2&lt;/pre&gt;&lt;p&gt;11、可以另起一个cmd窗口，进入extras目录，执行demo_suite文件，如果提示Result=PASS 则ok&lt;/p&gt;&lt;p&gt;12、同理也执行deviceQuery.exe&lt;/p&gt;&lt;p&gt;13、去pytorch官完安装gpu版本的torch，地址：&lt;a href=&quot;https://pytorch.org/get-started/locally/&quot; _src=&quot;https://pytorch.org/get-started/locally/&quot;&gt;https://pytorch.org/get-started/locally/&lt;/a&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#当前没有cuda12.2的，选了12.1其实也可以用，另外用pip先安装了一次，发现没有效果，可能项目里已经pip依赖装过了，我换conda安装就可以
conda&amp;nbsp;install&amp;nbsp;pytorch&amp;nbsp;torchvision&amp;nbsp;torchaudio&amp;nbsp;pytorch-cuda=12.1&amp;nbsp;-c&amp;nbsp;pytorch&amp;nbsp;-c&amp;nbsp;nvidia&lt;/pre&gt;&lt;p&gt;14、查看cuda是否可用&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;#进入python
python
#引入文件，回车
import&amp;nbsp;torch
#打印状态,出现true则代表成功
torch.cuda.is_available()&lt;/pre&gt;&lt;p&gt;15、引入项目带的演示知识库&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;python&amp;nbsp;init_database.py&amp;nbsp;--recreate-vs&lt;/pre&gt;&lt;p&gt;16、启动项目&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;python&amp;nbsp;startup.py&amp;nbsp;-a&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Sat, 03 Feb 2024 22:51:11 +0800</pubDate></item><item><title>mysql5.6导入mysql8的坑</title><link>https://mzwjc.com/?id=30</link><description>&lt;p&gt;1、虽然在mysql8里设置数据库的排序规则是utf8mb4_general_ci ，但是导入后，却都被变成了utf8mb4_0900_ai_ci&lt;/p&gt;&lt;p&gt;解决：用navicae导出的，表语句中没有COLLATE属性，所以批量替换&amp;nbsp;CHARSET=utf8mb4 为&amp;nbsp;&amp;nbsp;CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;2、mysql5.7以前，对于日期等允许&amp;#39;0000-00-00&amp;#39; 这种自负存储，但之后包括8都默认开启严格模式，不支持了，如果是有数据的要导入，那只能关闭严格模式，如果是新建的新项目，那建议就用1970-01-01了&lt;/p&gt;</description><pubDate>Tue, 31 Oct 2023 21:22:12 +0800</pubDate></item><item><title>linux安装go环境</title><link>https://mzwjc.com/?id=29</link><description>&lt;p&gt;1、在&amp;nbsp;&lt;a href=&quot;https://go.dev/dl/&quot; _src=&quot;https://go.dev/dl/&quot;&gt;https://go.dev/dl/&lt;/a&gt;&amp;nbsp; 下载linux的包&lt;/p&gt;&lt;p&gt;2、上传到服务器，解压，比如放到/opt后，执行下命令，解压到当前目录得到go文件夹&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;tar&amp;nbsp;-xzf&amp;nbsp;go1.21.3.linux-amd64.tar.gz&lt;/pre&gt;&lt;p&gt;3、添加环境变量&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;vim&amp;nbsp;/etc/profile

#在原先&amp;nbsp;export&amp;nbsp;PATH&amp;nbsp;USER&amp;nbsp;LOGNAME&amp;nbsp;MAIL&amp;nbsp;HOSTNAME&amp;nbsp;HISTSIZE&amp;nbsp;HISTCONTROL&amp;nbsp;这行上方，添加一行
export&amp;nbsp;PATH=$PATH:/opt/go/bin

#保存后，使变量生效
source&amp;nbsp;/etc/profile

#通过go&amp;nbsp;version&amp;nbsp;能显示版本号则完成
#最后添加go镜像
go&amp;nbsp;env&amp;nbsp;-w&amp;nbsp;GOPROXY=https://goproxy.cn,direct&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 23 Oct 2023 21:32:11 +0800</pubDate></item><item><title>宝塔ftp连不上</title><link>https://mzwjc.com/?id=28</link><description>&lt;p&gt;1、先检查端口是否有开放，涉及宝塔端口 和 云服务器的安全组；&lt;/p&gt;&lt;p&gt;2、对Pure-ftpd的配置文件中，大概180来行的ForcePassiveIP&amp;nbsp; 开放，并且把ip改成服务器的外网ip；&lt;/p&gt;</description><pubDate>Wed, 18 Oct 2023 09:18:26 +0800</pubDate></item><item><title>通过frp进行内网穿透</title><link>https://mzwjc.com/?id=27</link><description>&lt;p&gt;因为ngrok会定义刷新域名，有点限制，如果没有服务器域名，用他合适，如果有自己的服务器、域名，则用frp：&lt;/p&gt;&lt;p&gt;按照&lt;a href=&quot;https://blog.csdn.net/mirage003/article/details/127681591&quot; _src=&quot;https://blog.csdn.net/mirage003/article/details/127681591&quot;&gt;https://blog.csdn.net/mirage003/article/details/127681591&lt;/a&gt;&amp;nbsp;方式搭建即可&lt;/p&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;注意：&lt;/p&gt;&lt;p&gt;（1）frp版本要用0.51.3，后续版本的配置文件变成toml，写法也变成驼峰，完全不一样了，未找到资料，所以换成和文章一样的小版本：&lt;/p&gt;&lt;p&gt;https://github.com/fatedier/frp/releases/tag/v0.51.3&lt;/p&gt;&lt;p&gt;如果访问服务端提示： 则应该是域名解析没对 或 反向代理没配对， 客户端设置了域名后，就必须要用这个域名来访问的。&lt;/p&gt;&lt;pre class=&quot;notranslate&quot; style=&quot;box-sizing: border-box; font-family: ui-monospace, SFMono-Regular, &amp;quot;SF Mono&amp;quot;, Menlo, Consolas, &amp;quot;Liberation Mono&amp;quot;, monospace; font-size: 12px; margin-top: 0px; margin-bottom: 16px; overflow-wrap: normal; padding: 16px; overflow: auto; line-height: 1.45; color: rgb(31, 35, 40); background-color: var(--bgColor-muted, var(--color-canvas-subtle)); border-radius: 6px;&quot;&gt;[W]&amp;nbsp;[http.go:95]&amp;nbsp;do&amp;nbsp;http&amp;nbsp;proxy&amp;nbsp;request&amp;nbsp;error:&amp;nbsp;no&amp;nbsp;such&amp;nbsp;domain:&amp;nbsp;frps&amp;nbsp;/&lt;/pre&gt;&lt;p&gt;（3）mac m1通过homebrew安装的nginx配置文件在&lt;span style=&quot;color: #CCCCCC; font-family: &amp;quot;Source Code Pro&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, &amp;quot;Anonymous Pro&amp;quot;, &amp;quot;Droid Sans Mono&amp;quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; white-space-collapse: preserve; background-color: #2D2D2D;&quot;&gt;/opt/homebrew/etc/nginx/nginx.conf&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;server_name&amp;nbsp;&amp;nbsp;localhost&amp;nbsp;wxpub.mzwjc.com;
location&amp;nbsp;^~&amp;nbsp;/wxpub&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_pass&amp;nbsp;http://localhost:8081/wxpub;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_set_header&amp;nbsp;Host&amp;nbsp;$host;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_set_header&amp;nbsp;X-Real-IP&amp;nbsp;$remote_addr;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;(3) 服务器上服务端后台运行：&lt;/p&gt;&lt;p&gt;查看进程&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;ps&amp;nbsp;-aux|grep&amp;nbsp;frp&amp;nbsp;|&amp;nbsp;grep&amp;nbsp;-v&amp;nbsp;grep&lt;/pre&gt;&lt;p&gt;如果存在，则可以杀死先&lt;br/&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;kill&amp;nbsp;-9&amp;nbsp;进程id&lt;/pre&gt;&lt;p&gt;通过nohup运行&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;nohup&amp;nbsp;./frps&amp;nbsp;-c&amp;nbsp;./frps.ini&amp;nbsp;&amp;amp;&lt;/pre&gt;&lt;p&gt;然后随便输入就可以退出了&lt;br/&gt;&lt;/p&gt;&lt;p&gt;客户端同样方式，换成frpc在内网电脑运行，win系统要关闭下自带杀毒，然后在cmd里运行&lt;/p&gt;&lt;p&gt;(4) 如果穿透转发后，用微信开发工具访问域名，显示的&lt;span style=&quot;color: #C7254E; font-family: &amp;quot;Source Code Pro&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, &amp;quot;Anonymous Pro&amp;quot;, &amp;quot;Droid Sans Mono&amp;quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; text-wrap: wrap; background-color: #F9F2F4;&quot;&gt;Invalid Host Origin header &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;Source Code Pro&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, &amp;quot;Anonymous Pro&amp;quot;, &amp;quot;Droid Sans Mono&amp;quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;之类的，需要去uniapp的配置里，在h5部分，设置disableHostCheck，比如&lt;/span&gt;&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-basic&quot;&gt;&amp;quot;h5&amp;quot;&amp;nbsp;:&amp;nbsp;{

	&amp;quot;devServer&amp;quot;&amp;nbsp;:&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;disableHostCheck&amp;quot;&amp;nbsp;:&amp;nbsp;true,
	&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;quot;port&amp;quot;&amp;nbsp;:&amp;nbsp;8081
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;},

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;span style=&quot;font-family: &amp;quot;Source Code Pro&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Ubuntu Mono&amp;quot;, &amp;quot;Anonymous Pro&amp;quot;, &amp;quot;Droid Sans Mono&amp;quot;, Menlo, Monaco, Consolas, Inconsolata, Courier, monospace, &amp;quot;PingFang SC&amp;quot;, &amp;quot;Microsoft YaHei&amp;quot;, sans-serif; font-variant-ligatures: no-common-ligatures; text-wrap: wrap; background-color: #FFFFFF;&quot;&gt;&lt;/span&gt;&lt;br/&gt;&lt;/p&gt;</description><pubDate>Mon, 16 Oct 2023 23:48:39 +0800</pubDate></item><item><title>宝塔nginx配置允许各种文件的下载</title><link>https://mzwjc.com/?id=26</link><description>&lt;pre class=&quot;prism-highlight prism-language-bash&quot;&gt;location&amp;nbsp;~&amp;nbsp;.*\.(gif|jpg|jpeg|png|bmp|swf|pdf|doc|docx|xls|xlsx|rar|zip|gz|7z|ppt|pptx|mp3|mp4|avi|mov|wmv)$
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;add_header&amp;nbsp;Access-Control-Allow-Origin&amp;nbsp;*;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;add_header&amp;nbsp;Access-Control-Allow-Methods&amp;nbsp;&amp;#39;GET,&amp;nbsp;POST,&amp;nbsp;OPTIONS&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;add_header&amp;nbsp;Access-Control-Allow-Headers&amp;nbsp;&amp;#39;DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization&amp;#39;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;add_header&amp;nbsp;&amp;nbsp;Access-Control-Expose-Headers&amp;nbsp;&amp;#39;Content-Disposition&amp;#39;;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;expires&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;30d;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;error_log&amp;nbsp;/dev/null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;access_log&amp;nbsp;/dev/null;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/pre&gt;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&lt;p&gt;在网站的配置文件中，修改原先类似的部分为上面的内容&lt;/p&gt;</description><pubDate>Mon, 16 Oct 2023 20:18:10 +0800</pubDate></item></channel></rss>