• Почему возникают проблемы с маршрутизацией при настройке openvpn сервера в docker?

    @HexUserHex Автор вопроса
    Логи подключения клиента к openvpn серверу(подключение удачно проходит, ip получает из нашего пула, dns тоже удачно приходят вроде как):

    Ниже в логах есть предупреждение интересное, но redirect-privat я вроде нигде не использовал а вот redirect-gateway опцию я использовал как в клиентском конфиге так и на сервере, так как это рекомендовалось в мануалах.
    2024-09-08 19:54:52 WARNING: You have specified redirect-gateway and redirect-private at the same time (or the same option multiple times). This is not well supported and may lead to unexpected results

    root@tester-VirtualBox:/home/tester/Downloads# openvpn --config ./tester.ovpn 
    Note: --data-cipher-fallback with cipher 'AES-256-CBC' disables data channel offload.
    OpenVPN 2.6.9 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] [DCO]
    library versions: OpenSSL 3.0.13 30 Jan 2024, LZO 2.10
    DCO version: N/A
    Enter Private Key Password: ••••••••••              
    TCP/UDP: Preserving recently used remote address: [AF_INET]192.168.1.51:1194
    Socket Buffers: R=[212992->212992] S=[212992->212992]
    UDPv4 link local: (not bound)
    UDPv4 link remote: [AF_INET]192.168.1.51:1194
    TLS: Initial packet from [AF_INET]192.168.1.51:1194, sid=a97af0f4 b802a614
    VERIFY OK: depth=1, CN=ChangeMe
    VERIFY KU OK
    Validating certificate extended key usage
    ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
    VERIFY EKU OK
    VERIFY OK: depth=0, CN=server
    Control Channel: TLSv1.3, cipher TLSv1.3 TLS_AES_256_GCM_SHA384, peer certificate: 2048 bits RSA, signature: RSA-SHA256, peer temporary key: 253 bits X25519
    [server] Peer Connection Initiated with [AF_INET]192.168.1.51:1194
    TLS: move_session: dest=TM_ACTIVE src=TM_INITIAL reinit_src=1
    TLS: tls_multi_process: initial untrusted session promoted to trusted
    PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1,dhcp-option DNS 8.8.8.8,dhcp-option DNS 8.8.4.4,route-gateway 10.8.0.1,topology subnet,ping 10,ping-restart 120,ifconfig 10.8.0.2 255.255.255.0,peer-id 0,cipher AES-256-GCM'
    WARNING: You have specified redirect-gateway and redirect-private at the same time (or the same option multiple times). This is not well supported and may lead to unexpected results
    OPTIONS IMPORT: --ifconfig/up options modified
    OPTIONS IMPORT: route options modified
    OPTIONS IMPORT: route-related options modified
    OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
    net_route_v4_best_gw query: dst 0.0.0.0
    net_route_v4_best_gw result: via 192.168.1.254 dev enp0s3
    ROUTE_GATEWAY 192.168.1.254/255.255.255.0 IFACE=enp0s3 HWADDR=08:00:27:ec:97:0a
    TUN/TAP device tun0 opened
    net_iface_mtu_set: mtu 1500 for tun0
    net_iface_up: set tun0 up
    net_addr_v4_add: 10.8.0.2/24 dev tun0
    net_route_v4_add: 192.168.1.51/32 via 192.168.1.254 dev enp0s3 table 0 metric -1
    net_route_v4_add: 0.0.0.0/1 via 10.8.0.1 dev [NULL] table 0 metric -1
    net_route_v4_add: 128.0.0.0/1 via 10.8.0.1 dev [NULL] table 0 metric -1
    Initialization Sequence Completed
    Data Channel: cipher 'AES-256-GCM', peer-id: 0
    Timers: ping 10, ping-restart 120


    Вот шаблон конфига .ovpn для пользователя:
    client
    dev tun           // наш виртуальный интерфейс
    proto udp4        // Только IpV4
    remote 192.168.1.51 1194  // ip нашего openvpn сервака(наша VM)    
    resolv-retry infinite
    nobind
    persist-key
    persist-tun
    remote-cert-tls server
    data-ciphers AES-256-GCM
    data-ciphers-fallback AES-256-CBC
    auth SHA256
    tun-mtu 1500
    auth-nocache
    redirect-gateway def1        // Весь трафик через vpn сервер
    pull                         // Получать настройки(DNS итд) от сервера 
    verb 3


    Конфиг openvpn сервера в нашем docker контейнере:
    port 1194
    dev tun                                   // наш виртуальный интерфейс
    topology subnet
    proto udp4
    tun-mtu 1500
    
    push "redirect-gateway def1"              // отправляем клиенту что весь трафик должен идти через нас
    push "dhcp-option DNS 8.8.8.8"            // задаем DNS
    push "dhcp-option DNS 8.8.4.4"
    
    tls-auth /etc/openvpn/ta.key 0
    ca /etc/openvpn/easy-rsa/pki/ca.crt
    cert /etc/openvpn/easy-rsa/pki/issued/server.crt 
    key /etc/openvpn/easy-rsa/pki/private/server.key 
    dh /etc/openvpn/easy-rsa/pki/dh.pem
    crl-verify /etc/openvpn/easy-rsa/pki/crl.pem
    
    server 10.8.0.0 255.255.255.0
    keepalive 10 120
    data-ciphers AES-256-GCM
    data-ciphers-fallback AES-256-CBC
    auth SHA256
    user nobody
    group nogroup
    persist-key
    persist-tun
    status openvpn-status.log 10
    log-append /var/log/openvpn.log
    verb 5


    В логах openvpn сервера я вижу что он дропает мои пакеты так как ему не нравится ip(bad source address from client)
    ess from client [192.168.1.51], packet dropped
    R2024-09-08 18:04:21 us=982940 tester/192.168.1.51:56940 MULTI: bad source address from client [192.168.1.51], packet dropped
    Написано
  • Почему не стартует selenium?

    @HexUserHex Автор вопроса
    Все именно так,
    не подозревал что это имеет такое значение... Думал главное условие это наличие бинарника или ссылки в каталоге /bin. Кстати даже при запуске ;apt install firefox' он все равно в данной версии ubuntu ставится в качестве snap пакета(раньше вроде такого не было.... или я просто не обращал внимание), пришлось добавить их репо(и еще пару манипуляций, в инете есть инфа) для успешной установке...

    Большое спасибо за помощь.
    Написано
  • Почему не стартует selenium?

    @HexUserHex Автор вопроса
    Спасибо,
    такой не скромный вопрос именно у вас работает?)

    У меня просто теперь совершенно другая ошибка:

    Your Firefox profile cannot be loaded. It may be missing or inaccessible.
    Написано
  • Почему не стартует selenium?

    @HexUserHex Автор вопроса
    Пробую так:
    #!/usr/bin/env python3
    
    from selenium import webdriver
    from selenium.webdriver.firefox.options import Options
    
    options = webdriver.FirefoxOptions()
    
    options.set_preference("general.useragent.override", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36")
    
    browser = webdriver.Firefox('/home/tester/Desktop/parser/geckodriver', options=options)
    
    browser.get('https://ya.ru')


    Получаю:
    Traceback (most recent call last):
    
      File "/home/tester/Desktop/parser/./test_selenium.py", line 9, in <module>
    
        browser = webdriver.Firefox('/home/tester/Desktop/parser/geckodriver', options=options)
    
    TypeError: WebDriver.__init__() got multiple values for argument 'options'
    Написано
  • Почему pip3 не может удалить пакет?

    @HexUserHex Автор вопроса
    Yuriy Vorobyov, Все верно спасибо!)
  • Ошибка в логике многопоточного парсера?

    @HexUserHex Автор вопроса
    Justa Gain, там работа с dlib и БД
  • Как понять, есть ли проблема с видеокартой?

    @HexUserHex
    На моей практике карты которые я интенсивно мучал первые пару дней всегда жили и дальше...
    Возможно бред но случаем в bios-e карточек не содержится какая-то статистика по аналогии со SMART в hdd?
    Где можно глянуть инфу.... и сравнить ее с версией продавца....
  • Как установить Windows 7 на UEFI-ный Acer Aspire E1-510?

    @HexUserHex
    VikingS, Чуть другой ноут но беда та же... Уже три дня пробую поставить 7ку в лучшем случае ноут тупо виснит с надписью "Starting..." Видел на форумах что часто есть некие инженерные клавиши которые требуется нажимать ПЕРЕД входом в BIOS и далее в нем появляется возможность изменять параметры которые не доступны при загрузке в обычном режиме.
  • Поможет ли Acronis True Image после замены hdd на целевом ПК?

    @HexUserHex Автор вопроса
    Тот факт что при создании образа была выбрана опция о снятии именно побитовой копии ничего не меняет?
    Еще раз можно создать образ с диска 128GB далее заменить диск например на 512GB и успешно закатать на него ранее снятый образ? Никогда этого не делал к своему стыду поэтому решил уточнить какие могут быть нюансы
  • Небольшой хромбук с возможность установки альтернативной ОС?

    @HexUserHex Автор вопроса
    Voland69, я данную модель больше как пример подкинул, вот есть паренек который как понял успешно устанавил win на ACER 720/720Pи вроде очень неплохо объясняет, там уже и скрипт автоматизированный есть... Идея у меня была следующая: Реально ли выиграть по деньгам купив более менее производительный хромбук(они же есть и на i5... ) и далее закатать на него альтернативную ОС?
  • Почему не удаляется запись UEFI с помощью efibootmgr?

    @HexUserHex Автор вопроса
    Константин,
    да)
    я все снес и переустановил.... Я так и не понял в чем там было дело(хотя правда пытался) Кстати подобная беда встречалась и у других людей судя по форумам. Всем спасибо!
  • Почему не удаляется запись UEFI с помощью efibootmgr?

    @HexUserHex Автор вопроса
    Alexander, Константин,
    да... Убунта....

    ps: извиняюсь за опоздание
  • Не обновляется переменная, как ее обновлять?

    @HexUserHex
    Дима Клепко,
    лучше попробуй вставь сюда хоть 'упрощенную версию' той части которая не работает... Что бы видеть именно весь код. Так тебе подскажут/помогут скорее.. .
  • Не обновляется переменная, как ее обновлять?

    @HexUserHex
    попробуй добавить
    console.log(select.selectedIndex)

    после:
    select.selectedIndex = 0

    дабы видеть какие значения ты сравниваешь.
  • Почему не удаляется запись UEFI с помощью efibootmgr?

    @HexUserHex Автор вопроса
    Alexey Dmitriev,

    Вот вывод fdisk -l
    На ПК 3 физических диска(ssd 256 и 1Tb и обычный Hdd 1Tb) остальные диски это насколько я понимаю виртуальные которые были созданы при установке мною ПО с помощью менеджера snap.

    Disk /dev/loop0: 55,45 MiB, 58130432 bytes, 113536 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop1: 4 KiB, 4096 bytes, 8 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop2: 61,85 MiB, 64835584 bytes, 126632 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop3: 219 MiB, 229638144 bytes, 448512 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop4: 55,5 MiB, 58183680 bytes, 113640 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop5: 164,78 MiB, 172761088 bytes, 337424 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop6: 61,93 MiB, 64913408 bytes, 126784 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop7: 247,93 MiB, 259948544 bytes, 507712 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/nvme0n1: 238,49 GiB, 256060514304 bytes, 500118192 sectors
    Disk model: HFM256GDJTNI-82A0A                      
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: EF748C74-6193-4A60-BB78-CA617F4D7792
    
    Device             Start       End   Sectors   Size Type
    /dev/nvme0n1p1      2048    206847    204800   100M EFI System
    /dev/nvme0n1p2    206848    239615     32768    16M Microsoft reserved
    /dev/nvme0n1p3    239616 285652961 285413346 136,1G Microsoft basic data
    /dev/nvme0n1p4 285652992 286719999   1067008   521M Windows recovery environment
    /dev/nvme0n1p5 286720000 500117503 213397504 101,8G Linux filesystem
    
    
    Disk /dev/nvme1n1: 931,53 GiB, 1000204886016 bytes, 1953525168 sectors
    Disk model: Samsung SSD 980 1TB                     
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 16384 bytes / 131072 bytes
    Disklabel type: gpt
    Disk identifier: DB0CB571-70DC-45DE-8787-1F00CD8227D3
    
    Device         Start        End    Sectors   Size Type
    /dev/nvme1n1p1  2048 1953521663 1953519616 931,5G Microsoft basic data
    
    
    Disk /dev/sda: 931,53 GiB, 1000204886016 bytes, 1953525168 sectors
    Disk model: ST1000LM049-2GH1
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 4096 bytes
    I/O size (minimum/optimal): 4096 bytes / 4096 bytes
    Disklabel type: gpt
    Disk identifier: C7F5C196-19E8-47AC-965D-C27E4F62A8B6
    
    Device     Start        End    Sectors   Size Type
    /dev/sda1   2048 1953523711 1953521664 931,5G Microsoft basic data
    
    
    Disk /dev/loop8: 65,22 MiB, 68378624 bytes, 133552 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop9: 50,98 MiB, 53432320 bytes, 104360 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop10: 54,24 MiB, 56872960 bytes, 111080 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop11: 42,18 MiB, 44220416 bytes, 86368 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop12: 134,44 MiB, 140963840 bytes, 275320 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop13: 346,82 MiB, 363642880 bytes, 710240 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop14: 134,4 MiB, 140914688 bytes, 275224 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop15: 43,28 MiB, 45371392 bytes, 88616 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop16: 65,1 MiB, 68259840 bytes, 133320 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop17: 322,92 MiB, 338583552 bytes, 661296 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop18: 346,82 MiB, 363646976 bytes, 710248 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop19: 669,72 MiB, 702238720 bytes, 1371560 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    
    
    Disk /dev/loop20: 219 MiB, 229638144 bytes, 448512 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
  • Ноутбук не видит сети Wi-Fi. В чем проблема?

    @HexUserHex
    Как правило он либо работает либо нет...
    Ну или еще возможно это еще один из признаков скорого отвала моста(хотя мало вероятно....) Так как не указано как именно подключена карта.
  • Ошибка при сборке Docker образа?

    @HexUserHex Автор вопроса
    Александр Карабанов,

    В результате если ничего не напутал у меня получился следующий Dockerfile:
    FROM debian:jessie
    
    ARG steam_user=anonymous
    ARG steam_password=
    ARG metamod_version=1.20
    ARG amxmod_version=1.8.2
    
    RUN apt update && apt install -y lib32gcc1 curl unzip
    
    # Install SteamCMD
    RUN mkdir -p /opt/steam && cd /opt/steam && \
        curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
    
    # Install HLDS
    RUN mkdir -p /opt/hlds/steamapps
    # Workaround for "app_update 90" bug, see https://forums.alliedmods.net/showthread.php?p=2518786
    
    # Качаю манифесты
    RUN for i in 10 70 90; do curl -sqL https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/master/CounterStrike/appmanifest_$i.acf -o /opt/hlds/steamapps/appmanifest_$i.acf; done
    
    # RUN steamcmd.sh который качает и поднимает CS(10), HalfeLife(70), HalfeLife(90) steam совместимые сервера
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 90 validate +quit \
     || /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 90 validate +quit
    
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 70 validate +quit || :
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 10 validate +quit || :
    
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 90 validate +quit \
     || /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 90 validate +quit
    
    RUN mkdir -p ~/.steam && ln -s /opt/hlds ~/.steam/sdk32
    RUN ln -s /opt/steam/ /opt/hlds/steamcmd
    ADD files/steam_appid.txt /opt/hlds/steam_appid.txt
    ADD hlds_run.sh /bin/hlds_run.sh
    RUN chmod +x /bin/hlds_run.sh
    
    # Add default config
    ADD files/server.cfg /opt/hlds/cstrike/server.cfg
    
    # Add maps
    ADD maps/* /opt/hlds/cstrike/maps/
    ADD files/mapcycle.txt /opt/hlds/cstrike/mapcycle.txt
    
    # Install metamod
    RUN mkdir -p /opt/hlds/cstrike/addons/metamod/dlls
    RUN curl -sqL "http://prdownloads.sourceforge.net/metamod/metamod-$metamod_version-linux.tar.gz?download" | tar -C /opt/hlds/cstrike/addons/metamod/dlls -zxvf -
    ADD files/liblist.gam /opt/hlds/cstrike/liblist.gam
    # Remove this line if you aren't going to install/use amxmodx and dproto
    ADD files/plugins.ini /opt/hlds/cstrike/addons/metamod/plugins.ini
    
    # Install dproto
    RUN mkdir -p /opt/hlds/cstrike/addons/dproto
    ADD files/dproto_i386.so /opt/hlds/cstrike/addons/dproto/dproto_i386.so
    ADD files/dproto.cfg /opt/hlds/cstrike/dproto.cfg
    
    # Install AMX mod X
    RUN curl -sqL "http://www.amxmodx.org/release/amxmodx-$amxmod_version-base-linux.tar.gz" | tar -C /opt/hlds/cstrike/ -zxvf -
    RUN curl -sqL "http://www.amxmodx.org/release/amxmodx-$amxmod_version-cstrike-linux.tar.gz" | tar -C /opt/hlds/cstrike/ -zxvf -
    ADD files/maps.ini /opt/hlds/cstrike/addons/amxmodx/configs/maps.ini
    
    ADD files/podbot_full_V3B22.zip /opt/hlds/cstrike/addons/podbot_full_V3B22.zip
    RUN unzip /opt/hlds/cstrike/addons/podbot_full_V3B22.zip
    RUN echo "addons/podbot/podbot_mm_i386.so" >> /opt/hlds/cstrike/addons/metamod/plugins.ini
    RUN rm /opt/hlds/cstrike/addons/podbot_full_V3B22.zip
    
    # Cleanup
    RUN apt remove -y curl unzip
    
    WORKDIR /opt/hlds
    
    ENTRYPOINT ["/bin/hlds_run.sh"]


    После запустил билд:
    docker build -t cs16ds/server .

    в процессе сборки образа получил ошибку(Error! App '90' state is 0x406 after update job.):
    Connecting anonymously to Steam Public...OK
    Waiting for client config...OK
    Waiting for user info...OK
    Please use force_install_dir before logon!
     Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
     Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
     Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
     Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
     Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
     Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
    Warning: failed to init SDL thread priority manager: SDL not found
     Update state (0x1) running, progress: 0.00 (0 / 0)
     Update state (0x61) downloading, progress: 14.04 (17180294 / 122344816)
     Update state (0x61) downloading, progress: 54.38 (66529101 / 122344816)
    Error! App '90' state is 0x406 after update job.
    WARNING: setlocale('en_US.UTF-8') failed, using locale: 'C'. International characters may not work.
    Redirecting stderr to '/root/Steam/logs/stderr.txt'
    [  0%] Checking for available updates...
    [----] Verifying installation...
    Steam Console Client (c) Valve Corporation - version 1637624355
    -- type 'quit' to exit --
    Loading Steam API...OK
    
    Connecting anonymously to Steam Public...OK
    Waiting for client config...OK
    Waiting for user info...OK
    Please use force_install_dir before logon!
     Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
     Update state (0x3) reconfiguring, progress: 0.00 (0 / 0)
    Warning: failed to init SDL thread priority manager: SDL not found
     Update state (0x41) staging, progress: 98.29 (120247664 / 122344816)
    Success! App '90' fully installed.
    Removing intermediate container 3ab77770df90
     ---> 776287c77ad5


    Далее моя попытка запуска данного контейнера не увенчалась успехом(что не удивительно) так как не был найден необходимый 'hlds_run':
    docker run -d -p 26900:26900/udp -p 27020:27020/udp -p 27015:27015/udp -p 27015:27015 -e MAXPLAYERS=32 -e START_MAP=de_dust2 -e SERVER_NAME="My Server Name" -e START_MONEY=16000 -e BUY_TIME=0.25 -e FRIENDLY_FIRE=1 -e ADMIN_STEAM=0:1:1234566 --name cs cs16ds/server:latest +log


    В логах docker-a:
    root@tester-VirtualBox:/home/tester/Desktop/tmp/counter-strike-docker# docker ps -a
    CONTAINER ID   IMAGE                  COMMAND                  CREATED         STATUS                     PORTS     NAMES
    f0b30c2f5a60   cs16ds/server:latest   "/bin/hlds_run.sh +l…"   9 minutes ago   Exited (1) 9 minutes ago             cs
    root@tester-VirtualBox:/home/tester/Desktop/tmp/counter-strike-docker# docker logs f0b30c2f5a60
    + CONFIG_FILE=/opt/hlds/startup.cfg
    + '[' -r /opt/hlds/startup.cfg ']'
    + EXTRA_OPTIONS=("$@")
    + EXECUTABLE=/opt/hlds/hlds_run
    + GAME=cstrike
    + MAXPLAYERS=32
    + START_MAP=de_dust2
    + SERVER_NAME='My Server Name'
    + START_MONEY=16000
    + BUY_TIME=0.25
    + FRIENDLY_FIRE=1
    + OPTIONS=("-game" "${GAME}" "+maxplayers" "${MAXPLAYERS}" "+map" "${START_MAP}" "+hostname" "\"${SERVER_NAME}\"" "+mp_startmoney" "${START_MONEY}" "+mp_friendlyfire" "${FRIENDLY_FIRE}" "+mp_buytime" "${BUY_TIME}")
    + '[' -z '' ']'
    + OPTIONS+=('-norestart')
    + '[' -n '' ']'
    + '[' -n '' ']'
    + '[' -n 0:1:1234566 ']'
    + echo '"STEAM_0:1:1234566" ""  "abcdefghijklmnopqrstu" "ce"'
    + set
    + exec /opt/hlds/hlds_run -game cstrike +maxplayers 32 +map de_dust2 +hostname '"My Server Name"' +mp_startmoney 16000 +mp_friendlyfire 1 +mp_buytime 0.25 -norestart +log
    /bin/hlds_run.sh: line 46: /opt/hlds/hlds_run: No such file or directory


    PS:
    Цифры 10, 70, 90 это коды игр как я понимаю?
    Half-Life
    Хз почему/для чего еще одна Half-Life
    CS

    Т.е скрипт /opt/steam/steamcmd.sh качает три официальных(заточенные под steam) сервера/их билды для последующей их настройки/кастомизации? К своему стыду я слабо понимаю что он ставит/обновляет(в начальной версии его Dockerfile) c помощью скрипта steamcmd.sh. ..
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 90 validate +quit
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 70 validate +quit || :
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 10 validate +quit || :
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 90 validate +quit


    Который дальше в свою очередь в зависимости от ОС на которой он работает подгружает необходимый модуль, после я чуть теряюсь зачем он проверяет на наличие дебагера(gdb) итд....
    !/usr/bin/env bash
    
    STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
    STEAMCMD=`basename "$0" .sh`
    
    UNAME=`uname`
    if [ "$UNAME" == "Linux" ]; then
      STEAMEXE="${STEAMROOT}/linux32/${STEAMCMD}"
      PLATFORM="linux32"
      export LD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$LD_LIBRARY_PATH"
    else # if [ "$UNAME" == "Darwin" ]; then
      STEAMEXE="${STEAMROOT}/${STEAMCMD}"
      if [ ! -x ${STEAMEXE} ]; then
        STEAMEXE="${STEAMROOT}/Steam.AppBundle/Steam/Contents/MacOS/${STEAMCMD}"
      fi
      export DYLD_LIBRARY_PATH="$STEAMROOT:$DYLD_LIBRARY_PATH"
      export DYLD_FRAMEWORK_PATH="$STEAMROOT:$DYLD_FRAMEWORK_PATH"
    fi
    
    ulimit -n 2048
    
    MAGIC_RESTART_EXITCODE=42
    
    if [ "$DEBUGGER" == "gdb" ] || [ "$DEBUGGER" == "cgdb" ]; then
      ARGSFILE=$(mktemp $USER.steam.gdb.XXXX)
    
      # Set the LD_PRELOAD varname in the debugger, and unset the global version.
      if [ "$LD_PRELOAD" ]; then
        echo set env LD_PRELOAD=$LD_PRELOAD >> "$ARGSFILE"
        echo show env LD_PRELOAD >> "$ARGSFILE"
        unset LD_PRELOAD
      fi
    
      $DEBUGGER -x "$ARGSFILE" "$STEAMEXE" "$@"
      rm "$ARGSFILE"
    else
      $DEBUGGER "$STEAMEXE" "$@"
    fi
    
    STATUS=$?
    
    if [ $STATUS -eq $MAGIC_RESTART_EXITCODE ]; then
        exec "$0" "$@"
    fi
    exit $STATUS


    Большое спасибо тебе за помощь, буду рад если кто то подскажет что здесь не так....
    Возможно есть люди которые уже 'докеризировали' множество игр и им будет проще найти в чем проблема.
  • Ошибка при сборке Docker образа?

    @HexUserHex Автор вопроса
    Спасибо,

    Если я верно понимаю моем случае(для CS 1.6) мне нужна вот эта часть для загрузки манифестов:
    for i in 10 70 90; do wget -q https://raw.githubusercontent.com/dgibbs64/HLDS-appmanifest/master/CounterStrike/appmanifest_$i.acf -O appmanifest_$i.acf; done


    Но куда мне ее всунуть в моем Dockerfile ? + у меня нет каталога steamapps...
    FROM debian:jessie
    
    ARG steam_user=anonymous
    ARG steam_password=
    ARG metamod_version=1.20
    ARG amxmod_version=1.8.2
    
    RUN apt update && apt install -y lib32gcc1 curl unzip
    
    # Install SteamCMD
    RUN mkdir -p /opt/steam && cd /opt/steam && \
        curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
    
    # Install HLDS
    RUN mkdir -p /opt/hlds
    # Workaround for "app_update 90" bug, see https://forums.alliedmods.net/showthread.php?p=2518786
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 90 validate +quit
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 70 validate +quit || :
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 10 validate +quit || :
    RUN /opt/steam/steamcmd.sh +login $steam_user $steam_password +force_install_dir /opt/hlds +app_update 90 validate +quit
    RUN mkdir -p ~/.steam && ln -s /opt/hlds ~/.steam/sdk32
    RUN ln -s /opt/steam/ /opt/hlds/steamcmd
    ADD files/steam_appid.txt /opt/hlds/steam_appid.txt
    ADD hlds_run.sh /bin/hlds_run.sh
    RUN chmod +x /bin/hlds_run.sh
    
    # Add default config
    ADD files/server.cfg /opt/hlds/cstrike/server.cfg
    
    # Add maps
    ADD maps/* /opt/hlds/cstrike/maps/
    ADD files/mapcycle.txt /opt/hlds/cstrike/mapcycle.txt
    
    # Install metamod
    RUN mkdir -p /opt/hlds/cstrike/addons/metamod/dlls
    RUN curl -sqL "http://prdownloads.sourceforge.net/metamod/metamod-$metamod_version-linux.tar.gz?download" | tar -C /opt/hlds/cstrike/addons/metamod/dlls -zxvf -
    ADD files/liblist.gam /opt/hlds/cstrike/liblist.gam
    # Remove this line if you aren't going to install/use amxmodx and dproto
    ADD files/plugins.ini /opt/hlds/cstrike/addons/metamod/plugins.ini
    
    # Install dproto
    RUN mkdir -p /opt/hlds/cstrike/addons/dproto
    ADD files/dproto_i386.so /opt/hlds/cstrike/addons/dproto/dproto_i386.so
    ADD files/dproto.cfg /opt/hlds/cstrike/dproto.cfg
    
    # Install AMX mod X
    RUN curl -sqL "http://www.amxmodx.org/release/amxmodx-$amxmod_version-base-linux.tar.gz" | tar -C /opt/hlds/cstrike/ -zxvf -
    RUN curl -sqL "http://www.amxmodx.org/release/amxmodx-$amxmod_version-cstrike-linux.tar.gz" | tar -C /opt/hlds/cstrike/ -zxvf -
    ADD files/maps.ini /opt/hlds/cstrike/addons/amxmodx/configs/maps.ini
    
    ADD files/podbot_full_V3B22.zip /opt/hlds/cstrike/addons/podbot_full_V3B22.zip
    RUN unzip /opt/hlds/cstrike/addons/podbot_full_V3B22.zip
    RUN echo "addons/podbot/podbot_mm_i386.so" >> /opt/hlds/cstrike/addons/metamod/plugins.ini
    RUN rm /opt/hlds/cstrike/addons/podbot_full_V3B22.zip
    
    # Cleanup
    RUN apt remove -y curl unzip
    
    WORKDIR /opt/hlds
    
    ENTRYPOINT ["/bin/hlds_run.sh"]
  • Почему вылетает мой python скрипт?

    @HexUserHex Автор вопроса
    Вот что я узнал, дело оказывается вовсе не в запросах, данный кусок кода кидает аналогичную ошибку(warning) в логах

    ошибка:
    [Warning] Aborted connection 11 to db: 'mysql' user: 'root' host: 'localhost' (Got an error reading communication packets)


    #!/usr/bin/env python3
    
    import mariadb
    
    conn = mariadb.connect(
           host="127.0.0.1",
           user="root",
           password="password",
           port=3306,
           database="steam"
        )
        
    cur = conn.cursor()


    Info:

    mariadb Ver 15.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
    Python 3.8.10
    Linux tester-VirtualBox 5.11.0-40-generic #44~20.04.2-Ubuntu SMP Tue Oct 26 18:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux


    запустил wireshark в момент запуска скрипта:
    619d3e61c2ab0109028141.png
  • Почему вылетает мой python скрипт?

    @HexUserHex Автор вопроса
    Почитал на stackexchang при похожей проблеме вроде советуют в конфиге увеличивать значение параметра:
    max_allowed_packet=256M

    Что я и сделал + на данный момент мой конфиг имеет вот такой вид.

    #
    # These groups are read by MariaDB server.
    # Use it for options that only the server (but not clients) should see
    #
    # See the examples of server my.cnf files in /usr/share/mysql
    
    # this is read by the standalone daemon and embedded servers
    [server]
    
    # this is only for the mysqld standalone daemon
    [mysqld]
    
    #
    # * Basic Settings
    #
    user                    = mysql
    pid-file                = /run/mysqld/mysqld.pid
    socket                  = /run/mysqld/mysqld.sock
    #port                   = 3306
    basedir                 = /usr
    datadir                 = /var/lib/mysql
    tmpdir                  = /tmp
    lc-messages-dir         = /usr/share/mysql
    #skip-external-locking
    
    # Instead of skip-networking the default is now to listen only on
    # localhost which is more compatible and is not less secure.
    bind-address            = 127.0.0.1
    
    #
    # * Fine Tuning
    #
    #key_buffer_size        = 16M
    key_buffer_size         = 256M
    
    max_allowed_packet     = 1G
    
    #thread_stack           = 192K
    thread_stack           = 10M
    
    #thread_cache_size      = 8
    thread_cache_size       = 200
    
    # This replaces the startup script and checks MyISAM tables if needed
    # the first time they are touched
    #myisam_recover_options = BACKUP
    #max_connections        = 100
    #table_cache            = 64
    thread_concurrency     = 30
    wait_timeout           = 620
    
    
    #
    # * Query Cache Configuration
    #
    #query_cache_limit      = 1M
    query_cache_limit       = 10M
    
    query_cache_size        = 16M
    
    #
    # * Logging and Replication
    #
    # Both location gets rotated by the cronjob.
    # Be aware that this log type is a performance killer.
    # As of 5.1 you can enable the log at runtime!
    general_log_file       = /var/log/mysql/mysql.log
    general_log            = 1
    #
    # Error log - should be very few entries.
    #
    log_error = /var/log/mysql/error.log
    #
    # Enable the slow query log to see queries with especially long duration
    #slow_query_log_file    = /var/log/mysql/mariadb-slow.log
    #long_query_time        = 10
    #log_slow_rate_limit    = 1000
    #log_slow_verbosity     = query_plan
    #log-queries-not-using-indexes
    #
    # The following can be used as easy to replay backup logs or for replication.
    # note: if you are setting up a replication slave, see README.Debian about
    #       other settings you may need to change.
    #server-id              = 1
    #log_bin                = /var/log/mysql/mysql-bin.log
    expire_logs_days        = 10
    #max_binlog_size        = 100M
    #binlog_do_db           = include_database_name
    #binlog_ignore_db       = exclude_database_name
    
    #
    # * Security Features
    #
    # Read the manual, too, if you want chroot!
    #chroot = /var/lib/mysql/
    #
    # For generating SSL certificates you can use for example the GUI tool "tinyca".
    #
    #ssl-ca = /etc/mysql/cacert.pem
    #ssl-cert = /etc/mysql/server-cert.pem
    #ssl-key = /etc/mysql/server-key.pem
    #
    # Accept only connections using the latest and most secure TLS protocol version.
    # ..when MariaDB is compiled with OpenSSL:
    #ssl-cipher = TLSv1.2
    # ..when MariaDB is compiled with YaSSL (default in Debian):
    #ssl = on
    
    #
    # * Character sets
    #
    # MySQL/MariaDB default is Latin1, but in Debian we rather default to the full
    # utf8 4-byte character set. See also client.cnf
    #
    character-set-server  = utf8mb4
    collation-server      = utf8mb4_general_ci
    
    #
    # * InnoDB
    #
    # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
    # Read the manual for more InnoDB related options. There are many!
    
    #
    # * Unix socket authentication plugin is built-in since 10.0.22-6
    #
    # Needed so the root database user can authenticate without a password but
    # only when running as the unix root user.
    #
    # Also available for other users if required.
    # See https://mariadb.com/kb/en/unix_socket-authentication-plugin/
    
    # this is only for embedded server
    [embedded]
    
    # This group is only read by MariaDB servers, not by MySQL.
    # If you use the same .cnf file for MySQL and MariaDB,
    # you can put MariaDB-only options here
    [mariadb]
    
    # This group is only read by MariaDB-10.3 servers.
    # If you use the same .cnf file for MariaDB of different versions,
    # use this group for options that older servers don't understand


    проводя тесты я увеличил почти все значения) но результат по-прежнему тот же ...