JavaScript DNS-SD

用了 npm 包 multicast-dns https://www.npmjs.com/package/multicast-dns 。其他几个包也试过了,各种残废,要不想太多要不瞎搞,还是这个单纯。 核心的环节是,正确地响应 “_services._dns-sd._udp.local” 的query。 响应的包 answers 放 PTR,additional records 放 SRV、TXT、A。TXT可以放多个 key=value,来处理自定义配置,例如端口、是否加密,认证等信息。 Gist: https://gist.github.com/sskaje/974ec85b39f51dd3a4c6734c2bfb214f Link to this post!

WireGuard as a “Switch”

Not really a switch, but similar. If you want to exchange data from two network using a host on Internet, this post helps. In this case, Router 1 want to use Router 2 as gateway for some destinations. All 3 Nodes here have Internet public IP address. I set-up a network, 192.168.20.0/24, using WireGuard. Our … Continue reading “WireGuard as a “Switch””

Unity Package Manager 协议分析

Unity Package Manager 的 Windows 版不认系统的证书设置,直接配置代理走 Charles Proxy 没法抓到请求的包。懒得去搭反向代理,直接使用 Charles Proxy 的 Map Remote 功能,在 manifest.json 里随便设置一个地址,用 Charles Proxy 修改请求到 https://packages.unity.com 上,就可以抓包了。 请求逻辑是这样的: 1 请求 /com.unity.package-manager.metadata ,官方地址 https://packages.unity.com/com.unity.package-manager.metadata 2 根据 1 的响应里的searchablePackages,拼接 https://packages.unity.com/{PACKAGE} 获取包信息,例如 https://packages.unity.com/com.unity.xiaomi 3 从 2 的响应里读取包下载地址,从 dist.tarball 里获取下载地址。例如 https://download.packages.unity.com/com.unity.xiaomi/-/com.unity.xiaomi-1.0.3.tgz 根据这个协议,自己写个服务端,甚至用nginx搭建一个,还是比较简单的。此外 nexus 是个好选择,不用处理 3 里域名的问题,具体看 https://sskaje.me/2019/08/sonatype-nexus-3-as-unity-package-mirror/ Incoming search terms:playkgqunity upmunitypackagemanager githubLink to this … Continue reading “Unity Package Manager 协议分析”

Hijack DnsPod HttpDNS

劫持DNS是个很简单的工作,家用路由器基本都自带dnsmasq,直接加解析就行。 之前某次尝试劫持某视频App的广告接口解析到一个空的本地服务器上,发现该App使用了DnsPod的HttpDNS服务,所以传统的DNS劫持方案不好用。而EdgeRouter的DPI功能也没有对外开放墙一般的高级接口,所以这次用NAT来实现。 Incoming search terms:awaycx8characteristic4qqdnspod httpdnsguardp5yhomebhrimageemaimportance8eqinstrumentdbkolderencsuggesthw8Link to this post!

Asus Merlin Policy Based Routing

之前写过一个版本,基于380.x的,一开始好用,最近过来发现不好使了。索性把家里路由升级到384.9,重新配置。 拓扑结构基本不变,增加了需求让两边家里能互通,所以把NAT关了。 这回直接简化,搞了个github的repo,https://github.com/sskaje/merlin-pbr,把jffs的配置脚本放进去了,依旧是 dnsmasq + ipset,但是openvpn-event脚本 也可以手工维护路由列表,自动走openvpn的网卡。 Incoming search terms:Asus Merlin上设置Policy based RoutingLink to this post!