很长一段时间里,我一直是同时使用多台设备工作的,但这种工作流比较令人恼火的是,我必须要一直把这些电脑都带在身边——当你同时有两台游戏本和一台 Mac Book Pro 的时候,即使你的力量可以轻松负担这几块砖头加在一起的重量,你也要掂量掂量你的包能不能扛得住。所以,我常常会想,如果能只带一台电脑、远程操控其他设备就好了。
然而,基础的计算机知识告诉我们,除非是位于同一个局域网中,否则想要访问一台设备就需要公网 IP,而国情在此显然想要拿到公网 IP 也不是什么简单的事情。于是我就想,那能不能曲线救国,搞到一台服务器进行转发呢?好奇心驱使下我进行了相关资料的检索,发现这种技术早就有了,那就是内网穿透。
本文的重点不是介绍内网穿透的各种技术细节——我也不懂这些。事实上,现在想要做内网穿透也不需要懂这些,因为现有的一些工具已经可以让我们十分轻松地完成这一过程。而我在搭建内网穿透过程中使用的工具,就叫做 frp。
1 前置条件
使用 frp 进行内网穿透的前置条件其实非常简单,那就是除了你要访问的本地机器之外,还要有一台有公网 IP 的服务器。服务器还是比较好搞,在阿里云这种大的厂商那就可以买到。值得一提的是,做内网穿透的服务器其实并不是很需要高配,更重要的参数是带宽,小水管服务器使用起来势必体验很差,所以我比较推荐买一个 2 核 2 G 的丐中丐服务器,然后把带宽设置为按量计费。
另外,使用 frp 可能会用到一些不常用的端口,所以可以在安全组配置里直接开放所有端口,
接着,我们分别在本地机器上和服务器上下载对应版本的 frp,下载地址就在官方仓库的 release 中。下载后解压即可。
2 服务器配置
使用 frp 的时候,服务器和本地机器上都需要编写相应的配置文件。服务器这边的配置相对来说比较简单,我们可以在家目录下创建一个 frps.toml
:
|
|
然后,我们 cd 到刚才解压的 frp 文件夹,这里你应该可以找到 frps
这个二进制文件。运行 frps -c ~/frps.toml
即可。
3 本地机器配置
本地机器同样需要这样一个配置文件。我们可以在家目录下创建一个 frpc.toml
:
|
|
然后,我们 cd 到解压好的 frp 文件夹,这里你可以找到 frpc
这个二进制文件。运行 frpc -c ~/frpc.toml
即可。
4 开始享受
此时,我们的服务就算是跑起来了。我们可以尝试着 ssh 到我们的本地机器:
|
|
需要注意的是,如果你是要远程连接到你的 mac,可能需要先在通用 -> 共享 -> 高级中打开远程登录。
我们还可以在本地的 8080 端口跑一个服务器,然后就可以通过 <your-server-ip>:8080
访问到这个服务。