最近在调整家里的网络访问架构,将默认国际出口调整到香港,以保证高峰期的访问速度,但是还存在部分时间段需要流媒体解锁的需求,所以准备通过部署DNS解锁的方式来实现,这篇先介绍我部署的DNS解锁服务.
网络上有大佬已经做过一键部署脚本,参考https://github.com/myxuchangbin/dnsmasq_sniproxy_install,这个脚本目前不支持arm架构,如果你需要arm架构的,可以用这个https://raw.githubusercontent.com/xieruan/dnsmasq_sniproxy_install/master/dnsmasq_sniproxy.sh,用法跟前面那个一样.
一键脚本虽然简单,但是对环境依赖较高,我更加倾向于用docker来部署这套服务,刚好有找到一个https://github.com/dictcp/docker-dnsmasq-sniproxy,我也fork了一份https://github.com/ilovn/docker-dnsmasq-sniproxy.
克隆项目
1 | git clone https://github.com/ilovn/docker-dnsmasq-sniproxy.git |
部署测试
1 | docker-compose up |
检查有无报错,如果没有,且53端口的dns服务可用,我们接着来配置要解锁的域名清单.
修改解锁域名
1 | nano dnsmasq.conf |
按照里面的格式,补充解锁域名,最后xxx.xxx.xxx.xxx是IP,改为你的解锁服务器的公网IP.
1 | user=root |
正式启动服务
1 | docker-compose up -d |
验证服务
在另外的服务器上通过nslookup
来验证是否生效
1 | ~ nslookup - 解锁IP |
注意安全
现在这样的部署方式,你的解锁服务就暴露在互联网了,还需要实施一些访问限制来控制,具体可以通过iptable或者其他方式,大家自行选择即可.