dnsmasq 劫持所有域名

dns劫持以前都是黑名单模式 有需要拦截的加server劫持整个域名解析

或者单个address劫持单记录

还可以通配模式

白名单模式先劫持所有域名

开放解析的时候只需要加server指向正常的DNS服务器就行

Incoming search terms:dnsmasq 劫持anythingyxccompany7w6dnsmasq 一个域名两个ipdnsmasq 白名单dnsmasq 黑白名单dnsmasq域名劫持glad9uanearby8z8reviewav2服务器劫持所有域名Link to this post!

内网半透明代理

因为不是传统意义上的透明代理,但是基本体验又差不多,姑且称之半透明代理。 背景 公司网络差,内网服务器的微信页面开发经常会被外网带宽影响到,一方面是因为引用了微信、阿里的js、css、字体等资源文件,另一方面,因为早前开发团队留下的坑,存在七牛云上的静态文件从接口端下发的url都带了实时的时间戳。 思路 先处理图片url带时间戳的坑,一方面接口是公共的,我在中间加了一层代理后,把无用的参数过滤掉,强制对结果做了一次小缓存;再安排接口端的同学改造遗留问题,确定了有意义的数据作为版本参数。这样至少保证终端用户能看到304,而不是每次都是200。 然后,所引用的静态文件,都是长时间不会修改的,公司网络如此糟糕的情况下,完全可以在本地搭建一个代理,把请求文件缓存下来。 方案 HTTP的代理很简单,nginx配置一个反向代理即可。 之前某些原因,nginx外边还加了一个haproxy,具体原因会在其他文章里解释。 haproxy可以作为 SNI proxy 使用,而流入的请求无非是http明文传输,或者https传输,需要代理的都是TCP的,所以 nginx 处理 http请求,haproxy 判断 SNI,转发tcp到定制的backend。 在此之前,需要在内网搭建 DNS 服务器,(这里我用了 dnsmasq),可以选择将内网 DHCP 的DNS服务器指向这里,或者把非 DNS 所在服务器的所有UDP 53的包转发到这个服务器上。 我的方案里,所有的服务都在内网的一台机器上。haproxy 监听了 内网IP的80,443端口,nginx 监听了 127.0.0.1:80,还有127.0.0.1:443给gitlab使用。 nginx配置很简单:

haproxy的配置同样:

需要指出的是,我ssl的backend的server,都是 dig 实际域名,拿第一级cname来用的。 最后 dnsmasq 劫持你所需要的域名的解析即可。 Incoming search terms:clawse3m半透明代理fastenednofenergy6psend61ldrivingsy6deserth65deer7dncow5zgcorrecty76clothing76wadvice3bichurchqdnchoice5qrchairhwdcare9j1cannotcuablindtadbeingpemavailablewddLink to this post!

Hijack DnsPod HttpDNS

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

基于SNIProxy的路由端网络流量定制分发方案

标题感觉很高大上,其实写得乱七八糟。 前序文章: SNIProxy Bind Outgoing Interface Build SNIProxy Debian Package for EdgeRouter Ubnt EdgeRouter Lite 和 EdgeRouter X 上安装使用SNIProxy 不急,上边三篇可能会在本文内提及。 首先,sniproxy不解释了,但是如标题所属,sniproxy的版本不支持我要的功能,所以我就fork然后改了。 具体思路参考上述第一个链接。 接下来,直接进入正题。 按之前的玩法,我使用路由表来控制流量。这是一个很典型,也很正确的做法;但是也是一个很不好用的玩法。 参考文章:Set up OpenVPN Site-to-Site on UBNT EdgeRouter Lite, EdgeOS PPTP VPN客户端配置 PS:我维护了一份自己的路由表,地址在 https://ip.rst.im/blocks/sskaje 为了让定制化程度高一些,我配了一个Socks代理,实际上是在vpn对端配置的,本地路由做了个DNAT,转发过去了。这样我就可以用firefox+foxyproxy实现本地定制化规则。 参考文章:UBNT VPN + Socks5 代理 和 Set up dante-server on Ubuntu 后来考虑到上述用起来麻烦,又趁着回老家的时候,在家里的ac68u merlin上实践了下WPAD,不过没有在自己家里的edgerouter上搞。 参考文章:Setup WPAD on Asus … Continue reading “基于SNIProxy的路由端网络流量定制分发方案”