利用frp搭建内网和公网之间的通信,在不同网段也能享受到内网的服务。同时实现一个frps连接多个物理设备的frpc。

avatar
作者
猴君
阅读量:0

这篇博客记录我是自己的搭建过程以及其中个人的一些感悟。能看到这篇文章的朋友大概率知道frp的作用,但我还是简单介绍一下这个工具的作用。

用我个人的话来说:frp可以让你在只能本地进行访问的服务或者接口,放在公网上,让每个人都能访问到。

搭建frp的准备工作:一台有公网ip服务器

                                 一台自己要部署服务的主机

博主的环境:一台阿里云服务器(Linux64)

                     一台win10专业版的台式(一定要专业版,就我所知家庭版是不提供被控服务的)

                     一台Linux的学习用的笔记本

这次的博客会实现一台云服务器连接多个客户端服务。一个是实现在互联网远程控制我的台式,一个实现在互联网访问llama-factory的webui。(llama-factory是大模型的微调工具,这里不做详细说明)

服务器环境配置

1、登录自己已经购买的云服务器(阿里云服务器新用户有试用期)

2、从github上下载frp,由于我的云服务器采用的是intel的cpu并且是Linux的64位系统所以我们在这里进行相应的选择(根据自己的系统以及硬件的架构来进行选择)

下载命令:

wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz

3、解压压缩包

压缩命令:

tar -xzf frp_0.58.1_linux_amd64.tar.gz.1

x:提取

z:使用gzip进行解压

f:指定文件名

4、对文件进行配置

针对0.58.1版本,当你进入文件夹时,有如下五个文件,frpc用于客户端即client,frps用于服务器即server,这里我们可以只留下frps有关的文件,frpc可删可不删。

使用vim命令进入frps.toml文件修改或填写参数。默认端口为7000。

如果想增加安全性可以在下面一行添加auth.token

退出保存完毕后,执行如下命令。

nohup ./frps -c ./frps.toml &

查看这个进程是否在后台运行

命令:ps aux | grep frp

当有./frps -c ./frps.toml说明服务器已经在监听7000端口

客户端配置

Windows(利用 frp + Win10专业版自带功能 实现远控桌面)

再次提醒:你想要控制的电脑一定是专业版,控制端是不是专业版无所谓。

1、如之前一样,根据服务器对应的frp版本,以及对应的系统以及硬件下载对应的安装包

这里需要提醒一下,博主之前因为一些原因和需要,服务器和客户端的版本不一样,服务器为0.58.1,客户端为0.34,其实这样也能够进行正常通信,但是两个版本不同,配置文件里面参数不同,老版本的文件格式为ini,非常麻烦,所以建议保持两个相同版本最好。

2、解压文件到对应文件夹下,这个操作我就不演示了。

3、修改frpc的配置文件,注意是frpc,不要配置成了frps的配置文件!!!

我们右键点击frpc.toml文件,选择“打开方式”为记事本。

serverAddr:对应你的公网服务器的ip

serverPort:对应在你服务器的frps.toml的端口,简单来说就是这个端口要填入与服务器一样的端口

[[proxies]]:本地服务代理到服务器上,一个服务对应一个代理。例:你想要在本地把两个服务代理在服务器上,就要有两个[[proxies]]

name:代理服务的名字,用来区分这个代理的作用

type:连接类型

localIP:本机地址(127.0.0.1可以认为是指向的本机地址)

localPort:本地服务的端口,3389端口用于远程桌面协议(RDP)服务

remotePort:从你的公网服务器的端口进入到localPort。例:我的remotePort设置为3389,那么你在填入网址时,就应该是:http://你的公网ip:3389,这样就能进入到你本地端口3389的服务,如果填入6000,端口号也要相对应填入到网址中,但是我这里为了方便管理所以localPort和remotePort填相同的。

4、打开Windows10远程桌面服务

按住键盘的 “win + s” win键就是你键盘上的有Windows的logo那个键位,叫做win键。

弹出搜索界面。

输入“设置”

点击进入设置后,在搜索框输入“远程”两个关键字

再点击“远程桌面设置”

点击“启用远程桌面”,这样你的电脑现在就可以被远控。

5、打开cmd或者poweshell窗口,进入到frpc.toml的文件夹下,执行"./frpc -c ./frpc.toml"

错误示范:

这里报错原因:是因为你的服务器需要开放对应的7000端口以及remotePort,一定要注意!!!

我们进入到阿里云的控制台中的安全组中,点击"手动添加",前面三个不需要动,目的填:7000,源选择:所有IPv4,描述按照自己需求填入,点击保存。

由于这个例子中,我们实现的是远程桌面,我们选择的remotePort为3389,默

6、重新输入命令。

可以看到执行成功了。

7、使用其他设备对该电脑进行远控测试。

还是按下“win + s”,输入“远程”两个关键字,选择如下图

在这里面输入你的公网服务器ip+对应端口

输入你需要登入电脑的Windows账户的密码!(可以设置为免密码登录,这个操作大家可以去看网上的其他教程)

弹出这一个证书,就说明你成功了,选择“是”。

连接质量的服务,取决于你的服务器的带宽。

Linux(利用 frp 实现llama-factory webui的公网部署)

博主最近在做关于模型微调的项目,所以要用到llama-factory的webui,这里就顺便作为例子,怎么在Linux端上实现webui的公网部署。

1、下载对应的frp文件,步骤跟服务器环境配置是不能说是一摸一样,只能说是大差不差。

2、进入到你下载并已经解压好的frp文件夹下,使用vim frpc.toml命令,进入配置文件,按一下“a”键进行插入编写操作。

这里我已经配置好了,如果你想代理两个及以上多个服务,可以像我这样填写。

3、写完参数后,按一下“esc”,在按住“shift +  :” ,冒号键在“L”旁边,输入wq,按回车。 保存你的配置文件

4、同步打开云服务器中对应的remotePort,具体操作可以看Windows中的第五步。

5、在frp的文件夹下,使用命令“./frpc -c ./frpc1.toml &”,在后台运行。

6、使用命令“ps aux | grep frp”,查看frpc的服务是否成功运行

出现第五步的蓝字和第六步中红框即为启动服务成功

7、输入你的公网IP+对应remotePort,即可成功进入。

好了,你已经成功实现了,将多台物理设备的不同服务代理到同一台服务器上面。最后再提醒一下,记住在云服务器上打开对应端口,不然一定报错!!!

如果有错误的地方或者还需要优化,请在评论区中指正,博主会定期查看并及时修改。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!