FRP轻松实现内网穿透


FRP轻松实现内网穿透

一、FRP是什么?

FRP(Fast Reverse Proxy) 是一款简单,好用,稳定的隧道工具。它是一款高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务。FRP 支持 TCP、UDP、KCP、HTTP、HTTPS等协议类型,并且支持 Web 服务根据域名进行路由转发。绕过复杂的网络对外服务从它开始,Go。


二、FRP怎么玩

1.FRP的通信过程

在这里插入图片描述
通信过程:内网服务器和公网虚拟机通过FRP建立隧道,用户请求公网虚拟机访问到内网服务器

2.FRP的名词解释

FRPC	#FRP的客户端
FRPS	#FRP的服务端
frps.ini	#服务端的配置文件
frpc.ini	#客户端的配置文件

3.使用FRP的前置准备

#公网服务器 = 阿里云、腾讯、天翼云等
1、一台有**固定IP**的公网服务器(Windows、Linux)

2、一台内网设备(Windows、Linux)

3、一台笔记本或台式机(调试用)

三、FRP如何部署

1.FRP服务端部署

步骤一:下载获取安装包  
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

步骤二:解压安装包到/etc/frp目录
mkdir /etc/frp && tar -zxvf frp_0.33.0_linux_amd64.tar.gz -C /etc/frp

步骤三:修改FRP服务端配置文件
vim /etc/frp/frps.ini

----------
[common]
bind_port = 20001 根据实际情况个人喜好更新IP端口

提示:20001端口需要在阿里云等公网服务器的安全组、防火墙里面放通
----------

2.FRP客户端部署

步骤一:下载客户端安装包
windows端:
https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_windows_amd64.zip
Linux端:
wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

步骤二:解压安装包到对应文件夹
mkdir /etc/frp && tar -zxvf frp_0.33.0_linux_amd64.tar.gz -C /etc/frp

步骤三:修改配置文件
vi /etc/frp/frpc.ini
----------
[common]
server_addr = 120.120.*.* #修改成服务端的公网IP或者域名也可以
server_port = 20001 #服务端的请求端口

[ssh] #Linux的ssh连接
#端口类型tcp、udp、http、https等
type = tcp	

#内网设备的IP,可以是这台设备的自身或其他
local_ip = 192.168.3.2 

#内网IP端口,22端口对应的是ssh
local_port = 22 

#在外网访问的端口,自定义
remote_port = 26666 

[RDP] #Windows远程桌面连接
type = tcp	
local_ip = 127.0.0.1
local_port = 3389	
remote_port = 28888	

步骤四:启动程序,并放到后台启动
Linux端:
1、cd /etc/frp
2、nohup sh /etc/frp/frpc -c /etc/frp/frpc.ini &

Windows端:
1、打开CMD命令行提示符工具
2、cd c:\frp\
3、start /b frpc.exe -c c:\frp\frpc.ini

四、FRP设置成服务启动(Linux)

1.FRP服务端以服务的方式启动(Linux)

#1、编辑frps.service
vi /etc/frp/systemd/frps.service

[Unit]
Description=FRP to bypass NAT Network
Wants = network-online.target
After=network.target 

[Service] 
Type=simple 
ExecStart=/etc/frp/frps -c /etc/frp/frps.ini
#ExecReload=/etc/frp/frps
#ExecStop=/etc/frp/frps

StandardOutput = syslog
StandardError = inherit

PrivateTmp=true 

[Install] 
WantedBy=multi-user.target
保存

#2、复制frps.service到lib库
cp /etc/frp/systemd/frps.service /lib/systemd/system/

#3、重新加载,启动服务并设置开机自启动
systemctl-daemon-reload
systemctl start frps.service
systemctl enable frps.service

2.FRP客户端以服务的方式启动(Linux)

#1、编辑frpc.service
vi /etc/frp/systemd/frpc.service

[Unit]
Description=FRP to bypass NAT Network
Wants = network-online.target
After=network.target 

[Service] 
Type=simple 
ExecStart=/etc/frp/frpc -c /etc/frp/frpc.ini
#ExecReload=/etc/frp/frpc
#ExecStop=/etc/frp/frpc

StandardOutput = syslog
StandardError = inherit

PrivateTmp=true 

[Install] 
WantedBy=multi-user.target
保存

#2、复制frps.service到lib库
cp /etc/frp/systemd/frpc.service /lib/systemd/system/

#3、重新加载,启动服务并设置开机自启动
systemctl-daemon-reload
systemctl start frpc.service
systemctl enable frpc.service

四、FRP服务端拓展

1.点对点内网穿透配置

#frps.ini服务端
[common]
bind_port = 7000
bind_udp_port = 7000

#frpc.ini客户端【*在需要暴露到内网的机器上部署 frpc*】
[common]
server_addr = x.x.x.x
server_port = 7000

[p2p_ssh]
type = xtcp
#只有 【SK】 一致的用户才能访问到此服务,类似Token
sk = abcdefg
local_ip = 127.0.0.1
local_port = 22

#frpc.ini客户端【*在想要访问内网服务的机器上也部署 frpc*】
[common]
server_addr = x.x.x.x
server_port = 7000

[p2p_ssh_visitor]
type = xtcp
# xtcp 的访问者
role = visitor
# 要访问的 xtcp 代理的名字
server_name = p2p_ssh
sk = abcdefg
# 绑定本地端口用于访问 ssh 服务
bind_addr = 127.0.0.1
bind_port = 6000


总结

优势:FRP可以在各种复杂的企业内网绕过管理员将应用、服务器通过建立隧道发布到外网。FRP可以作为运维人员的应急手段。比花某壳的内网穿透稳定。

缺点:容易被外部渗透,可以配合Token、frp+openVpn等使用加强安全性。并且FRP发布的应用网速的瓶颈在于固定IP的网速,而不是发起请求的客户端。

如果UP婆主有什么写的不对,欢迎大家提出建议并指出~谢谢大家
支持一下~别下次一定咯

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值