frp穿透内网访问树莓派上的web站点

这篇文章主要介绍如何通过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

  1. 修改frps.ini文件,设置http访问端口为8080:
1
2
3
4
# frps.ini
[common]
bind_port = 7000
vhost_http_port = 8888
  1. 启动frps:
1
./frps -c ./frps.ini
  1. 修改frpc.ini文件,假设frps所在的服务器的IP为x.x.x.x,local_port为本地机器上web服务对应的端口,绑定自定义域名www.yourdomain.com:
1
2
3
4
5
6
7
8
[common]
server_addr = x.x.x.x
server_port = 7000

[web]
type = http
local_port = 80
custom_domains = www.yourdomain.com
  1. 启动frpc:
1
./frpc -c ./frpc.ini
  1. www.yourdomain.com的域名A记录解析到IPx.x.x.x,如果服务器已经有对应的域名,也可以将CNAME记录解析到服务器原先的域名。

  2. 通过浏览器访问http://www.yourdomain.com:8888即可访问到处于内网机器上的web服务。

配置自启动

看了很多网上的资料,感觉通过systemctl控制最为简单。

下面为大家展示服务器的配置

首先

1
sudo vim /lib/systemd/system/frps.service

在frps.service里写入:

1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=fraps service
After=network.target network-online.target syslog.target
Wants=network.target network-online.target

[Service]
Type=simple

#启动服务的命令(此处写你的frps的实际安装目录)
ExecStart=/your/path/frps -c /your/path/frps.ini

[Install]
WantedBy=multi-user.target
  • 启动frps
1
sudo systemctl start frps
  • 打开自启动
1
sudo systemctl enable frps
  • 重启
1
sudo systemctl restart frps
  • 停止
1
sudo systemctl stop frps
  • 查看应用日志
1
sudo systemctl status frps

客户端自启动配置类似

配置失败的原因

  1. 服务器端和树莓派的系统和版本不一致导致。
  2. 防火墙未关闭,可以服务器控制台添加相应的安全组规则。

彩蛋

这是我运行在寝室树莓派上的网站:lihtao.top🤓


欢迎大家访问!🤗🤗🤗

Donate comment here
-------------本文结束感谢您的阅读-------------
0%