树莓派通过 frp 穿透内网远程控制
先展示效果,你可以随时随地访问和控制放在家中的树莓派,只需要一个 Shell 工具,可以是办公电脑上的 PowerShell ,也可以是智能手机上的 Juice-ssh :
为什么要穿透内网?
说来话长,内网穿透即 NAT 穿透。
我们知道 IP 地址由于 IPv4 的数量限制分为公网地址和私网地址。私网中的大量的客户机通过唯一(或有限)的公网地址连接到位于公网中的服务器,使用的就是各种各样的 NAT(网络地址转换)技术。NAT 设备可以将私网地址和公网地址按一定的规则进行相互转换,比如把不同私网地址上的通讯映射到同一公网地址不同的端口号上,这样就可以实现私网中的客户端自由得与公网中的服务器进行通讯。但从公网来看,一个私网中所有的设备只有一个公网 IP 地址,网络地址转换规则仅保存在 NAT 设备中且规则可能还是动态的,即私网中的通讯设备全部隐藏在 NAT 设备之内,它们无法作为服务器被公网或其它私网中的客户机访问。
frp 工作原理
frp 是一个反向代理工具,它通过位于公网的 frps 服务器将 client 对 server 的请求,转化为 frps 对 frpc 的请求。由于 frpc 是 frps 的客户端,且两者一直处于连接状态,所以可以实现对内网的穿透。
使用 SakuraFrp 穿透内网
SakuraFrp 是一款免费好用的 frp 服务器,推荐大家使用。注册后按下面步骤配置即可完成内网穿透。
创建隧道。选择服务器和隧道类型,设置本地端口号(一般
ssh默认为22)及远程端口号(frp服务器开启的端口号,需要设置为未被占用的端口,可能需要多次尝试):
隧道创建完成后,可以通过配置文件查询usr:id和服务器域名:
连接服务。根据操作系统处理器架构选择合适的客户端程序
frpc下载,通过以下命令运行frpc并连接服务器:frpc -f usr:id也可以配置
systemd服务:# /etc/systemd/system/frpc@.service [Unit] Description=SakuraFrp Service After=network.target [Service] Type=idle User=nobody Restart=on-failure RestartSec=60s ExecStart=/usr/local/bin/frpc -f %i WorkingDirectory=/usr/local/etc/natfrp [Install] WantedBy=multi-user.target通过以下命令开启和注册服务:
systemctl start frpc@usr:id systemctl enable frpc@usr:id以上过程可以通过安装
AUR中的sakura-frp完成,需要注意的是安装过程中如果LICENSE的校验和报错,需要在PKGBUILD中手动修改。通过以下命令注册服务:systemctl enable sakura-frpc-f@usr:id配置自己的域名解析记录。如果嫌
frp服务器域名或IP地址太 Low,可以申请自己的域名并创建A或CNAME解析记录:
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: