杨梅冲
每天在想什么呢?

1.NAT访问

 

 

 2.FRP介绍

中文官方文档:https://gofrp.org/docs/

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

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

 

 

原理:frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。

   内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。

   用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信

 

2.1 代理类型

frp 支持多种代理类型来适配不同的使用场景。

 

 

 2.2 frp工作模式

第一种:2边安装客户端,客户端提供配置文件访问公网ftp服务器17389转到到3389端口,流量会经过frp服务器到达局域网,这种是TCP和UDP模式,不是太安全,在frp服务器上可以抓包,另外会在公网上暴露端口,最好只能传输安全加密的协议,frp带宽影响2边数据传输

 

 第二种:需要2边都安装客户端来保证安全,不需要在公网上暴露端口,传输都是加密形式,但是要经过frp服务器,会被frp带宽影响,数据传输瓶颈

 

 

 

第三种--点对点内网穿透:2端需要安装客户端,frp服务器相当于一个媒介的角色:将访问端和访问远端的信息注册到FRP服务器上,交换完信息后,访问端和被访问端建立一个点对点的通道,访问本地17389端口,流量直接被传送到被访问端的3389端口上去,sk字符串保持一致,特点是:流量不经过frp服务器,数据也是加密的一个过程,网络只取决于2台客户端之间的状况

 

 

 

 3.frp安装配置

3.1 tcp模式安装配置

配置:https://gofrp.org/docs/examples/ssh/

在被访问端安装frp客户端,安装一个frp服务器,被访问端提供信息注册到frp服务器上,访问者只需要访问公网frp服务器以及暴露的端口

下载客户端:https://github.com/fatedier/frp/releases

 

 

 

# 服务端frps.ini配置
[root@harbor frp_0.44.0_linux_amd64]# cat frps.ini 
[common]
bind_addr = 0.0.0.0
bind_port = 7000
kcp_bind_port = 7000
bind_udp_port = 7001

max_pool_count = 5
tcp_mux = true
heartbeat_timeout = 90
authentication_timeout = 900
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
dashboard_tls_mode = false

log_file = ./frps.log
log_level = debug
log_max_days = 3

tls_only = true
authentication_method = token
token = 12345678  # 秘钥自己设置

# 启动程序
./frps -c ./frps.ini

查看日志:
[I] [root.go:218] frps started successfully
# frp客户端配置
[root@node1 frp_0.44.0_linux_amd64]# cat frpc.ini 
[common]
server_addr = 192.168.10.12
server_port = 7000
token = 12345678  # token要与frp服务端一致
tls_enable = true

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

[root@node1 frp_0.44.0_linux_amd64]# ./frpc -c ./frpc.ini 
2022/09/05 14:59:06 [I] [service.go:349] [e7a9504c752b3bde] login to server success, get run id [e7a9504c752b3bde], server udp port [7001]
2022/09/05 14:59:06 [I] [proxy_manager.go:144] [e7a9504c752b3bde] proxy added: [ssh]
2022/09/05 14:59:06 [I] [control.go:181] [e7a9504c752b3bde] [ssh] start proxy success

# frp服务端查看端口
[root@harbor frp_0.44.0_linux_amd64]# netstat -ntlp | grep frp
tcp6       0      0 :::7500                 :::*                    LISTEN      81748/./frps        
tcp6       0      0 :::6000                 :::*                    LISTEN      81748/./frps        
tcp6       0      0 :::7000                 :::*                    LISTEN      81748/./frps
# 访问客户端
[root@master bin]# ssh -oPort=6000 root@192.168.10.12
第一次登录需要输入密码,第二次不需要

3.2 stcp模式安装配置

下载:frp_0.44.0_windows_amd64.zip

 

 

 

环境
客户端1:windows
frp服务器
客户端2:linux

# 1.linux客户端配置:
[root@node1 frp_0.44.0_linux_amd64]# cat frpc_stcp.ini 
[common]
server_addr = 192.168.10.12
server_port = 7000
authentication_method = token
token = 12345678
tls_enable = true

[secret_ssh]
type = stcp
sk = 123456
local_ip = 127.0.0.1
local_port = 22
#remote_port = 6000

# 2.启动:
./frpc -c ./frpc_stcp.ini

# 3.windows客户端配置
[common]
server_addr = 192.168.10.12
server_port = 7000
authentication_method = token
token = 12345678
tls_enable = true

[ssh_visitor]
type = stcp
role = visitor
sk = 123456
server_name = secret_ssh
local_ip = 127.0.0.1
bind_port = 10022

# 4.启动:
frpc.exe -c frpc.ini

# 5.服务端配置可以和之前tcp一样不需要变化
[root@harbor frp_0.44.0_linux_amd64]# cat frps.ini 
[common]
bind_addr = 0.0.0.0
bind_port = 7000
kcp_bind_port = 7000
bind_udp_port = 7001

max_pool_count = 5
tcp_mux = true
heartbeat_timeout = 90
authentication_timeout = 900
dashboard_addr = 0.0.0.0
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
dashboard_tls_mode = false

log_file = ./frps.log
log_level = debug
log_max_days = 3

tls_only = true
authentication_method = token
token = 12345678

# 2个客户端链接到服务端后日志里都会提示
new work connection registered
# windows客户端登录linux 测试
127.0.0.1 10022
正常就可以登录到linux节点

 

 

 可以用传输文件至linux客户端来检测网络传输瓶颈

 

 

 3.3 点对点内网穿透

https://gofrp.org/docs/examples/xtcp/

 

posted on 2022-09-05 15:49  杨梅冲  阅读(1260)  评论(0编辑  收藏  举报