nslookup向127.0.0.53#53返回通讯错误:超时;无法访问服务器

问题描述 投票:0回答:1

我正在 YouTube 上关注有关 Nginx 的教程,当我关注他时,我收到了来自 dns 容器的错误。起初我可以运行 docker-compose build 但 docker-compose up 失败,因为 systemd-resolved 使用端口 53。我能够使用此链接中的说明进行修复。 监听 tcp 0.0.0.0:53: bind: 地址已在使用#65

现在,当我运行 docker-compose up 时它没有失败,但是当我使用命令 nslookup 测试它时,我收到一个错误,比如无法访问服务器。 (仅供参考:我在我的机器上使用 Ubuntu 22.04)。

;;与 127.0.0.53#53 的通信错误:超时 ;;与 127.0.0.53#53 的通信错误:超时 ;;与 127.0.0.53#53 的通信错误:超时 ;;无法访问服务器

dns/zone/main.com

$ttl 86400
@       IN      SOA ns.main.com.    hostmaster.main.com.(
                    202 ; Serial
                    600 ; Refresh
                    3600 ; Retry
                    12378237) ; Expire

@       IN      NS  ns.main.com.
ns      IN      A   127.0.0.1

dns/Dockerfile

FROM alpine:latest
RUN apk add bind openrc
RUN rc-update -u named

dns/named.conf

options {
    directory "var/bind";
    allow-transfer { "none"; };
    allow-query { any; };
    listen-on { any; };
};

zone "main.com" IN {
    type master;
    file "/etc/bind/zone/main.com";
};

nginx/conf.d/default.conf

server {
    listen 80;
    server_name ns.main.com;

    location / {
        root /usr/share/nginx/html/main;
        index index.html;
    }
}

nginx/Dockerfile

FROM nginx:latest
COPY ./html /usr/share/nginx/html
RUN apt-get update && apt-get install -y procps

docker-compose.yml

services:
  nginx:
    build:
      context: ./nginx/
    ports:
      - 80:80
    volumes:
      - ./nginx/html/:/usr/share/nginx/html/
      - ./nginx/conf.d/:/etc/nginx/conf.d/
  dns:
    build:
      context: ./dns/
    restart: always
    ports:
      - 53:53
      - 53:53/udp
    volumes:
      - ./dns/named.conf:/etc/bind/named.conf
      - ./dns/zone/:/etc/bind/zone/
    command: named -c /etc/bind/named.conf -g -u named

希望您能赐教。期待改进。谢谢!

docker nginx docker-compose configuration dns
1个回答
0
投票

让我们尝试一些事情

尝试1

删除其中一根线(通过设置两次53端口,确认53端口已被使用)

    ports:
      - 53:53
      - 53:53/udp // delete line

尝试2

services:
  nginx:
    build:
      context: ./nginx/
    ports:
      - 80:80
    volumes:
      - ./nginx/html/:/usr/share/nginx/html/
      - ./nginx/conf.d/:/etc/nginx/conf.d/
  dns:
    build:
      context: ./dns/
    restart: always
    ports:
      - <ANOTHER_PORT>:53 // change <ANOTHER_PORT> with an available port
    volumes:
      - ./dns/named.conf:/etc/bind/named.conf
      - ./dns/zone/:/etc/bind/zone/
    command: named -c /etc/bind/named.conf -g -u named
© www.soinside.com 2019 - 2024. All rights reserved.