Настройка IPv6 для 3x-ui в Docker с использованием bridge-сети
Введение
Когда я начал использовать 3x-ui в Docker, столкнулся с проблемой настройки IPv6 при использовании bridge-сети. Docker по умолчанию не поддерживает IPv6 в bridge-сетях, хотя в host-сети всё работает как надо. Чтобы обойти это ограничение и задействовать возможности IPv6 в bridge-сетях, я подготовил это руководство.
Шаги по настройке
1. Включение поддержки IPv6 в Docker
Первым делом, необходимо включить поддержку IPv6 в Docker. Для этого нужно отредактировать конфигурацию Docker. Откройте или создайте файл /etc/docker/daemon.json
и добавьте в него следующие параметры:
{
"ipv6": true,
"fixed-cidr-v6": "2001:db8:1::/64"
}
Этот блок активирует IPv6 и задаёт фиксированную подсеть для контейнеров. Вы можете указать собственный диапазон IPv6-адресов вместо 2001:db8:1::/64
, если у вас есть другие требования.
2. Перезапуск Docker
Чтобы изменения вступили в силу, необходимо перезапустить сервис Docker:
sudo systemctl restart docker
3. Создание bridge-сети с поддержкой IPv6
Следующий шаг — создание новой сети с поддержкой IPv6. Я предпочитаю называть сети так, чтобы сразу было понятно, для чего они предназначены. Например:
docker network create --ipv6 --subnet "2001:db8:1::/64" my-ipv6-network
Замените 2001:db8:1::/64
на свой диапазон, если используете другой. Это поможет интегрировать ваши контейнеры в вашу инфраструктуру.
4. Запуск контейнера с использованием новой сети
Теперь можно запустить контейнер 3x-ui, подключив его к созданной IPv6 bridge-сети:
docker run --network my-ipv6-network -d your-container-image
Ваш контейнер будет автоматически настроен на получение IPv6-адреса и сможет обрабатывать трафик через IPv6.
Пример Docker Compose файла для работы с IPv6 и IPv4
Ниже приведён пример файла docker-compose.yml
, который одновременно использует IPv6 и IPv4 для контейнера 3x-ui. Вместо network_mode: host
, мы создаём пользовательскую сеть с поддержкой обоих протоколов:
version: "3.9"
services:
3x-ui:
image: ghcr.io/mhsanaei/3x-ui:latest
container_name: 3x-ui
hostname: yourhostname
volumes:
- $PWD/db/:/etc/x-ui/
- $PWD/cert/:/root/cert/
environment:
XRAY_VMESS_AEAD_FORCED: "false"
tty: true
networks:
- my-ipv6-network
restart: unless-stopped
networks:
my-ipv6-network:
driver: bridge
enable_ipv6: true
ipam:
driver: default
config:
- subnet: "2001:db8:1::/64" # IPv6 подсеть
- subnet: "192.168.1.0/24" # IPv4 подсеть
Описание
- В данном файле мы создаём контейнер 3x-ui, который будет использовать сеть с поддержкой как IPv4, так и IPv6.
- Определены две подсети:
2001:db8:1::/64
для IPv6 и192.168.1.0/24
для IPv4. - Контейнер будет автоматически получать как IPv4, так и IPv6 адреса.
Заключение
Теперь ваш 3x-ui контейнер в Docker работает с поддержкой IPv6 и IPv4 в bridge-сети. Настройка IPv6 и добавление поддержки обоих протоколов через Docker Compose делает инфраструктуру более гибкой и готовой к будущим требованиям. Если у вас возникнут вопросы или проблемы, всегда можно обратиться к документации Docker или оставить комментарий. Настройка сети с поддержкой обоих протоколов — это шаг к более универсальной инфраструктуре.
- Наше сообщество Openode.XYZ OpeNode.xyz
- Aeza VPS (+15% к пополнению) Aeza.net
- Лучший Евро-хостер VPS (+1 месяц бесплатно на 100$) Kamatera.com
- VPS hosting - 4vps.su (-10% скидка!) 4VPS.su
- TG Channel TG-Channel Neonode.cc