这篇文章主要介绍如何通过frp穿透内网,访问树莓派上的web站点,主要记录关键的操作步骤和容易出错的地方,以便大家参考。
前言
都需要用哪些工具呢?
- 一个公网IP
- frp
- 树莓派
- 域名(可有可无)
公网IP可以用类似花生壳这样的工具代替,但是如果有自己的服务器最好,就不用再买其它套餐了,而且速度还快!
域名也可以申请免费的域名,在这个网站freenom.com申请
关于域名的申请及解析、服务器的购买等本文将不再赘述,网上的参考资料很多。
本地站点配置
这里我使用的是用hexo生成静态博客的方式,本博客也是基于此。具体的生成方法可以参考一下两篇文章。
这两篇文章详细的记录的生成的每一个步骤,大家可以作为参考。
frp的使用
首先推荐大家去看frp的官网文档,因为frp仍然处于开发阶段,我并不能保证本教程一致适用,但是大家遇到问题可以留言。
安装frp
在树莓派上:
1 | wget https://github.com/fatedier/frp/releases/download/v0.24.0/frp_0.24.0_linux_arm.tar.gz |
在服务器上:
1 | wget https://github.com/fatedier/frp/releases/download/v0.24.0/frp_0.24.0_linux_amd64.tar.gz |
一定要根据自己服务器和树莓派的系统选择合适的版本,并且服务器端和客户端的版本号必须一致,比如像上面这样,两端都必须使用V0.24.0!!!
配置frp
- 修改frps.ini文件,设置http访问端口为8080:
1 | # frps.ini |
- 启动frps:
1 | ./frps -c ./frps.ini |
- 修改frpc.ini文件,假设frps所在的服务器的IP为x.x.x.x,local_port为本地机器上web服务对应的端口,绑定自定义域名www.yourdomain.com:
1 | [common] |
- 启动frpc:
1 | ./frpc -c ./frpc.ini |
将
www.yourdomain.com
的域名A记录解析到IPx.x.x.x
,如果服务器已经有对应的域名,也可以将CNAME
记录解析到服务器原先的域名。通过浏览器访问
http://www.yourdomain.com:8888
即可访问到处于内网机器上的web服务。
配置自启动
看了很多网上的资料,感觉还是在/etc/profile.d/
写一个简单的脚本最为简单。
1 |
|
Linux系统启动时默认会执行/etc/profile.d/
文件夹下的所有文件。
配置失败的原因
- 服务器端和树莓派的系统和版本不一致导致。
- 防火墙未关闭,可以服务器控制台添加相应的安全组规则。
彩蛋
这是我运行在寝室树莓派上的网站:rpi.lihtao.com🤓
其实它就运行在这样一个锈迹斑斑的Raspberry Pi 3B
上🤭🤭🤭
欢迎大家访问!🤗🤗🤗