(转载)利用frp实现内网穿透(内网端口转发)

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

frp的作用:

1、利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。
2、对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。

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

frp的下载地址:https://github.com/fatedier/frp/releases

今天我们演示的案例是穿透内网连接SSH或者3389远程桌面。

前提环境:

1、有一台公网服务器

2、有一台内网电脑

3、有一台公网或者内网的电脑

一、配置公网服务器的frp

这里我用的公网服务器是Linux的,所以我下载的是Linux amd 64位的frp_0.22.0_linux_amd64.tar.gz

解压后得到一堆文件,我们只保留frps和frps.ini两个文件,s表示的是server,即服务端

打开frps.ini,可以看到默认的只有一条配置:

[common]
bind_port = 7000
即绑定了7000端口,这个端口是用来跟内网的机器进行通讯的。我们不做改变,直接启动frp服务端,开始监听。

启动命令:./frps -c ./frps.ini

二、配置内网机器

这里我用的是Windows机器做测试,我们演示穿透3389端口。所以我下载的是Windows amd64位的frp_0.22.0_windows_amd64.zip

解压后同样得到一堆文件,我们只保留frpc.exe和frpc.ini,c表示的是client,即客户端

打开frpc.ini,可以看到默认的配置内容如下:

[common]
server_addr = 127.0.0.1
server_port = 7000

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

server_addr表示公网服务器的ip地址,比如我们的公网ip是x.x.x.x

server_port表示的服务器监听的端口,即frp服务端跟客户端通讯用的端口,我们之前配置服务端的时候没有修改,用的就是默认的7000

[ssh]这个节点名是可以随便修改的,然后下面的定义的就是客户端的信息,比如通讯协议,这里是tcp,然后是本地ip,直接用127.0.0.1就可以了。

再接着是本地监听的端口,比如我们这里演示的是穿透3389,那么这里就把22改成3389,然后是远程端口,即公网服务器哪个端口会指向我们本地的3389,假如我这里不改,使用默认的6000

修改后的配置如下:

[common]
server_addr = x.x.x.x
server_port = 7000

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

然后我们启动frp客户端程序(需要在cmd下运行):frpc -c frpc.ini

同时我们在frp服务器上也可以看到有新的客户端连接上来了

接下来我们打开mstsc远程桌面,输入我们公网服务器的ip加:6000,然后连接,此时连接就会自动指向我们内网的客户端机器。这样我们就实现了穿透内网连接远程桌面。

原文地址:https://www.hostloc.com/thread-514392-1-1.html

» 本文链接:(转载)利用frp实现内网穿透(内网端口转发)
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。