frp服务端配置

学海无涯 · 2018-09-02

FRP官方地址:

https://github.com/fatedier/frp/releases

什么是FRP

Frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。

准备工作:

在使用frp之前,需要一台有公网IP的服务器(下文称外网主机),一台需要实现内网穿透的机器(下文称内网主机),SSH工具,以及一个域名(如果只是建立SSH反向代理则不需要域名)。

开始使用:

根据服务器的操作系统,在Release页面中找到对应的frp程序,然后分别在外网主机和内网主机中下载它。

下面示范用的frp程序版本是以Lostape的VPS为主操作的(不少vps是amd版本)。

独立IP的外网主机:

SSH连接上外网主机后,使用wget指令下载frp。

wget https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_arm64.tar.gz

使用tar指令解压tar.gz文件

tar -zxvf frp_0.21.0_linux_arm64.tar.gz

使用cd指令进入解压出来的文件夹

cd frp_0.21.0_linux_arm64/

外网主机作为服务端,可以删掉不必要的客户端文件,使用rm指令删除文件。

rm -f frpc
rm -f frpc.ini

接下来要修改服务器配置文件,即frps.ini文件。使用vi指令对目标文件进行编辑。

vi frps.ini

打开frps.ini后可以看到默认已经有很多详细的配置和示范样例,该文章仅以达到内网穿透为目的,所以这里选择删掉或注释掉里面的所有内容,然后根据自己的目的,按照官方的中文文档添加以下配置。(这里的操作都使用vi命令,关于vi命令的使用方式这里不作详细介绍,可以自行搜索相关使用方法。)

[common]
bind_port = 7000
vhost_http_port = 8080
dashboard_user = admin #管理面板账号
dashboard_pwd = admin  #管理面板密码
# 这个是frp内网穿透服务器的web界面的端口,可以通过http://你的ip:7500查看frp内网穿透服务器端的连接情况,和各个frp内网穿透客户端的连接情况。
dashboard_port = 7500
# 方括号内的ssh是代理名称,在同一个frp穿透服务器下的代理名称不能重复,否则不能启动。
# bind_addr是frp客户端内网的ip,也可以是客户端内网同一局域网下的其他IP
[ssh]
####type = tcp
bind_addr = 127.0.0.1
listen_port = 6000
[web]
#http类型的内网穿透,必须设置vhost_http_port,并且所有的http类型的客户端都将通过同一个vhost_http_port访问。
type = http
# custom_domains是通过frp服务器端访问客户端的域名,必须输入完整的域名,
# 并且不能是subdomain_host的子域名,否则frp服务不能启动,并且相应的域名需要解析到frp服务器端的公网IP并等待解析生效后,才可以使用。
custom_domains = xxx.xxx.com

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

启动服务端 frps:

./frps -c ./frps.ini

此时在服务端会看到”start proxy sucess”字样,即连接成功。

重启服务端 frps:

frps -c ./frps.ini --reload

查看 frp 进程

ps -aux | grep frp

结束进程:

找到frps进程的pid 2777(举例),如果要结束进程

kill -9 2777

添加开机启动frp服务端

centos:chmod +x /etc/rc.d/rc.local && vi /etc/rc.d/rc.local

把下面的内容粘贴到文件末尾。

/usr/local/gopath/src/github.com/fatedier/frp/bin/frps -c /usr/local/gopath/src/github.com/fatedier/frp/bin/frps.ini

Ubuntu/Debian系统:

chmod +x /etc/rc.local && vi /etc/rc.local

把下面的内容粘贴到文件末尾。

/usr/local/gopath/src/github.com/fatedier/frp/bin/frps -c /usr/local/gopath/src/github.com/fatedier/frp/bin/frps.ini

后台运行(使用screen让frp在后台运行):

下面的示范是运行服务端的frp,客户端就不示范了。

首先使用screen指令创建一个会话。

screen -dmS frp
然后进入这个会话。

screen -r frp
最后使用运行frp的指令,在后面加上” &”。(如果之前断开了SSH连接,记得用cd指令进入frp的目录先。)

./frps -c ./frps.ini &
这样就让frp在后台运行了。

这样就成功让frp在后台运行了。

注意:宝塔面板重启服务器后,需要重新开一下frps所用端口!

IT 技术
2010 - 2024 在路上. All Rights Reserved.
Theme Jasmine by Kent Liao