如何用frp实现内网穿透呢?

电子说

1.2w人已加入

描述

前言

通常我们在外边,想访问内网的终端设备,比如在家的电脑,树莓派等设备,但是我们是无法直接连接到这些设备的,因为这些设备都是内网设备。

想要连接就需要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  # 与服务端连接的端口,与服务端保持一致  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 local_port = 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/

树莓派

审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分