frp socks5代理应用场景

最近工作中遇到一个问题,在一个vpc下面有两台虚拟机,其中一台机器绑定了eip可以访问互联网,另一台没有绑,没有公网的机器想通过绑定eip的机器来访问公网,我采用了frp中的sock5代理来实现这个需求,首先分别介绍一下frp和socks5代理协议。

image.png

1、frp简介

frp 是一个可用于内网穿透的高性能的反向代理应用,支持TCP、UDP协议,为HTTP和HTTPS应用协议提供了额外的能力,且尝试性支持了点对点穿透。frp 采用go语言开发。更多的人使用 frp 是为了进行反向代理,满足通过公网服务器访问处于内网的服务,如访问内网web服务,远程ssh内网服务器,远程控制内网NAS等,实现类似花生壳、ngrok等功能。而对于内网渗透来讲,这种功能恰好能够满足我们进行内网渗透的流量转发。FRP最大的一个特点是使用SOCKS代理,而SOCKS是加密通信的,类似于做了一个加密的隧道,可以把外网的流量,通过加密隧道穿透到内网。效果有些类似于VPN。

2、SOCKS介绍

SOCKS全称是SOCKet Secure,是一种网络传输协议,主要用于客户端与外网服务器之间通讯的中间传递。在OSI模型中,SOCKS是会话层的协议,位于表示层与传输层之间,最新协议是SOCKS5

SOCKS5原理

①首先客户端向代理服务器发出请求信息,用以协商版本和认证方法。随后代理服务器应答,将选择的方法发送给客户端。

②客户端和代理服务器进入由选定认证方法所决定的子协商过程,子协商过程结束后,客户端发送请求信息,其中包含目标服务器的IP地址和端口。代理服务器验证客户端身份,通过后会与目标服务器连接,目标服务器经过代理服务器向客户端返回状态响应。

③连接完成后,代理服务器开始作为中转站中转数据。

3、操作步骤

1、在vm2 上下载frp

访问网址https://github.com/fatedier/frp/releases

根据自己的操作系统下载对应的版本

image.png

2、然后进行解压,解压之后下面有几个文件

image.png

3、编辑frpc.toml和frps.toml。

frpc.toml

image.png

frps.toml

image.png

4、然后分别启动frps和frpc

./frps -c frps.toml

./frpc -c frpc.toml

5、然后vm1便可以通过访问vm2ip:1080来访问到公网

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计