分类目录归档:建站相关

树莓派 Pi-dashboard

项目主页 https://make.quwj.com/project/10

假定树莓派已经安装好nginx和php,下载文件到指定目录

cd /var/www/html
sudo git clone https://github.com/spoonysonny/pi-dashboard.git

在nginx中添加一个服务端口,并为该端口配置php,同时将该端口用frp转发至公网。

可以在本地 访问 127.0.0.1:[port],或通过[remote_IP]:[remote_port]访问该站点,监控设备状态。

树莓派 部署远程下载 Aria2+AriaNG

1. Nginx 配置

为AriaNG配置一个基于端口的虚拟主机
修改,sudo vim /etc/nginx/sites-available/default

server{
       listen 8088;
       #server_name _;
       location / {
               root /var/www/aria2;
               index index.html index.php index.htm;
       }
}

2. aria2

安装,sudo apt install aria2

aria2的一些配置,参考https://www.wannaexpresso.com/2020/04/21/aria-pi/

如果出现错误(16),注意下载文件夹的权限。

groupadd -r aria # 添加用户组aria
useradd -r -g aria -s /usr/sbin/nologin -c "Aria 2" aria # 添加用户aria

sudo mkdir -p /home/aria/aria2 # 创建工作目录
touch /home/aria/aria2/aria2.session # 创建aria2进度文件
touch /home/aria/aria2/aria2.log # 创建aria2日志文件
touch /home/aria/aria2/aria2.config # 创建aria2配置文件

chown aria:aria /home/aria/* # 将工作目录下的文件移交给aria用户

# 将aria2c的拥有者设置为aria 
cd /usr/bin 
chown aria:aria aria2c 
chmod g+s aria2c

编辑 aria2.config 的全局配置

common download setting
dir=/home/pi/Downloads
disk-cache=32M
file-allocation=none
continue=true
connect setting
max-concurrent-downloads=16
max-connection-per-server=5
min-split-size=10M
split=20
disable-ipv6=true
session setting
input-file=/home/aria/aria2/aria2.session
save-session=/home/aria/aria2/aria2.session
save-session-interval=60
RPC setting
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-listen-port=6800
rpc-secret=rpcpsw

添加启动,sudo vim /lib/systemd/system/aria2.service

[Unit]
Description=Aria2 Service
After=network.target

[Service]
User=aria
ExecStart=/usr/bin/aria2c --conf-path=/home/aria/aria2/aria2.config
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

3. AriaNG

下载最新 AriaNG 并解压到指定目录,进入之前在nginx中设置的目录 /var/www/aria2

sudo wget https://github.com/mayswind/AriaNg/releases/download/1.1.7/AriaNg-1.1.7.zip
sudo unzip AriaNg-1.1.7.zip

通过localhost:8088 即可访问。

X. 待解决

通过frp,把AriaNG的8088端口用tcp映射到公网ip,通过手机流量的外网查看,显示无连接;通过和raspberry pi 在同一无线局域网的路由器上外网,可以连接。

[AriaNG]
type = tcp
local_ip = 127.0.0.1
local_port = 8088
remote_port = 5552

[aria2rpc]
type = tcp
local_ip = 192.168.xx.xx # raspberry pi statics IP
local_port = 6800
remote_port = 6800

树莓派 安装samba

1. samba server

安装,sudo apt-get install samba

修改配置,sudo vim /etc/samba/smb.conf

[public]
comment = public folder
path = /public
read only = no
public = yes
browseable = yes
[pi]
path = /home/pi
valid users = pi
browseable = yes
writable = yes
write list = pi
create mask = 0777

重启服务,sudo systemctl restart smbd 或 sudo service smbd restart

增加smb新用户pi,sudo smbpasswd -a pi (psw=smb)

2. win10 设置

  • 修改,控制面板\所有控制面板项\程序和功能\启用或关闭windows功能
    勾选 SMB 1.0/CIFS 文件共享支持 和SMB Direct
  • 修改,本地组策略编辑,计算机配置-管理模板-网络-Lanman工作站,
    启用,启用不安全的来宾登录
  • 重启,在网络中即可发现树莓派设备。

树莓派 部署静态博客 Hexo+Nginx

欢迎访问 http://francis67.cc:5551/

1. 安装node.js

使用 NVM 安装

# install nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
# install nodejs and npm via nvm
nvm install node

使用 nvm -v, node -v, npm -v 查看这些软件的版本。

npm更换淘宝源,npm config set registry https://registry.npm.taobao.org
通过npm config get registry 检验

2. 安装 git

sudo apt-get install git
adduser git (psw=git)
git init --bare hexo.git
chown -R git:git hexo.git
ssh-keygen # generate Public key
cat ~/.ssh/id_rsa.pub
vim /home/git/.ssh/authorized_keys
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

这部分操作通过hook完成hexo的自动发布。

复制post-update.sample并去掉.sample,vim /home/git/hexo.git/hook/post-update
在注释后的第一行添加,git –work-tree=/home/git –git-dir=/home/git/hexo.git checkout -f
修改文件属性,chmod +x post-update

3. 安装 Hexo

# https://github.com/hexojs/hexo
npm install -g hexo-cli
#
hexo init myblog //'myblog' can be any name
cd myblog //enter 'myblog' dir 
npm install

hexo server

通过打开 http://localhost:4000,即可以看到配置好的页面。

下面的操作通过git把hexo部署到nginx上。

编辑配置,vim /home/pi/myblog/_config.yml
修改#deploy如下,<your server IP> 我填了127.0.0.1

deploy:
  type: git
  repo: git@<your server IP>:/home/git/hexo.git  
  branch: master

在 /myblog 文件夹中安装hexo-deployer-git

npm install hexo-deployer-git --save
hexo new <blog_title>
hexo g -d

重新部署后,通过 server_IP:8080,即可以访问使用git部署的hexo页面。

4. 部署到nginx

修改 sudo vim /etc/nginx/sites-available/default  相关配置

https {
…
server {
listen 8080;
root /home/git;
server_name localhost;
location / { index index.html index.htm; } } ...
}
service nginx restart

X. Hexo 相关

安装 NexT 主题

参考连接

光速(大雾)博客配置I — Hexo+git+Nginx

树莓派 Web服务器 LNSP

采用LNSP配置(Linux + Nginx + Sqlite + PHP)

1. Nginx

sudo apt-get install nginx,安装

sudo /etc/init.d/nginx start,启动服务

修改 sudo vim /etc/nginx/sites-available/default 其中的部分内容,其他保持不变。

  1. listen 改为8080端口(为了防止和80端口冲突)
  2. index 增加 index.php
  3. 去除php段落的部分注释
  4. html 所在默认路径, root /var/www/html;
server {
    listen 8080 default_server;
    #listen [::]:8080 default_server;    
 
    root /var/www/html; 

    # Add index.php to the list if you are using PHP 
    index index.php index.html index.htm index.nginx-debian.html; 

    server_name _; 

    location / { 
            # First attempt to serve request as file, then 
            # as directory, then fall back to displaying a 404. 
            try_files $uri $uri/ =404; 
    } 

    # pass PHP scripts to FastCGI server 
    # 
    location ~ \.php$ { 
            include snippets/fastcgi-php.conf; 
    # 
    #       # With php-fpm (or other unix sockets): 
            fastcgi_pass unix:/run/php/php7.3-fpm.sock; 
    #       # With php-cgi (or other tcp sockets): 
    #       fastcgi_pass 127.0.0.1:9000; 
    } 

    # deny access to .htaccess files, if Apache's document root 
    # concurs with nginx's one 
    # 
    #location ~ /\.ht { 
    #       deny all; 
    #} 
}

sudo /etc/init.d/nginx reload,重载。

这时通过系统自带的浏览器访问127.0.0.1:8080,可以看见nginx初始页面。

2. php和sqlite

sudo apt-get install php-fpm php-sqlite3,安装php和sqlite3。

注意使用 php-fpm 和 php-sqlite3 作为默认参数,可以安装最新版本。

在html所在默认路径,新建文件index.php

<?php echo phpinfo(); ?>

期间遇到了一些问题,最初以为是ngnix和php配置的问题,最后发现是因为最初index.php文件里的语法问题,返回HTTP 500的错误。
通过修改sudo vim /etc/php/7.3/fpm/php.ini 文件中 display_errors = On,可以显示出错误所在,进行修正。

3. 反向代理

使用frp作为内网穿透,因为没有多余的域名,只能通过IP访问,所以在frpc.ini 中添加

[Web]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = [remote_port]

使用frp的 server_IP:[remote_port]即可以从外网访问处于内网上的树莓派。

4. nginx和php相关指令

/etc/init.d/php-fpm7.3 {start|stop|status|restart|reload|force-reload}
nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}

树莓派 操作记录

1. 更换源

运行 lsb_release -c,查看对应版本,我的为buster。

运行 sudo nano /etc/apt/sources.list,增加中科大和阿里的镜像。

deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

运行 sudo apt-get update,更新索引

运行 sudo apt-get upgrade,更新软件

运行 sudo apt-get dist-upgrade,

2. SSH Connection closed by foreign host

  1. 修改该文件 /etc/ssh/sshd_config
  2. ClientAliveInterval 60
    ClientAliveCountMax 3
  3. 重启SSH服务,
    /etc/init.d/ssh restart
    systemctl restart sshd

这个问题最初是在使用 sudo apt-get upgrade 时,ssh断开连接。

解决方法:使用GNU屏幕。屏幕提供了一个虚拟终端,即使您的ssh连接丢失,该终端也可以继续运行。

sudo apt-get install screen,安装屏幕

screen,启动屏幕

ctrl+a+d,暂时离开screen,

screen r,重新连接screen

3. 更改时区

date,查看当前系统时间

sudo dpkg-reconfigure tzdata,选择Asia,Shanghai

4. 安装vim

sudo apt-get install vim

配置参考 https://www.francis67.cc/archives/51

5. 使用windows 远程桌面连接

sudo apt-get install xrdp,安装xdrp服务

使用windows自带的远程桌面连接即可登录。(前提是安装了
Raspberry Pi OS (32-bit) with desktop,其中包括桌面软件)

6. frp

使用命令行下载并解压frp最新版本

wget https://github.com/fatedier/frp/releases/download/v0.34.0/frp_0.34.0_linux_amd.tar.gz
tar -zxvf frp_0.34.0_linux_amd.tar.gz
cd frp_0.34.0_linux_amd
修改客户端配置 frpc.ini,可参考https://blog.francis67.cc/archives/537

[common]为具有公网IP的VPS的配置,同时为树莓派增加了[SSH]连接

通过 frpc -c /etc/frpc.ini 启动,并使用systemctl将frp添加到服务实现开机自启动。

sudo vim /lib/systemd/system/frps.service

[Unit]
Description=frps service

[Service]
Type=simple
Restart=always
RestartSec=20s
# specific file path
ExecStart=/xxx/frpc -c /xxx/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

使用 sudo systemctl start frps 启动服务,并添加下次重启自启动 sudo systemctl enable frps

树莓派 安装和连接

1 安装

从官网下载镜像 https://www.raspberrypi.org/downloads/raspberry-pi-os/,使用Win32 Disk Imager (https://sourceforge.net/projects/win32diskimager/) 向SD卡写入镜像。 插入树莓派中并且上电即启动。

在SD卡根目录新建名为SSH 无后缀文件,启用SSH。

在SD卡根目录找到 config.txt 文件,增加 enable_uart=1,启用串口。

2 连接

提供两种方法,包括在有网络和无网络的环境。默认用户名:pi,密码:raspberry。

  1. 使树莓派和电脑连入同一局域网,查到树莓派IP,通过Xshell连接树莓派。
  2. 使用USB-TTL,USB端连入电脑,TTL通过杜邦线与树莓派相应连引脚连接。
    GPIO14(TXD)-USB RXD, GPIO15(RXD)-USB TXD, Ground-GND, 5V Power-VCC(或USB端自己短接,不连接树莓派)
    通过PuTTY连接树莓派。
gpios

frp 安装

起因

最近teamviewer又作妖,被商业,连不上。给服务器安装了frp,方面内网穿透进行远程连接

服务器端

使用一键脚本进行安装。【参考 https://github.com/MvsCode/frps-onekey

安装完毕,对于centos7,使用 firewall-cmd 命令开放相关端口。【参考 https://wangchujiang.com/linux-command/c/firewall-cmd.html 端口管理章节】

成功打开 [vps_ip] : [dashboard_port],如下图,确认服务器端安装完毕。

dashboard.png

客户端

客户端以window10为例,在 [控制面板\所有控制面板项\系统] 里开放远程桌面相关权限。

下载https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_windows_amd64.zip ,解压并将文件夹命名为 [frp],复制到C盘根目录下。

编辑 [frpc.ini] 配置文件

[common]
server_addr = [vps_ip]
server_port = [BindPort]
token = [user_defined_token]

[APP_NAME_1]
type = tcp
local_ip = 127.0.0.1
local_port = 3389 [windows 远程桌面的服务端口]
remote_port = [user_defined_port_1]

[APP_NAME_2]
type = tcp
local_ip = 127.0.0.1
local_port = 3389 [windows 远程桌面的服务端口]
remote_port = [user_defined_port_2]

使用 winsw 小工具 将frp客户端打包成windows服务。【参考 https://sspai.com/post/60852


下载 [WinSW.NET461.exe] 和 [sample-minimal.xml] 并分别改名为 [winsw.exe] 和 [winsw.xml],复制到 C:\frp。编辑 winsw.xml 配置文件。

<service>
  <id>frp</id>
  <name>frp</name>
  <description>frp service</description>
  <executable>frpc.exe</executable>
  <arguments>-c frpc.ini</arguments>
  <onfailure action="restart" delay="60 sec"/>
  <onfailure action="restart" delay="120 sec"/>
  <logmode>reset</logmode>
</service>

powershell运行:

.\winsw install 安装服务
.\winsw start 启动服务

此时可以在dashboard看到对应tcp连接。

使用远程桌面连接,输入 [vps_ip] : [user_defined_port],即可远程登陆相应计算机。

Trojan + wordpress 安装

自从去年十月以来,SS和SSR都不太好用了,使用新的玩具:V2ray。

但是疫情期间,尤其是在工作单位,使用V2ray仍然不能顺利翻墙,这段时间则是靠chrome插件(setupVPN,AdGuard VPN,Astart,各种谷歌服务助手等)撑了一段时间。

今天尝试安装了Trojan,但是发现原来的Wordpress博客被顶掉了。搜索后参考网络跳跃 的几篇教程,完成了Trojan和Wordpress的安装,再次成功翻墙。

但是由于Vultr 的原因,google 学术不能顺利登陆,其他的速度还是非常可以的。

常用操作

1. 查看trojan运行状态/配置:bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/trojan.sh) info

2. trojan管理命令:启动:systemctl start trojan,停止:systemctl stop trojan,重启:systemctl restart trojan

3. 更新trojan到最新版:bash -c "$(curl -fsSL https://raw.githubusercontent.com/trojan-gfw/trojan-quickstart/master/trojan-quickstart.sh)"

4. 查看SSL证书:certbot certificates,更新证书:systemctl stop nginx; certbot renew; systemctl restart nginx

5. 卸载: bash <(curl -sL https://raw.githubusercontent.com/hijkpw/scripts/master/trojan.sh) uninstall

主要参考:
https://www.hijk.pw/trojan-one-click-scrip/
https://www.hijk.pw/trojan-windows-client-tutorial/
https://www.hijk.pw/build-website-with-trojan/

V2ray开启局域网共享功能

为了让Nintendo Switch可以用twitter社交帐号发布屏幕截图和录像,使用了V2ray开启局域网共享的功能。

  • 电脑安装V2ray客户端 ,勾选 V2ray设置中的“允许来自局域网的连接”,并可以科学上网。
  • 手机或其他移动设备,与电脑连接在同一局域网内,例如连接同一个无线路由器。
  • 在手机或其他移动设备的代理设置中,填入电脑在局域网中的IP,端口为 1081

参考:
V2ray和SSR开启局域网共享功能