• Как маршрутизировать траффик через промежуточный локальный интерфейс?

    @bellerofonte Автор вопроса
    В итоге решил вопрос с помощью ip netns
    Написал следующий скрипт:
    #!/bin/sh
    
    # установка и настройка изолированного сетевого пространства имен
    ip netns add ns0
    ip link set eth2 netns ns0
    ip -n ns0 link set lo up
    ip -n ns0 link set eth2 up
    ip -n ns0 addr add 192.168.5.2/24 dev eth2
    ip -n ns0 route add default via 192.168.5.1 dev eth2
    
    # в дефолтном пространстве надо поднять NAT
    iptables -t nat -A POSTROUTING -o eth0 -s 192.168.5.2/32 -j MASQUERADE
    
    # и надо запустить отдельный SSH-сервер на новом пространстве
    sudo ip netns exec ns0 /usr/sbin/sshd -o PidFile=/run/sshd-ns0.pid

    Завернул этот скрипт в oneshot сервис и теперь systemd дергает его при запуске системы.
    Можно подключаться ssh 192.168.5.2 и видеть ту же самую локальную машину, которая как бы находится в другой сети, весь трафик которой завернут через eth1 на eth0.
    Ответ написан
    Комментировать
  • Как правильно преобразовать настройки css-loader из строки в объект?

    @bellerofonte Автор вопроса
    правильный ответ подобран методом научного тыка:
    { 
      loader: 'css-loader',
      options: {
       modules: {
          mode: 'local',
          exportLocalsConvention: 'camelCase'
        }
      }
    }
    Ответ написан
    Комментировать
  • Как в WebStorm отлаживать связку Node.js бэкенд и React фроненд как единое целое?

    @bellerofonte Автор вопроса
    В общем, нашел приемлемое решение. Кому интересно:
    1. редактируем dev-скрипт в файле package.json:
      ...
      "scripts": {
              ...
              "dev": "webpack --mode=development --config webpackfile.js --watch"
          }
      ...

      отладочную конфигурацию фронтенда в WebStorm оставляем как есть.

    2. В отладочную конфигурацию бэкенда добавляем переменную окружения CONTENT_PATH равную пути папки, куда webpack собирает фронтенд, относительно главного .js файла бэкенда. В моем случае CONTENT_PATH='/../../debug'

    3. В .js файле прописываем путь к контенту примерно так:
      const contentPath = path.resolve(__dirname + (process.env.CONTENT_PATH || ''));

      и далее везде используем contentPath при обращении к файлам фронтенда

    4. Для запуска отладки запускаем обе отладочные конфигурации. Фронтенд отлаживаем в браузере, бэкенд - в WebStorm.



    Спасибо Robur за наводку.
    Ответ написан
    Комментировать