找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 256|回复: 4

如何劫持openwrt内docker容器的dns请求?

[复制链接]

我在防火墙设置了转发规则:

我的dns服务是用smartdns配置的,所以应该只会返回一个dns解析结果:


但是在容器内进行dns请求时发现容器内的dns结果返回了2个:



同时我在dnsmasq配置的反广告在容器内也没有生效:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
删了现有容器,docker run 新建的时候加上 --dns参数 docker run --dns=路由IP
回复

使用道具 举报

 楼主| | 显示全部楼层
jjit 发表于 2023-4-24 10:37
删了现有容器,docker run 新建的时候加上 --dns参数 docker run --dns=路由IP

不行
  1. root@49d1d99bfbde:/# nslookup www.baidu.com
  2. ;; connection timed out; no servers could be reached
复制代码

回复

使用道具 举报

改docker dns啊。根据docker是debian还是Ubuntu相应的改


/**
* Linux常用命令:sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行
* 故事开始便不承认普通
* Link https://greasyfork.org/zh-CN/scripts/396933-hostloc-zsbd
*/
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 迷路的羽先生 于 2023-4-24 12:09 编辑

解决了,其实非常简单,是我思路有问题:
首先,去 /etc/config/network 里新建一个网络设备,然后再给这个网络设备添加上一个接口:
  1. config device
  2.     option type 'bridge'
  3.     option name 'webapp'

  4. config interface 'webapp'
  5.     option proto 'none'
  6.     option device 'webapp'
复制代码


然后防火墙里,把这个接口放到 lan 里。

然后给 docker 创建一个 network,父接口选这个接口:
  1. docker network create --driver=bridge -o "com.docker.network.bridge.name"="webapp" --subnet=192.168.254.0/24 --gateway=192.168.254.254 webapp
复制代码

在创建 docker 时网络选这个接口就行了。

其实非常简单,因为默认情况下创建的docker网络是不纳入openwrt的防火墙规则里的,如果想要使用openwrt的防火墙,就需要创建这个网络的接口,然后让docker网络和这个接口相连。


具体流程 https://www.catfight360.com/pages/7ae088
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-19 15:18

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表