给小白的树莓派指南(个人网站、域名服务器、pptp服务器)
我的树莓派3B是17年买的,买前生产力,买后压舱底,在柜子里静静的躺了二、三年。前段时间捡垃圾整了个蜗牛星际,整了黑群运行一段时间,感觉长时间运行不爽,一是黑群硬盘休眠过一个小时就被唤醒,虽然我的硬盘是某鱼买的才几十块,我还是挺爱惜的,担心坏掉;二是风扇虽然已经整成5v非常静音,可还是有点声音,加上硬盘不时的微小声音,不爽。强迫症伤不起。于是舱底货终于重见天日。
树莓派3B功率非常低,长时间运行完全没问题,我的还带个小风扇,我干脆就不要了,非常静音。性能也还可以,长时间运行非常适合。
另,大妈上的技术文章技术水准太高,这篇文章对大佬们真是太浅了。本文只是聚合一些内容,说下在建设过程中遇到的坑和解决办法,仅适合给刚刚入门、从零开始的朋友看看,不至于掉坑里,同时也记录下来自己看看,否则以后要再搭建就忘记了。麻烦大佬们请轻拍、指正。
摘要
树莓派一般安装,从烧录到普通的一般命令介绍。
搭建vpn服务器,远程回家里,访问家里的星际蜗牛等其他内容。
域名缓存服务器,一是缓存域名,加快家里的网页打开速度,二是针对部分网址使用加密dns,避免劫持。(但针对IP的fengsuo是木有办法的)。
建设个人网站,只给家里几个人简单使用,性能上还是没问题的,不过说真的,对比起来,群晖自带的wordpress建站真的是太容易了。关键是没有那么多坑。
一、安装
1、下载官网的程序,
1)打开官网地址,下载“Raspbian Buster Lite Minimal image based on Debian Buster”
i、下载文件有两种,一种是NOOBS,全称 New Out Of Box System(全新开箱即用系统),官方推荐每一个第一次接触树莓派的人使用,我没用过,不好评价;另一种是Raspbian,是基于debian的,适合有一定linux基础的人使用,第二种又分三个版本,一是最全的,带桌面和推荐软件;二是带桌面;三是最简版。
ii、根据我的经验,只要会几个普通命令,如ls,cd,简单懂点vi,基本使用Raspbian不会有问题,不会就上网搜索好。因此建议第二种,第二点又建议最简版,因为linux的核心都是用命令行的,既然要玩,那就用命令行好了,至于软件,要用哪个软件,就用apt-get命令就可以安装好。
2)下载后解压出2020-02-13-raspbian-buster-lite.img,用win32 disk imager写到TF卡里,操作比较简单。
3)打开烧好系统的TF卡,上面有个boot目录,在boot内新建一个名为SSH的无类型文件,可以让树莓派自动启动SSH,可以无显示器登录。#这个是在网上找的方法,本人没试过。我个人是插上键盘,然后盲打,输入用户密码,然后再启动ssh。具体设置看第二章“一般配置”,当然,我是因为没有显示器,有显示器的可以忽略。
4)将TF卡放进树莓派,接上电源,用网线将树莓派和电脑直接对接。会自动获取IP。
5)可以从路由器看到树莓派的IP,也可以用arp -a看局域网里的所有IP,再找出树莓派的IP。
2、关注问题:
1)官网下载很慢,建议可以拷贝链接,在迅雷等下载软件里下载。但建议还是官网靠谱,其他地方下载的也不知道会不会被人修改。
2)登录名是pi,密码是raspberry.
二、一般配置
1、使用raspi-config,可配置时区、wifi、语言等
sudo raspi-config
2、安装SSH
1)执行命令开启ssh,就可以了。
/etc/init.d/ssh start
#如果报没有权限,则加上sudo /etc/init.d/ssh start
2)执行上述命令,只是单次开启,重启后就没用了,可以加入开机自启动,每次开机时启动,就完全不需要屏幕了。
vi /etc/rc.local文件,在语句exit 0之前加入:
/etc/init.d/ssh start
3)服务器重装后,因为公钥有变化,对mac来说,需要重置公钥,在终端里使用以下命名
ssh-keygen -R 10.0.0.60(#服务器IP)
3、vi在编辑时,上下左右变ABCD,这个是vim-common的bug,先删除vim-common,再安装vim
sudo apt-get remove vim-common
sudo apt-get install vim
4、设置静态Ip和DNS
1)修改dhcpcd.conf
vi /etc/dhcpcd.conf
2)增加以下内容:
#有线网卡
interface eth0
static ip_address=10.0.0.60/24
static routers=10.0.0.1
static domain_name_servers=127.0.0.1
#无线网卡
interface wlan0
static ip_address=10.0.0.70/24
static routers=10.0.0.1
static domain_name_servers=127.0.0.1
3)重启networking
sudo service networking restart
5、设置VIM显示行号
1)修改vimrc
sudo vim ~/.vimrc
2)输入以下并保存退出
set number
3)这个是每个用户都有单独的vimrc,切换到root时,也要运行才能显示行号。
sudo vim /root/.vimrc
6、一直以root运行命令
我们安装程序等一般都要用到root权限,但我们是用pi用户登录的,所以相关命令要用到root权限时,要用sudo命令。例如:
sudo apt-get install vsftpd //安装vsftpd
我个人不喜欢每次都在前面中加sudo,所以我一般用pi登录后,立马执行以下命令,后面的都会以root用户执行(提示符会由$变成#),不需要加sudo.
sudo -s
7、安装FTP
1)安装
apt-get install vsftpd
2)根据自己需求,修改配置文件
nano /etc/vsftpd.conf
其中
anonymous_enable=NO
#表示不允许匿名访问
local_enable=YES
#设定本地用户可以访问。
write_enable=YES
#设定可以进行写操作
local_umask=022
#设定上传后文件的权限掩码。
三、安装vpn,远程回家;
1、安装pptpd;
apt-get install pptpd
#我安装的版本是1.4.0-11+b1
2、配置IP
vi /etc/pptpd.conf
在TAG: localip 这一栏下面增加
localip 10.0.2.1
remoteip 10.0.2.2-20
#这个是根据我家网络IP的配置,大家可以按不同的网段配置。
3、配置DNS
vi /etc/ppp/pptpd-options
将ms-dns修改为 10.0.0.2
4、配置用户密码
vi /etc/ppp/chap-secrets
增加一行
aaaa(#你的用户名) pptpd password(#你的密码) *
5、开启IP转发
vi /etc/sysctl.conf
将net.ipv4.ip_forward=1的#去掉。
6、设置iptables,建立NAT转发规则
iptables -t nat -A POSTROUTING -s 10.0.2.0/24 -o eth0 -j MASQUERADE
# eth0 代表网卡,可以通过命令 ifconfig 查看
7、保存到文件/etc/iptables-rules
iptables-save >/etc/iptables-rules
8、新建一个bash脚本,并保存到 /etc/network/if-pre-up.d/目录下:
vi /etc/network/if-pre-up.d/pptprule
内容如下:
#!/bin/bash
iptables-restore < /etc/iptables-rules
然后再修改为可执行模式
chmod +x /etc/network/if-pre-up.d/pptprule
重启pptpd即可
/etc/init.d/pptpd restart
9、在rc.local里加入命令,实现开机自启动
vi /etc/rc.local
在exit 0 一行前增加一行:
/etc/init.d/pptpd start
10、其他
在使用手机测试时,从家里网络切换到4g网络时,可以先断开wifi,切换成飞行模式,再关闭飞行模式,清除手机的DNS缓存,反之也一样。否则DNS可能会有问题,无法正常访问服务器。例如,我的域名在4g解析成公网IP,而在家里解析成局域网IP,如果不这样操作,就无法获取正确的IP。
四、安装dnscrypt-proxy、dnsmasq,实现域名服务器,并可以实现缓存加速;
1、先用apt-get install 安装dnscrypt-proxy
修改配置文件/etc/dnscrypt-proxy/dnscrypt-proxy.toml,将监听地址端口修改如下:
listen_addresses = ['127.0.0.1:53000', '[::1]:53000']
2、修改dnscrypt-proxy.socket
systemctl edit dnscrypt-proxy.socket
输入:
[Socket]
ListenStream=
ListenDatagram=
ListenStream=127.0.0.1:5300
ListenStream=[::1]:5300
ListenDatagram=127.0.0.1:5300
ListenDatagram=[::1]:5300
按ctrl+O保存,ctrl+X退出。
#注意:这个端口不能与dnscrypt-proxy.toml一致,否则会无法正常工作。
3、重启,搞定了dnscrypt-proxy;
service dnscrypt-proxy restart
4、安装dnsmasq
apt-get install dnsmasq
我安装的版本是 2.80-1+rpt1
5、配置dnsmasq
配置文件放在 /etc/dnsmasq.d/ 目录下,在这目录创建的文件,都会作为配置文件读取。
我的配置及说明如下
#默认是用国内114的DNS解析;否则IP可能都解析到国外去了,没法用国内CDN加速,会很慢,只对可能被wall的进行加密解析。
server=114.114.114.114
#设置缓存域名的记录数
cache-size=9000
#如果查问题要看日志,则把这两行的注释掉,日志会保存在/var/log/dnsmasq.log
#log-queries
#log-facility=/var/log/dnsmasq.log
#对可能被wall的网址,则设置转发到本机的53000端口(或5300,都可以正常工作),通过dnscrypt-proxy进行加密查询,避免污染。这个可以加多行,一直补充进来,完整的清单可以去github上搜,下载后自己用UE改写好格式放到/就好。
server=/twitter.com/127.0.0.1#53000
#对你讨厌的网址,或者你自己的域名,可以设置成本地解析。
address=/360.cn/127.0.0.1 #没错,我就是被流氓搞怕了。
address=/mywebsite/10.0.0.2
6、其他:
1)安装dns时用了很长的时间,dnscypt-proxy和dnsmasq都要占用53端口,无法同时启动,怎么配置都不行,有时候偶尔dnscypt-proxy不占用53端口,看状态两个同时运行得很好了,端口也打开了,但dnscypt-proxy就是没能正常工作,或者一重启就又出现问题了。查看了中英文资料都没找到合适的解决办法。一个网页说,dnscypt-proxy有两种sytemctl和service启动方法,两种只能选一种,而且说了要用systemctl edit dnscrypt-proxy.socket的方法,可是修改后还是存在这样那样的问题。后来在wiki.archlinux.org里看到关于端口的两种办法(如图),突然想两个配置得不一样会怎样?配置成不一样,居然一切就好了。
猜想是不是程序用了两种方法运行,两种方法配置的端口相同的话,就会有冲突,无法正常运行,同时也导致了抢53端口的资源。不知道这是不是程序的bug,反正配置成不一样,反而就好了,而且两个端口都可以正常工作。
我下载的nscypt-proxy版本是:2.0.19+ds1-2
2)网上还有种思路是默认走加密DNS,将国内网站列出来指定走114。个人不建议这种方法,因为国内网站太多了,清单不一定全,最好还是默认走114,针对明显有问题的才走加密。
3)ip的准确性,可以用https://www.ipip.net/ip.html来确认。
4)建议使用dig命令来查询域名:
先安装工具
apt-get install dnsutils
#查询本机dnsmasq是否成功,dnsmasq用的是53端口。
dig www.bing.com @127.0.0.1 -p 53
#查询本机dnsmasq是否成功,
dig www.bing.com @127.0.0.1 -p 5300
#嫌信息太多,可以加个short参数,显示信息少一点。
dig www.twitter.com @127.0.0.1 +short -p 5300
五、安装mariadb
1、安装mariadb
apt-get install mariadb-server
我安装的版本是 1:10.3.22-0+deb10u1
2、配置密码
sudo mysql
use mysql
UPDATE user SET password=password('你的密码') WHERE user='root';
UPDATE user SET plugin='mysql_native_password' WHERE user = 'root';
//这个plugin是mysql密码登录的插件
flush privileges;
//用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问.
exit
3、重启再用密码登录
systemctl restart mariadb
mysql -u root -p
4、配置MariaDB可远程连接
nano /etc/mysql/mariadb.conf.d/50-server.cnf
将下面一行注释掉
bind-address = 127.0.0.1
授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
六、安装wordpress,实现个人网站建设;
1、安装wordpress
apt-get install wordpress
#我安装的版本是5.0.4+dfsg1-1+deb10u1
#这个命令会安装apache2和mysql工具,但不会安装 mysql或mariadb
2、按安装mariadb的方法,安装并配置好mariadb,并按以下方式创建wordpress使用的数据库,设置好用户、密码和数据库就好,wordpress会自动设置好相关表。
#创建一个专门给wordpress用的用户,避免使用root用户(权限太高)
CREATE USER '用户名'@'localhost' IDENTIFIED BY '你的密码';
#创建一个数据库
CREATE DATABASE wordpress_data(wordpress使用的数据库名,可以自己定义);
#赋权限
GRANT ALL PRIVILEGES ON wordpress_data(你的数据库名).* TO "用户名"@"%" IDENTIFIED BY "你的密码";
FLUSH PRIVILEGES;
3、用apt-get 安装时,wordpress的相关文件放在/usr/share/wordpress目录,将该文件全放到/var/www/html下,
#如果希望访问时直接访问http://域名,则只拷贝wordpress底下的文件,而不拷贝wordpress文件夹自身,同时将原目录下的index.html删除掉;
cp -r /usr/share/wordpress /var/www/html/
#如果是希望按http://域名/wordpress 访问,则将wordpress整个拷贝过来,放在html文件夹下。
cp -r /usr/share/wordpress/* /var/www/html/
4、将wp-config.php 备份,然后将sample修改为该名字
mv wp-config.php wp-config.php.bak20200227
mv wp-config-sample.php wp-config.php
5、编辑config文件,输入数据库、用户、密码。
vi wp-config.php
6、在浏览器打开网址进行配置即可。
http://10.0.0.2/wp-admin/install.php
7、apache新增端口,多个端口同时访问wordpress.(内网用80,外网用其他(80、443一般被屏蔽))
1)在ports.conf文件中增加一行端口号
vi /etc/apache2/ports.conf
Listen 8090
#修改为自己的端口。
2)修改 /etc/apache2/sites-enabled/000-default.conf
vi /etc/apache2/sites-enabled/000-default.conf
将80端口的内容全部复制一份在下面,再将80修改为自己的端口即可。
3)重启apache
service apache2 restart
8、其他问题
1)修改网站地址后,访问不了,修改文件wp-login.php,增加以下语句,在浏览器打开http://10.0.0.2/wp-login.php,更改回来
update_option('siteurl', 'http://your.domain.name/the/path' );#修改为你的地址;
update_option('home', 'http://your.domain.name/the/path' );#修改为你的地址;
或者直接去数据库里,update 表wp_options里,option_name为home、siteurl的两条记录即可。
#发现两个都配置成域名,不用IP后,网站速度快了,不知道为啥。
2)下载插件或主题时,要求配置FTP
问题原因是运行apache的用户对wp-content文件夹没有权限,无法写入,方法是更改所有者。
查看apache运行的是哪个用户;
ps -ef |grep apache
#第一列就是用户名
更改所有者,更改wp-content应该就行,我是更改了整个wordpress文件夹
chown -hR www-data:www-data /var/www/html
#以下是网上看到的,感觉应该可以不做,但我懒得测试,一起做了。
新增一个tmp文件夹,给wordpress用来缓存
在wp-config.php添加以下代码,要在定义ABSPATH的后面添加;
define('WP_TEMP_DIR',ABSPATH.'wp-content/tmp');
define("FS_METHOD","direct");
define("FS_CHMOD_DIR",0777);
define("FS_CHMOD_FILE",0777);
3)报更新失败,这个是最新的编辑器的问题,解决方案有两种:一是采用经典编辑器插件,在插件里搜索tinymce,就可以看到(不能搜索中文);方法二是将url和网站地址改一致。
4)写文章时打开慢,原因是用了google字体,安装Disable Google Fonts插件可以解决。
5)比较好的主题有:Arke、richone、go、Catch Sketch、Travel Lifestyle、Ninja Shadow、二〇二〇等,特别推荐Arke,简洁,而且特别快,适合树莓派这种性能弱机。
6)参考链接: http://codex.wordpress.org.cn/安装_WordPress#.E7.AC.AC.E4.B8.89.E6.AD.A5.EF.BC.9A.E8.AE.BE.E7.BD.AEwp-config.php.E6.96.87.E4.BB.B6
七、其他一般命令
用户相关
cat /etc/passwd
#查看所有的用户信息
cat /etc/group
#查看所有组信息
useradd 选项 用户名
#新增用户
passwd 选项 用户名
#修改口令
vi
按i进入编辑模式;
按Esc进行命令模式,按冒号再输入命令,常见命令有w和q,w=save q=quit ,如果有修改不保存退出,则需要加!,表示强制执行。
定位到某行,查找某一行
ngg / nG
或
2.:n
#n是变量,指代行数。
整页翻页 ctrl-f ctrl-b(f就是forword b就是backward).
翻半页 ctrl-d ctlr-u(d=down u=up)
滚一行 ctrl-e ctrl-y
zz 让光标所在的行居屏幕中央
zt 让光标所在的行居屏幕最上一行 t=top
zb 让光标所在的行居屏幕最下一行 b=bottom
apt-get是debian用来安装程序的命令。如下一个命令就会自动搜索、下载、并安装好,如安装或删除ftp服务器:
apt-get install vsftpd //安装vsftpd
apt-get remove vsftpd //删除vsftpd
apt-get purge vsftpd //删除vsftpd,并删除所有vsftpd的配置文件
apt-get安装/卸载软件的历史记录保存在/var/log/dpkg.log,一般看最近的记录,就可用tail命令来查看文件的最后几行:
tail -100 /var/log/dpkg.log #tail后面加 -100 表示是显示最后100行,不加这参数则使用默认值.
查看已安装软件的安装位置,可以使用dpkg命令的大写的-L
apt 比apt-get 更强大,可以看作 apt-get 和 apt-cache 命令的子集, 可以为包管理提供必要的命令选项。
apt 命令 取代的命令 命令的功能
apt install apt-get install 安装软件包
apt remove apt-get remove 移除软件包
apt purge apt-get purge 移除软件包及配置文件
apt update apt-get update 刷新存储库索引
apt upgrade apt-get upgrade 升级所有可升级的软件包
apt autoremove apt-get autoremove 自动删除不需要的包
apt full-upgrade apt-get dist-upgrade 在升级软件包时自动处理依赖关系
apt search apt-cache search 搜索应用程序
apt show apt-cache show 显示装细节
修改源:
1、不建议修改,因为清华源太旧,阿里云的源不可用。官网的虽然慢点,安装有时会断开,重试几次就好。真的要修改,按如下:
2、修改sources.list
sudo nano /etc/apt/sources.list
#打开以后,将里面的代码用 # 注释掉,添加如下代码:
deb http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ wheezy main non-free contrib
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
3、修改raspi.list
sudo nano /etc/apt/sources.list.d/raspi.list
#打开以后,将里面的代码用 # 注释掉,添加如下代码:
deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
4、报错
E: 仓库 “http://mirrors.aliyun.com/raspbian/raspbian wheezy Release” 没有 Release 文件。
N: 无法安全地用该源进行更新,所以默认禁用该源。
办法:网上说,把第一步中aliyun的源去掉就可以,但我试了无效。
有多少人是直接拉到最后的,到评论区报个到?
<THE END>
两座长安
校验提示文案
hunk
我现在就让它跑个fr24,看看飞机,再共享个无线打印。
校验提示文案
暴躁大老爹
校验提示文案
siarg
校验提示文案
灵KOYB
校验提示文案
灵KOYB
校验提示文案
siarg
校验提示文案
hunk
我现在就让它跑个fr24,看看飞机,再共享个无线打印。
校验提示文案
两座长安
校验提示文案
暴躁大老爹
校验提示文案