frp实现内网穿透


前言

准备工作:
一台云服务器,
一个部署在本地的web应用
一个域名(没有域名可以使用公网ip)


本文采用的是在云服务器上使用linux系统而在本地使用的是win10,linux和windows的配置方法是相同的,所以即便使用不同的系统也可以参照修改。

一、FRP是什么?

FRP 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP、UDP 、http 和 https 等众多协议。通过frp不仅可以实现通过 ssh 访问公司内网机器,而且由于本地机器没有公网 IP,无法将域名解析到本地的机器,使得部署在本地的web项目,无法通过外网访问时,也可以通过frp转发映射端口实现公网ip访问本地项目。

二、使用步骤

1.在云服务器上安装frp

1,云服务器上使用的是frp的服务端。在安装之前首先要明确当前使用的服务器的系统信息,否则使用了不匹配的frp版本,会出现:Segmentation fault的错误。可以通过arch命令查看系统信息。

arch
aarch64  #ARM架构
x86_64	#X86架构

对应frp版本:

frp_0.35.1_darwin_amd64.tar.gz    #Mac OS系统
frp_0.35.1_freebsd_386.tar.gz  	  #FreeBSD 32位系统
frp_0.35.1_freebsd_amd64.tar.gz   #FreeBSD 64位系统
frp_0.35.1_linux_386.tar.gz       #Linux 32位系统
frp_0.35.1_linux_amd64.tar.gz     #Linux 64位系统
frp_0.35.1_linux_arm.tar.gz 	  #Linux 32位嵌入式系统
frp_0.35.1_linux_arm64.tar.gz 	  #Linux 64位嵌入式系统
frp_0.35.1_windows_386.zip 	      #Windows 32位系统
frp_0.35.1_windows_amd64.zip      #Windows 64位系统

2,安装frp

#切换到安装目录
cd /usr/local
#下载
wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
#解压
tar -zxvf frp_0.35.1_linux_amd64.tar.gz
#重命名
mv frp_0.35.1_linux_amd64 frp

进入frp目录并查看目录下的文件,其中主要的是以下四个文件

cd frp && ls
frpc		#客户端的执行程序
frpc.ini	#客户端的配置文件
frps		#服务端的执行程序
frps.ini	#服务端的配置文件

当前要使用的是服务端的,可以先将客户端的两个删除。然后编辑服务端的配置文件

rm -rf frpc		
rm -rf frpc.ini
vi frps.ini
#该配置文件默认只有
[common]
bind_port = 7000
#需修改为以下格式
[common]
bind_port = 7000		#客户端和服务端连接的端口
vhost_http_port = 8080	#http映射的端口
vhost_https_port = 8089 #https映射的端口
#以下非必须
dashboard_port = 7500	#服务端仪表板的端口,可以通过浏览器查看frp信息 
token = 666666			#用于客户端和服务端连接的口令	
dashboard_user = admin	#仪表板页面登录的用户名
dashboard_pwd = admin	#仪表板页面登录的密码

至此,frp已经安装并配置好了。可以执行以下命令运行frp

./frps -c frps.ini		#前台运行,ssh窗口关闭则失效
#出现一下信息说明运行成功
2021/02/27 15:11:53 [I] [root.go:108] frps uses config file: frps.ini
2021/02/27 15:11:53 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000
2021/02/27 15:11:53 [I] [service.go:232] http service listen on 0.0.0.0:8080
2021/02/27 15:11:53 [I] [service.go:253] https service listen on 0.0.0.0:8089
2021/02/27 15:11:53 [I] [service.go:289] Dashboard listen on 0.0.0.0:7500
2021/02/27 15:11:53 [I] [root.go:217] frps started successfully

nohup ./frps -c frps.ini &	#后台运行
#出现以下信息则运行成功
nohup: ignoring input and appending output to ‘nohup.out

运行成功后,可以通过netstat -nlpt查看端口,查看刚刚配置的:7000,8089,8080,7500端口是否成功。若配置并运行成功,并且有配置服务端的仪表板,则可以通过IP+7500端口访问查看,账号和密码为刚刚配置的。

2.客户端配置

1,下载地址:https://github.com/fatedier/frp/releases ,此处用到的是windows的64位的版本。下载后解压到目录。
2,和服务端一样,进入frp目录下,删除服务端的两个文件,并修改客户端的配置文件。配置如下:

[common]
server_addr = x.x.x.x			#云服务器的ip
server_port = 7000				#云服务器配置的连接端口
token = 666666					#云服务器设置的token

[ssh]							#不同客户端需要不同的名字,自定义即可
type = tcp						#协议
local_ip = 192.168.2.1		#本地ip
local_port = 22					#本地端口
remote_port = 6000				#转发端口,云服务器通过这个端口访问本地端口

[web]
type = http
local_ip = 192.168.2.1
local_port = 80					#web服务的端口
custom_domains = x.x.x.x 		#此处为域名,或公网ip

配置完成后,即可运行客户端,客户端必须通过命令行运行。

#进入frp目录下执行
frpc -c frpc.ini
#出现以下信息说明配置成功
[ssh] start proxy success
[web] start proxy success

#后台启动命令
nohup ./frpc -c frpc.ini >/dev/null 2>&1 &

至此frp安装并且配置成功,在浏览器使用公网ip+服务端配置的http接口(例如此处配置的:x.x.x.x:8080),即可访问本地的web项目。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

情以西风暖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值