芒果爱吃胡萝卜 - sudo
type: channel
link: http://blog.mangolovecarrot.net/tag/sudo/
items: 解决 /etc/init.d/php-fpm-73 no such file or directory 问题
items: Ubuntu18.04开机自动挂载Windows下的硬盘分区
items: Ubuntu18.04 笔记本合上盖子时不进入休眠
items: ubuntu开放端口
items: 树莓派搭建 DNS 服务器
items: 树莓派上用docker部署syncthing，搭建私有云环境
items: SSH连接树莓派出现connection refused原因及解决方案

解决 /etc/init.d/php-fpm-73 no such file or directory 问题
type: item
date: 2021-04-29T13:27:00+08:00
description: 问题宝塔面板提示/etc/init.d/php-fpm-73 no such file or directory解决没有咱就创建一个完事。sudo vi /etc/init.d/php-fpm-73复制以下内容#! /bin/sh # Comments to support chkconfig on CentOS # chkconfig: 2345 65 37 # set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="php-fpm daemon" NAME=php-fpm DAEMON=/usr/local/php/sbin/$NAME CONFIGFILE=/usr/local/php/etc/php-fpm.conf PIDFILE=/usr/local/php/var/run/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME # Gracefully exit if the package has been removed. test -x $DAEMON || exit 0 d_start() { $DAEMON -y $CONFIGFILE || echo -n " already running" } d_stop() { kill -QUIT `cat $PIDFILE` || echo -n " not running" } d_reload() { kill -HUP `cat $PIDFILE` || echo -n " can't reload" } case "$1" in start) echo -n "Starting $DESC is success" d_start echo "." ;; stop) echo -n "Stopping $DESC is success" d_stop echo "." ;; reload) echo -n "Reloading $DESC configuration..." d_reload echo "reloaded." ;; restart) echo -n "Restarting $DESC is success" d_stop sleep 1 d_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 exit 3 ;; esac 给权限sudo chmod 777 /etc/init.d/php-fpm-73完

Ubuntu18.04开机自动挂载Windows下的硬盘分区
type: item
date: 2021-04-27T17:50:00+08:00
description: 运行如下命令查看Windows分区：sudo blkid可以看到类似如下输出：/dev/loop0: TYPE="squashfs"/dev/loop1: TYPE="squashfs"/dev/loop2: TYPE="squashfs"/dev/loop3: TYPE="squashfs"/dev/loop4: TYPE="squashfs"/dev/loop5: TYPE="squashfs"/dev/loop6: TYPE="squashfs"/dev/loop7: TYPE="squashfs"/dev/sda1: LABEL="WIN7" UUID="52E44FD8E44FBCCB" TYPE="ntfs" PARTUUID="b532b532-01"/dev/sda2: UUID="F6DC46B6DC4670C3" TYPE="ntfs" PARTUUID="b532b532-02"/dev/sda5: LABEL="DATA" UUID="52E44FD8E44FBCCB" TYPE="ntfs" PARTUUID="b532b532-05"在上述输出中，可以根据TYPE和LABEL找到自己需要自动挂载的分区，并记下它们的路径，例如LABEL="DATA"的/dev/sda5。手动挂载sudo mount /dev/sda5 /win-data手动挂载的话重启就失效了，希望重启自动挂载的话需要修改配置文件如下。修改系统配置文件sudo nano /etc/fstab在配置文件的末尾，添加类似如下内容重启即可自动挂载。

Ubuntu18.04 笔记本合上盖子时不进入休眠
type: item
date: 2021-04-27T01:12:24+08:00
description: 在笔记本上装ubuntu系统后，服务功能设好了，不需要操作了，希望机器一直开机提供服务。此时，为了省电，可将笔记本屏幕合上，静待其完成任务。但是，在默认情况下，笔记本合上屏幕后，ubuntu系统会休眠，需要修改配置文件。方法如下：修改 Login Manager的配置文件。sudo vim /etc/systemd/logind.conf 然后将其中的：#HandleLidSwitch=suspend 改成：HandleLidSwitch=ignore 然后重启服务：sudo restart systemd-logind 或者service systemd-logind restart 或者直接重启sudo reboot 即可使设置生效。

ubuntu开放端口
type: item
date: 2021-04-26T23:11:00+08:00
description: 一般情况下，ubuntu安装好的时候，iptables会被安装上，如果没有的话那就安装上吧安装sudo apt-get install iptables添加规则比如开放8888端口（宝塔默认端口）iptables -I INPUT -p tcp --dport 8888 -j ACCEPT保存规则iptables-save完成上述命令我们就完成了开放指定的端口，但是如果此时服务器重启，上述规则就没有了，所以我们需要对规则进行一下持续化操作持续化规则这里我们需要在安装一下工具来帮我们实现，这里我们使用 iptables-persistent首先，安装：sudo apt-get install iptables-persistent安装完后即可使用以下命令保存或载入规则：Ubuntu 14.04sudo invoke-rc.d iptables-persistent savesudo invoke-rc.d iptables-persistent reload或者sudo /etc/init.d/iptables-persistent save sudo /etc/init.d/iptables-persistent reloadUbuntu 16.04sudo netfilter-persistent savesudo netfilter-persistent reload生成的规则将被存储在以下文件中/etc/iptables/rules.v4/etc/iptables/rules.v6

树莓派搭建 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有远程设备与你共享文件夹，同意即可。查看本地共享目录下会自动新建一个手机同步的文件夹并开始同步。然后就可以通过这个目录跟手机进行文件的同步了。

SSH连接树莓派出现connection refused原因及解决方案
type: item
date: 2020-12-05T18:13:00+08:00
description: 原因1：新系统默认不开启ssh服务新刷系统的树莓派默认是不开启ssh服务的。需要手动开启，方法有2个：在sd卡的根目录下新建一个空文件ssh，重启树莓派即可默认上电开启ssh服务。连接显示器和外接键盘进入系统后执行sudo raspi-config选择Interface Options选择SSH开启SSH这样就开启了SSH服务原因2：wifi获取ip较慢导致在获取ip之前试图绑定ssh服务的监听ip失败可以在启动后延时一段时间然后重启一下ssh服务即可解决。方法是在rc.local配置文件中加入等待和重启服务的命令。执行以下命令sudo nano /etc/rc.local添加下面两行命令sleep 30 sudo /etc/init.d/ssh restartCtrl+X -> Y -> 回车 保存文件，重启即可。比如我修改后内容如下