电子说
通常我们在外边,想访问内网的终端设备,比如在家的电脑,树莓派等设备,但是我们是无法直接连接到这些设备的,因为这些设备都是内网设备。
想要连接就需要NAT(Network Address Translation,网络地址转换)。想要实现这一个功能,可以有许多方法,比如说frp、花生壳、ssh等实现。
这篇文章介绍一下用frp实现内网穿透。想要实现这功能,需要有一个有公网IP的服务器。
frp官网介绍
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
1 安装
我们可以在frp的github上下载release包
目前最新版本是0.33.0,本次测试环境,阿里云服务器需要下载frp_0.33.0_linux_amd64.tar.gz,客户端我们用树莓派测试,需要下载frp_0.33.0_linux_arm.tar.gz。然后分别上传到服务器和树莓派。
2 服务端配置
# 解压
$ 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 &
3 客户端配置
这次测试测试了通过ssh连接树莓派以及访问树莓派的仪表盘。如果想访问仪表盘,需要先安装好树莓派仪表盘,安装过程非常简单的。
# 解压
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
# 与服务端连接的端口,与服务端保持一致
11000 =
[dashboard]
type = tcp
local_ip = 127.0.0.1
# 22为树莓派仪表盘的端口
local_port = 80
# 80端口映射到服务器的11005
remote_port = 11005
[ssh]
type = tcp
127.0.0.1 =
22 =
remote_port = 6000
# 启动服务端
./frpc -c ./frpc.ini
4 连接
# 尝试ssh连接树莓派,在服务器执行
ssh -oPort=6000 pi@x.x.x.x
# 访问树莓派仪表盘,在本地服务器输入网址即可访问
http://x.x.x.x:11005/pi-dashboard/
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !