Задать вопрос
Ответы пользователя по тегу Linux
  • Как запретить broadcast в linux bridge?

    veselov4nton
    @veselov4nton
    Системный администратор.
    В обычном linux‑bridge broadcast off не прокатит, придётся мутить ebtables-правило DROP BROADCAST или тащить Open vSwitch и на портах ставить flood=off. Либо проще запилить софт‑свич на одном хосте, чтоб остальные без лишнего треша гоняли трафик
    Ответ написан
    2 комментария
  • Не видит интернет, только lo, как починить?

    veselov4nton
    @veselov4nton
    Системный администратор.
    Проверь, видится ли адаптер в ядре
    dmesg | grep -iE 'rtl|firmware|wifi|wlan'
    Если там ошибка типа:

    rtl88xxu: probe of 1-1.3:1.0 failed with error -22
    или

    firmware: failed to load rtl…fw
    → ядро видит, но нет драйвера или прошивки (firmware).
    Ответ написан
    1 комментарий
  • Как добавить возможность выбрать разрешение экрана 1920х1080 на Ubuntu 24?

    veselov4nton
    @veselov4nton
    Системный администратор.
    Создай файл /etc/X11/xorg.conf.d/10-monitor.conf:

    sudo mkdir -p /etc/X11/xorg.conf.d
    sudo nano /etc/X11/xorg.conf.d/10-monitor.conf

    Пример содержимого:

    Section "Monitor"
    Identifier "DVI-I-1"
    Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -HSync +Vsync
    Option "PreferredMode" "1920x1080_60.00"
    EndSection

    Section "Screen"
    Identifier "Screen0"
    Monitor "DVI-I-1"
    DefaultDepth 24
    SubSection "Display"
    Depth 24
    Modes "1920x1080_60.00"
    EndSubSection
    EndSection
    Ответ написан
    Комментировать
  • Как сделать две конфигурации для WG?

    veselov4nton
    @veselov4nton
    Системный администратор.
    Для решения задачи, описанной вами, можно использовать несколько подходов, чтобы автоматически генерировать различные конфигурации для WireGuard через Telegram-бота.

    1. Разделение конфигураций через Docker
    Ваш запрос включает создание двух разных конфигураций для WireGuard (полный VPN и частичный VPN для отдельных IP). Один из вариантов — использовать два разных контейнера Docker, как предложено в комментарии. Однако, это может быть немного избыточно, если хотите минимизировать сложность.

    Вместо этого, можно настроить один контейнер с возможностью переключения конфигураций внутри него. В контейнере можно создать несколько конфигурационных файлов для WireGuard (например, full_vpn.conf и partial_vpn.conf), и с помощью команды копирования нужного конфигурационного файла из одного места в другое на запрос Telegram-бота.

    2. Использование Telegram-бота для выдачи конфигов
    Для того чтобы автоматически генерировать конфиг при запросе через Telegram-бота, можно создать простой бот, который будет выполнять следующие действия:

    При получении команды от пользователя, бот будет формировать нужный конфиг в зависимости от типа VPN.
    Генерация конфигов может быть на основе шаблонов, которые вы заранее подготовите для разных случаев (например, один конфиг для полного VPN, а другой — для частичного).
    Шаги для реализации:

    1. Установка и настройка Telegram-бота

    Для начала нужно создать Telegram-бота через BotFather и получить токен API. Затем можно использовать библиотеку python-telegram-bot или аналогичную для написания скрипта. Установите библиотеку:

    pip install python-telegram-bot

    2. Скрипт бота

    Создайте Python-скрипт, который будет обрабатывать команды и выдавать соответствующие конфиги.

    Пример базового скрипта:

    import os
    from telegram import Update
    from telegram.ext import Updater, CommandHandler, CallbackContext

    # Путь к конфигурационным файлам WireGuard
    config_dir = "/etc/wireguard/"

    def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text('Привет! Я могу создать конфиг для VPN. Выберите опцию: /fullvpn или /partialvpn')

    def full_vpn(update: Update, context: CallbackContext) -> None:
    with open(os.path.join(config_dir, "full_vpn.conf"), "r") as file:
    config = file.read()
    update.message.reply_text(f"Конфиг для полного VPN:\n{config}")

    def partial_vpn(update: Update, context: CallbackContext) -> None:
    with open(os.path.join(config_dir, "partial_vpn.conf"), "r") as file:
    config = file.read()
    update.message.reply_text(f"Конфиг для частичного VPN:\n{config}")

    def main():
    # Токен вашего бота
    updater = Updater("YOUR_BOT_API_TOKEN", use_context=True)
    dp = updater.dispatcher

    dp.add_handler(CommandHandler("start", start))
    dp.add_handler(CommandHandler("fullvpn", full_vpn))
    dp.add_handler(CommandHandler("partialvpn", partial_vpn))

    updater.start_polling()
    updater.idle()

    if __name__ == '__main__':
    main()

    Этот код создает бота, который на команды /fullvpn и /partialvpn будет отправлять соответствующие конфигурации. Обратите внимание, что конфигурационные файлы должны быть заранее подготовлены.

    3. Настройка конфигов WireGuard

    Конфигурации WireGuard могут выглядеть следующим образом:

    Полный VPN (full_vpn.conf):

    [Interface]
    PrivateKey =
    Address = 10.0.0.2/24
    DNS = 1.1.1.1

    [Peer]
    PublicKey =
    Endpoint = :51820
    AllowedIPs = 0.0.0.0/0
    PersistentKeepalive = 25
    Частичный VPN (partial_vpn.conf):

    [Interface]
    PrivateKey =
    Address = 10.0.0.2/24
    DNS = 1.1.1.1

    [Peer]
    PublicKey =
    Endpoint = :51820
    AllowedIPs = 192.168.1.0/24, 10.1.1.0/24
    PersistentKeepalive = 25

    4. Возможность переключения конфигов

    Для переключения конфигов в Docker-контейнере можно использовать тома (volumes) или монтировать конфигурационные файлы в зависимости от выбранного типа VPN. Если это нужно сделать без перезапуска контейнера, можно настроить систему, чтобы бота автоматически менял конфиг, например, заменяя wg0.conf в соответствующей директории.

    5. Запуск бота

    Запустите бота командой:

    python bot_script.py

    Теперь бот будет ждать команд и при необходимости отправлять нужные конфигурации. Напишите получилось ли?
    Ответ написан
    Комментировать