在下方公众号后台回复:【网络安全】,可获取给你准备的最新网安教程全家桶。
内网穿透的作用包括跨网段访问一个局域网中的一台主机。
如上图,假设我们想要通过主机 A 访问主机 C,但是主机 A 和主机 C 绑定的都是私有 ip 地址,所以它们之间是无法直接进行通信的。要想使得 A 和 C 能够进行通信,就需要用到内网穿透的技术。
我们可以借助 frps(服务端)和 frpc(客户端)来实现主机 A 对主机 C 的访问。
需要做的是:
-
在绑定了公网 ip 的主机 B 中配置 frps(服务端)
-
在主机 C 中配置 frpc(客户端)
frps/frpc 的工具包的 github 地址是:
Releases · fatedier/frp · GitHub
下载适合自己机器的版本即可。
在服务端,即主机 B 中,编辑 frps.ini 文件:
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
authentication_method = token
token = pass123456
然后可以启动服务端,切换到 frps 软件的解压目录之后,使用命令:
./frps -c frps.ini
在客户端,即主机 C 中,编辑 frpc.ini 文件:
[common]
server_addr = x.x.x.x#公网ip地址
authentication_method = token
token = pass123456
server_port = 7000
[Fusion-ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 20022
[Fusion-rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 23389
客户端会根据 frpc.ini 文件中配置的 server 的 ip 以及 port 与 服务端监听的 7000 端口进行连接
客户端使用命令连接到服务端:
./frpc -c frpc.ini
这里主机 C(客户端)相当于是充当了反向代理的角色,而主机 B(服务端)充当了正向代理的角色。
正向代理是代理客户端,为客户端收发请求,使真实客户端对服务器不可见;而反向代理是代理服务器端,为服务器收发请求,使真实服务器对客户端不可见。
因此,主机 B 用来接收主机 A 发送过来的请求,然后主机 B 将请求转发给主机 C,从而主机 A 和主机 C 就能够进行通信了。
比如根据上面 frpc.ini 配置的 ssh 的内容,可知主机 A 通过 ssh 访问主机 B 的 20022 端口的时候,主机 B 会把该请求转发给主机 C 的 22 端口,因此主机 A 和主机 C 就建立了 ssh 的连接。
举例:
Windows 中 openssh 的下载地址是:mls-software.com[2],安装完成之后,可以直接在 powershell 的命令行中调用 ssh 命令。
现在通过主机 A(WIndows7)进行 ssh 访问,我们还知道主机 B 和主机 C 都是 linux 系统。
假设主机 C 中有两个用户,一个用户的用户名是 acat,另一个用户的用户名是 oracle,
那么 ssh 命令的格式是为:ssh -p 公网的转发端口 主机 C 的用户名 @公网的 ip
同样,可以使用 SFTP 协议传输文件,相当于是使用 SCP 命令来完成这种操作,因为 SCP 相当于是传输文件的过程中加了密。
命令格式:
把主机 A(本地机器 WIndows7)上的文件传到主机 C:(注意这里的 P 是大写的)
scp -P 公网的转发端口 主机 A 文件路径 主机 C 用户名 @公网 ip 地址: 主机 C 文件路径
拉取主机 C 上的文件到主机 A(本地机器 Windows7)中:
scp -P 公网的转发端口 主机 C 用户名 @公网 ip 地址: 主机 C 文件路径 主机 A 的目录
PS:
配置为服务
- End -
近期课程上新:
web架构安全分析 | Windoes Server系统管理 | 文件上传漏洞 | 日志审计系统 | 服务器提权与隧道技术 | VPN技术 | 渗透测试导论 | 安全化概述与虚拟化 | 跨站脚本攻击 | 企业组网IP规划与安全防护
原文始发于微信公众号(网络安全学习圈):使用frps和frpc实现内网穿透
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论