Задать вопрос
Yobanaris
@Yobanaris
Учусь отвечая.

Как открыть доступ с подсети на докере?

Доброго времени суток.
У меня есть контейнера Докер.
docker-conpose.yml

version: "3.7"

x-logging:
      &default-logging
      driver: "json-file"
      options:
          max-size: "200k"
          max-file: "10"

networks:
    default:
        ipam:
            config:
                - subnet: 10.10.0.0/24
volumes:
    adguard:

services:
    up:
        build:
            context: dockerfile
            dockerfile: nginx.dockerfile
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - ./config/upstream.conf:/etc/nginx/nginx.conf
            - ./scripts/start_upstream.sh:/start_upstream.sh
            - ./ssh:/ssh
            - ./config/sshd_config:/etc/ssh/sshd_config
            - ./logs/:/logs/
        ports:
            - 443:443
        hostname: upstream
        depends_on:
            php:
                condition: service_healthy
            ad:
                condition: service_started
            ss:
                condition: service_started
        environment:
            TZ: ${TZ}
        stop_grace_period: 1s
        command: ["/bin/sh", "/start_upstream.sh"]
        networks:
            default:
                ipv4_address: 10.10.0.10
        logging: *default-logging
    ng:
        build:
            context: dockerfile
            dockerfile: nginx.dockerfile
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - ./config/nginx.conf:/etc/nginx/nginx.conf
            - ./config/include.conf:/etc/nginx/include.conf
            - ./config/nginx_default.conf:/nginx_default.conf
            - ./scripts/start_ng.sh:/start_ng.sh
            - ./certs/:/certs/
            - ./ssh:/ssh
            - ./config/sshd_config:/etc/ssh/sshd_config
            - ./logs/:/logs/
        ports:
            - 80:80
        hostname: nginx
        depends_on:
            up:
                condition: service_started
        environment:
            TZ: ${TZ}
            SSPORT: ${SSPORT}
        stop_grace_period: 1s
        command: ["/bin/sh", "/start_ng.sh"]
        networks:
            default:
                ipv4_address: 10.10.0.2
        logging: *default-logging
    php:
        build:
            dockerfile: dockerfile/php.dockerfile
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - ./config/php.ini:/etc/php82/php.ini
            - ./config/clients.json:/config/clients.json
            - ./config/pac.json:/config/pac.json
            - ./config/unit.json:/config/unit.json
            - ./config/AdGuardHome.yaml:/config/AdGuardHome.yaml
            - ./config/nginx.conf:/config/nginx.conf
            - ./config/upstream.conf:/config/upstream.conf
            - ./config/nginx_default.conf:/config/nginx_default.conf
            - ./config/ssserver.json:/config/ssserver.json
            - ./config/sslocal.json:/config/sslocal.json
            - ./config/mtprotosecret:/config/mtprotosecret
            - ./config/xray.json:/config/xray.json
            - ./certs/:/certs/
            - type: volume
              target: /config/adguard
              source: adguard
            - ./ssh:/ssh
            - ./app:/app
            - ./logs/:/logs/
            - ./scripts/start_php.sh:/start_php.sh
            - ./scripts/check_file.sh:/check_file.sh
            - ./version:/version
        environment:
            TZ: ${TZ}
            IP: ${IP}
            ADDRESS: ${WGADDRESS}
            WGPORT: ${WGPORT}
            SSPORT: ${SSPORT}
            TGPORT: ${TGPORT}
        hostname: php
        restart: unless-stopped
        stop_grace_period: 1s
        command: ["/bin/sh", "/start_php.sh"]
        working_dir: /app
        networks:
            default:
                ipv4_address: 10.10.0.7
        extra_hosts:
            - "host.docker.internal:host-gateway"
        logging: *default-logging
        healthcheck:
            test: ["CMD", "/bin/sh", "/check_file.sh"]
            interval: 5s
            timeout: 5s
            retries: 5
    proxy:
        build:
            dockerfile: dockerfile/shadowsocks.dockerfile
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - ./config/sslocal.json:/config.json
            - ./ssh:/ssh
            - ./config/sshd_config:/etc/ssh/sshd_config
            - ./scripts/start_proxy.sh:/start_proxy.sh
        hostname: proxy
        depends_on:
            php:
                condition: service_healthy
        networks:
            default:
                ipv4_address: 10.10.0.3
        environment:
            TZ: ${TZ}
            SSPORT: ${SSPORT}
        stop_grace_period: 1s
        command: ["/bin/sh", "/start_proxy.sh"]
        logging: *default-logging
    wg:
        build:
            dockerfile: dockerfile/wireguard.dockerfile
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - ./config/wg0.conf:/etc/wireguard/wg0.conf
            - ./config/pac.json:/pac.json
            - ./scripts/start_wg.sh:/start_wg.sh
            - ./scripts/reset_wg.sh:/reset_wg.sh
            - ./scripts/block_torrent.sh:/block_torrent.sh
            - ./scripts/unblock_torrent.sh:/unblock_torrent.sh
            - ./scripts/block_exchange.sh:/block_exchange.sh
            - ./scripts/unblock_exchange.sh:/unblock_exchange.sh
            - ./ssh:/ssh
            - ./config/sshd_config:/etc/ssh/sshd_config
        hostname: wireguard
        depends_on:
            php:
                condition: service_healthy
        ports:
            - ${WGPORT}:${WGPORT}/udp
        environment:
            TZ: ${TZ}
            WGPORT: ${WGPORT}
            ADDRESS: ${WGADDRESS}
        cap_add:
            - NET_ADMIN
        stop_grace_period: 1s
        command: ["/bin/sh", "/start_wg.sh"]
        networks:
            default:
                ipv4_address: 10.10.0.4
        logging: *default-logging
    ad:
        build:
            dockerfile: dockerfile/adguard.dockerfile
        ports:
            - 853:853
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - type: volume
              target: /opt/adguardhome
              source: adguard
            - ./ssh:/ssh
            - ./config/sshd_config:/etc/ssh/sshd_config
            - ./certs/:/certs/
            - ./logs/:/logs/
            - ./scripts/start_ad.sh:/start_ad.sh
        hostname: adguard
        depends_on:
            php:
                condition: service_healthy
        environment:
            TZ: ${TZ}
        stop_grace_period: 1s
        networks:
            default:
                ipv4_address: 10.10.0.5
        command: ["/bin/sh", "/start_ad.sh"]
        logging: *default-logging
    ss:
        build:
            dockerfile: dockerfile/shadowsocks.dockerfile
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - ./config/ssserver.json:/config.json
            - ./ssh:/ssh
            - ./config/sshd_config:/etc/ssh/sshd_config
            - ./scripts/start_ss.sh:/start_ss.sh
        hostname: shadowsocks
        depends_on:
            php:
                condition: service_healthy
        ports:
            - ${SSPORT}:${SSPORT}/tcp
            - ${SSPORT}:${SSPORT}/udp
        environment:
            TZ: ${TZ}
            SSPORT: ${SSPORT}
        stop_grace_period: 1s
        command: ["/bin/sh", "/start_ss.sh"]
        networks:
            default:
                ipv4_address: 10.10.0.6
        logging: *default-logging
    tg:
        build:
            dockerfile: dockerfile/telegram.dockerfile
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - ./ssh:/ssh
            - ./config/sshd_config:/etc/ssh/sshd_config
            - ./scripts/start_tg.sh:/start_tg.sh
            - ./config/mtprotosecret:/mtprotosecret
        hostname: telegram
        depends_on:
            php:
                condition: service_healthy
        ports:
            - ${TGPORT}:${TGPORT}
        environment:
            TZ: ${TZ}
            IP: ${IP}
            TGPORT: ${TGPORT}
        stop_grace_period: 1s
        command: ["/bin/sh", "/start_tg.sh"]
        networks:
            default:
                ipv4_address: 10.10.0.8
        logging: *default-logging
    xr:
        build:
            dockerfile: dockerfile/xray.dockerfile
        volumes:
            - ./config/.profile:/root/.ashrc:ro
            - ./ssh:/ssh
            - ./config/sshd_config:/etc/ssh/sshd_config
            - ./config/xray.json:/xray.json
            - ./scripts/start_xray.sh:/start_xray.sh
        hostname: xray
        depends_on:
            php:
                condition: service_healthy
        environment:
            TZ: ${TZ}
        stop_grace_period: 1s
        command: ["/bin/sh", "/start_xray.sh"]
        networks:
            default:
                ipv4_address: 10.10.0.9
        logging: *default-logging


Есть подсеть 10.10.0.0/24

Есть контейнер Wireguard с адресом 10.10.0.4
Сам WG выдает клиентам адреса подсети 10.0.1.0/24
И контейнер Adguard с адресом 10.10.0.5

Я хочу прописать клиентам WG в DNS 10.10.0.5
И чтобы запросы проходили через контейнер Adguard и видеть каждого клиента отдельно, если у меня 5 клиентов с адресами 10.0.1.2...6, то видеть запросы каждого клиента отдельно, с сетями я не очень прошу ваших советов и помощи.
  • Вопрос задан
  • 258 просмотров
Подписаться 2 Сложный Комментировать
Решения вопроса 1
Yobanaris
@Yobanaris Автор вопроса
Учусь отвечая.
Решено, изменил конфигурацию nginx
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
MaxDukov
@MaxDukov
впишусь в проект как SRE/DevOps.
так в чем проблема? отдавайте клиентам 10.10.0.5 в качестве DNS, если те не переопределят его себе сами - запросы пойдут на этот ваш 10.10.0.5. Каждому клиенту WG выдаст отдельный адрес, тут ничего и настраивать отдельно не надо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы