搭建frp实现树莓派内网穿透

版权声明:本文为Mrdong916原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_27938829/article/details/73436739

前段时间需要使用内网穿透找到ngrok,这个东西倒是挺好用,速度、稳定性方面都不错。但是2.0版本开始和花生壳一样受限了。免费许可下只能使用随机分配的三级域名,临时用一下倒是还可以。如果想获取固定的子域名的话还得付费。

服务端:hosthatch的VPS Centos7 X64
客户端:树莓派3B,所以下面都以我自己的为准。
大家根据自己情况配置。

配置服务器端

  • 下载frp
sudo wget https://github.com/fatedier/frp/releases/download/v0.11.0/frp_0.11.0_linux_amd64.tar.gz
  • 解压
sudo tar xvf frp_0.11.0_linux_amd64.tar.gz

解压之后进入目录会看到以下文件

[root@mrdong frp_0.11.0_linux_amd64]# ls
LICENSE  frpc  frpc.ini  frpc_full.ini  frps  frps.ini  frps_full.ini

打开frps.ini文件,配置成如下:

bind_addr = xxx.xxx.xxx.xxx
bind_port = 7000
vhost_http_port = 80
vhost_https_port = 443
dashboard_port = 7500
dashboard_user = 你的仪表盘用户名
dashboard_pwd = 你的仪表盘密码
auth_token = frp

[common]部分是必须有的配置
其中bind_port是自己设定的frp服务端端口
vhost_http_port是自己设定的http访问端口
vhost_https_port是自己设定的https访问端口

[ssh]部分是ssh反向代理
listen_port是自己设定的ssh访问端口
custom_domains是自定义域名,如果有自己的域名就写到这里
auth_token是验证凭据,服务端和客户端的凭据必须一样才能连接,当然为了安全还是设置长一点。dashborad的三个配置是仪表盘功能的端口以及用户名和密码,为了安全也要设置的长一点。

保存上面的配置后,使用以下指令启动frp服务端。

./frps -c ./frps.ini

然后应该会显示类似下面的文本,说明服务端启动成功。

Start frps success
PrivilegeMode is enabled, you should pay more attention to security issues

然后访问服务器的7500端口(前面服务端设置的仪表盘端口),输入用户名和密码之后应当可以看到frp的仪表盘。

客户端

由于我的客户端是树莓派cpu架构是arm的,根据自己的cpu进行下载

  • 下载并解压
wget https://github.com/fatedier/frp/releases/download/v0.11.0/frp_0.11.0_linux_arm.tar.gz
tar -zxvf frp_0.11.0_linux_arm.tar.gz #解压
  • 配置客户端
    打开frpc.ini配置成如下
[common]
server_addr = xxx.xxx.xxx.xxx //服务器地址
server_port = 7000
local_ip = 127.0.0.1

[ssh]
type = tcp
local_port = 22
remote_port = 6000

[www]
type = http
local_port = 80
custom_domains = www.hibai.cn
auth_token = frp
[wwws]
type = https
local_port = 443
custom_domains = www.hibai.cn
auth_token = frp

[love]
type = http
local_port = 80
custom_domains =love.hibai.cn
auth_token = frp
[loves]
type = https
local_port = 443
custom_domains = love.hibai.cn
auth_token = frp

提醒:若多个自定义域名解析,切记[]里的名字要不同

  • 运行客户端

然后使用./frpc -c ./frpc.ini运行客户端。如果客户端显示类似这样的消息,说明和服务端连接成功。

ProxyName [http], connect to server [XXX:7000] success!
Start to send heartbeat to frps

然后用自定义域名访问试试,看看能不能解析到你的本地网站
到此就完事了,frp的功能还不仅于此。仔细阅读官方文档,你会发现它不仅可以将本地网站映射到外网,还可以用作反向代理、自定义DNS服务器等等,功能非常强大。

没有更多推荐了,返回首页