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

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


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

frp 的作用

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

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

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


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

需要一台有公网 IP 的映射机器,我们这里用的是一台 阿里云的 centos 7.7

下面进入正文:

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

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

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

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

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

wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz

解压: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连接内网服务器了。


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

image.png

成功了,我们通过公网 IP 连接到了一台内网的机器!


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

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero

Copyright liuyang1.com. 转载文章,请注明出处。谢谢!