电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 2361 人浏览分享

内网穿透FRP详细教程

[复制链接]
2361 0
简介

frp 是一个专注于内网穿透的高性能的反向代理应用 支持 TCP UDP HTTP HTTPS 等多种协议
可以将内网服务以安全便捷的方式通过具有公网 IP节点的中转暴露到公网。
通过在具有公网 IP 的节点上部署 frp 服务端 可以轻松地将内网服务穿透到公网 同时
提供诸多专业的功能特性 这包括:

客户端服务端通信支持 TCP KCP 以及 Websocket 等多种协议。
采用 TCP 连接流式复用 在单个连接间承载更多请求 节省连接建立时间。
代理组间的负载均衡。
端口复用 多个服务通过同一个服务端端口暴露。
多个原生支持的客户端插件 静态文件查看 HTTP SOCK5 代理等 便于独立使用 frp 客户端完成某些工作。
高度扩展性的服务端插件系统 方便结合自身需求进行功能扩展。
服务端和客户端UI 页面。

frp 采用 Golang 编写 支持跨平台 仅需下载对应平台的二进制文件即可执行 没有额外依赖。

安装

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

解压缩下载的压缩包 将其中的 frpc 拷贝到内网服务所在的机器上 将 frps拷贝到具有
公网 IP 的机器上 放置在任意目录。
编写配置文件 先通过 ./frps -c ./frps.ini 启动服务端,再通过 ./frpc -c ./frpc.ini 启动客户端 如果需要在
后台长期运行建议结合其他工具使用例如 systemd 和 supervisor。
如果是 Windows 用户需要在 cmd 终端中执行命令。
frp 主要由 客户端(frpc) 和 服务端(frps) 组成 服务端通常部署在具有公网 IP 的机器上
客户端通常部署在需要穿透的内网服务所在的机器上。
内网服务由于没有公网 IP 不能被非局域网内的其他用户访问。
用户通过访问服务端的 frps 由 frp 负责根据请求的端口或其他信息
将请求路由到对应的内网机器从而实现通信。

代理类型
frp 支持多种代理类型来适配不同的使用场景。
tcp :单纯的 TCP 端口映射 服务端会根据不同的端口路由到不同的内网服务。
udp :单纯的 UDP 端口映射 服务端会根据不同的端口路由到不同的内网服务。
http :针对 HTTP 应用定制了一些额外的功能 例如修改 Host Header,增加鉴权。
https :针对 HTTPS 应用定制了一些额外的功能。
stcp :安全的 TCP 内网代理 需要在被访问者和访问者的机器上都部署 frpc 不需要在服务端暴露端口。
sudp :安全的 UDP 内网代理需要在被访问者和访问者的机器上都部署 frpc 不需要在服务端暴露端口。
xtcp :点对点内网穿透代理 功能同 stcp 但是流量不需要经过服务器中转。
tcpmux :支持服务端 TCP 端口的多路复用,通过同一个端口访问不同的内网服务。

使用教程

实验环境是
攻击机IP:192.168.51.209
vps:x.x.x.x
目标主机:192.168.48.181
在vps上传linux版本的frp
首先先下载对应的安装包 上边有下载地址。打开后点击要下载的包 复制链接如下:
https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz

QQ截图20210629104007.png

使用curl安装 vps上边已经安装好 这里使用kali演示下
  1. curl -# -LJOhttps://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
复制代码

没有curl也可以使用wget安装
  1. wgethttps://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
复制代码

使用tar指令解压tar.gz文件
  1. tar -zxvf frp_0.36.2_linux_amd64.tar.gz
复制代码

QQ截图20210629104221.png

QQ截图20210629104251.png

在服务端使用frps,查看frps的配置,默认如下:
QQ截图20210629104323.png

在这里添加一个控制台如果没有vim安装如下
  1. sudo apt-get -f install #是修复损坏的软件包 尝试卸载出错的包重新安装正确版本的
  2. sudo apt install vim #安装vim
复制代码

99.png

  1. [common]
  2. bind_port = 7000 #绑定的端口

  3. dashboard_user = admin #控制台用户名
  4. dashboard_pwd = password #控制台密码
  5. dashboard_port = 7500 #控制台的端口
复制代码

保存退出

98.png

启动服务端,7500端口已经启用
./frps -c ./frps.ini

97.png

打开浏览器 输入公网IP+7500端口 自己设置的控制台端口 这样服务端已经配置完成。

96.png

在客户端下载win的frp(环境是win)接下来配置frpc.ini如下

92.png

cmd运行方法:frpc -c frpc.ini

91.png

powershell运行方法:.\frpc.exe -c frpc.ini

90.png

使用远程连接进行连接 IP使用公网IP 端口使用remote_port映射到公网IP的端口

89.png

88.png

输入目标主机的用户名和密码进行远程登录

87.png

让进程后台运行方法

Linux:
  1. nohup ./frps -c ./frps.ini&
复制代码

使用Ctrl+C退出后后台依然运行

86.png

使用ps aux查看当前进程

82.png

结束进程方法
使用kill -9 PID

81.png

win:
  1. `start /b frpc.exe -c frpc.ini
复制代码

使用tasklist查看

80.png

结束进程方法

taskkill /pid PID号 -f

69.png

问题解决

当服务端运行时有以下报错 启动程序端口被占

68.png

使用netstat -nap查看端口状态及PID

kill -9 PID(被占用的端口PID)就可以重新运行了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.