Невероятные приключения debian-железок

Тема в разделе "Флудилка", создана пользователем ИгорьК, 9 сен 2025 в 09:58.

Метки:
  1. ИгорьК

    ИгорьК Гуру

    1. Создал отдельное устройство на китайском компе по этой инструкции. Сразу установил Debian 13. Все заработало. Все без проблем.

    2. Давно уже была/есть железка на OrangePi 3 LTS - отдельный MQTT брокер, Pi-Hole, Node-Red, еще что-то. Изначально была на Debian 11. Попытался поапдейтиться - репозиторий не поддерживается, обновился от китайских товарищей на Debian 12 для нее же.

    3. Обе железки работают без проблем.

    ... проходит пара дней

    4. В одно прекрасное утро обе железки перестают быть видны при заходе в домашнюю сеть с удаленного компьютера. Внутри сети - видны, остальное железо - видно. Захожу на любую иную машину, с нее SSH на первые две - все ок.

    Кто знает хотя бы с чего начать решение?
     
  2. serg3295

    serg3295 Гуру

    Если куда-то не зайти, то я бы начал с firewall'a
    pi-hole тоже что-то блокирует, хоть и по dns
     
  3. ИгорьК

    ИгорьК Гуру

    Отключал. Не помогает.

    firewall - чего? Самой железки? Как он выглядит? Он, видимо, отказывается обслуживать запросы от сетей типа 172.х.х.х?

    Вот вопрос к железке с ответом:
    upload_2025-9-9_10-40-46.png
     
  4. ИгорьК

    ИгорьК Гуру

    Вот еще вопрос к устройству изнутри сети:
    Код (Bash):
    igor@debian13:~$ sudo iptables -L -n -v
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in     out     source               destination

    Chain FORWARD (policy DROP 0 packets, 0 bytes)
    pkts bytes target     prot opt in     out     source               destination
    77603 5461K DOCKER-USER  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    77603 5461K DOCKER-FORWARD  all  --  *      *       0.0.0.0/0            0.0.0.0/0

    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target     prot opt in     out     source               destination

    Chain DOCKER (7 references)
    pkts bytes target     prot opt in     out     source               destination
        0     0 ACCEPT     tcp  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            172.18.0.5           tcp dpt:443
        0     0 ACCEPT     tcp  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            172.18.0.5           tcp dpt:81
        0     0 ACCEPT     tcp  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            172.18.0.5           tcp dpt:80
        0     0 ACCEPT     tcp  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            172.18.0.4           tcp dpt:9001
        0     0 ACCEPT     tcp  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            172.18.0.4           tcp dpt:1883
        0     0 ACCEPT     tcp  --  !br-84fbcf14d094 br-84fbcf14d094  0.0.0.0/0            172.23.0.2           tcp dpt:9000
        0     0 ACCEPT     tcp  --  !br-84fbcf14d094 br-84fbcf14d094  0.0.0.0/0            172.23.0.2           tcp dpt:8000
        0     0 ACCEPT     tcp  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            172.18.0.3           tcp dpt:8080
        0     0 ACCEPT     tcp  --  !br-b141accd715e br-b141accd715e  0.0.0.0/0            172.20.0.2           tcp dpt:1880
        0     0 ACCEPT     udp  --  !br-b162c77778c3 br-b162c77778c3  0.0.0.0/0            172.22.0.2           udp dpt:22000
        0     0 ACCEPT     tcp  --  !br-b162c77778c3 br-b162c77778c3  0.0.0.0/0            172.22.0.2           tcp dpt:22000
        0     0 ACCEPT     udp  --  !br-b162c77778c3 br-b162c77778c3  0.0.0.0/0            172.22.0.2           udp dpt:21027
        0     0 ACCEPT     tcp  --  !br-b162c77778c3 br-b162c77778c3  0.0.0.0/0            172.22.0.2           tcp dpt:8384
        0     0 ACCEPT     tcp  --  !br-1da91323ee59 br-1da91323ee59  0.0.0.0/0            172.21.0.2           tcp dpt:5005
        0     0 ACCEPT     tcp  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            172.18.0.2           tcp dpt:9001
        0     0 ACCEPT     tcp  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            172.18.0.2           tcp dpt:1883
        0     0 ACCEPT     tcp  --  !br-cc4063dc1551 br-cc4063dc1551  0.0.0.0/0            172.19.0.2           tcp dpt:5001
        0     0 DROP       all  --  !br-cc4063dc1551 br-cc4063dc1551  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  !br-136ec243ad45 br-136ec243ad45  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  !br-1da91323ee59 br-1da91323ee59  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  !br-84fbcf14d094 br-84fbcf14d094  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  !br-b141accd715e br-b141accd715e  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  !br-b162c77778c3 br-b162c77778c3  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  !docker0 docker0  0.0.0.0/0            0.0.0.0/0

    Chain DOCKER-BRIDGE (1 references)
    pkts bytes target     prot opt in     out     source               destination
        0     0 DOCKER     all  --  *      br-cc4063dc1551  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER     all  --  *      br-136ec243ad45  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER     all  --  *      br-1da91323ee59  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER     all  --  *      br-84fbcf14d094  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER     all  --  *      br-b141accd715e  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER     all  --  *      br-b162c77778c3  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0

    Chain DOCKER-CT (1 references)
    pkts bytes target     prot opt in     out     source               destination
        0     0 ACCEPT     all  --  *      br-cc4063dc1551  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
        0     0 ACCEPT     all  --  *      br-136ec243ad45  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
        0     0 ACCEPT     all  --  *      br-1da91323ee59  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
        0     0 ACCEPT     all  --  *      br-84fbcf14d094  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    42423 3487K ACCEPT     all  --  *      br-b141accd715e  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
        0     0 ACCEPT     all  --  *      br-b162c77778c3  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
        0     0 ACCEPT     all  --  *      docker0  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED

    Chain DOCKER-FORWARD (1 references)
    pkts bytes target     prot opt in     out     source               destination
    77603 5461K DOCKER-CT  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    35180 1974K DOCKER-ISOLATION-STAGE-1  all  --  *      *       0.0.0.0/0            0.0.0.0/0
    35180 1974K DOCKER-BRIDGE  all  --  *      *       0.0.0.0/0            0.0.0.0/0
        0     0 ACCEPT     all  --  br-cc4063dc1551 *       0.0.0.0/0            0.0.0.0/0
        0     0 ACCEPT     all  --  br-136ec243ad45 *       0.0.0.0/0            0.0.0.0/0
        0     0 ACCEPT     all  --  br-1da91323ee59 *       0.0.0.0/0            0.0.0.0/0
        0     0 ACCEPT     all  --  br-84fbcf14d094 *       0.0.0.0/0            0.0.0.0/0
    35180 1974K ACCEPT     all  --  br-b141accd715e *       0.0.0.0/0            0.0.0.0/0
        0     0 ACCEPT     all  --  br-b162c77778c3 *       0.0.0.0/0            0.0.0.0/0
        0     0 ACCEPT     all  --  docker0 *       0.0.0.0/0            0.0.0.0/0

    Chain DOCKER-ISOLATION-STAGE-1 (1 references)
    pkts bytes target     prot opt in     out     source               destination
        0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-cc4063dc1551 !br-cc4063dc1551  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-136ec243ad45 !br-136ec243ad45  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-1da91323ee59 !br-1da91323ee59  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-84fbcf14d094 !br-84fbcf14d094  0.0.0.0/0            0.0.0.0/0
    35180 1974K DOCKER-ISOLATION-STAGE-2  all  --  br-b141accd715e !br-b141accd715e  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER-ISOLATION-STAGE-2  all  --  br-b162c77778c3 !br-b162c77778c3  0.0.0.0/0            0.0.0.0/0
        0     0 DOCKER-ISOLATION-STAGE-2  all  --  docker0 !docker0  0.0.0.0/0            0.0.0.0/0

    Chain DOCKER-ISOLATION-STAGE-2 (7 references)
    pkts bytes target     prot opt in     out     source               destination
        0     0 DROP       all  --  *      docker0  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  *      br-b162c77778c3  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  *      br-b141accd715e  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  *      br-84fbcf14d094  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  *      br-1da91323ee59  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  *      br-136ec243ad45  0.0.0.0/0            0.0.0.0/0
        0     0 DROP       all  --  *      br-cc4063dc1551  0.0.0.0/0            0.0.0.0/0

    Chain DOCKER-USER (1 references)
    pkts bytes target     prot opt in     out     source               destination
    igor@debian13:~$
     
  5. serg3295

    serg3295 Гуру

    начиная с устройств через которые проходит запрос извне до целевого компа.

    sudo ufw status verbose
    может он вообще выключен, а так посмотреть что пишет.
     
  6. ИгорьК

    ИгорьК Гуру

    На обоих устройствах:
    sudo: ufw: command not found

    ======================

    Сейчас Оранж обновляется медленно, наиболее важная для меня железка.
    Меееедленно...

    upload_2025-9-9_11-15-0.png

    Как обновится, я выдам ей другой адрес и перегружу. На ее место подсуну виртуалку с нужным адресом брокера, будет полегче :)
     
  7. ИгорьК

    ИгорьК Гуру

    Еще интересная картинка из SyncThing:
    upload_2025-9-9_11-23-50.png

    Это как раз китайский комп. На нем SyncThing синхронизируется внутри домашней сети с NAS.

    Логика.
    Компьютер N100 работает постоянно, ибо легкий и нешумный, с ним синхронизируются разные компы.
    NAS включается время от времени и бэкапится от него.

    В этот день, 7 сентября, NAS был включен все время, то есть - есть точное время возникновения проблем на железке.

    Забавно.
     
  8. ИгорьК

    ИгорьК Гуру

    И вот появился свет в конце тоннеля...

    Следователь, держа в голове картинку из предыдущего поста, зашел из домашней сети на Оранжевую Пи и обратил внимание на приветственный скрин:

    upload_2025-9-9_20-42-35.png

    ...

    Мысли, лежавшие до этого пластом вдоль железнодорожной рельсы начали шевелиться...
     
  9. ИгорьК

    ИгорьК Гуру

    Да, только что решение было проверено. С чувством выжатой сельди пойду спать, а завтра расскажу в чем дело. Дело было не в бобине (не в файрволе). Уверен, некоторым это странное происшествие будет интересно и полезно.
     
  10. ИгорьК

    ИгорьК Гуру

    Итак, по горячим следам...

    Как до революции в кабаках устанавливали программы на механические счеты?
    Код (Bash):
    sudo apt install какая-то-хрень
    Перед сим действом нужно было разобраться в туче предустановок необходимого софта. Не всегда это удавалось корректно, не всегда удавалось установить желаемую софтинку.

    Потом, после всех великих событий, программы стали устанавливать через docker compose, а наиболее великие мыслители узнали о Kubernetes. Например, разработчики TrueNAS применили это чудо в своем, как ни удивительно, NAS и открыли его всему миру задаром.

    И, как только некоторые правоверные DIYвайщики-антиардуиноссобщники, подросли - стали этим пользоваться.

    Вот пример того, без чего не может обойтись один из членов этой малочисленной группы:

    upload_2025-9-10_8-24-42.png
    upload_2025-9-10_8-25-20.png

    Все из увиденного выше в работе, кроме n8n, который хочется потестить, но как-то руки не доходят. Особенно доставляют (как без рук) audiobookshelf, calibre, immich и paperless-ngx! Рекомендую к любому приему пищи (духовной).

    Технический прогресс освободил некоторых неразумных персонажей, меня в частности, от мысли - а как там это все взаимодействует? Ведь как-то оно происходит...

    Продолжая не развиваться духовно, я начал устанавливать на описанное в первом посте железо всякие потребные программки по указанной (в первом посте) инструкции. Инструкция предложила docker через compose / dockge, я согласился: ново, занятно, пахнет приятно.

    Делал я это в воскресенье, из домашней сетки и все, на удивление, получалось и работало. До 13:41, как выяснилось (но позже).

    ------------------------------------------------------
    Это была призказка. Теперь решение.

    Что Кубернетис на NAS, что Docker на железках организуют взаимодействие контейнеров без (необходимого, оно не возбраняется) участия пользователя, путем выдачи им адресов из запаса 172.16.0.0/12.

    Как это делает TrueNAS? Из консоли "ip route":
    upload_2025-9-10_8-51-2.png

    NAS культурно отдает контейнерам адреса 172.16.Х.Х не вылезая за пределы 16 во второй позиции.

    А как это делает Docker без вмешательства? Вот скрин Оранжевой Пи:
    upload_2025-9-10_8-52-51.png

    Эта железка без стыда и совести начала занимать широкий спектр внутренних адресов.
    Таким же образом повел себя и китайческий компьютер:
    upload_2025-9-10_8-56-2.png

    Этот проходимец без надзора повторил те же танцевальные па - захватил аналогичные адреса.

    И, наконец, все стало ясно.

    Обе железки, в один момент, то есть, после установки какой-то программы, взяли адрес 172.20.0.0, на котором висела дачная сеть.

    Ничего страшного внутри локалки не произошло - все продолжало работать. Но вот любой запрос к этим железкам извне, превращал их в черную дыру: Докер запросы от внешних устройств 172.20.Х.Х не возвращал наружу, а держал в контейнере.

    Причем, эта ситуация возникла не сразу - сначала, видимо, распределялись адреса 17, 18, 19 и все было прекрасно.

    Итак, проблема была осознана именно со скриншота Желтой Пи - там я увидел адрес локалки дачи.
    Дальше возникло очевидное решение: коль скоро железки не занимают 16 - перенастроить локалку. Потом неочевидная проверка НАС показала, что и с 16 будут проблемы - NAS потеряется из виду.

    Однако, путь был открыт и все заработало после ряда манипуляций с адресом дачной сети...

    Спасибо за внимание, надеюсь кто-то воспользуется моим опытом в DIY строении сетей, НАС и всего остального.
     
    Последнее редактирование: 10 сен 2025 в 09:20
  11. parovoZZ

    parovoZZ Гуру

    с настройками dhcp налажал?
     
  12. ИгорьК

    ИгорьК Гуру

    Это нет dhcp.

    При подключении сети к сети адреса выдаются вручную. Адрес был выдан 172.20.5.0. И было это лет 10 назад. А потом Докер(ы) выдал(и) этот адрес своим контейнерам.
     
  13. parovoZZ

    parovoZZ Гуру

    В каждом контейнере вручную же прописываешь адрес, не?
     
  14. ИгорьК

    ИгорьК Гуру

    Не, docker compose наше все. А еще проще - Dockge. Или Portainer.