Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Darkly)
  • Нет скина
Collapse

База знаний (кластер NBICS)

  1. Главная
  2. Другие сервисы
  3. Блокчейн Erachain в Incus-контейнере

Блокчейн Erachain в Incus-контейнере

Запланировано Прикреплена Закрыта Перенесена Другие сервисы
10 Сообщения 1 Posters 7 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • A Не в сети
    A Не в сети
    Admin
    написал отредактировано
    #1

    1. Меняем порт SSH для хоста


    1. Откройте терминал и создайте новый файл конфигурации с помощью текстового редактора (например, mcedit) :
    sudo mcedit /etc/ssh/sshd_config.d/port.conf
    
    1. Добавьте строку с новым портом

    В открывшемся пустом файле добавьте следующую строку, которая укажет SSH-серверу слушать новый порт :

    Port 2222

    Совет: Выбирайте порт в диапазоне от 1024 до 65535, чтобы избежать конфликтов с системными службами .
    

    Сохраните файл и выйдите из редактора.

    1. Проверьте конфигурацию SSH

    Перед перезапуском службы всегда проверяйте синтаксис конфигурационных файлов, чтобы избежать ошибок, которые могут помешать запуску SSH :

    sudo sshd -t
    

    Если команда не вывела никаких сообщений, значит, синтаксис верен.

    1. Перезагрузите службу sshd
    sudo systemctl restart sshd
    

    Теперь при входе по SSH нужно вводить команду

    sudo ssh -p 2222 <имя_пользователя>@<ip_сервера>
    
    1 ответ Последний ответ
    0
    • A Не в сети
      A Не в сети
      Admin
      написал отредактировано
      #2

      2. Создаём контейнер


      Система в контейнере желательно должна быть Ubuntu 20.04, но репозиторий Incus удалил уже образ этой устаревшей системы, поэтому надо взять официальный cloud-образ Ubuntu 20.04 вручную с cloud-images.ubuntu.com
      Это рабочий способ в 2026 году — Canonical всё ещё держит released-образы 20.04 (хоть и с пометкой [END OF REGULAR SUPPORT]).

      # Скачайте два файла (amd64, если у вас x86_64)
      wget https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64-lxd.tar.xz
      wget https://cloud-images.ubuntu.com/releases/focal/release/ubuntu-20.04-server-cloudimg-amd64.squashfs   # или .img, но .squashfs предпочтительнее для Incus
      
      # Импортируйте как образ
      incus image import ubuntu-20.04-server-cloudimg-amd64-lxd.tar.xz ubuntu-20.04-server-cloudimg-amd64.squashfs --alias focal-manual-cloud
      
      # Запустите
      incus launch focal-manual-cloud incus-bcn1
      

      Имя контейнера incus-bcn1 для первой ноды, и incus-bcn2 для второй ноды, но можно выбрать любые другие имена.

      После импорта можете удалить скачанные файлы.

      1 ответ Последний ответ
      0
      • A Не в сети
        A Не в сети
        Admin
        написал отредактировано Admin
        #3

        3. Настраиваем систему в контейнере


        Заходим в контейнер

        incus exec incus-bcn1 -- bash
        
        1. Обновляем пакеты и устанавливаем утилиты:
        apt update
        apt install mc nano curl wget htop lynx lsof openssh-server
        
        1. Меняем настройки sshd, чтобы извне можно было входить по паролю, а не по ключу.
          Открываем файл /etc/ssh/sshd_config
        mcedit /etc/ssh/sshd_config
        

        Нужно найти и видоизменить следующие строки

        PasswordAuthentication yes
        ChallengeResponseAuthentication yes

        Обычно эти строки закомментированы знаком #, нужно убрать комментирование, и смотреть, чтобы везде был параметр yes

        Перезагружаем sshd

        systemctl restart sshd
        
        1. Задаём пароль для суперпользователя (root)
        passwd root
        

        И два раза вводим придуманный пароль

        1. Создаём нового пользователя и включаем его в группу sudo
        sudo adduser newuser
        

        Система попросит вас:

        • Ввести пароль (символы при вводе не отображаются).
        • Повторить пароль.
        • Ввести данные пользователя (ФИО, номер комнаты и т.д.) — это можно пропустить, просто нажимая Enter.
        • Далее будет предложено подтвердить настройки, выбираем Y и жмём Enter

        Добавляем пользователя в группу sudo

        sudo usermod -aG sudo newuser
        
        -a (append) — добавить.
        -G (groups) — в группу.
        

        Чтобы убедиться, что всё прошло успешно, переключитесь на нового пользователя:

        su - newuser
        

        Затем попробуйте выполнить любую команду с sudo, например, обновить список пакетов:

        sudo apt update
        

        Если система приняла пароль и начала обновление — пользователь успешно настроен.

        Выходим из режима пользователя

        exit
        

        Выходим из контейнера

        exit
        
        1 ответ Последний ответ
        0
        • A Не в сети
          A Не в сети
          Admin
          написал отредактировано
          #4

          4. Пробрасываем порт 22 с хоста в контейнер


          Вне контейнера, на хостовой системе, вводим команду

          incus config device add incus-bcn1 port22 proxy \
              listen=tcp:0.0.0.0:22 \
              connect=tcp:127.0.0.1:22
          
          1 ответ Последний ответ
          0
          • A Не в сети
            A Не в сети
            Admin
            написал отредактировано Admin
            #5

            5. Установка Java в контейнере

            sudo apt-get -y update
            sudo apt-get -y install openjdk-8-jdk
            
            # Проверяем версию Java
            java -version
            
            sudo reboot
            

            После команды reboot контейнер перезапустится

            1 ответ Последний ответ
            0
            • A Admin переместил эту тему из
            • A Не в сети
              A Не в сети
              Admin
              написал отредактировано Admin
              #6

              6. Делаем IP-адрес контейнера статическим


              1. Узнаём текущий ip контейнера (на хостовой системе)
              incus list incus-bcn1
              
              1. Назначаем статический ip
              incus config device override incus-bcn1 eth0 ipv4.address=10.10.10.245 # подставьте нужный ip
              
              1. Проверяем, что ip зафиксировался
              incus config show incus-bcn1 | grep -A10 eth0
              

              Среди выведенного текста должны увидеть примерно такое:

              ipv4.address: 10.10.10.245

              1. Перезапускаем контейнер
              incus restart incus-bcn1
              
              1 ответ Последний ответ
              0
              • A Не в сети
                A Не в сети
                Admin
                написал отредактировано Admin
                #7

                7. Пробрасываем порты 9056, 9057, 9058 для ноды (на хостовой системе)


                incus config device add incus-bcn1 erachain-9056 proxy \ # имя erachain-9056 можно поменять на другое
                 listen=tcp:192.168.0.65:9056 \  # Замените айпи хоста на нужный
                 connect=tcp:10.214.97.211:9056 \  # Замените ip контейнера на нужный
                 nat=true
                
                incus config device add incus-bcn1 erachain-9057 proxy \
                 listen=tcp:192.168.0.65:9057 \  # Замените айпи хоста на нужный
                 connect=tcp:10.214.97.211:9057 \  # Замените ip контейнера на нужный
                 nat=true
                
                incus config device add incus-bcn1 erachain-9058 proxy \
                 listen=tcp:192.168.0.65:9058 \  # Замените айпи хоста на нужный
                 connect=tcp:10.214.97.211:9058 \  # Замените ip контейнера на нужный
                 nat=true
                

                Важные моменты:

                • После \ не должно быть пробелов
                • Каждая опция (listen=..., connect=..., nat=...) идёт на новой строке с отступом (необязательно, но удобно)
                • Всё можно писать в одну строку, если удобнее

                Кроме того, следует учитывать, что ip-адрес хоста - это не внешний ip, а именно адрес, назначенный хостовой машине. Он может совпадать в внешним, если у сервера нет роутера.


                Если нужно что-то поменять в уже применённых командах, следует сначала удалить созданные устройства с портами

                # Удаляем порт 9056
                incus config device remove incus-bcn1 erachain-9056
                
                # Удаляем порт 9057
                incus config device remove incus-bcn1 erachain-9057
                
                # Удаляем порт 9058
                incus config device remove incus-bcn1 erachain-9058
                

                Ещё следует учитывать, что если компьютер имеет роутер, то на роутере обязательно нужно пробросить указанные порты.

                1 ответ Последний ответ
                0
                • A Не в сети
                  A Не в сети
                  Admin
                  написал отредактировано
                  #8

                  8. Вход по ssh (22 порт) в контейнер


                  Теперь можно зайти в контейнер такой командой:

                  sudo ssh newuser@<ip_сервера>
                  

                  Если внутри контейнера вы создавали пользователя с именем newuser, то в команде пишите это имя.
                  Требуемый после этого пароль - это пароль непосредственно от этого пользователя

                  1 ответ Последний ответ
                  0
                  • A Не в сети
                    A Не в сети
                    Admin
                    написал отредактировано
                    #9

                    9. Проверяем работу портов


                    Внутри контейнера временно запускаем веб-сервер (и подставляем нужный порт)

                    python3 -m http.server 9056
                    

                    На пользовательском компьютере или телефоне в браузере вводим адрес

                    <ip-сервера>:порт

                    Если в браузере видим список каталогов (в калоге, откуда запущена команда терминала), значит порт доступен.
                    Если порт недоступен, запускаем веб-сервер на хостовой машине, вне контейнера. Если на хосте команда срабаотывает, а в контейнере нет - значит у контейнера не проброшен нужный порт, ищем решение проблемы.

                    1 ответ Последний ответ
                    0
                    • A Не в сети
                      A Не в сети
                      Admin
                      написал отредактировано
                      #10

                      10. Позволяем в контейнере запускать команду sudo reboot без пароля


                      1. Откройте терминал и запустите редактор sudoers специальной командой (это безопаснее, чем редактировать файл вручную):

                        sudo visudo
                        
                      2. Найдите в файле строку, которая отвечает за права вашего пользователя (обычно в конце файла), или добавьте туда следующую строку.

                        • Если ваш пользователь называется username, добавьте:
                          username ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown
                          
                        • Если ваш пользователь состоит в группе sudo (или wheel), вы можете добавить правило для всей группы, чтобы разрешить всем в ней перезагрузку без пароля:
                          %sudo ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown
                          
                          (В разных дистрибутивах группа может называться sudo или wheel. Посмотрите, как написано у других пользователей в этом же файле).
                      3. Сохраните файл и выйдите (в visudo обычно это Ctrl+X, затем Y для подтверждения, либо :wq если открылся vim).

                      Результат: Теперь команда sudo reboot будет перезагружать компьютер сразу, без запроса пароля.


                      Внимание !

                      В файле есть важная строка:

                      #includedir /etc/sudoers.d
                      

                      Лучше добавить ваши правила до этой строки (сразу после %sudo ALL=(ALL:ALL) ALL), а не после. Хотя технически они могут работать и в конце, правильнее размещать их выше директивы #includedir.

                      Вот как должен выглядеть блок:

                      # Allow members of group sudo to execute any command
                      %sudo   ALL=(ALL:ALL) ALL
                      
                      # Разрешение на перезагрузку без пароля
                      username ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown
                      %sudo ALL=(ALL) NOPASSWD: /sbin/reboot, /sbin/shutdown
                      
                      # See sudoers(5) for more information on "#include" directives:
                      #includedir /etc/sudoers.d
                      

                      После сохранения файла, выйдите из контейнера, зайдите снова и проверьте:

                      sudo reboot
                      

                      Пароль больше не должен запрашиваться.

                      1 ответ Последний ответ
                      0
                      Ответить
                      • Ответить, создав новую тему
                      Авторизуйтесь, чтобы ответить
                      • Сначала старые
                      • Сначала новые
                      • По количеству голосов


                      • Войти

                      • Login or register to search.
                      Powered by NodeBB Contributors
                      • Первое сообщение
                        Последнее сообщение
                      0
                      • Категории
                      • Последние
                      • Метки
                      • Популярные
                      • World
                      • Пользователи
                      • Группы