用第三方服务如 TeamViewer、向日葵之类的就不说了。全程无脑操作。缺点就是可能收费,而且会绕路到第三方的服务器,大多数时间都感受不到丝滑的操作体验。
那如果我们想要像在内网里一样,从外网直接访问的家里的Mac时也有丝滑的体验,并且不倚赖第三方服务的话,一般要怎么做呢?
概述:
因为Mac的远程服务用的就是VNC协议,所以做一下网关上的端口转发,通过公网地址直接访问就可以了。没有VNC工具的平台使用后REALVNC的VNCViewer。
不懂得具体怎么操作的可以往下看。
先决条件:
1. 家中的网路暴露在公网。
2. 网关(路由器)支持设置端口转发。
3. 有一个私有域名来跑DDNS服务。(可选)
4. 网关(路由器)支持设置DDNS。(可选)
好吧,其实只要家里的网可以拿到公网IP就行了。
怎么做呢:
首先我们开启了Mac的远程共享,就可以从内网远程过去了,这一步很简单。不会的话随便搜一下就有很多教程了。
那在外面的话,我们就要通过公网地址来访问了。
1. 获取家里的公网地址
可以在网关(路由器里查看),或者访问 https://www.ip138.com/ 或者类似的网站来查询。
2. 网关(路由器)设置端口转发
Mac远端服务用的是vnc协议,所以需要转发 5900的TCP和UDP。
以梅林固件为例,在“外部网络WAN”设置里选到“端口转发”。
通讯端口范围是外部连接进来使用的端口,随便设置一个就好,建议设置高端口,比如15900。不建议设置为默认的5900.
本地IP是被远端Mac的内网IP,有下拉框可以选。
本地通信端口就是5900,协议选BOTH,因为vnc协议TCP和UDP都有用到。
设置完成后保存。
3. 从外网电脑连接
拿到公网IP,设置完端口转发后,就可以从外网远程过去了。
- 操作电脑是Mac的话
打开Finder,在菜单里选“Go” -> "Connect to Server..." (或者直接按 Command + K)。
在弹出的对话框的地址栏里输入 “vnc://{公网IP}:{通信端口}”
比如我们公网IP是 "114.114.114.114", 刚才设置的通信端口范围是 "15900",那就输入 "vnc://114.114.114.114:15900"。
Boom, 然后就和在家里远程一样的操作就好了。
- 操作的是其他设备的话?
Ubuntu Desktop之类的操作系统也自带vnc工具,用一样的地址去连就好了。
如果是Windows之类没有自带vnc工具的话,就直接借用REALVNC他们家的 VNCViewer就好了。
下载地址 https://www.realvnc.com/en/connect/download/viewer,下载安装完,还是用 “vnc://{公网IP}:{通信端口}” 去连接。
到这里我们就可以正常的从外网远程回家里的Mac了。
4. 动态域名解析(DDNS)
很多ISP每次拨号完之后拿到的公网是变的,比如电信。每变一次,都要重新查看公网IP很烦。
可以在路由器上设置一个DDNS,每次IP变化时,更新域名的绑定。就可以通过域名来方法啦。
我的做法是从阿里云上买了一个域名,再通过改版梅林里的扩展功能,设置了通过阿里云API自动更新域名的方法。
不同设备都有不同的做法,这里就不说啦。