这篇博客记录我是自己的搭建过程以及其中个人的一些感悟。能看到这篇文章的朋友大概率知道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,即可成功进入。
好了,你已经成功实现了,将多台物理设备的不同服务代理到同一台服务器上面。最后再提醒一下,记住在云服务器上打开对应端口,不然一定报错!!!
如果有错误的地方或者还需要优化,请在评论区中指正,博主会定期查看并及时修改。