树莓派怎么实现内网穿透?

树莓派实现Frp内网穿透

树莓派怎么实现内网穿透?_第1张图片

一、Frp介绍

1、基本介绍

frp 是一个可用于内网穿透的,高性能的反向代理应用,支持 tcp, udp, http, https 协议。

  • 处于内网或防火墙后的机器,实现对外网环境提供 http 或 https 服务。

  • 对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。

  • 利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

简单的说就是通过端口映射,从已有公网IP访问内网。

2、官方中文文档

详细内容可以看官网文档

贴上链接:https://gofrp.org/

树莓派怎么实现内网穿透?_第2张图片

二、部署

1、硬件准备

  • 去年双11白嫖阿里云的ECS服务器,60块买的三年,2024年11月 到期,还是挺香的哈(一些白嫖的操作就不展示了),配置如下:

    • CPU&内存:1核 2 GiB
    • 操作系统:CentOS 7.7 64位
    • 实例规格:ecs.n4.small
    • 实例规格族:共享计算型
    • 云盘种类:高效云盘 60GiB (性能:2280 IOPS)
    • 地域:华南1(深圳)
  • 树莓派4B开发版

    • 系统镜像:Raspberry Pi OS Lite32位

2、frp服务端部署

  • 服务端:含公网ip的阿里云服务器

    这里采用putty连接

贴下命令:

#个人习惯,安装nano
yum install nano

#创建安装目录
mkdir frp_service
#切换目录
cd frp_service/
#下载frp
wget https://github.com/fatedier/frp/releases/download/v0.24.1/frp_0.24.1_linux_amd64.tar.gz
#解压
tar -zxvf frp_0.24.1_linux_amd64.tar.gz
#切换目录
cd frp_0.24.1_linux_amd64/
#删除客户端配置文件
rm -f frpc
rm -f frpc.ini
#修改配置文件,vi命令也行
nano frps.ini

配置成功的关键在于frps.ini,frpc.ini而关于配置的参数官网已经很详细了

  • 配置ini文件

这里演示配置tcp,http参数,替换为以下内容

[common]
#监听端口
bind_port = 7000
#映射http端口
vhost_http_port = 8081
#特权token
privilege_token = 123456
#后台管理  端口,用户名,密码
dashboard_port = 7500
dashboard_user = raspberry
dashboard_pwd = pi
  • nano基本命令:ctrl+o,保存enter,ctrl+x 退出

    vi命令:a/i 进入编辑模式,编辑完成输入冒号:wq保存退出

  • 启动frps

    #启动frps
    ./frps -c ./frps.ini
    #设置自启动
    nohup ./frps -c ./frps.ini &
    

    现在,就可以根据端口号访问frp后台了,访问地址:IP+端口号

3、frp客户端部署

  • 客户端:Raspberry Pi 4b

    前面部分是一样的操作,这里就不过多解释了

贴下命令:

mkdir frp_service
cd frp_service/
wget https://github.com/fatedier/frp/releases/download/v0.24.1/frp_0.24.1_linux_arm.tar.gz
tar -xzvf frp_0.24.1_linux_arm.tar.gz
cd frp_0.24.1_linux_arm/
rm -f frps
rm -f frps.ini
nano frpc.ini 
  • 配置ini文件
#基础配置
[common]
server_addr = 公网ip
server_port = 7000
privilege_token = 123456

#tcp配置
[ssh]
type = tcp
local_ip = 树莓派ip
local_port = 22
remote_port = 6000

#web配置
[web]
type = http
local_port = 8080(本地的端口)
custom_domains = 公网ip   或服务器的域名(仔细填写,这是连接的主要方式)

保存退出即可

  • 启动frpc.ini文件

    sudo ./frpc -c frpc.ini
    nohup ./frpc -c ./frpc.ini &
    

4、开放端口

最后,在服务器安全组规则里,把以上服务器用到的端口开放即可。

注意:如果服务器装了Bt面板还要在面板里面再开放一次

服务器安全组配置规则,仅仅开放了一下端口。其他设置可以更详细

树莓派怎么实现内网穿透?_第3张图片

到这,frp已经部署好了,下面,我们来测试一下。

三、测试连接

  • 通过公网IP的6000端口,连接树莓派

    树莓派怎么实现内网穿透?_第4张图片

连接成功

树莓派怎么实现内网穿透?_第5张图片

  • 通过,frp管理后台查看是否连接成功

树莓派怎么实现内网穿透?_第6张图片

树莓派怎么实现内网穿透?_第7张图片

到这为止,frp就部署好了,从上图可以看到内网穿透成功了,感兴趣的话也可以尝试在树莓派部署web服务器,比如Apache,Nginx,Tomcat等等,发布自己的项目,进而通过云服务器IP+端口来访问,验证一下是否可以访问到树莓派所部署的项目。

四、卸载重装

个人在前期安装过程中,也遇到了一些麻烦,踩过一些坑,有时候为了确保能够连通,万无一失,这里贴一下卸载并重新部署的方法,大家根据需要即可。

#卸载重装frp(只需要删除安装目录即可),这里演示服务端:
rm -rf frp_service(这里事先创建了frp_service目录)
#可以确认是否删除
ls
#后面回到第一步即可

以上纯属个人意见哈,玩玩试一下就好。

你可能感兴趣的:(Raspberry,Pi,服务器,linux,运维)