FRP内网穿透
前言
通常我们在外边,想访问内网的终端设备,比如在家的电脑,树莓派等设备,但是我们是无法直接连接到这些设备的,因为这些设备都是内网设备。想要连接就需要NAT(Network Address Translation,网络地址转换)。想要实现这一个功能,可以有许多方法,比如说frp、花生壳、ssh等实现。
这篇文章介绍一下用frp实现内网穿透。想要实现这功能,需要有一个有公网IP的服务器。
步骤
frp官网介绍
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
- 安装
我们可以在frp的github上下载release包:https://github.com/fatedier/frp/releases,目前最新版本是0.33.0,本次测试环境,阿里云服务器需要下载frp_0.33.0_linux_amd64.tar.gz,客户端我们用树莓派测试,需要下载frp_0.33.0_linux_arm.tar.gz。然后分别上传到服务器和树莓派。
- 服务端配置
# 解压
$ tar -xzvf frp_0.33.0_linux_amd64.tar.gz
# 进入目录
$ cd frp_0.33.0_linux_amd64/
# 服务端配置,11000端口需要设置服务器的安全组规则,允许访问这些端口
$ vim frps.ini
# 修改为以下内容
[common]
# 服务器和客户端进行通讯的端口
bind_port = 11000
# 启动服务端
$ ./frps -c ./frps.ini &
- 客户端配置
这次测试测试了通过ssh连接树莓派以及访问树莓派的仪表盘。如果想访问仪表盘,需要先安装好树莓派仪表盘,安装链接是树莓派实验室的教程:https://shumeipai.nxez.com/2020/05/05/pi-dashboard-v1-1-released.html,安装过程非常简单的。
# 解压
$ tar -xzvf frp_0.33.0_linux_arm.tar.gz
# 进入目录
$ cd frp_0.33.0_linux_arm64/
# 客户端配置,配置文件中提到的端口(11000,11005,6000),
# 都需要服务器的安全组规则允许访问,允许访问这些端口
$ vim frpc.ini
# 修改为以下内容
[common]
# 填写服务器的公网IP
server_addr = x.x.x.x
# 与服务端连接的端口,与服务端保持一致
server_port = 11000
[dashboard]
type = tcp
local_ip = 127.0.0.1
# 22为树莓派仪表盘的端口
local_port = 80
# 80端口映射到服务器的11005
remote_port = 11005
[ssh]
type = tcp
local_ip = 127.0.0.1
# 22为树莓派ssh的端口
local_port = 22
# 22端口映射到服务器的6000
remote_port = 6000
# 启动服务端
$ ./frpc -c ./frpc.ini
- 连接
# 尝试ssh连接树莓派,在服务器执行
ssh -oPort=6000 pi@x.x.x.x
# 访问树莓派仪表盘,在本地服务器输入网址即可访问
http:/x.x.x.x:11005/pi-dashboard/
与我联系
微信公众号,扫二维码即可关注: