树莓派一定要做内网穿透。玩树莓派,通过ssh
进行远程控制肯定是免不了的。
可如果每次ssh
连接都只能通过和树莓派在同一个wifi
中进行,就太难了。
为此,树莓派一定要做内网穿透,把树莓派ssh
用的22端口,通过frp软件的tcp转发,暴露到互联网上。
正常的frp软件,是成对使用的,树莓派上使用客户端frpc
, 找一台公网可以访问的服务器执行frps
。
那如果我们没有服务器,怎么办呢? 用 SAKURA FRP
进行免费的内网穿透!
具体操作可以参考:
- 树莓派使用frp实现内网穿透 | 树莓派小无相系列(我们只看客户端
frpc
部分,因为服务器frps
部分我们直接使用Sakura Frp) - Sakura Frp 使用教程(只要看创建隧道部分就好,因为我并没有使用SAKURA FRP提供的定制化
frpc
软件,而是依然使用公版的frpc
,只是将我创建的5条隧道的配置写进了frpc.ini
里) - SAKURA FRP官网
我这边要解决的是,如何让frpc
在树莓派启动时,自动连接。
这里有一个问题,就是树莓派的服务设置似乎不大管用,经常在网络还没有连接成功的时候,就去运行frpc服务,导致服务失败。
查了很多相关的文章,最后确定按下面这个方法,就可以了。
执行命令,定义一个叫frpc的服务
$sudo vim /lib/systemd/system/frpc.service
写入以下内容,自行替换其中ExecStart
后边的命令,本服务内容会执行该命令。同时,如果服务失败,会再5秒后重启服务。
#frpc.service
[Unit]
Description=frpc Service
After=network.target syslog.target
Wants=network.target
[Service]
User=root
Type=simple
ExecStart=/home/pi/frp/frpc -c /home/pi/frp/frpc.ini
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
保存文件后,依次执行
#刷新服务列表
systemctl daemon-reload
#设置开机自启
systemctl enable frpc
#启动服务
systemctl start frpc
#查看服务状态
systemctl status frpc
#停止服务
#systemctl stop frpc
#关闭开机自启
#systemctl disable frpc
文章评论