这篇文章来自我去年暑假的obsidian笔记
(其实当时并没有搭halo..
记录一次树莓派内网穿透,搭建[二次元发卡网],搭建1panel,搭建Halo博客
树莓派型号 3b+
穿透工具 starryfrp.com (签到送流量,要实名制)
开启SSH
树莓派桌面 -> Preference -> PI Configuration -> enable什么什么,然后有ssh可以选
安装1Panel
已经连接到树莓派,安装1panel
注意,官网的一键脚本没root权限。要自己加sudo
端口
由于经济水平限制,只好搞内网穿透的。
不想备案,太麻烦
我的配置原则:
- ssh,mysql,openresty这些服务的本地端口和远程端口不一致,本地端口为默认 (因为有些程序可能不支持换端口,比如有个spigot插件就是,只能用mysql 3306。虽然说可以进行本地端口转发,麻烦死了不是?)
- 1panel,mod整合包静态对象储存,这些服务保持端口一致,按照自己习惯来
FRPC
从 starryfrp.com 下载来frpc,解压到 /usr/local/bin/
记得给权限 chmod +x
FRPC自动启动
systemd 做自启动
先移动文件 sudo mv frpc.service /etc/systemd/system/.
重载一下systemd systemctl daemon-reload
frpc.service:
[Unit]
Description=FRP Client Daemon
After=network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frpc -c /usr/local/bin/frpc.ini
Restart=always
RestartSec=20s
User=nobody
[Install]
WantedBy=multi-user.target
安装服务就是:
[Unit]
Description=FRP Server Daemon
After=network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frps/frps -c /usr/local/bin/frps/frps.ini
Restart=always
RestartSec=20s
User=nobody
[Install]
WantedBy=multi-user.target
开启: sudo systemctl enable frpc
查看状态: sudo systemctl status frpc
frp启用Proxy Protocol 功能
找到frpc配置文件,只需要在代理配置中增加一行 proxy_protocol_version = v2
即可开启此功能。
这里以 https 类型为例:
[web]
type = https
local_port = 443
custom_domains = test.yourdomain.com
目前支持 v1 和 v2 两个版本的 proxy protocol 协议
proxy_protocol_version = v2
配置nginx
在listen段添加 proxy_protocol,然后配置 real IP header 为 proxy_protocol,例如:
server {
listen 80 proxy_protocol;
listen 443 ssl http2 proxy_protocol;
real_ip_header proxy_protocol;
real_ip_recursive on;
set_real_ip_from 192.168.2.1;
}
其中set_real_ip_from 的参数为frp客服端的内网IP。
保存 Nginx 配置后,重启 Nginx,就可以获取用户真实 IP了。
重启 Nginx命令:service nginx restart
#树莓派 #内网穿透 #frp #1panel
[Unit]
Description=Wake On Lan Service
After=network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/bin/python3 /usr/local/bin/wol/wol.py
Restart=always
RestartSec=20s
User=nobody
[Install]
WantedBy=multi-user.target