当前位置:   article > 正文

FRP轻松实现内网穿透_c# frp

c# 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	#客户端的配置文件
  • 1
  • 2
  • 3
  • 4

3.使用FRP的前置准备

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

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

3、一台笔记本或台式机(调试用)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

三、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端口需要在阿里云等公网服务器的安全组、防火墙里面放通
----------
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44

四、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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

四、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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

总结

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/216939
推荐阅读
相关标签
  

闽ICP备14008679号