欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

内网穿透神器frp——实现在家远程办公

程序员文章站 2024-03-15 19:46:18
...

同学们是否经常遇到这个问题,我期望在家里访问公司的电脑。但是公司的电脑是部署在内网,ip经过NAT的转换,根本无法知道哪一个是自己的设备。这个问题的解决方案之一就是使用内网穿透工具。今天就要介绍我们在如何使用mac电脑远程你的windows电脑_rdp,mac,windows_黄腾霄的博客-CSDN博客里最后提到的工具——frp。


fatedier/frp 是一个可用于内网穿透的高性能的反向代理程序。

其最突出的一个特点是支持内网穿透。

Frp原理

为什么frp能够做到内网穿透呢?

传统方式

我们先看一下传统的反向代理工具,例如Nginx。

当用户从公网访问web服务时,经过反向代理服务,将请求转发给实际运行后台程序的服务器。

但是需要注意的是,这种反向代理方式的配置都集中在服务端。

也就是说,Nginx知道各个服务实际运行在哪里。

内网穿透神器frp——实现在家远程办公

但是,考虑这种更据现实情况。你的app服务运行在公司内网,而你手上只有一个远在美国的vps。

你在vps上部署的Nginx,根本没有办法知道你在公司内网中的设备。

Frp方式

那么有同学就会想,既然我vps有公网IP,那是不是可以让我,内网的设备主动到vps上面,注册一个服务呢?

没错,frp就是这样做的。

如下图,frp的服务端可以就是一个部署在公网的服务注册中心。

frp客户端,从内网连接frp服务端,然后注册自己的服务。

frp服务端将这个服务对外暴露,并将外部的请求转发至frp客户端。

这样,外网就可以访问内网设备部署的服务了。

内网穿透神器frp——实现在家远程办公

使用Frp配置远程桌面(Tcp模式)

如上所述,有了frp,我们只需要将内网设备的远程桌面服务端口(3389)通过frp服务端向外暴露即可。

1. 配置frp服务端

Releases · fatedier/frp下载你所需要的release版本。

在你的服务器上直接按照默认配置运行下面的代码即可

./frps -c ./frps.ini

2.配置frp客户端

在你对外提供远程桌面服务的内网pc上,运行frp客户端,配置如下

# frpc.ini
[common]
# 你的frp服务器的公网ip
server_addr = x.x.x.x
# 你的frp服务器的默认端口
server_port = 7000

[rdp]
type = tcp
local_ip = 127.0.0.1
# 远程桌面的端口号
local_port = 3389
# 远程桌面服务暴露在服务端的端口号
remote_port = 6000

然后调用启动命令

./frpc -c ./frpc.ini

3.远程桌面连接

此时你就可以通过微软的远程桌面客户端进行连接了

在另一台设备上使用你的frp服务器的公网ip+远程桌面服务暴露在服务端的端口号进行连接

内网穿透神器frp——实现在家远程办公


参考文档:


本文会经常更新,请阅读个人博客原文: https://xinyuehtx.github.io/ ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

内网穿透神器frp——实现在家远程办公 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名黄腾霄(包含链接: https://xinyuehtx.github.io/ ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系