4a1e309113c141496440562df840b349
内网穿透实现远程访问 NAS

随着智能设备的普及,我们的家中放置了 NAS、电视盒子、摄像头、路由器等各类智能设备。有时候我们不在家中的时候,比如在公司也想控制家中的设备。

  • 通过远程访问路由器中搭建的 Aria2 下载工具,操作路由器下载自己喜欢看的电影,这样回家就能直接看了;
  • 通过手机访问家中 IP 摄像头;
  • 远程访问 NAS 中的相册、视频和音乐文件,通过手机远程播放 NAS 中自己下载的音乐;
  • 远程通过局域网唤醒打开家里的电脑,并通过远程桌面访问和操作家庭中电脑;
  • 电脑上本地开发的网站和系统,在不发布服务器的情况下,让其他人也能访问。

实现这些,其实我们需要一个暴漏的 IP 地址,就像门牌号一样,通过这个地址,我们在任何连接互联网的设备上,可以自由访问。但是不幸的是,门牌号数量有限,并不是每个人都有一个独立的门牌号,存在一个小区一栋楼公用一个公网 IP 地址的情况,这些人就如果需要访问家庭中的设备,必须找一台公网服务器进行转发。

确定是否为公网 IP

访问 IP.gs,根据显示的 IP 地址,然后登陆路由器,确定是路由器中 WAN 获取的地址是否一致。如果不一致,那么你的宽带并没有分配公网 IP,需要进行内网穿透。

Frp 介绍

内网穿透的原理大概可以理解为找一台有公网 IP 大家都可以访问的服务器,然后你的 NAS 通过互联网连接到这台服务器,并告诉服务器,一定规则的数据请求转发到 NAS 上。这样当你按照这个规则使用另外一台电脑访问公网服务器时,公网服务器就把你的请求数据通过互联网告诉 NAS。这就要求 NAS 需要一直和公网服务器进行连接。

Frp 是一个开源的实现内网穿透的工具。支持 TCP、HTTP 和 HTTPS 协议,能够满足大部分软件通过穿透后,进行远程访问。你需要在分别安装 Frp 客户端软件和服务器端软件并进行相应的配置。

鉴于不是所有人都有服务器,本文末提供一台我搭建好的服务,你只要调试客户端配置文件就可以进行简单的使用,如果你对穿透的连接速度又更高的要求,还是建议自己购买搭建 Frp 服务端程序,这样也可以分享给朋友使用。

我们先说客户端的配置,客户端一般是一台 24 小时打开的设备,比如路由器、NAS,当然也是支持 Windows、MAC、Linux 等系统。不管使用什么系统,配置文件的内容都是一样的。

配置文件

  • 首选需要确认穿透的服务使用的协议类型,一般情况下使用浏览器打开的为 HTTP/HTTPS。表格列出常用场景的一些穿透协议。

  • 配置后编辑配置文件,以群晖管理界面、路由器管理界面和 SSH 为例,其中群晖的局域网 IP 地址为:192.168.1.100。(**** 内容请见文末)

  • 中括号除了 [common] 部分,每块代表一个穿透的应用,所以中括号部分的名称不能与其他人的重复;

  • http 协议的应用通过 custom_domains 字段区分跳转到不通的应用。比如当我输入 wifi.yc88.me 的时候会跳转到路由器管理界面,当输入 nas.yc88.me 时,会跳转到群晖的管理界面,所以 custom_domains 不能和其他用户的重复;

  • tcp 协议的应用通过 remote_port 参数进行区分,因此这个也不可以与其他人的重复。

```shell
[common]
server_addr = *
server_port = *
privilege_token = *

[1022]
type = http
local_port = 5000
local_ip = 192.168.1.100
custom_domains = 1022.7192.tk

[1023]
type = http
local_port = 80
local_ip = 192.168.1.1
custom_domains = 1023.7192.tk

[1024]
type = tcp

top Created with Sketch.