本内容来源于@什么值得买APP,观点仅代表作者本人 |作者:纵笔浮生
写在前面
前面讲完了软路由的搭建及内网部署,一直没有设置外网穿透,最近有空,再折腾一下。
DDNS和域名还是非常关键的,无论你是折腾软路由、安装windows虚拟机、远程访问NAS、远程访问摄像头,都需要此配置部署。而且还将域名注册给大家做个简单分享,本文可以通过几部简单的设置就可以实现随时在外面随时访问家里的设备,还增加了威联通、群晖NAS、软路由、emby等系统的远程访问 。
感兴趣的可以收藏备用哦~~
一、何为公网 IP ?
1.内网与公网?
内网俗称为局域网、私网和 LAN,相对公网而言,内网是指小范围内的计算机、手机等设备的网络互联。例如路由器和连接路由器的手机、平板、电脑就组成了一个家庭内网。
公网IP简单来说就像家里的地址一样,如果想从外面访问家里的NAS,首先要有一个地址,这个地址就是公网IP。但是公网 IP 数量有限,运营商很多时候只给的内网IP。家里安装的是上海电信黑色的 SDN 光猫,也叫 SDN 网关, 其网页后台没有任何设置功能,并且是由光猫进行PPPOE拨号,那么下面要做的就是下面三个:
①获取电信提供的上网账号密码。
②光猫改桥接
③让电信分配公网IP地址。

2.光猫桥接
光猫的作用是进行光电转换,将光纤传输的光信号转成电信号。现在很多光猫还包含无线路由器和智能网关等功能,满足家庭基础的上网需求。光猫要进行PPPoE 拨号和 NAT 转换,由于光猫配置不高导致执行这些工作的效率降低,也会影响网络性能。
光猫桥接最根本的原因就是让处理能力更强的路由器分担压力,光猫桥接后光猫将不再承担路由处理功能,仅担任光电转换和信号传输功能,这样就能充分发挥无线路由器的性能了。

光猫修改桥接模式,最简单的方式就是拨打客服电话,让客服人员远程修改,修改后重启一下光猫就可以了,然后无线路由器设置上网方式为 PPPOE,输入宽带的账号和密码就可以上网了。
3.获取公网IP
在获取公网IP之前在网上也是做了多攻略的,看了很多网友的分享。致电 10000 要求改为公网 IP,理由可以说家里有老人、小孩要装监控做外网访问,一般不会被拒绝,可以多打几次。最稳妥的方法是报故障,让电信派单,等本地的电信联系的时候,说需要公网IP,并设置桥接。实在不行就威胁投诉,不解决就投诉到工信部,一般是到不了这步的。
新装网线的用户也是比较方便的,用两包烟,跟上门安装的师傅好好沟通下感情,最好加个微信,后面有啥问题也可以沟通请教。
打电话给电信客服要公网IP,并且改桥接,原因是家里有老人需要照顾,要安装监控,结果客服二话没说,一个小时就设置好了。楼主也准备好跟电信周旋一番了,结果没想很顺利就搞定了。
上海电信拥有较多公网 IP的,给分配 公网 IP的几率还是很大的。电信客服说改桥接之后据说会影响网速,家里1000M的网络也要打个六七折,比较坑的是楼主办的这个宽带套餐有1TB的流量限制,超过后限速300M,目前无法解决,正在跟电信battle中。
搞定之后顺便跟客服要了家里桥接拨号的账号和密码。然后在ikuai软路由内改外网模式为PPPOE拨号上网就可以了。

4.确定是否为公网IP
①如果你也是通过路由器直接插光猫 LAN 口,不用拨号可以上网,可以按照如下方法测试光猫的 IP 是否为公网 IP。打开IPIPnet 获取宽带的外网IP,图例 IP 是116.233.XXX.XXX。

②从网上查询,电信内网的常用IP段为下面三个IP段。这 3 个地址段可以在任何组织或企业内部使用,仅在内部使用,所以它们属于内网 IP。
10.0.0.0-10.255.255.255;
172.16.0.0-172.31.255.255;
192.168.0.0-192.168.255.255
116.233.XXX.XXX的IP不属于上面IP段,是电信公网IP。
又从网上查找了第二种测试公网IP的方法:将该 IP 粘贴到网络测试点击回车键,如果丢包率为0,这个 IP 应该就是公网 IP了。

③万网查看获得的 IP 地址:
登录万网查看获得的 IP 地址如万网获取 IP 是二个,则是 IP 经运营商转换的内网环境)。

二、什么是DDNS动态域名解析?
1.动态公网 IP
虽然获得了公网IP地址,但是,这个IP地址是动态发放的,不是一直保持不变的,每次我们重启光猫或者重新拨号后,电信会重新给我们一个公网IP,每次的IP地址都是不一样的。也就是说每次我们外网访问的时候都要重新查询到这个新的公网IP地址,加上端口号才能进行访问,就比较麻烦了,要么在家的时候查看,要么让家里人查看。要解决这个问题就需要DDNS 动态域名服务了,可以把变化的 IP 自动动态地映射到域名上,通过不变的域名访问变化 IP 的主机。
2.DDNS 可以解决什么?
DDNS(Dynamic Domain Name Server,动态域名服务)是将用户的动态 IP 地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态 IP 地址传送给位于服务商主机上的服务器程序,服务器程序负责提供 DNS 服务并实现动态域名解析。
简单点说,就是通过DDNS功能,可以自动实现我们域名和家里公网IP地址的绑定。无论公网IP怎么变化,都会自动对应到我们的域名上面,外网访问家里的设备,只要输入域名+端口号就可以解析对应家里的公网IP地址。
三、DDNS动态域名解析需要什么
首先我们看下ikuai内设置DDNS动态域名解析需要什么?
楼主将iKuai软路由设置为主路由,因此动态解析也放在iKuai软路由。首先浏览器输入192.168.50.1,打开iKuai软路由的后台:

找到高级应用——动态域名,点击左上角绿色的添加,准备添加:

在添加页面可以看到iKuai的动态域名支持3322、oray、dnspod、aliyun、huanweicloud、cloudflare等平台下的解析,也就是说你申请的域名挂在这些平台内,都可以通过iKuai的动态域名实现解析。

同样在ikuai动态域名可以看到,腾讯云解析的域名实现DDNS是通过dnspod.cn解析的,需要准备以下内容:

四、每年7元不到在namesilo搞定域名
1.域名注册购买
域名可以说是一个 IP 地址的代称,目的是为了便于记忆这个 IP。例如,xxx.com 是一个域名。人们可以直接访问 xxx.com 来代替 IP 地址,然后域名系统(DNS)就会将它转化成便于机器识别的 IP 地址。这样,人们只需要记忆 xxx.com 这一串带有特殊含义的字符,而不需要记忆没有含义的数字。
域名的话,国内可以直接去腾讯云或者阿里云网站申请即可,域名是需要收费的,根据自己的需求,可以买好一点的域名贵一点,也可以买一些普通的域名很便宜,毕竟只用来远程访问用,这个就不多说了,国内域名就需要实际备案,备案下来也是比较麻烦的,而且折腾软路由的朋友来说,肯定是有一些特殊需求的,在国内域名解析网站上折腾略有不便,这个你懂的。如果不怕折腾也可以留学去申请一些免费的域名。

2.以namesilo为例购买
今天特别说一下在namesilo进行域名购买和注册,然后用cloudflare进行解析。
namesilo是国外域名注册商,一向以价格实惠著称,尽管成立的时间不久,但在国内玩家这家域名注册商家的口碑还是非常不错的。namesilo有什么好处呢,这里注册域名之后不需要实名、不必关联手机、不用上传身份证、转出转入自由,而且、还提供永久免费的域名隐私保护,防止别人通过 WHOIS 查询获取域名所有者的个人注册信息。作为对比,Godaddy 的隐私保护是 60 元 / 年。这个功能就很重要了,尤其是家里有NAS,并且住了很多小姐姐,时不时想远程或者通过手机,找小姐姐见见面的,用国内的域名解析就比较危险了,^_^。
缺点就是域名管理后台风格过时简陋、是全英文的、功能繁多、纯英文版面板功能不好找、自带的 DNS 解析生效很慢、TTL 最低 3600 秒(TTL 可以免费使用CloudFlare 解决)打开速度可能较慢,而且这里注册的域名国内是不能备案的,只能将域名转入国内之后才可以备案,不过我们用来进行DDNS访问啥的是不影响的。如果你要问国内的和namesilo什么区别,基本上优缺点倒置过来就是了。

首先打开主页,首先注册账号。在右边的窗口,输入用户名、电子邮箱,设置密码和重复密码,点击 “进行人机身份验证” 进行验证,最后点击 “CREATE ACCOUNT” 按钮注册账户。注册成功后界面跳转到账号主页,同时邮箱会收到两封邮件:一封账号创建成功通知邮件,一封邮件验证邮件,邮件标题是:Action required – WHOIS Verification,打开邮件,点击里面的验证链接,就完成了账户注册。注册过程中如果使用地址的话,可以去邮编库,地址不影响使用。
第一行:门牌号 + 街道地址;第二行:城市 + 州 + 邮编;第三行:国家名称。
166 EAST
5300 SOUTH MURY UT 84107
USA

然后输入想注册的域名,可以看到价格,和可以选择注册的域名,不同后缀的域名价格不一样。一般选择比较便宜的就可以了,蓝色的是第一年的价格,红色的就是后面续费的价格。

像这种.top的域名,首年1.88美元,后面续费4.88每年。如果不怕麻烦可以每年注册一个域名。

如果不差钱,还是建议大家优先考虑注册.com 的域名,域名前缀可以考虑长一下或者生僻点。

选择域名,选择可以注册的域名(如果不满意又重新搜索其他域名即可),点击 Add 按钮后,接着点击红色结账按钮。点击进入下一步:

在这步可以看到价格,和免费的WHOIS服务,下面两个服务不用添加。先不要点红色的 “Checkout” 按钮进入结账界面。可以找一下优惠码。
WHOIS(翻译下免费WHOIS的作用)
与所有域名和注册商一样,我们需要通过名为 WHOIS 的公开服务发布有关您的域名的信息。WHOIS 服务允许任何人查看您的姓名、电子邮件、地址、电话号码、域名注册时间和过期时间等信息。不幸的是,垃圾邮件发送者利用了 WHOIS 的这一要求,这几乎总是导致针对 WHOIS 中发现的信息的垃圾邮件。因此,我们提供以下选项来保护您的信息:WHOIS无隐私(免费)您的所有信息将通过 WHOIS 提供・WHOIS 隐私(自由)使用此选项,我们将对所有适用的 WHOIS 字段使用默认信息。这将向 WHOIS 隐藏您的所有 “真实” 信息。选择此选项时,请务必阅读我们服务条款中有关域隐私选项的部分。请记住,您也可以在下单后随时更改隐私设置。

“Have a Coupon” 处可以输入优惠码,然后点击 “apply” 应用。订单金额大于 1 美元的情况下能优惠一美元。下面的优惠码,随便选择一个都可以如果过期了可以搜索下关键词,Namesilo优惠码2023,有很多。
wht1off
happyholiday
holidaygift
leb1off
pianyivps
oldtang
查验完毕后,可以看到减少了0.88美元,苍蝇腿也是肉,能减一点算一点了,点击域名右侧红色的 “Checkout” 按钮进入结账界面。

接着会跳转到付款页面,有多种付款方式可以选择,最方便的就是支付宝了,这里我们用支付宝付款,点右侧红色的Selcet,进入下一步:

这里可以看到付款方式、刚才的优惠码和总价,点pay,进入下一步:

用手机支付宝扫一下即可完成付款。

到这里就购买成功了,购买完成后,一般会自动转到管理页面。如果没有转过去,就点主页,然后点【My Account】。

进入我的账户,往下拖动网页,这里就可以看到已经有一个域名了:

这里可以看到你拥有的域名:

3.namesilo删除默认解析:
域名注册好了过后,还需要对域名进行解析,域名才能够起作用。点击蓝色小圆点进行DNS设置:

弹出的页面,删除全部解析,点击保存后退出。

4.域名托管 Cloudflare
打开cloudflare,右上角选择简体中文:

注册,登录:点击访问

进入主页后,点击添加站点:

在弹出的网页里输入上面刚刚注册的域名,点击添加:

会让我们选择托管计划。直接选择最下面不要钱的,点下一步:

等待扫描导入:

看到这一步,再点继续:

可以看到网站给出的解析信息:

回到DNS记录也可以看到cloudflare删除提醒的服务器:

Cloudflare新分配的服务器名称:
类型
值
NS
alina.ns.cloudflare.com
NS
anirban.ns.cloudflare.com

回到namesilo账户的域名列表,点击最左边的三个轮胎形状的标志进行,进行DNS服务器设置,将上面给的两个DNS服务器加入进入。

在这里可以看到cloudflare让我们删掉的三个服务器名字:

将三个服务器删掉,填入cloudflare给的两个服务器名字,填入后保存。复制这两条,然后点SUBMIT保存:
alina.ns.cloudflare.com
anirban.ns.cloudflare.com

如果你看不到这个图标,而是像汽车图标,那么就先点击蓝色地球图标进去把所有解析记录删除,然后就可以看到 上面的轮胎图标了。

回到namesilo域名管理,可以看到刚才添加的两个服务器已经生效,现在是Active状态,域名注册及托管完毕。

回到cloudflare,发现已经生效了:

5.Cloudflare添加A记录
在域名系统系统内,可以添加DNS解析记录:

为了方便讲述,后面有关于域名的表述,统一假设我们申请的域名是zhongbifusheng.top。zhongbifusheng.top可以直接替换成自己的
①打开DNS,选择记录
②类型选择A
②名称选择@
④IP地址先随便填一个108.108.168.108,等设置好了会自动匹配家里的IP地址。
⑤CloudFlare代理关掉,status 一列对应域名的图标要是灰色的。
⑥TTL选择自动或者设置120秒也可以。也可以自己选择时间。
在【名称】填写的时候,相当于我们国内【主机记录】,有www、@和*三种解析方式,也可以在这里自定义名称。但是输入的时候要输入自定义的域名。比如名称里我们自定义写入fly,后面访问的时候就要使用fly.zhongbifusheng.top。
【名称】(主机记录)就是域名前缀,常见用法有:
www :解析后的域名为 www.你的域名。也就是访问的时候域名前面必须加上www.才可以访问。也就是输入www.zhongbifusheng.top,才可以生效。如果要带上端口的话就是www.zhongbifusheng.top:443
@:直接解析主域名,浏览器直接输入你的域名就可以访问。也就是输入zhongbifusheng.top,才可以生效。如果要带上端口的话就是zhongbifusheng.top:443
*:泛解析,匹配其他所有域名,也就是你主域名下的其他二级、三级域名都可以自动匹配。

点击保存生效:

6.获取 Global API
需要打开【我的个人资料】,寻找通过一下方式,首先将网页拖到底部,看到有个API

然后点击mycount,进入到【我的个人资料】

Cloudflare我的个人资料,选择【API 令牌】。

点击【创建令牌】,选择【编辑区域 DNS】的【使用模板】:

在此处选择你允许该子 API(令牌)访问的账户和域名,按照你的需要进行配置即可。它的配置很灵活,选择好授予的权限范围拿来共享给其他人都很方便。
权限默认即可。
区域资源,选择所有区域:

点击继续:

创建令牌:

然后就可以看到令牌了,这个不是ikuai需要的,不用管,我们接着点下边的【查看所有API令牌】:

点击查看:

可以看到弹出的API密钥,把 API 一长串字符复制保存下来。注意,这串 API 不要泄露给其他人。

7.填入ikuai DDNS
打开IKUAI动态域名:
服务商选择:cloudflare
域名我们前面解析的是主域名,直接填入zhongbifusheng.top。
主域名填写:zhongbifusheng.top
邮箱随便填一个。
API Key选择上面复制的。
解析设置选择:外部网络
解析网卡选择:wan1
记录类型选择A记录(IPv4)。如果是IPv6的话选择选择4A。
保存生效:

转到界面后,我们可以看到已经生效了,IP地址已经更新出来:

百度搜索【本机IP】,可以看到反馈的IP一样的:

再到Cloudflare解析页面看下,可以看到域名对应的IP地址,也已经和家里的IP对应上了。

再简单说一下,每次重启之后或者重新拨号以后,电信会重新给ikuai wan口一个新的动态公网IP地址,这时候ikuai内的DDNS(动态域名)服务就会自动读取wan口分配到的那个新IP地址,然后通过API到Cloudflare去识别对应的域名,然后将整个新的IP地址对应给域名。
五、以腾讯云为例设置DDNS
1.以腾讯云为例添加解析记录
首先,在域名的DNS 解析 DNSPod内添加一条A记录,

①主机记录
主机记录www或者@,因为楼主使用了七牛云需要解析子域名,如果没有特殊要求可以直接填入@,解析主域名即可。
记录类型A。
线路类型默认。
记录值写当前的IP地址即可,点击添加记录填写对应信息后点击保存完成添加。
PS: 在填写主机记录的时候会碰到:www、@和*三种解析方式:
主机记录就是域名前缀,常见用法有:
www :解析后的域名为 www.你的域名。也就是访问的时候域名前面必须加上www.才可以访问。
@:直接解析主域名,浏览器直接输入你的域名就可以访问。
*:泛解析,匹配其他所有域名,也就是你主域名下的其他二级、三级域名都可以自动匹配。

下面是各个记录值的意思,大家可以根据需求选择。
②记录值、记录类型
记录值:随便填一个 IPv4,例如 127.0.0.1 (若使用 IPv6, 请随便填一个 IPv6 地址,例如 fe80::0)
记录类型:默认为 A 即可 (若使用 IPv6 请选择 AAAA 记录) ,其中A记录用来指定IPv4地址,我们要做的就是将域名指向家里的公网IP。

线路类型:无特殊需求默认即可
权重:默认不用填
TTL:无特殊需要默认即可
2.获取DNSPod Token密钥申请
①腾讯云 API 密钥
登录 DNSPod 账号中心控制台,依次单击账号中心 -> 密钥管理。在密钥管理控制台中,单击创建密钥。如下图所示:

在弹出的新建密钥窗口中,单击确认新建如下图所示:

说明:
一个主账号最多可以创建两个 API 密钥。
主账号 API 密钥代表您的账号身份和所拥有的权限,等同于您的登录密码,切勿泄露他人。
API 密钥是构建腾讯云 API 请求的重要凭证,为了您的财产和服务安全,请妥善保存和定期更换密钥,当您更换密钥后,请及时删除旧密钥。
②创建Token
登录 DNSPod 账号中心控制台,在密钥管理控制台中,单击创建密钥。如下图所示:

在弹出的创建密钥窗口中,输入密钥名称,密钥名称仅用来标记 Token,方便用户管理 Token ,不参与鉴权。如下图所示:

输入密钥名称后,单击确定,会弹出如下提示框。

为了保证数据安全,DNSPod 不会存储原始密钥,以上信息仅在创建时候显示一次,请务必妥善保存好。

③ikuai填写
输入账户密码,输入token提交后配置完成。这里域和主域名的填写,注意一下,主域名前面不要添加任何前缀或者后缀。域名那里,上面如果你填写的主机记录是什么就填写什么。比如你写的www,域名这里要填写www.你的域名,选的@就直接输入你的域名就好了。

退出之后可以看到更新结果显示成功状态:

回到腾讯云可以看到解析正常,每次家里光猫重启后,可以自动解析出家里的公网IP,将公网IP和自己的域名对应。

七、端口映射
因为家里的设备都是连接在路由器上的,我们上面设置好了路由的IP地址和网络对应后,就需要把公网IP地址映射到各个端口。
打开网络设置——端口映射——添加

可能大家刚开始为了方便直接设置成了动态IP地址,这样存在一个问题,就是每次路由器重启之后,可能分配的这个IP地址就会变化。为了访问方便,建议单独指定NAS的IP,这样每次重启路由IP地址就不会变化了。
1.威联通NAS端口映射
①固定IP
打开QNAP Qfinder,进入设定,指定NAS的固定IP地址。在威联通后台的网络和虚拟交换机也可以设置。

②设置端口
设置TS451D的端口,打开控制台,选择系统——常规设置——系统管理。这里填写一个自己好记的端口号就可以了。访问端口HTTP为5000端口,HTTPS为5001端口:

③iuai内添加添加两个端口映射:


外网测试:
HTTP访问正常:

HTTPS访问正常:

2.添加群晖DS918端口映射
①群晖设置静态IP地址
登录群辉 —— 网络 —— 网络界面 —— 局域网:编辑

修改为新网段的静态 IP,点确定,等待系统设置。

设置内外部登录端口:为了和威联通进行区别,对群晖的端口进行了修改,为了保持登录的一致性,内外登录的网口都设置统一。
内部访问http端口8806
内部访问https端口8807

外部https访问测试:

外部http访问测试:

3.emby端口映射
打开emby——设置——网络,可以看到http端口8093,https端口:8920。

添加映射:

外网访问正常:

4.Esxi远程访问
首先做Esxi远程访问,可以看到Esxi使用的是https的443默认端口,Esxi修改端口比较麻烦,所以懒得改了,就直接将192.168.50.3:443映射出去。
443 端口:即网页浏览端口,主要是用于 HTTPS 服务,是提供加密和通过安全端口传输的另一种 HTTP。在一些对安全性要求较高的网站,比如 银行、证券、购物等,都采用 HTTPS 服务,这样在这些网站上的交换信息,其他人抓包获取到的是加密数据,保证了交易的安全性。网页的地址以 https:// 开始,而不是常见的 http://。

好在可以通过内网的IP地址进行区别映射,因为Esxi的IP地址是,192.168.50.3,那我们就可以通过添加192.168.50.3:443的端口映射出去,为了防止外部端口访问冲突,将外网端口设置为444。按照下面设置,在ikuai内添加映射:

远程https访问,只要在浏览器内输入:域名+444端口号,即正常可远程访问:

5.ikuai远程访问
打开ikuai远程访问进行设置,可以看到ikuai占用了http的80端口和https的443端口,80 端口是为 HTTP(HyperText Transport Protocol) 即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,主要用于 WWW(World Wide Web)即万维网传输信息的协议。可以通过 HTTP 地址(即常说的 “网址”)加 “: 80” 来访问网站,因为浏览网页服务默认的端口号都是 80,因此只需输入网址即可,不用输入 “: 80” 了。

开启远程访问,80端口内网用来访问可以直接输入ip地址访问,80端口暂时不改了,外网访问不用http,后面有需要再说。将下面的https访问端口改为由443改为446。
端口释意:
【Telnet 服务端】:开启后可以用 Telnet 的方式登录路由系统界面,用菜单命令操作路由。和中文控制台显示的界面一样。
【WEB 访问控制】:开启后可以在外网远程登录路由 WEB 界面。 使用外网 IP(外网 ip 为公网 ip)加端口的方式登录。
【强制 https WEB 访问】:开启后,访问路由管理页面,必须使用 https 的方式来访问,比如:https://192.168.1.1。
【http 访问端口】:使用 http 方式访问 WEB 界面时使用的端口。
【https 访问端口】:使用 https 方式访问 WEB 界面时使用的端口。

返回ikuai端口映射,添加映射:

外网访问正常:

6.openwrt远程访问
openwrt内网采用的是http的80端口:

ikuai映射:

外网访问正常:

端口映射总表

7.AdGuard Home设置端口映射
回到ikuai再做一个端口映射,方便进行远程管理:

设置完成后通过域名可以进行外网访问和查看:

总结
上面的一些映射这样我们就做好了,可以通过外部快速访问,有些小伙伴可能要问了,这么多端口记不住,只要将这些地址打开后收藏到浏览器的收藏夹里就可以了。现在浏览器都带多设备、多平台收藏夹同步,使用起来也比较方便。

本期先到这里,看到很多朋友在问网络测速和网卡不够的问题,下一期整一整USB2.5G网卡的效果和局域网测速部署。
★ 以上就是本期的全部内容了,有疑问或补充~欢迎评论区留言~~
感兴趣的朋友,关注我不迷路