芒果爱吃胡萝卜 - home
type: channel
link: http://blog.mangolovecarrot.net/tag/home/
items: 树莓派搭建 DNS 服务器
items: 树莓派上用docker部署syncthing，搭建私有云环境
items: 在树莓派上创建远程git仓库并将本地同步过来的方法

树莓派搭建 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…

树莓派上用docker部署syncthing，搭建私有云环境
type: item
date: 2020-12-20T13:25:00+08:00
description: 挂载局域网共享目录到树莓派创建树莓派上的挂载点mkdir /home/pi/share编辑配置文件sudo nano /etc/fstab添加以下命令，第一个参数是自己局域网中的某个共享目录，第二个参数是刚刚建立的本地挂载点，用户名密码一般不需要这里随便填了个aaa省略也可，如有需要则修改//192.168.0.13/移动磁盘-C(aaa)/share /home/pi/share cifs username=XXX,password=XXX,vers=1.0 0 0启动挂载sudo mount -a进入挂载点可以看到共享目录已经成功挂载cd /home/pi/share ls -l在docker上部署syncthing拉取syncthing官方docker镜像docker pull syncthing/syncthing运行容器将数据目录映射到刚刚挂载的share目录/home/pi/share:/var/syncthing 端口8384：主要用于Remote web UI的访问 端口22000：是用做同步协议的端口 docker run -p 8384:8384 -p 22000:22000 -v /home/pi/share:/var/syncthing syncthing/syncthing:latest访问控制台http://ip:8384与手机共享同步目录手机安装syncthing客户端（只支持安卓）添加设备扫描电脑ui上的设备二维码同样的，在电脑上添加手机设备id手机上默认有一个相册文件夹，这里我们添加一个新文件夹，比如download文件夹，添加时同时打开电脑设备的一个开关即可通知电脑UI有远程设备与你共享文件夹，同意即可。查看本地共享目录下会自动新建一个手机同步的文件夹并开始同步。然后就可以通过这个目录跟手机进行文件的同步了。

在树莓派上创建远程git仓库并将本地同步过来的方法
type: item
date: 2020-11-26T15:41:00+08:00
description: [button]不局限于树莓派，本文适用任何shell环境。[/button]创建仓库文件夹cd /home/pi/MyGitServer mkdir progName初始化仓库cd progName git --bare init初始化完成的仓库URLpi@pi4:/home/pi/MyGitServer/progName然后在客户端即可推送本地master到这里了VSCode下左侧源代码管理->...(更多操作菜单)->远程->添加远程储存库输入 pi@hostname:/home/pi/MyGitServer/progName如果是非标准端口22的话那么输入 ssh://pi@hostname:port/home/pi/MyGitServer/progName左侧源代码管理->展开Branch标签->Publish master to Remote第一次同步完成！之后就可以直接Push上去了。clone到树莓派本地进入工作目录git clone /home/pi/MyGitServer/progName完成!