极客长斋 篇二:家庭组网时我所面对的是非题、选择题以及简答题

2021-03-12 20:21:55 16点赞 94收藏 12评论

前言

打完洞,布完线,光猫上象征性地测完速,在纸上留下联系方式和账号密码,宽带师傅和我说,好了,搞定了。但是,事实上,家庭网络还有一堆问题在等着我。

我的网络环境和设备如下:

  • 上海电信十全十美千兆套餐(升级千兆时光猫换成了SDN设备)

  • 2路电信IPTV

  • 1路固定电话

  • 1台AC 86u

  • 1台威联通TS-551

  • 1台HP Microserver Gen8

  • 1台多网口小主机

  • iMac/Laptop/智能设备若干

  • 有非固定公网IP

宽带要不要桥接?

许多人第一要务是把光猫变桥接,由路由器拨号。如果你一个人住,IPTV和固话功能无所谓,不怕折腾,那我支持你把光猫桥接了。

如果家里有老人爱看个电视,还连着固话,孩子还要时不时上网课,我还是不要桥接了。

光猫拨号至少有几个优点:

  • 路由器和光猫独立,路由器的变化不会干扰到电视的收看和电话的使用。我那么爱折腾,还老是尝试新的路由器固件(最近自己在弄slim-wrt),时不时会影响到家庭网络。如果我是桥接状态的话,我重启路由器家里的电视立刻就没法看了,微博就没法刷了,网课就没法上了,祖孙三代就要围着我念经了,“网怎么又不行了?”

  • 责任的划分更清晰。电信局端的问题和我家庭内部的问题可以很清晰地划分开。如果我发现上不去网了,只要连接光猫看看网络还是不是通的。如果光猫不通立刻就打电话保修就好了;如果光猫上的设备正常那就是我家庭内部网络的问题。让电信小哥清闲一点,在真的要让他解决问题的时候他才能马力全开——之前被变内网IP找小哥解决第二天就好了。

  • 当电信光猫设备更换升级时家庭网络不受影响。之后如果我换其他运营商或者光猫设备升级,我的家庭网络可以保持原有的结构不变。

不桥接怎么做端口映射?

光猫拨号,下面再接路由器的话,家庭网络就有两级NAT了(第一次NAT在电信光猫,第二次NAT在家中主路由)。通常情况下,有几次NAT就要做几次端口映射。

假如我想要在外网能够访问图中群晖的管理页面的话,需要做两次端口映射。

  1. 在电信光猫上,开启tcp 5000,转发到IP 192.168.1.111

  2. 在主路由上,开启tcp 5000,转发到IP 192.168.2.200

很显然,这太麻烦了。每个端口都要设置两次,之后改动的话也要改两个地方。我的做法是设置DMZ。

在一些家用路由器中,DMZ是指一部所有端口都暴露在外部网络的内部网络主机,除此以外的端口都被转发。——摘自维基百科

上海电信估计也是让搞光猫桥接的大爷们给整烦了,直接在电信光猫配套的手机应用中加了设置DMZ主机的功能。

设置完DMZ后,家庭网络变成了下图的样子。(对,看起来和原来没有任何差别!)

DMZ下的网络DMZ下的网络

DMZ下的网络

通俗的来讲,被设置为DMZ主机的那台设备会代替光猫成为家庭网络的对外代表。原来从外部而来的访问都是光猫处理,但是现在光猫直接就交给DMZ主机去处理了。 所以,现在我想要在外网能够访问图中群晖的管理页面的话,和光猫桥接的情况一样,只需要做一次端口映射就好了。

  1. 在主路由上,开启tcp 5000,转发到IP 192.168.2.200

总结一下,开启DMZ给家里的主要路由器,使用体验上和光猫桥接路由器拨号没有太大差异。但是省去了光猫桥接模式下配置IPTV/固定电话的麻烦。

DMZ下的upnp感觉有问题?

之前用Merlin系统的时候,一些CDN挖矿的软件经常报告我说Upnp没有开启。换了软路由后,刷了iKuai和Openwrt干脆一直说我Upnp没有开启了。

甜糖检测时候的日志如下:

2021-01-15 00:35:33.671 GetExternalIpAddress send POST /ctl/IPConn HTTP/1.1
HOST: 192.168.2.1:5000
Content-Length: 274
CONTENT-TYPE: text/xml;charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress"<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"></u:GetExternalIPAddress></s:Body></s:Envelope>2021-01-15 00:35:33.677 GetExternalIpAddress recv = HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Connection: close
Content-Length: 357
Server: OpenWRT/OpenWrt UPnP/1.1 MiniUPnPd/2.0
Ext:<?xml version="1.0"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetExternalIPAddressResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1"><NewExternalIPAddress>192.168.2.1</NewExternalIPAddress></u:GetExternalIPAddressResponse></s:Body></s:Envelope>2021-01-15 00:35:33.677 router ip = 192.168.2.1,external ip = 192.168.2.1

很明显,可以发现,external ip = 192.168.2.1,外部IP看着不对啊!

翻看一下miniupnpd的文档,有两项值得注意:

  • external_iface:External interface. The default is to autodetect the first interface with a default route, which usually is wan.

  • external_ip:Manually specified external IP - if not specified the default ipv4 address of the external interface is used.

很显然,这是DMZ带来的副作用。 再次回顾一下光猫拨号并设置DMZ的家庭网络结构。

光猫拨号并设置DMZ的家庭网络光猫拨号并设置DMZ的家庭网络

光猫拨号并设置DMZ的家庭网络

桥接后路由器拨号的话,路由器的WAN口可以正常地得到外网地址。但是在DMZ之后的路由器,它的WAN口获得的是光猫给分配的内网地址。被指定为DMZ主机的那个路由器,它接管了几乎所有的网络入口功能,它是事实上对外的唯一网关,但是它自己不知道!它依然认为自己只是一个卑微的二级路由器而已。

我的做法是,写个插件(包含在slim-wrt中,名字叫boostupnp),让它知道自己多厉害,让它对外宣告事实上的外部IP地址。

  • 指定external_iface和internal_iface

  • 指定真实的external_ip

boostupnp设置界面boostupnp设置界面

boostupnp设置界面

使用插件之后upnpd配置如下,补全了原来没有的external_ip和external_iface

root@Slim:/# cat /etc/config/upnpd

config upnpd 'config'
option download '1024'
option upload '512'
option internal_iface 'lan'
option port '5000'
option upnp_lease_file '/var/run/miniupnpd.leases'
option igdv1 '1'
option ext_ip_reserved_ignore '1'
option external_iface 'wan'
option uuid '431ba314-25c0-40e2-bf58-b0bc07ebca1c'
option clean_ruleset_threshold '90'
option presentation_url 'http://192.168.2.1/'
option enabled '1'
option external_ip '124.77.xxx.xxx' #此处隐去真实IP。真实的外部IP每5分钟探测一次,如果有变化就更新到新的外部IP。config perm_rule
option action 'allow'
option ext_ports '1024-65535'
option int_addr '0.0.0.0/0'
option int_ports '1024-65535'
option comment 'Allow high ports'config perm_rule
option action 'deny'
option ext_ports '0-65535'
option int_addr '0.0.0.0/0'
option int_ports '0-65535'
option comment 'Default deny'

配合boostupnp,我的upnp环境终于得到了CDN挖矿软件的认可。

来自挖矿软件的认可来自挖矿软件的认可

来自挖矿软件的认可

NAT type要选择哪种?

在Merlin系统上,NAT type有两种选择,全锥型和对称型。直观来说,任天堂Switch的网络检测里,NAT Type A对应的就是全锥形;B对应的是对称形。AB两种都能进行联机游戏,但是普遍认为A好于B,B好于C和D,C和D几乎没法玩。

Switch网络测试Switch网络测试

Switch网络测试

Play Station,XBox也有类似的要求。要求最严格的是那些CDN挖矿软件,他们希望有全锥型,如果挖矿的机器直接拨号更佳,甚至最好直接把矿机塞到电信机房去。

切换到了Openwrt后发现,它根本没有全锥型这个选项。Slim-wrt里把官方没加的Fullcone功能给加上了。

Slim-wrt的NAT设置Slim-wrt的NAT设置

Slim-wrt的NAT设置

总结来说,要玩联机游戏,有P2P(BT/PT)需求,尽量上全锥型。没有需求的话,哪种类型都无所谓。

有没有必要买软路由?

别买。千万别跟风买。一般路由器够用了。

更不要拿着国内这些软路由(其实是杂牌工控机,而且价格炒得很高)企图实现NAS+软路由的功能,根本不靠谱。

不过,我买了一个……只是因为不喜欢市面上所有的路由器固件,想自己做一个。这种需求下选择了一个低功耗,支持虚拟化的工控机。现阶段因为经常要测试新编译的固件,所以软路由系统我跑在虚拟机下。之后Openwrt 21.02发布后会直接裸机跑,并且适量地运行一些lxc/docker来充分利用它的硬件资源。

有没有必要做双软路由?

“双软路由”是个被吹得很玄乎的东西。本质上是家庭网络中的两个网关。

  • 网关A:日常娱乐用,可以看看网页,打打游戏。

  • 网关B:学习用,比如维护我的开源项目,查查资料。

其中的网关A的角色就是由我们家里的路由器担当了。

而网关B的选择可以更多样化。

  • 按照系统分可以是Openwrt这种router系统,也可以是Ubuntu/Debian/CentOS这些标准的Linux发行版。

  • 按照运行环境分,它可以跑在真机下,kvm下,也可以选择跑在docker/lxc等容器下。

常见的网上教程中的“双软路由”我在《盔甲》一文中已经表述过,总的来讲就是不推荐,不要学。

有什么比双软路由更好的方法?

有。

我所使用的两个网关我所使用的两个网关

我所使用的两个网关

我的网关A就是我的主路由,家里几乎所有设备都连的它。我的网关B选择的系统是Ubuntu,并且是威联通上的lxc容器。不选择KVM是因为lxc更节省资源;不选择Openwrt是因为原版的方法更纯粹简单。

在这样的网络下,连接到网关A的网络配置会是这样:

  • gateway: 192.168.2.1

  • dns: 192.168.2.1

需要连接到网关B的网络配置会是这样:

  • gateway: 192.168.2.100

  • dns: 192.168.2.100

那么如何指定某个设备走哪个网关呢? 最“傻”的方法就是手动指定,不用DHCP分配的网关和DNS。比如这样:

手动指定IP手动指定IP

手动指定IP

稍微方便点是利用dhcp option (Merlin系统下的dnsmasq中设置)

# 指定需要特定网关的设备
dhcp-mac=free,1C:BF:C0:XX:XX:XX
# 指定网关,DNS
dhcp-option=free,3,192.168.2.100
dhcp-option=free,6,192.168.2.100

在iKuai下,可以用网络分流,但是它只能指定gateway,不能指定DNS! 另一种是分配两个dhcp池,分别对应两个网关和DNS。然后将需要网关B的设备设置静态IP,且IP在网关B所在的dhcp池IP范围内。

在slim-wrt下,你可以用我写的插件taghost来做图形化的设定。

taghost 插件taghost 插件

taghost 插件

设置一个设备名,选择对应的MAC地址和TAG,保存。将这个设备先关闭Wifi再打开,让DHCP重新分配,这个设备就有了你指定的网关和DNS配置了。

一个设备怎么方便地在网关A和网关B之间切换?

我的手机平时常连的是网关B,但是偶尔队友们叫我开黑的时候我需要连接网关A。因为现在的手机都支持多频段(2.4G/5G)而且他们的MAC地址不同。可以利用这一点达到快速切换网关的目的。我将2.4G的MAC地址通过taghost设定了网关B,而5G频段下依然会连接默认的网关A。

需要注意的是,现在的手机和windows都会有随机MAC和设备MAC的选项。请保证taghost中填入的是正确的设备MAC并且对应的设备上选择使用设备MAC

记得使用设备MAC记得使用设备MAC

记得使用设备MAC

尾声

这是我在家庭组网时碰到的一些问题,归根到底都是设问句。

展开 收起

HP 惠普 ProLiant MicroServer Gen8 G1610T 服务器

HP 惠普 ProLiant MicroServer Gen8 G1610T 服务器

¥655.34

QNAP 威联通 TS-551 5盘位NAS(赛扬J3355、2GB)

QNAP 威联通 TS-551 5盘位NAS(赛扬J3355、2GB)

暂无报价

ASUS 华硕 RT-AC86U 双频2900M 家用千兆Mesh无线路由器 Wi-Fi 5

ASUS 华硕 RT-AC86U 双频2900M 家用千兆Mesh无线路由器 Wi-Fi 5

¥823.68

QNAP 威联通 QHora-301W 双频3600M 家用万兆无线路由器 Wi-Fi 6

QNAP 威联通 QHora-301W 双频3600M 家用万兆无线路由器 Wi-Fi 6

1299元起

QNAP 威联通 QHora-301W 新世代 Wi-Fi 6 双万兆 10GbE SD-WAN 路由器

QNAP 威联通 QHora-301W 新世代 Wi-Fi 6 双万兆 10GbE SD-WAN 路由器

2299元起

QNAP 威联通 QHora-322 企业级万兆有线路由器 Wi-Fi 6 单个装 白色

QNAP 威联通 QHora-322 企业级万兆有线路由器 Wi-Fi 6 单个装 白色

4459元起

QNAP 威联通 QMiroPlus-201W 三频2200M 家用千兆Mesh无线路由器 Wi-Fi 5 单个装 蓝色

QNAP 威联通 QMiroPlus-201W 三频2200M 家用千兆Mesh无线路由器 Wi-Fi 5 单个装 蓝色

2879.1元起

QNAP 威联通 全新QNAP威联通QHora-301W新世代WiFi6 10GbE SD-WAN企业双口万兆路由器双频AX3600M无线千兆大户型办公

QNAP 威联通 全新QNAP威联通QHora-301W新世代WiFi6 10GbE SD-WAN企业双口万兆路由器双频AX3600M无线千兆大户型办公

1299元起

贝锐蒲公英 X1 VPN路由器

贝锐蒲公英 X1 VPN路由器

暂无报价

QNAP 威联通 QHora-321 6 x 2.5GbE SD-WAN 企业级有线路由器

QNAP 威联通 QHora-321 6 x 2.5GbE SD-WAN 企业级有线路由器

3653.13元起

QNAP威联通6盘位TS-653D 4G内存四核心双2.5GbE网络存储NAS

QNAP威联通6盘位TS-653D 4G内存四核心双2.5GbE网络存储NAS

暂无报价

QNAP 威联通 QMiro-201W 三频867M 家用千兆Mesh无线路由器 Wi-Fi 5(802.11ac)蓝色

QNAP 威联通 QMiro-201W 三频867M 家用千兆Mesh无线路由器 Wi-Fi 5(802.11ac)蓝色

799元起

QNAP威联通QMiroPlus-201W+QMiro-201W别墅大平层无线神器无线Wi-Fi信号质量稳定不断线路由器全屋(QMiroplus+QMiro-201W、标准配置)

QNAP威联通QMiroPlus-201W+QMiro-201W别墅大平层无线神器无线Wi-Fi信号质量稳定不断线路由器全屋(QMiroplus+QMiro-201W、标准配置)

暂无报价

QNAP威联通QMiroPlus-201W+QMiro-201W别墅大平层无线神器无线Wi-Fi信号质量稳定不断线路由器全屋

QNAP威联通QMiroPlus-201W+QMiro-201W别墅大平层无线神器无线Wi-Fi信号质量稳定不断线路由器全屋

3698元起

威联通 (QNAP) QMiroPlus-201W 搭载家庭云 2.0 方案的新世代三频 Mesh Wi-Fi SD-WAN 智能路由器(QMiroplus+QMiro-201W*3、标准配置)

威联通 (QNAP) QMiroPlus-201W 搭载家庭云 2.0 方案的新世代三频 Mesh Wi-Fi SD-WAN 智能路由器(QMiroplus+QMiro-201W*3、标准配置)

暂无报价

威联通 (QNAP) QMiroPlus-201W 搭载家庭云 2.0 方案的新世代三频 Mesh Wi-Fi SD-WAN 智能路由器(QMiroplus+QMiro-201W*2、标准配置)

威联通 (QNAP) QMiroPlus-201W 搭载家庭云 2.0 方案的新世代三频 Mesh Wi-Fi SD-WAN 智能路由器(QMiroplus+QMiro-201W*2、标准配置)

暂无报价

QNAP 威联通 QMiro-201W 三频1734Mbps 家用千兆Mesh无线路由器 Wi-Fi 6(802.11ax) 灰蓝色

QNAP 威联通 QMiro-201W 三频1734Mbps 家用千兆Mesh无线路由器 Wi-Fi 6(802.11ax) 灰蓝色

719.1元起

QNAP 威联通 QHora-301W 新世代 无线6 双 10GbE路由器 QHora-301W

QNAP 威联通 QHora-301W 新世代 无线6 双 10GbE路由器 QHora-301W

1439.1元起

威联通 (QNAP) QMiroPlus-201W 搭载家庭云 2.0 方案的新世代三频 Mesh Wi-Fi SD-WAN 智能路由器(QMiroplus+QMiro-201W、标准配置)

威联通 (QNAP) QMiroPlus-201W 搭载家庭云 2.0 方案的新世代三频 Mesh Wi-Fi SD-WAN 智能路由器(QMiroplus+QMiro-201W、标准配置)

646元起
12评论

  • 精彩
  • 最新
  • 软路由的刚需难道不该是看世界吗?然后我现在用电信的iptv,反正桥接了也是接上就能用,连设置都免了,所以个人认为是否桥接也不主要是因为看不看电视,而是看自家网络的需求

    校验提示文案

    提交
    大哥,还有固定电话呢。

    校验提示文案

    提交
    看世界一般路由配合群晖之类的都可以。软路由对大多数人来说是伪需求。

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 是个高手,思路清晰。留着备用,看以后发啥

    校验提示文案

    提交
  • IPTV和上网不是该分成两条线路吗?就算弱电箱到客厅只有一条网线,通过单线复用也可以做到机顶盒和路由器分别独立拨号上网的。

    校验提示文案

    提交
  • 大佬。。k2p那种刷了老毛子固件的。。怎么设置dmz下的upnp。。
    电信上dmz给了网心云设备以后,主路由下的端口映射都不行了,外网访问不到内网设备了。。。

    校验提示文案

    提交
  • 额,ubuntu做网关和dns,命令是什么?挂着全局梯子么

    校验提示文案

    提交
  • 拨号桥接并不影响iptv ,因为iptv 和宽带拨号是独立的两条线路,本来iptv 也不跟拨号绑定,你就是直接不拨号,你iptv 也照样用

    校验提示文案

    提交
  • 深度好文,那个桥接了一家人问你为啥网不行了太真实了 [喜极而泣]

    校验提示文案

    提交
  • 已确认是高手,写得文章挺好,但小白不是看得很懂。固件多点汉化一下,英语差看不懂。

    校验提示文案

    提交
  • 折腾了网络之后,只要网络有波动,家人就会问“你又干啥了?”。太真实了……

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
目录
  • 前言

  • 宽带要不要桥接?

  • 不桥接怎么做端口映射?

  • DMZ下的upnp感觉有问题?

  • NAT type要选择哪种?

  • 有没有必要买软路由?

  • 有没有必要做双软路由?

  • 有什么比双软路由更好的方法?

  • 一个设备怎么方便地在网关A和网关B之间切换?

  • 尾声

94
扫一下,分享更方便,购买更轻松