杂记 | 使用FRP搭建内网穿透服务


01 需求场景

1、有一台云服务器,Linux(CentOS7)系统
2、云服务器有公网ip,公网可以访问
3、本地电脑是家用笔记本,Windows操作系统
4、本地电脑没有公网ip,公网无法访问
需求:将云服务器搭建为一台内网穿透服务器,实现通过外网访问家用电脑(网页)的功能。且即使没有域名也可通过公网ip访问。

02 项目地址

GitHub:https://github.com/fatedier/frp
releases页面:https://github.com/fatedier/frp/releases
根据自己的情况下载运行文件,我下载的是图中的2项。
在这里插入图片描述
在这里插入图片描述
下载好后,解压缩。

03 文件介绍

解压后可以看到这样一些文件:
在这里插入图片描述
图左侧是Linux系统的文件,右侧是windows版。
其中:
frps字样的文件是用在服务端,即远程的公网服务器,结尾的字母s是server的意思。
frpc字样的文件是用在客户端,即本地的家用服务器,结尾的字母c是client的意思。
因此,在frp_0.49.0_linux_amd64中挑选出这些文件,上传到云服务器:frps frps.ini frps_full.ini
frp_0.49.0_windows_amd64中挑选出这些文件,保留在本地:frpc.exe frpc.ini frpc_full.ini

04 编写配置文件

本文以HTTP穿透为例,其他类型穿透可参考官方文档:https://gofrp.org/docs/
注意:在实际编写配置文件时,每一行配置中的注释及注释前的空格要删除掉!
例如:
不要这样写:bind_port = 7000 # 服务器接收客户端连接的端口
而要这样写:bind_port = 7000
不然后面所有的内容都会被视为配置的一部分,至少在当前最新的0.49.0版本有这个问题。

4.1 编写frps.ini

首先编写位于云服务器端的frps.ini文件。

[common]
bind_port = 7000				# 服务器接收客户端连接的端口
dashboard_port = 7500			# 后台管理端口
dashboard_user = admin			# 后台登录用户名
dashboard_pwd = admin			# 后台登录密码

vhost_http_port = 80			# http穿透端口(公网服务器的端口)
vhost_https_port = 443			# https穿透端口(公网服务器的端口)

token = abc123					# 身份验证令牌 frpc要和frps一致

log_file = /root/frp/frps.log	# 日志路径
log_level = info				# 日志级别
log_max_days = 3				# 日志文件保留天数

authentication_timeout = 0		# 身份验证超时时间 0表示不验证
subdomain_host = xxx.com		# 注册的主域名 不带前缀 没有域名就写公网ip

启动服务器端的服务

# 在文件所在的目录下输入命令启动
./frps -c ./frps.ini &

完成后可通过http://xxx.com:7500访问后台管理页面,注意发放行相关端口。
在这个示例配置中,需要放行的端口:7000、7500、80、443。

4.2 编写frpc.ini

然后编写本地的frpc.ini文件。

[common]
server_addr = xxx.xxx.xxx.xxx	# 服务器的公网ip地址
server_port = 7000				# 客户端与服务器连接的端口

token = abc123					# 身份验证令牌 frpc要和frps一致
authentication_timeout = 0		# 身份验证超时时间 0表示不验证

[web]							# 添加web节点
type = http						# 访问类型为http
local_ip = 127.0.0.1			# 本地设备ip(*注)
local_port = 8080				# 本地访问的端口
custom_domains = xxx.com		# 指向远程服务器的域名 没有域名就写服务器公网ip

*注:如果是本机,local_ip可以省略不写,或者写127.0.0.1,或者写本机在本地内网的ip,通常为 192.168.xxx.xxx
启动客户端服务:
打开Windows的PowerShell,cd到在frpc.exe所在文件夹。(用PowerShell不用cmd)
输入启动命令:./frpc.exe -c ./frpc.ini即可启动。
配置文件在同一文件夹下且使用默认名称的话,启动命令简化为./frpc.exe
在这里插入图片描述
出现success,表示启动成功!

05 测试

假设本地有一nginx页面,通过本机输入http://127.0.0.1:8080可访问到。
开启内网穿透后,输入http://xxx.com:80http://公网ip:80,查看是否能访问到。(http协议80端口可以省略)
其他类型的内网穿透请参考官方文档:https://gofrp.org/docs/
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xuzhongyi103/article/details/131298485