由于工作性质的原因,经常会出现不在办公室,但要使用办公室电脑查找、收、发资料的情况,曾使用过许多比如HiPC等远程访问本地文件的方案,但都不尽人意。一直在想,如果可以用手机远程桌面,那应该很方便。我知道Microsoft出过Android远程桌面的APPRemote Desktop,但一台套多层NAT的内网PC如何实现远程访问呢?

内网穿透或许是唯一的方法。

如果我没记错的话,有很多提供内网穿透的第三方服务,比如“花生壳”,还有许多个人提供的frp内网穿透服务。我不用的原因有三点,1、安全问题,远程控制电脑这么高权限的操作,服务器在别人手上,谁知道哪天你的电脑就被别人登录了,给你的资料改了或者造成泄密,那问题就严重了(或许大厂花生壳不会,但谁知道呢)。2、流量限制,所有第三方服务端都有这样那样的限制,说不定哪天你开开心心的用着用着就给你限制了。3、稳定性,也不知道哪天用着用着服务器就关了,或者维护,就算能使用,也可能存在严重丢包的情况,就算不丢包,PING值延时也高。

我也曾想过自己搭建服务端,但我想了想,应该会很复杂,所以一直没有深入研究,直到……过完年上班没什么鸟事,研究了一下,正好我家庭网络有公网IP,正好我的路由器已刷好OpenWRT,绑了个免费的动态域名,可以直接安装frp服务端,于是自己搭建了一套frp服务。那么就开始记录这个过程吧!

frp是一个开源项目

官网地址:https://gofrp.org/zh-cn/

GitHub地址:https://github.com/fatedier/frp

frp分为服务端和客户端,服务端安装frps,客户端安装frpc

frps服务端:

由于我的服务端部署在openwrt上,可以直接在系统->软件包->更新列表->过滤器中输入luci-i18n-frps-zh-cn点击安装就行了,安装完成后在服务中找到frp服务器,可以看到frp 服务器 运行中,由于我只是用做远程桌面使用,所以设置的地方也不多,只是为了安全起见改了一下绑定端口,再添加一个令牌保存并应用就OK了,然后在网络栏的防火墙中的网络通信中添加两个接受入站的通信规则,一条是frp服务器绑定的端口(即frps服务端bindPort),另一条是frpc客户端remotePort转发的端口,保存并应用,这样就完成了服务端的设置。

frpc客户端:

客户端我直接部署在Windows的PC上,下载 frp_0.54.0_windows_amd64.zip,解压frpc.exefrpc.toml两个文件到任意目录,比如C:\Frpc,编辑frpc.toml文件:

serverAddr = "rdp.youname.com"	# 服务端域名或者IP
serverPort = 7000		# 服务端绑定的端口(即frps服务端bindPort),与服务端一致
auth.token = "123456"		# 服务端设置的令牌,与服务端一致

[[proxies]]			# 不可更改
name = "RDP"			# 名称(可随意填写)
type = "tcp"			# 连接类型(不可更改)
localIP = "127.0.0.1"		# 本机IP(如果要远程内网的其他PC填写其他IP,如:192.168.1.101)
localPort = 3389		# 开启远程桌面的固定端口
remotePort = 7001		# frpc转发3389的端口(即openwrt通信规则中开启的第二条`接受入站`规则端口),与服务器开放的端口一致

保存,在存放frpc.exefrpc.toml目录的地址栏输入CMD回车启动命令行,输入frpc.exe -c frpc.toml,如果没有报错,表示成功启动了frpc内网穿透功能,关闭此命令行窗口即停止frpc服务。

接下来,开启远程桌面服务,点击windows左下角开始->设置->系统->远程桌面->启用远程桌面

另外,如果你的windows账户的没有密码,是无法远程连接的,所以请为你的windows账户设置一个你记得住的密码。

手机上安装Remote Desktop(奇怪的是在google play中很难搜到这个APP),打开APP点击右上角的+添加电脑,电脑名这一栏填写域名或IP加上转发的端口号(例如:rdp.youname.com:7001),确定点击新添加的电脑进行连接,输入远程windows账号和密码就可以在外网远程控制你内网的windows了。

这样就算是部署完成了,但作为完美主义者怎么能忍受一个命令行窗口在桌面呢,再加上如果开机静默的自启动那就更完美了,网上也能找到相关教程,开干。

在frpc文件目录新建一个start.bat文件(文件名可随意,后缀为.bat),编辑start.bat文件:

@echo off
:home
frpc.exe -c frpc.toml
goto home

此电脑->右键->管理->系统工具->任务计划程序->右侧创建任务

->在常规页->名称->填写Frpc(可随意填写)->安全选项->选择不管用户是否登录都要运行->勾选使用最高权限运行->勾选隐藏

->在触发器页->新建->开始任务选择启动时->勾选已启用->确定

->在操作页->新建->操作选择启动程序->程序或脚本浏览找到C:\Frpc目录(你存放frpc客户端文件的目录)新建的strat.bat文件->打开->起始于(可选)输入C:\Frpc(你存放frpc客户端文件的目录)->确定

->在条件页->勾选只有在以下网络连接可用进才启动->选择可用于连接外网的网卡(例如网络1)->确定->此时会弹窗,提示你输入管理员账户的密码->输入密码->确定

重启你的电脑,在任务计划程序->任务计划程序库中查看Frpc任务的状态是否显示正在运行(如果显示的不是正在运行,那说明你设置错了)。

开机后不会弹出命令行窗口,但实际上frpc服务已开机自启动了。

为了安全起见,建议不定期修改令牌和远程桌面的端口,是的,三个端口都要改。

windows修改远程桌面端口

win+R->输入regedit->找到计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp目录下的PortNumber->双击打开->切换到十进制修改端口号->确定后重启电脑生效。

本地C:\Frpc\frpc.toml文件和服务器都要修改成一致的令牌和端口号。

国内下载地址:

下载地址:win Frp + android RD客户端 密码:666