前言

防偷cookie可以自建dns和对容器内请求抓包。
dns服务:可以用adguard或dnsmasq,小白推荐adguard,有ui可以直接屏蔽可疑解析。

容器创建参数加上—dns=xxx.xxx.xxx.xxx即可。

抓包:tcpdump、iptraf、iptables等网络抓包工具,帮助文档自行百度。如果是在本地跑的,可以配置http proxy使用fiddler、wireshark、charles等抓包工具操作。

  1. 拉取最新的Adguard稳定版本:

    1. docker pull adguard/adguardhome

    image.png

  2. 创建本地工作目录:

    1. mkdir /etc/Adguard
  3. 创建并运行容器:

    1. docker run --name adguardhome\
    2. --restart unless-stopped\
    3. -v /etc/Adguard:/opt/adguardhome/work\
    4. -v /etc/Adguard:/opt/adguardhome/conf\
    5. -p 531:53/tcp -p 53:53/udp\
    6. -p 67:67/udp -p 69:68/udp\
    7. -p 802:80/tcp -p 4431:443/tcp -p 4431:443/udp -p 3000:3000/tcp\
    8. -p 853:853/tcp\
    9. -p 784:784/udp -p 853:853/udp -p 8853:8853/udp\
    10. -p 5443:5443/tcp -p 5443:5443/udp\
    11. -d adguard/adguardhome

    注:

    • 对应关系:
      • TCP:531对应53端口,802对应80端口,4431对应443端口
      • UDP:69对应68端口
    • 部署前需要提前在阿里云和宝塔面板开放相关的端口:531、802、4431、3000、853、5443

    image.png image.png

  1. 进入初始配置界面:http://IP:3000,开始配置

image.png
image.png
image.png
image.png

  1. 之后进入面板界面:http://IP:802

image.png

  1. 将青龙面板容器的DNS配置为Adguard的:

/etc/docker/daemon.json中添加如下内容:

实测如果添加了备选DNS,那么Adguard将无法截取到相关数据,所以DNS只能配置为一个Adguard的地址

  1. "dns" : [
  2. "172.17.0.3"
  3. ]

image.png

  1. 重启docker服务

    1. systemctl restart docker
  2. 检查容器dns

可以看到DNS已经被替换为了Adguard的地址
image.png

  1. 测试

此时可以运行任意一个青龙面板上的脚本:
image.png
然后在Adguard的仪表盘上即可看到相应的数据了:
image.png

参考

  1. 配置Docker的DNS
  2. adguard/adguardhome - DockerHub
  3. AdGuard Home 安装及使用指北 - 少数派
  4. 有担心偷cookie的小伙伴 可以试试这些办法 - Github