配置frp实现内网穿透
0x01 简介
frp全名Fast Reverse Proxy,是用于提供内网穿透服务的工具,主要用于解决一些内网服务没有公网ip但是却需要提供外网访问的问题。使用frp你可以将内网中的TCP、UDP、HTTP、HTTPS等协议类型的服务发布到公网,并且支持Web服务根据域名进行路由转发。
如上图的frp架构图所示:配置前的准备如下
(1)公网服务器1台(182.92.1.1)
(2)内网服务器1台(我这里演示的是linux环境:192.168.126.135)
(3)内网服务器部署一个web服务,这里直接用的lamp
(4)公网服务器绑定域名1个(非必须)
0x02 环境配置
2.1 服务器
#下载
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
#解压
tar -zxvf frp_0.30.0_linux_amd64.tar.gz
#赋予权限
chmod 777 -R frp_0.30.0_linux_amd64/
#进到相应目录下
cd frp_0.30.0_linux_amd64
frp的目录下主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件。
2.2 配置服务器
vim ./frps.ini
[common]
bind_port = 7000 #与客户端绑定的进行通信的端口
vhost_http_port = 6081 #访问客户端web服务自定义的端口号
保存然后启动服务./frps -c ./frps.ini
,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini &
2.3 客户端
还是同服务器的下载操作:
#下载
wget https://github.com/fatedier/frp/releases/download/v0.30.0/frp_0.30.0_linux_amd64.tar.gz
#解压
tar -zxvf frp_0.30.0_linux_amd64.tar.gz
#赋予权限
chmod 777 -R frp_0.30.0_linux_amd64/
#进到相应目录下
cd frp_0.30.0_linux_amd64
2.4 配置客户端
vi ./frpc.ini
[common]
server_addr = 182.92.1.1 #公网服务器ip
server_port = 7000 #与服务端bind_port一致
#公网通过ssh访问内部服务器
[ssh]
type = tcp #连接协议
local_ip = 192.168.126.135 #内网服务器ip
local_port = 22 #ssh默认端口号
remote_port = 6000 #自定义的访问内部ssh端口号
#公网访问内部web服务器以http方式
[web]
type = http #访问协议
local_port = 80 #内网web服务的端口号
custom_domains = 182.92.1.1 #所绑定的公网服务器域名,我这里的公网服务器没有域名,直接放他的IP也可以的
保存然后执行./frpc -c ./frpc.ini
启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini &
0x03 实现效果
内网客户端已开启了apache服务:
启动frp服务器后,访问相应端口:
启动frp客户端后,访问相应端口:
成功实现内网穿透!
细心地同学应该发现配置客户端的时候,除了配置了web服务,还给内网的主机配置了一个ssh服务,我们来连一下:
ssh成功连接!
0x04 参考链接
https://www.jianshu.com/p/617972428455
https://blog.csdn.net/u013144287/article/details/78589643/
----------------------------------------------------------------------------
作者:肖洋肖恩、
----------------------------------------------------------------------------
文中可能会存在纰漏,若发现请联系与我。
本文所有代码仅可用于站长自我检测与学习,如用于非法攻击一切后果自负。