Я пытаюсь создать SMB-ресурс для резервного копирования Time Machine на Mac. Мой NAS работает на Ubuntu 24.04, и я использую ksmbd, который в данный момент не поддерживает необходимые функции для резервного копирования Time Machine. Я хотел бы запустить экземпляр Samba (обычную, основную версию пользовательского пространства) с необходимыми настройками и подключиться к нему через Tailscale (чтобы не нужно было давать ему отдельный IP-адрес и не возиться с прямым доступом контейнера к сети, а иметь доступ откуда угодно). У меня нет привязки к конкретному IP, но нет очевидной причины, по которой он должен подключаться к хосту. Я пытался настроить контейнер Incus на Ubuntu 24.04, установить Tailscale и протестировать подключение к нему с Windows-машины в той же сети, что и хост, через Tailscale. В теории, я также могу протестировать с совершенно другой сети. Я пробовал это с вторым контейнером, начиная с нуля на том же хосте, и произошло то же самое. Интересно, что при попытке начать с нуля ресурсы работали один раз из контейнера, а затем перестали работать корректно, и я вижу ресурсы с хоста, а не из контейнера. Я также пробовал подключаться к контейнеру через тот же IP Tailscale по SSH, и это подключается к правильному экземпляру - контейнеру, а не хосту. Tailscale настроен с использованием опции Добавить сервер Linux на сайте Tailscale.
Почему SMB-ресурс в контейнере Incus с Tailscale подключается к SMB-ресурсу хостовой ОС?
1 ответ
Чтобы решить проблему с подключением к SMB-ресурсу в контейнере Incus, выполните следующие шаги:
-
Проверьте настройки Samba в контейнере. Убедитесь, что в конфигурационном файле Samba (обычно
/etc/samba/smb.conf) правильно указаны параметры, такие какinterfacesиbind interfaces only. Попробуйте установить:interfaces = tailscale0 bind interfaces only = yesЭто заставит Samba слушать только на интерфейсе Tailscale.
-
Проверьте, что контейнер работает. Убедитесь, что контейнер запущен, и Samba также запущен внутри контейнера. Вы можете использовать команду:
systemctl status smbdдля проверки статуса службы Samba.
-
Настройте файрвол. Убедитесь, что файрвол на хосте не блокирует порты, используемые Samba (обычно 445 и 139). Проверьте настройки iptables или ufw.
-
Проверьте доступность ресурсов. Попробуйте подключиться к SMB-ресурсу из другого устройства в сети, используя IP-адрес контейнера, а не хоста. Убедитесь, что вы используете правильный путь к ресурсу, например:
\100.108.xxx.xx\имя_ресурса -
Перезапустите службы. Если изменения не вступили в силу, перезапустите Samba и контейнер:
systemctl restart smbd incus restart timemachine -
Проверьте логи. Если проблема не решена, проверьте логи Samba на наличие ошибок. Логи обычно находятся в
/var/log/samba/. Это может дать подсказки о том, что идет не так.
Если после выполнения всех этих шагов проблема сохраняется, возможно, стоит проверить настройки Tailscale и убедиться, что он корректно настроен для работы с контейнерами.