常常有人问我:
如果我家有两台 NAS 要怎麽从外头连线?我家有电脑也有 NAS,要如何从外头连回时能指定连到哪一台?
会有这样的问题,表示你需要的就是这篇文章要教你设定的通讯埠转发,也就是英文的 Port Forwarding。这个功能在每一台网路路由器上都有提供,能让你从外头连回家里时,透过通讯埠号(以下我全部用英文「Port」代称)来指定要连接到哪一台机器去。怎麽设定呢?请继续看下去~
目次
- 1 通讯埠转发(Port Forwarding)的用途
- 2 如何设定通讯埠转发
- 3 家里有两台 NAS 该怎麽设定?
通讯埠转发(Port Forwarding)的用途
Port 是什麽呢?说定义太复杂,我们用个生活化的比方吧!
Port 很像一栋大楼里的门牌号码,而你家对外的 IP,则是这栋大楼的详细地址。就好像你今天去寄信到一栋大楼中的某个单位,而大楼的地址是「台北市中正区凯德格兰大道一号」,於是你就在信封上面写了这串地址。但邮差把信送到这个地址并签收之後,里面的管理员要如何知道这封信要送到大楼里的哪个单位呢?
因此你除了地址之外,还得额外填写信件要送达的楼层、单位门牌号码等资讯,例如「七楼第 101 室」这样的资讯。而前述的大楼管理员,就是你家里的网路路由器,路由器後面安装的所有设备,就是你这栋「大楼」中的单位们,他们的通讯编号,就是前面说的楼层与单位门牌号码,也就是那个「七楼第 101 室」啦~
上图就是简单的路由器 Port Forwarding 架构示意图。当有从外部进来的需求被送到路由器时,这个需求会依据他的通讯协定(例如网页 http),或是使用者指定的 Port 号码,由路由器将这个需求依照 Port 号码送到指定的装置去。例如上面示意图(图有点小,你可以放大来看)里,我要远端桌面控制我家的 iMac Pro,就得使用 VNC 协定的 5900 Port 进行连线,路由器再将这个连线要求依照事先的设定,送到 Port:5900 的 iMac Pro 去;而当我要连线到我家的 NAS 听音乐时,我手机的 DS Audio App 则会要求连线到 Port:5000 的 Synology NAS 去,那麽路由器就会将我的登入需求自动转送到 NAS 了。
有了这样的机制,你就可以自由设定从外头连回家里时,要指定这个连线要通往哪台装置,并取用什麽样的服务了。但要使用这服务,你得先从路由器上将这些功能设定好才行。
注:上面这个楼层与门牌号码的比喻只是方便你了解 Port 的用途,实际上 Port 的解释还会稍微复杂一点,因为每台机器又有各自的 Port 号码可以设定,就好像李奥纳多的梦境那样一层一层又一层。所以上面的比喻你就看看认识一下就好,想要深究的话,请直接阅读相关的资讯喔!
如何设定通讯埠转发
每一台网路路由器都能设定通讯埠(有些称为连接埠)转发(有些写转送),有些则是写英文「Port Forwarding」,大家可以自己在你的路由器设定里找一下。至於家里还没有路由器,还依然把所有设备插在中华电信小乌龟上的,请买一台路由器吧!买一台好的路由器,才能解放你家那砸钱安装的光世代网路,也会让你发现…你一直以为是中华烂所以网路慢,其实都是你错怪中华电信了。
这里我用 Synology 的 SRM 介面来示范,因为这是我这边团购数量最大的无线网路基地台。其他品牌的可能也差不多,有问题再问我罗!不过要问我之前记得截图传过来,不然我会搞不清楚你在问啥。
开始之前,我们要先找到通讯埠转发的设定页面,例如下图 Synology SRM 就是放在「网路中心」=>「连接埠转送」里面,打开视窗後,点击「新增」来设定新的规则。很多人担心设定太多规则,会造成路由器的负担什麽的,但其实…你不用太担心这问题。以 Synology RT2600ac 来说,他规格表上写着可以设定最多 64 则转送规则,但实际上很多服务的规则是合并好几个 Port 来用的,而且一般你也没那麽多设备需要设定,所以请不要担心这个问题。
如果你设备真的多到需要设定这麽多 Port Forwarding 规则,那你直接传 Line 问我好了,我们来研究研究你为何会需要那麽多规则。
点击了「新增」之後,你会看到这里跳出一个设定新规则的页面,我们放大来看看:
最上面的名称与服务规则无关,那纯粹是个用来提醒你这个规则用途的标签而已,请设定你自己看得懂的词汇。下面的内部 IP 位置则要设定你想转送的装置 IP,例如我的 NAS 在 192.168.111.21 上,那麽这条规则就要把内部 IP 位置指定给他。
下面的外部/内部连接埠要特别注意,其中的「外部」是对外的 Port,「内部」则是对内的 Port,前者是给从外面进来的人看,後者则是给内部区网自己辨别的。会有这样的差异,是因为对外开放的 Port 未必对应了相同的内部 Port 号码,本文最後面有利用不同 Port 号码来对应类似服务的教学,对於那些家里同时有两台 NAS 的人来说非常好用,大家等等可以看一下。
不过一般来说我们家里的 Port 号通常都是一个对应一个的,所以非必要的话,直接两者设定成一样即可。另外,如果你的这条规则同时需要用到好几个 Port,例如 Synology DSM 可以选择 http/https 两种连线模式,分别使用 5000、5001 两个 Port,你就可以同时设定这些规则,两个 Port 之间用半形逗号分开即可。
最下面的 TCP/UDP 协定则是依照你要使用的服务来更改,这个资讯可以在 Port 连接表格里找到。就像下图这个:
所有 Synology 的个别服务都有对应的 Port 号码,其他品牌的 NAS 也是一样。至於其他的网路服务,例如电脑远端桌面、或是之前有介绍过的 ShadowSocks VPN 等也都有个别的预设 Port 号,大家可以用「XXX(服务名称) Port」的关键字 Google 一下,就能找到答案了。
再次提醒:传 Line 问我问题前请先自己 Google,不然我可能会不小心回你一些让你很受伤的文字,切记切记。
全部设定好之後,记得要按下「储存」之类的按钮,否则你刚刚设定的东西会全部消失,一整个悲剧。
家里有两台 NAS 该怎麽设定?
因为汰换新机器的缘故,我发现越来越多人的家里同时拥有两台 NAS。这时候就出现一个新问题:我从外面连回家里,我要如何指定连入哪一台 NAS 呢?先前有人跟我说他都用 VPN 连回家之後,再用区网 IP 来个别连线…嗯,这也是个好方法,但真的太麻烦啦!先前还有人直接改 DSM 预设 Port 的,但如果全部都这样改也实在是个大工程。想想既然我们有 Port Forwarding 这麽好用的服务,又岂能浪费掉呢?
要指定连接到不同装置而又不需要更改服务的预设 Port,其实还有个方法,就是对外不同 Port、对内用同样的号码。什麽意思呢?请先看下图左右两个设定:
左边是 NAS 1 号、右边是 NAS 二号,两着的 IP 分别是 192.168.111.21 与 192.168.111.121。我们在「外部连接埠」这边先分别用 5000,5001 与 5002 来区分,让连线从外部进来时,就能藉由不同的 Port 号码进到不同的 IP 去,让连线可以先行导入 NAS 1 号或 NAS 2 号。
接着我们再来设定「内部连接埠」,让这个连线能进到预设的指定 Port 号,来启用相对应的服务。如此一来,你就不需要更改装置或服务的预设 Port 号,而仍能从外头分别连线到不同装置了。
实际使用时,只要像上图这样,在你的 IP 或网址後面加上「:xxxx」,例如上图的「:5002」,就可以指定不同的 Port 号来连入不同的装置罗~
举例来说,我的一个据点拥有两台 Synology RT2600ac 分别负责两栋楼的区网,但两者的对外 IP 却是同一个(同一条光世代回路)。当我要分别控制两台 RT2600ac 时,我就利用上述的方法将 Port 设定成 8000(SRM 预设)(大楼一号)与 8002(大楼二号),这样就能藉由更换 Port 号来分别登入两台不同的 RT2600ac 罗~