【内网穿透】利用开源的 FRP 简单实现一个内网穿透效果

利用开源的 FRP 简单实现一个内网穿透效果

frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。linux

frp 的做用git

1.利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。github

2.对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名能够共用一个80端口。shell

3.利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里经过 ssh 访问处于公司内网环境内的主机。centos

以 Centos 7.6 为例,咱们来实现一个简单的内网机器到 公网 IP 的端口映射,使得内网的机器能够在外部进行访问。安全

须要一台有公网 IP 的映射机器,咱们这里用的是一台 阿里云的 centos 7.7服务器

下面进入正文:架构

  1. 下载编译好的 release 版本 frp 文件。

根据对应的操做系统及架构,从 Release 页面下载最新版本的程序。ssh

将 frps 及 frps.ini 放到具备公网 IP 的机器上。tcp

将 frpc 及 frpc.ini 放处处于内网环境的机器上。

centos64位下载amd64,写这篇文章的时候,最新版本是0.29。因此执行:

wget github.com/fatedier/fr…

解压:tar -xvf frp_0.29.0_linux_amd64.tar.gz

cd frp_0.29.0_linux_amd64

2.配置 Server 端(用来代理的 那台 阿里云公网 IP 服务器)

修改 frps.ini 文件,这里使用了最简化的配置:

frps.ini

[common] bind_port = 7000 注意:7000端口要开放,(下方有详细解释怎么开放系统端口) 启动 frps:

nohup ./frps -c ./frps.ini & 3.配置 Client 端(咱们的内网服务器)

修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x;

这里是指将内网的22端口映射到公网的6000端口上

frpc.ini

[common]

server_addr = x.x.x.x

server_port = 7000

[ssh]

type = tcp

local_ip = 127.0.0.1

local_port = 22

remote_port = 6000

注意:公网服务器6000、7000端口要开放 (在阿里云的机器,点击“配置安全组”,在“配置规则”里假如两条安全组规则,)

image.png

同时,在 centos 的防火墙里,咱们要开放这两个端口设置成对外可访问的。

分别执行这三条命令:

firewall-cmd --zone=public --add-port=6000/tcp --permanent # 开放 6000 端口

firewall-cmd --zone=public --add-port=7000/tcp --permanent # 开放 7000 端口

firewall-cmd --reload # 重载防火墙设置

启动 frpc:

nohup ./frpc -c ./frpc.ini &

上面是吧公网服务器的6000端口映射到内网服务器的22端口,这样就能够随时使用ssh链接内网服务器了。

  1. 咱们测试下,使用 xshell,利用公网 IP 来登陆。 [用户名] : [密码]@X.X.X.X:6000

image.png

成功了,咱们经过公网 IP 链接到了一台内网的机器!

写在末尾:此次只是简单使用下,几步就成功了。这个工具功能还很强大有待使用挖掘。若是你们跟着这篇教程作了以后还有问题,或没法成功,欢迎下方评论留言,我会及时回复~

相关文章
相关标签/搜索