使用frp,实现内网穿透
前言
Frp是基于Go语言开发的,支持Windows、Linux、MacOS、ARM等多平台部署的一种针对内网穿透的高性能快速反向代理,可将防火墙或NAT后面的本地服务以安全便捷的方式通过具有公网IP节点的中转暴露到Internet。Frp支持TCP、UDP、HTTP以及HTTPS协议,在这些协议中,请求可以通过域名转发到内部服务。
frp的工作原理
Frpc运行后向Frps注册;注册完成后用户可向Frps请求数据;Frps通知Frpc有新的数据请求,需要建立连接;Frpc收到Frps的连接请求,建立起新的连接;连接建立后Frps将Frpc与用户的数据进行双向转发。Frp工作原理下图所示。

环境要求
- 外网服务器一台(有公网ip的服务器,如云服务器)
- 内网服务器一台(自己的电脑或其他服务器)
安装与配置
下载frp安装包
下载地址:GitHub地址
❗❗❗Frp安装过程中应注意Frpc与Frps版本保持一致,并根据操作系统选择对应的版本的Frp安装包。

外网服务器部署
将frps和frps.ini两个文件上传至外网服务器,修改配置文件frps.ini,如下:
[common]
bind_port = 7000 #服务器监听端口
token = 2425 #密码 不需要这项可删除这行
输入以下命令启动frps
./frps -c frps.ini #测试启动frps 关闭终端时任务也会中断
nohup ./frps -c frps.ini & #测试成功后,用该命令后台执行任务
运行结果如图:

本地服务器部署
本地服务器可以只保留frpc.exe和frpc.ini,修改配置文件frpc.ini,如下
[common]
server_addr = xx.xx.xx.xx #外网服务器ip
server_port = 7000 #外网服务器监听端口 保持和外网服务器一致
token = 2425 #密码 保持和外网服务器一致 不需要可删除这行
[name] #代理服务名字 可随意
type = tcp #代理的端口类型
local_port = 3389 #本地服务端口
local_ip = 127.0.0.1 #本地或局域网ip 默认127.0.0.1不用改
remote_port = 3389 #远程连接的端口
这里我将文件放在C盘的frpc文件夹中,在cmd执行如下命令
cd c:\frpc #切换到文件目录 根据自己的文件路径改写
frpc -c frpc.ini #启动frpc
或者在桌面新建一个txt文本文档,输入以下命令保存,修改文件后缀为ps1,右击选择使用PowerShell运行,如图

运行结果如图:

内网穿透应用
-
远程访问本地局域网内搭建的网页
-
远程访问局域网内的nas服务器等设备
-
windows远程桌面
-
MC,饥荒等游戏联机
例,转发windows远程桌面的端口,可以远程在别的设备上登录
Q.E.D.