一、前言 简单介绍一下,frp主要有两个部分,客户端(frpc)和服务端(frps),服务端需要部署在具有公网ip的机器上(也就是我们自己买的云服务器),客户端就是我们需要进行穿透的电脑(本地机器)。
二、服务端配置 首先需要在服务端下载frp并解压。输入命令arch
查看处理器架构,根据此去github下载对应的frp版本,然后下载解压完就行。
这里我们只需要修改frps.ini文件的配置就可以了,其他与frpc相关的文件都可删去。由于只需要进行Web服务的穿透访问,这里只配置Web,其他配置按需百度添加即可,重点是成功搭建并运行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [common] #frp监听的端口,即与本地机器建立通信的端口,默认是7000,可以改成其他的(不建议动) bind_port = 7000 #该端口就是以后访问web服务需要用到的端口,可自定义 vhost_http_port = 3000 #授权码,建议不要太简单。这个token之后在客户端会用到 #注意:不要再token后面加#注释进行注释,也会被算上token内容,导致认证失败!写注释最好单独一行 token = 123456 #frp管理后台端口,请按自己需求更改,这个东西并不是一定要,这里还是提一下 dashboard_ _port = 7508 #frp管理后台用户名和密码,请改成自己的 dashboard_user = dashboard_pwd = enable_prometheus = true
配置好后就可以启动了
1 nohup ./frps -c ./frps.ini &
这里可以用systemctl执行,附上配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 [Unit] Description=frps daemon After=syslog.target network.target Wants=network.target [Service] Type=simple ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini Restart= always RestartSec=1min ExecStop=/usr/bin/killall frps [Install] WantedBy=multi-user.target
三、客户端配置 和服务端一样,下载解压。。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [common] #服务器的ip地址 server_addr = #服务器监听的端口,即frps.ini里的bind_port server_port = 7000 #授权码 token = #配置http服务,可用于第三方接口(java开发、小程序开发等)等远程调试 [web] #服务类型 type = http #需要被穿透的本地ip,不用改,相当于localhost local_ip = 127.0.0.1 #本地项目运行服务提供的端口,根据项目自定义 local_port = 3000 #web域名 custom_domains = #远程服务器监听web服务的端口,需要即frps.ini里的vhost_http_port remote_port = 3000
客户端的话,以windows系统为例,在cmd终端cd进frp目录,执行
也可以将执行命令打成bat脚本,这里也附上代码
1 2 3 4 5 6 7 8 @echo off if "%1" == "h" goto begin mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit :begin REM D: cd Tools\frp .\frpc.exe -c frpc.ini