自建Frp并实现局域网设备可访问

写在最前

 很多在使用终端的时候都很难躲避关于局域网难以访问的问题,比如有些时候离设备离得远,又必须要使用ssh或scp去访问。这篇文章将会提供通过映射穿透来实现。如果手上刚好有一台服务器的话,开源项目Frp将是不错的解决方案。

什么是Frp

Frp是一项Github的开源项目,专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

如果没有服务器,看到这里就可以退出去了

Github项目地址

正文

部署源代码

 首先打开上面的Github链接,找到其中的releases发布页,找到对应自己设备架构的版本:

在这里插入图片描述

 一般安卓设备是arm64版本,Linux服务器是amd64版本(可以在服务器的Shell中使用arch查询自己服务器的架构,输出内容如果是x86_64即为amd64版本)

 我这里以安卓设备和Linux服务器为例子,下载frp_0.45.0_linux_amd64.tar.gzfrp_0.45.0_linux_arm64.tar.gz。之后分别传输到安卓设备和服务器上解压,解压后的文件夹位置随意。

配置文件

 我们需要分别对两个设备的文件进行配置。

对Linux服务器(也就是具备公网ip的设备),我们需要配置frps.ini文件:

[common]
bind_port = 7000 用于连接远程设备的端口
token = 12345678 密码随意

 之后在Frp的文件夹目录下运行服务:

./frps -c frps.ini

在这里插入图片描述

 可以在服务器的/etc/profile.d文件夹下创建一个sh脚本实现开机自启动:

/home/ubuntu/frp/frps -c frps.ini

 至此服务器的配置完成。

 接下来配置客户端设备,也就是局域网内的设备,我们需要对frpc.ini进行更改:

[common]
server_addr = 127.0.0.6 服务器的公网ip
server_port = 7000 服务器Frp用于连接的端口

[ssh]
type = tcp 连接协议类型
local_ip = 127.0.0.1 本地局域网ip
local_port = 22 本地开发用于映射的端口
remote_port = 6000 转交给服务器映射的端口

 这样就实现了下面的端口映射
127.0.0.1:22 --> 127.0.0.6:6000

 我们就可以可以直接通过访问127.0.0.6:6000 来访问127.0.0.1:22

 运行客户端:

./frpc -c frpc.ini

在这里插入图片描述

 记得为服务器防火墙添加端口开放。

猜你喜欢

转载自blog.csdn.net/m0_74075298/article/details/128251497