利用家庭宽带对外提供服务

利用家里宽带提供对外服务,一般需要以下步骤

1、登陆光猫,并新建拨号pppoe方式,并设置为ipv4/ipv6方式,同时vlan模式设置为改写

2、登陆路由器,修改为拨号方式并填写好拨号账号和密码,同时设置好dmz方式(将局域网的设备(ipv4)暴露给外网)

3、登陆局域网设备,获取ipv6地址

4、通过域名后台,设置ipv6解析

树莓派4b更新(系统引导程序)EEPROM Boot loader

树莓派 4B 板载了 EEPROM 芯片,参数为 4MBits/512KB,通过 SPI 协议读写。出厂时已写入了 Boot loader(系统引导程序)。通常不需要自己手动管理系统引导程序。只在必要的时候,可以通过更新树莓派 EEPROM 中的引导程序获得新的功能(需要在树莓派官方系统下进行更新操作)。引导程序更新的方法如下。

1sudo apt update
sudo apt upgrade# 安装更新工具
sudo apt install rpi-eeprom# 检测更新
sudo rpi-eeprom-update

如果检测到了新版本,程序会提示「需要更新」。这时可以采用两种方式:

1、官方自动更新

1sudo rpi-eeprom-update -a

更新完成重启即可。需要注意的是,此命令自动更新为正式版最新固件,如果需要更新到 beta 版本,可以采用下面这种方式。

2、自定义更新

获取树莓派最新的 EEPROM 固件。

1wget https://github.com/raspberrypi/rpi-eeprom/archive/master.zip # 解压下载的文件,然后进入相应的固件文件夹
unzip master.zip
cd rpi-eeprom-master/firmware/critical/

在 firmware 文件夹中,beta 为测试版本,critical 为稳定版本,可自行选择,测试版固件请慎用,如果变砖了就很难恢复。用下面的命令更新固件。

1sudo rpi-eeprom-update -d -f 固件文件名

更新完成后会提示「更新完成」,然后重启树莓派就更新好了!

1sudo reboot

frp 配置

实际案例

frps端

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

服务端:
sudo nano /lib/systemd/system/frps.service

[Unit]
Description=fraps service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/opt/soft/frp/frp_0.33.0_linux_amd64/frps -c /opt/soft/frp/frp_0.33.0_linux_amd64/frps.ini 

[Install]
WantedBy=multi-user.target
# 启动frps 
sudo systemctl start frps 

# 打开自启动
sudo systemctl enable frps

# 重启应用
sudo systemctl restart frps

# 停止应用
sudo systemctl stop frps

# 查看应用的日志
sudo systemctl status frps

# 停止开机自启动
systemctl disable frps

客户端:
sudo nano /lib/systemd/system/frpc.service

[Unit]
Description=frpc service
After=network.target syslog.target
Wants=network.target

[Service]
Type=simple
#启动服务的命令(此处写你的frpc的实际安装目录)
ExecStart=/opt/soft/frp/frp_0.33.0_linux_amd64/frpc -c /opt/soft/frp/frp_0.33.0_linux_amd64/frpc.ini

[Install]
WantedBy=multi-user.target

frpc端

设置自定义域名

frps.ini

# frps.ini
[common]
bind_port = 7000  #与客户端绑定的进行通信的端口
vhost_http_port = 80  #访问客户端web服务自定义的端口号

frpc.ini

# frpc.ini
[common]
server_addr = x.x.x.x  #公网服务器ip
server_port = 7000   #与服务端bind_port一致
 
#公网通过ssh访问内部服务器
[ssh]
type = tcp              #连接协议
local_ip = 192.168.3.48 #内网服务器ip
local_port = 22         #ssh默认端口号
remote_port = 6000      #自定义的访问内部ssh端口号[web]
type = http
local_port = 80  #内网web服务的端口号
custom_domains = www.yourdomain.com  #所绑定的公网服务器域名,一级、二级域名都可以
#保存然后启动服务./frps -c ./frps.ini,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini &
#保存然后执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini &

经验证

[Unit]
Description=frpc service
After=network.target
Wants=network.target

[Service]
#一开始没加这两行,frp总是起不来
Restart = on-failure
RestartSec = 5

#启动服务的命令(此处写你的frpc的实际安装目录)
ExecStart=/home/pi/Downloads/frp_0.44.0_linux_arm/frpc -c /home/pi/Downloads/frp_0.44.0_linux_arm/frpc.ini

[Install]
WantedBy=multi-user.target

test pyscript

<!DOCTYPE html>
<html lang="zh">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 引入 PyScript -->
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>

    <title>First PyScript Application</title>
    <style>
        py-script {
            width: 100%;
            height: 100%;
            font-size: 20px;
            text-align: center;
            position: absolute;
        }
    </style>
</head>

<body>
    <py-script>
        print('Hello PyScript!')
    </py-script>

</body>

</html>

pyscript参考

https://blog.csdn.net/Moelimoe/article/details/126077302?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-126077302-blog-124733591.pc_relevant_multi_platform_featuressortv2dupreplace&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-126077302-blog-124733591.pc_relevant_multi_platform_featuressortv2dupreplace&utm_relevant_index=2