群晖入门到进阶系列(二):DDNS与端口转发

  上一篇讲完了黑群晖的安装、洗白与局域网唤醒,此时的群晖还只是一个内网的服务器,如何做到在外地也能访问到家里的群晖呢?我们可以利用 DDNS 与端口映射,让你能够在外地访问到你的群晖服务器,当然前提是:电信与联通的宽带才能够获得动态公网 IP,移动与长城宽带的大内网,请忽略此文,移步至内网穿透。本篇文字较多,针对新手对一些概念进行科普,因此会尽可能的描述通俗。

公网 IP

怎样确定自己有没有公网 IP

  当然,这里讲到的公网 IP 都是指的动态公网,重新拨号这个 IP 就会变化。
  我们可以通过一些 IP 地址查询的网站查询到自己当前的 IP,Alliot 一般使用 IP.SB ,访问这个网站可以得到自己当前在公网的 IP,对比自家光猫或路由器(这取决于你使用哪个拨号)显示的外网 IP 或 WAN 口 IP,如果相同则为已有公网 IP,否则,需要向运营商申请。

怎样申请动态公网 IP

  一般来说,即便你是电信或联通的宽带,运营商默认也是不会给你分配动态公网 IP 的,需要向运营商提出申请,根据地区不同,申请难易程度不同。
  少数地区可以通过公众号或装维师父直接联系申请,大部分地区需要拨打人工客服(电信 10000,联通 10010)以“家中要安装家庭网络摄像头”为理由申请动态公网 IP(千万不能说是服务器或其他设备),少数地区可能一次无法申请成功(很多客服不清楚动态公网 IP,所以可以尝试多换几个客服),申请成功后重启光猫即可。   

光猫改桥接

  一般来说,运营商为了减少报障率,默认的宽带拨号都是在光猫里,且锁了光猫超级管理员,防止用户私自更改配置导致宽带故障。为了后面我们的 DDNS 与端口转发,我们最好将宽带拨号的任务交给我们的路由器。这一个步骤也有些麻烦,能不能改桥接得看你的光猫型号或是地区运营商的策略。如果你的光猫型号是较为老的光猫,网上有如何破解超级管理员密码的方案了,那么直接按照教程关闭 DHCP 改为桥接模式即可(记得记录光猫里的宽带账号信息,密码可以通过人工客服重置)。但是如果是较新的光猫,暂时没有破解的方案的,除了换光猫以外,最简单的方法就是直接拨打人工客服(电信 10000,联通 10010)让其将光猫改为桥接模式,这和申请公网 IP 一样,也看地区,看客服,部分地区很爽快直接就给改了,部分地区也需要软磨硬泡。成功改桥接后也需要重启光猫生效。

路由器拨号

  Alliot 的路由器是前些日子 80 包邮淘的“友华 WR1200JS”,使用的是 hiboy(H 大)的 padavan 固件,所以以 padavan 为例(其他路由器基本都是打大同小异,甚至更简单):
  在“外部网络(WAN)”中填入家里的宽带拨号账户与密码,应用即可。
  群晖-路由器拨号.png

端口转发

为什么需要端口转发

  拥有公网 IP 后,我们还不能够直接访问到我们的群晖服务器,因为拥有公网 IP 的是我们的拨号设备,也就是路由器,路由器会通过 DHCP 分配内网 IP 给我们的设备,这样一来,在公网仅仅只是能够访问到路由器,我们需要在路由器与群晖服务器之间建立一个桥梁,让我们通过公网 IP 就能访问到内网的群晖等服务器,这就有了端口转发,端口转发简单来说就是将一个 IP 的端口与另外一个 IP 的端口对应起来(这个端口可以自定义),建立了从这个端口到那个端口之间的通道。
  此外,端口转发也能够将一些常用服务的端口转发到不常用的端口,避免被机器批量扫描,起到一定的安全保护作用。

配置静态 ARP 绑定

  静态 ARP 绑定的作用是将内网的机器 MAC 地址与对应的 IP 固定起来,方便我们做端口转发,依旧以 padavan 为例:
  在 “内部网络(LAN)” 的 “DHCP服务器” 页,勾选底部如图中的“启动手动设置功能”,选择群晖的 MAC 地址、填入 IP 地址,点击 + 号(很重要),再“应用本页面设置”即可:
群晖-路由器arp绑定.png

配置端口转发

  在 “外部网络(WAN)” 的 “端口转发(UPnP)” 页,依图所示开启 UPnP 以及手动端口映射,添加需要映射的端口:
群晖-路由器端口转发.png
  这里的外部端口可以自己定义,内部端口则应该对应群晖对应的服务所用的端口。
  下面列举群晖常用的几个端口:

服务名端口
DSM控制台(HTTP)(不建议转发)5000
DSM控制台(HTTPS)5001
Active-Backup5510
Drive同步端口6690
WebDAV5006
ssh/sftp(不建议转发)22

注: 在我们天朝,Web 等服务是收到严格管控的,因此,Web 服务用到的 80/8080/443 端口以及其他一些端口都是处于封锁状态(当然,部分地区可能没有,但是一旦被扫描到有架设 Web 服务,轻则封端口、收回公网 IP,重则断宽带、有关部门请喝茶),所以不要在公网转发使用这些敏感端口。

DDNS

什么是 DDNS

  这里首先我们要了解域名与域名解析的概念。什么是域名呢?现在你浏览器的顶栏显示的 www.iots.vip 就是 Alliot’s blog 的域名,通过 ping 域名,会发现返回信息的实际上是个 IP,域名与 IP 的关系,就好比你的姓名与身份证号码(可能用门牌号更贴切)的关系,目的是为了方便记忆(当然还有其他更多的作用,但是在我们这里最大的作用就是方便记忆),你想象一下如果这个世界用的都是身份证号码来叫人,那老师上课点名就会变成 “110101995XXXXXXX1” “到”,非常的不方便。
  那什么是 DNS 呢?DNS 即域名系统,还是以姓名、身份证号码为例,DNS 就好比公安局的身份证信息数据库,利用这个数据库你能够通过某人的姓名找到他的身份证号码。 而 DDNS 动态域名解析就像是你的身份证号码变了,你要向公安局的这个数据库更新你的新身份证号码,我们所说的域名解析就是将 IP 提交给域名系统。
  前面讲到我们的公网 IP 是动态的,每次重新拨号(运营商也会定期更改)都会变化,我们在外网通过这个 IP 来访问自己内网的服务器的时候,总不能每次都让家里人去路由器确认一下当前的 IP 再手动将 IP 做新的域名解析。
  这时候就出现了一种叫 DDNS 的方法,DDNS(Dynamic Domain Name Server) 即动态域名解析服务,就是利用程序获取当前的 IP 并调用域名解析的接口来自动解析新 IP 到域名,有了 DDNS,不管家里的公网 IP 怎么变,我们都能够利用域名来访问到家里的群晖服务器。

域名注册

  要做域名解析当然先得有域名,域名注册商很多,这里以阿里云万网为例。
  登录 阿里云万网域名注册,挑选一个你所容易记忆的域名,后缀选择一个冷门便宜的即可,最便宜几块钱一年。
群晖-万网域名注册.png

获取access key

  access key 是调用解析 API 的时候需要用到的,打开阿里云控制台的 RAM访问控制,如图处新建一个阿里云子用户,记得勾选编程访问:
  群晖-获取阿里云accesskey1.png
  群晖-获取阿里云accesskey2.png
  创建完子用户后,点击子用户名,创建新的 AccessKey:
  群晖-获取阿里云accesskey3.png
  之后将得到的 AccessKey ID 与 secret 保存备用。   

配置 DDNS

  DDNS 可以在内网的任意一个设备上做,因为我们的设备都处于同一个拨号环境下,得到的公网 IP 都是一样的。但是出于方便,Alliot 还是推荐在路由器上做 DDNS,因为只有路由器才是真正的 7*24 运行,而且 DDNS 配置完基本就不用动了,省去以后折腾过程中断网的风险,而且,在路由器上做 DDNS,可以实现在外网登录路由器唤醒我们的群晖。当然,部分朋友的路由器没有 DDNS 功能,后面 Docker 篇也会讲到如何使用群晖做 DDNS。
  依旧以 H 大的 padavan 为例,在“拓展功能”的“花生壳内网版”的“Aliddns”页,按照指引填写前面获取的 Accesskey ID 与 secret,以及我们想要解析的域名,假设我要解析的是 synology.iots.vip ,则“顶级域名”第一个框填入 synology,第二个框填入 iots.vip
  群晖-阿里DDNS.png
  保存应用配置后,我们还需要手动在阿里云解析 添加解析,DDNS 才能工作:
  群晖-阿里域名解析.png
注: 域名解析设置完成后,由于 DNS 缓存等原因,需要等待5 - 10 分钟去刷新缓存。
  然后重启我们的路由器,约两至三分钟后,可以通过 ping 我们的域名来确认域名是否成功解析为我们的公网 IP: \

1
2
3
# 按住 win 键 + R 输入 cmd  
ipconfig /flushdns # 刷新dns解析缓存
ping synology.iots.vip

结语

  至此,我们已经了解了怎样配置端口转发,并利用 DDNS 完成了公网 IP 解析的问题,下一篇将介绍针对 DSM 的一些小优化。