1 minute read

环境

  • 透明网关:小米路由器 AC2100, Padavan 固件带有 V2ray 组件
  • 主路由:新加坡 Singtel 1GB 家庭宽带,桥接 Newifi D2 (官网 OpenWRT 固件)
  • Apple TV 4K (2021)

配置思路

首先是装宽带的时候给小哥说一声需要桥接自己拨号,小哥就会桥接让你自己用路由器拨号(后来发现和中国宽带不一样,并不是PPPoE拨号,这就引出了坑 No.1)。

桥接之后附赠的SingTel Mesh路由器就没法用了。首先需要自己准备一个路由器拨号。这里笔者用的是新三(Newifi D2)刷了 OpenWRT。装宽带的时候再三和小哥确认拨号的账号密码,小哥一脸懵逼,表示并没有这样的账号密码。我也一脸懵逼,后来插上路由器试网才发现Wan口插上从光猫网口出来的线直接就可以获取IPv4公网IP了,不需要账号密码。

坑 No.1:Padavan 的小米 AC2100 做主路由无法获取 WAN 口地址

如题。解决办法是没有办法,只能把新3拿出来做了主路由。

坑 No.2:Padavan 需要开启 AP 模式才能做透明网关(非主路由)

如题。如果不开AP模式直接把网线插 LAN 口指定 Padavan 机子为透明网关的话,是连不上网的。正确方法是从主路由插线到Padavan的随便哪个口,在 Padavan 设置界面打开 AP 模式并指定 Padavan 设备网关到主路由后,再手动指定 Apple TV 或其他设备的网关到 Padavan 设备。

坑 No.3:V2ray 解锁流媒体记得屏蔽 QUIC / IPv6

问题出在透明网关没办法解锁巴哈姆特动画疯,其他都正常。解决办法是在v2ray配置文件的routing段上加入下面这一段:

      {
        "network": "udp",
        "outboundTag": "blocked",
        "port": "80,443",
        "type": "field"
      }

在流媒体解锁的 outbound 加上

"domainStrategy": "UseIPv4"

坑 No.4:主路由开启 HWNAT 以达到满速

如果发现跑不满千兆的,记得打开,如题。OpenWRT在防火墙选项里就有。

坑 N0.5:SingTel Mesh 路由器先断网再切换成路由模式

SingTel Mesh 路由器只要从主路由插网线到 WAN 口就会自动切换到 Mesh 模式,LAN口没有网。 如果需要LAN口接网线,需要按如下流程操作:

  • 把网线从 WAN 口拔下
  • 将网线一端连电脑,一端连 SingTel Mesh 路由器的 LAN 口
  • 访问 SingTel Mesh 路由器管理界面,关掉 Mesh 模式
  • 重启完成后,将主路由拉出来的线接到 SingTel Mesh 路由器的 LAN 口上,务必不能接在 WAN 口上

钱够多想要组 Mesh 的大佬可以忽略这一点。

坑 N0.6: 更改 DNS 设置解决 Homekit 远程访问无响应问题

本来想 Apple TV 和 Homekit 配合达到丝滑智能家居的目的,但现实很骨感,一旦透明网关上的 V2ray 一打开,Homekit 的远程访问就失效了,或者过不了一会就失效了。

最终定位问题是出在域名 courier.push.apple.com 的解析上,按照这一 Issue 中提到的的方案成功解决如下:

修改 V2ray 配置的 DNS 部分,手动指定 courier.push.apple.com 的IP地址:

"dns": {
    "queryStrategy": "UseIPv4",
    "hosts":{
          "courier.push.apple.com": [
              "17.57.145.166",
              "17.57.145.172",
              "17.57.145.133",
              "17.57.145.165",
              "17.57.145.167"]
    },
    "servers": [
      "..."
    ]
  },

修改 V2ray 路由部分,添加如下路由规则在最开始的部分,注意 courier.push.apple.com 需要单独指定:

"rules": [
      {
        "outboundTag": "direct",
        "network": "udp",
        "port":"5353",
        "type": "field"
      },
      {
        "type": "field",
        "ip": [
          "17.0.0.0/8"
        ],
        "outboundTag": "direct"
      },
      {
        "outboundTag": "direct",
        "domains": ["geosite:apple","domain:courier.push.apple.com"],
        "type": "field"
      },
      ......

检查入站 Sniffing 是否打开,并修改入站和出站连接的 Userlevel,防止连接被打断:

"inbounds": [
    {
      "port": "1099",
      "listen": "0.0.0.0",
      "protocol": "dokodemo-door",
      "settings": {
        "network": "tcp,udp",
        "followRedirect": true
      },
      "userLevel": 1,
      "tag": "redir_1099",
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls"
        ]
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "settings": {
          "userLevel": 1
      },
      "tag": "direct",
      "streamSettings": {
        "sockopt": {
          "mark": 255
        }
      }
    },
    ...

如此一来,Apple TV 的 Homekit 中枢功能就可以正常远程访问了。

Tags:

Updated:

Leave a comment