芒果爱吃胡萝卜 - 新建
type: channel
link: http://blog.mangolovecarrot.net/tag/%E6%96%B0%E5%BB%BA/
items: 树莓派搭建 DNS 服务器
items: 白鹭引擎开发扫雷游戏 - 微信小游戏服务端（云开发）问题集

树莓派搭建 DNS 服务器
type: item
date: 2021-04-21T03:13:00+08:00
description: 自建 DNS 服务器，可以规避运营商的 DNS 劫持，还可以一定程度上加速网络访问。除此之外，在自定一些配置之后，能实现广告拦截及其他的一些功能。在这里我们通过在树莓派使用 dnsmasq 搭建这样一个 DNS 服务器。安装 dnsmasqsudo apt-get install dnsmasq配置 dnsmasq首先备份一下原配置文件，命令行如下：sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak接着编辑配置文件，命令行如下：sudo vi /etc/dnsmasq.conf这里，我们首先按下 esc 进入命令模式，然后使用快捷键 yddG 清空文件，之后使用 i 进入插入模式，ctrl+v 粘贴如下配置内容，粘贴完成后按下 esc，最后使用 :wq 保存文件：resolv-file=/etc/my_dns.conf strict-order cache-size=10000 listen-address=127.0.0.1,192.168.0.100 #address可以多行，每行一条dns规则 address=/blog.mangolovecarrot.net/192.168.0.222 address=/mangopi.cn/192.168.0.222其余各项解释：resolve-file：定义 dnsmasq 的上游DNS服务器，默认是 /etc/resolv.conf。但是 resolv.conf 在每次树莓派重启后就会被系统重置，因此我们手动指定 resolve-file 文件（后面会编辑该文件）strict-order：表示严格按照 resolv-file 文件中的顺序从上到下进行DNS解析listen-address：定义 dnsmasq 监听的地址，默认是监控本机的所有网卡上。为使局域网其他设备得以使用需要加上树莓派的局域网 ipcache-size：缓存条数address：自定义域名解析的 ip 地址，以 pi.com 这个域名为例。也可以在其他文件中配置，配置文件放在 /etc/dnsmasq.d/ 中即可。例如可以在 /etc/dnsmasq.d/ 下新建文件test.conf，加入该规则，效果等同编辑 my_dns.conf，命令行如下：sudo nano /etc/my_dns.conf粘贴如下内容：nameserver 127.0.0.1 #以下两行设置自己路由器自动获取到当地的DNS nameserver 119.29.29.29 nameserver 182.254.116.116ctrl+o 保存，之后 回车 确认，然后 ctrl+x 退出。附注，各大 dns（推荐 DNSpod）： 114 dns： 114.114.114.114 114.114.115.115 阿里 dns： 223.5.5.5 223.6.6.6 DNSpod： 119.29.29.29 182.254.116.116 参考资料：https://www.v2ex.com/t/250719参考资料：https://www.v2ex.com/t/250719广告拦截（无需要的话可跳过）dnsmasq 会优先检测 hosts 文件，并通过其解析 ip，我们可以通过修改树莓派 hosts 文件实现拦截广告的需求和其他的一些需求。在用户目录(/home/pi)建立 hosts 文件夹，在文件夹内放置一个 hosts.sh 脚本，修改文件权限：cd ~ mkdir hosts cd hosts touch hosts.sh sudo chmod 777 hosts.sh之后编辑文件，命令行如下：nano hosts.sh粘贴如下内容：#!/bin/sh cd /home/pi/hosts/ echo "***下载 g hosts 文件***" wget --no-check-certificate https://raw.githubusercontent.com/googlehosts/hosts/master/hosts-files/hosts -O hosts_g.txt; echo "***下载 ad hosts 文件***" wget --no-check-certificate https://raw.githubusercontent.com/vokins/yhosts/master/hosts -O hosts_ad.txt; echo "***合并 hosts 文件***" cat hosts_g.txt hosts_ad.txt > hosts.txt echo "***复制 hosts 文件***" sudo cp hosts.txt /etc/hosts ech…

白鹭引擎开发扫雷游戏 - 微信小游戏服务端（云开发）问题集
type: item
date: 2020-08-09T16:57:00+08:00
description: 云函数云函数怎么添加，代码到底在哪写？？添加点开发者工具的云开发按钮打开云开发界面。再点云函数-新建云函数即可新建。除了名字其他默认即可。编写在开发者工具项目目录下，自己新建一个文件夹比如cloudfunction，然后在project.config.json中添加一条设置："cloudfunctionRoot": "cloudfunction",你会发现这个目录图标上添加了一个云符号，表示被识别为云函数目录了。此时目录还是空的，在目录上点右键-同步云函数列表，会将你刚才新建的云函数同步到这个文件夹下，每个函数一个目录。顺序反过来也可以，先创建云目录再新建云函数都可以。本地调试报错？提示没有wx-server-sdkwx-server-sdk模块是必须的。引用wx-server-sdk这个模块既然是用微信的服务器，那么肯定会用到这个模块来获取用户信息什么的。这个模块也好，第三方模块也好都是运行在Nodejs下的，所以你需要本地先安装一个Nodejs。然后命令行进入云函数目录cloudfunction/myFunc，然后执行这个命令:npm install --save wx-server-sdk@latest完成以后就可以进行本地调试了。编写好的云函数如何上传部署？在云函数目录上点右键，有两个上传选项。上传并部署：所有文件速度较慢。将你本地的云函数文件还有所有用到的nodejs模块文件全部一起打包上传。比较耗时。上传并部署：云端安装依赖速度很快。云函数目录下的node模块不会被上传。云端会根据云函数目录下的package.json文件的内容在云端进行安装相关依赖。所以使用这个选项的时候一定要保证云函数目录里有package.json文件（有时候只有lock.json是不行的，需要手动创建）。如果你没有用到第三方模块的话，这个文件写成这样就够了（"wx-server-sdk"模块是必须的）：{ "dependencies": { "wx-server-sdk": "latest" } }本地的Nodejs环境搞不定怎么办不需要本地调试的话，本地的Nodejs环境就不是必须的。如上一条所述，使用上传并部署：云端安装依赖即可。每次上传所有文件很慢，好烦参见前面说的上传并部署：云端安装依赖。为什么进行数据库操作后，success没有被回调？这里是个大坑。官方API文档说是支持的，其实，success fail complete 的回调只能在小游戏客户端使用，而云函数端只支持Promise方式回调。这里是官方的回复系列文章白鹭引擎开发扫雷游戏 - 避开微信胶囊菜单，在白鹭引擎中调用微信小游戏API白鹭引擎开发扫雷游戏 - 打包Apple iOS（AppleStore）原生问题集白鹭引擎开发扫雷游戏 - 打包安卓原生问题集白鹭引擎开发扫雷游戏 - 微信小游戏客户端问题集白鹭引擎开发扫雷游戏 - 微信小游戏服务端（云开发）问题集【当前文章】