TeamViewer被国内某厂商代理后,哪怕自用也会被弹出商业用途,加之这类软件通常很臃肿,我便将目光转移到了自己部署一台跳板机上,用来随时随地操控只有内网IP的办公电脑。

背景&介绍

由于工作需求,经常需要远程操作我的办公电脑,这是一台能够访问外网,但是并没有独立外网IP的电脑,市面上有许多成熟的解决方案,比如TeamViewer之流,但是思前想后,还是打算把我刚刚购买的腾讯云国内云服务器派上用场,搭建一个内网穿透,也可以称之为跳板机。


找了一阵子之后,基本就把目标锁定在了ngrok和frp上了,稍微搜索了一下两者,在v2ex的一个讨论帖(https://ko.mk/m4adf)上,我觉得似乎frp在部署方面应该更简单一些,事实上也确实如此,整个搭建过程,大约只花了10分钟。

frp

项目主页:https://github.com/fatedier/frp
官方介绍:A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.

开始部署

环境要求

在此我只按照我的理解进行阐释,或许有些偏差,还望见谅。
我们需要将电脑分为frp服务端及frp客户端。
frp服务端:外网独立IP(个人认为NAT但是固定IP也可以),我们用它作为跳板。
frp客户端:内网IP,我们需要在外网访问的目标,但是它本身也需要具有外网访问能力,至少至少,它要能够访问frp服务端。
frp的系统支持方面,我们从下图可以看到,还是非常全面的。
frp-github.png


下载

Release:https://github.com/fatedier/frp/releases
在这里你能找到官方发布的最新版本,我们根据自己的服务端/客户端平台进行下载即可。本文中笔者部署时,服务端/客户端均为Windows x86系统,因此直接下载了frp_x.xx.x_windows_386.zip。


修改配置

我们解压下载后的Windows版本,可以看到分别有frps和frpc明明的共计6个文件。其中frps_full.inifrpc_full.ini文件,因为我只需要最简单的功能,所以我并没有使用,如果你有兴趣可以自己根据文件里的描述进行修改使用。
首先修改服务端,我们打开frps.ini,看到如下代码:

[common]
bind_port = 7000

其中bind_port指frp服务端监听的端口号,frp客户端将通过这一端口进行连接,这里我们可以按需设置,建议修改,不要使用默认端口号,防止有人心怀不轨。
接着修改客户端,我们打开frpc.ini,看到如下代码:

[common]
server_addr = frp服务端外网IP地址
server_port = 上文中设置的bind_port端口号

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 按需设置
remote_port = 按需设置

我们需要注意的是local_portremote_port,前者的设置根据我们的具体需求,比如笔者的需求是在外网访问内网电脑的远程桌面,那么我们就设为远程桌面的3389端口;后者则可以自定义,比如我们设为1234,那么我们访问frps服务端外网IP:1234的时候,就会被转发至frps客户端的3389端口。


运行

我们分别将frps.ini,frps.exefrpc.ini,frpc.exe拷贝至服务端和客户端。
在服务端我们在任意位置创建如下.bat文件:

@echo off
start  "C:\Windows\System32\cmd.exe"
cd C:\   #这里是你存放frps.exe的位置
frps -c frps.ini
exit

在客户端我们在任意位置创建如下.bat文件:

@echo off
start  "C:\Windows\System32\cmd.exe"
cd C:\   #这里是你存放frpc.exe的位置
frpc -c frpc.ini
exit

接着我们分别运行这两个.bat文件,此时我们在其他外网的计算机上,通过Windows远程桌面,访问frps服务端外网IP:既定端口,就直接变成了连接frpc客户端的远程桌面,实现了外网连接内网远程桌面。

Last modification:July 10, 2019
If you think my article is useful to you, please feel free to appreciate