KDE в Ubuntu 20.04 через x2goserver проблемы и их решения

Проблема: Не запускается сессия, не выполняется startkde, ошибка error: unable to execute: startkde в клиенте x2goclient на клиентском компьютере

Решение: Создать симлинк 

# ln -s /usr/bin/startplasma-x11 /usr/bin/startkde

Источник: https://bytexd.com/x2go-ubuntu/


Проблема: Постоянно Network Manager запрашивает пароль для повышения прав, сообщение вида Authentication Required PolicyKit1 KDE Agent

Решение: Настроить правила в polkit (хотя по идее NM вообще удалить можно, сеть статически на серверах в interfaces настраивается, но вроде ничего не ломает NM)

# vi /etc/polkit-1/localauthority/50-local.d/50-allow-network-manager.pkla
[Network Manager all Users]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.settings.modify.system;org.freedesktop.NetworkManager.network-control
ResultAny=no
ResultInactive=no
ResultActive=yes

Источник: https://unix.stackexchange.com/questions/534469/system-policy-prevents-control-of-network-connections


Проблема: Запускается графическая оболочка на физической консоли сервера, стало после apt install kubuntu-desktop, она там не нужна, расходует ресурсы

Решение: Поменять target запуска системы в systemd

# systemctl set-default multi-user.target

обратно

# systemctl set-default graphical.target

посмотреть какой сейчас

# systemctl get-default


Проблема: x2goclient на клиентском компьютере запускает ssh-сервер, понижается безопасность.

Решение: Таков механимзм работы проброса протокола x11. Отредактируйте /etc/ssh/sshd_config и пропишите ListenAddress 127.0.0.1

Настраиваем VPN L2TP IPsec сервер для подключения с мобильных устройств (на Debian 10)

# apt install xl2tpd libreswan

# vi /etc/ipsec.conf
config setup
        nat_traversal=yes
        virtual_private=%v4:10.1.2.0/24
        oe=off
        protostack=netkey
conn L2TP-PSK-NAT
        rightsubnet=vhost:%priv
        also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
        authby=secret
        pfs=no
        auto=add
        keyingtries=3
        rekey=no
        ikelifetime=8h
        keylife=1h
        type=transport
        left=внешний.ip.адрес.сервера
        leftprotoport=17/1701
        right=%any
        rightprotoport=17/%any


# vi /etc/ipsec.d/my.secrets
внешний.ip.адрес.сервера %any: PSK "секрет_для_ipsec_символов_20" 

# vi /etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = yes

[lns default]
ip range = 10.1.2.2-10.1.2.255
local ip = 10.1.2.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

# vi /etc/ppp/options.xl2tpd
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 1.1.1.1
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name VPN
proxyarp
mtu 1200
mru 1200
lcp-echo-interval 30
lcp-echo-failure 4

# vi /etc/ppp/chap-secrets
user    VPN    пароль_символов_20_для_l2tp    *

# systemctl enable ipsec ; systemctl start ipsec
# systemctl enable xl2tpd ; systemctl start xl2tpd

Настроим NAT в интернет, примерно так (где eth0 внешний интерфейс, имя узнать ip a)
# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
# crontab -e
@reboot /sbin/iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -o eth0 -j MASQUERADE

# sysctl net.ipv4.ip_forward=1 ; iptables -t nat -A POSTROUTING -s 10.1.2.0/24 -o eth0 -j MASQUERADE



Настроим IOS-устройство, перейти в меню
Настройки - VPN - Добавить конфигурацию VPN
Тип – L2TP
Описание – на ваше усмотрение (VPN)
Сервер – домен или IP-адрес VPN-сервера
Учетная запись – имя пользователя VPN
Пароль – пароль пользователя VPN (файл /etc/ppp/chap-secrets)
Общий ключ – секрет IPsec (файл /etc/ipsec.d/my.secrets)

На Android добавляется аналогично в сетевых подключениях

ntp сервера stratum 1 для рф сервера и европейского

server -4 ntp.ix.ru iburst
server -4 ntp4.vniiftri.ru iburst
server -4 ntp3.aas.ru iburst
server -4 ntp.kaluga.net iburst
server -4 ntp.zev.su iburst
server -4 ntp3.stratum1.ru iburst
server -4 atomic.zxlab.ru iburst
server -4 ntp.arity.ru iburst
server -4 rt.swl.su iburst
server -4 ntp0.nl.uu.net iburst
server -4 ntp2.fau.de iburst
server -4 ntp.nic.kz iburst


server -4 time.esa.int iburst
server -4 ntp5.leontp.com iburst
server -4 ntp.ripe.net iburst
server -4 ntp0.nl.uu.net iburst
server -4 ntp1.time.nl iburst
server -4 time.t3kkit.com iburst
server -4 ntp2.oma.be iburst 
server -4 ntp-p1.obspm.fr iburst
server -4 gbg1.ntp.se iburst
server -4 time2.stupi.se iburst
server -4 ntp2.fau.de iburst
server -4 ntp2.inrim.it iburst



Полезные ссылки:

Установка NTP сервера для включения его в pool.ntp.org https://habr.com/ru/post/536436/

Патченный java webstart чтобы не добавлять руками "небезопасные" сайты

 Патченный java webstart чтобы не добавлять руками якобы "небезопасные" сайты

$ cat /usr/bin/javaws

#!/bin/sh

cat "$1"|head -n3|grep -oE "htt.*([0-9]{1,3}[\.]){3}[0-9]{1,3}...." >> $HOME/.java/deployment/security/exception.sites


prog="$0"

while [ -h "$prog" ]; do prog=$(readlink -f $prog); done

[ $# -eq 0 ] && set -- -viewer

exec $(dirname $prog)/javaws.real "$@"


Тестируем скорость диска при помощи fio

Тест случайных операций на чтение/запись

При запуске такого теста, будет создан файл размером 4Gb. Затем утилита fio выполнит чтение/запись блока 4Kb (размер блока по-умолчанию) с разделением на 75/25% по количеству операций чтения и записи и замерит производительность, ключ iodepth при этом позволяет процессу получить приоритет над другими создав глубину очереди, после теста удаляем тестовый файл с диска

fio --ioengine=libaio --direct=1 --name=fiotest --filename=testfio --iodepth=32 --size=4G --rwmixread=75 --readwrite=randrw ; rm -f testfio

Тест линейных операций на чтение/запись будет отличаться одним ключем --readwrite

fio --ioengine=libaio --direct=1 --name=fiotest --filename=testfio --iodepth=32 --size=4G --rwmixread=75 --readwrite=rw ; rm -f testfio

При измерении скорости на NVMe дисках следует указывать параметр блока --bs=128k
Устройство AHCI ограничено одной очередью глубиной 32, в то время как NVMe поддерживает 64К (65536) очередей с глубиной 65536 каждая тем самым достигается высокая параллельность операции на NVMe устройствах. Это одна из причин, почем использовать утилиты на них dd и hdparm бесполезно и для измерения реальной скорости необходимо измерять скорость блоками 32k, 64k, 128k. Линейное и случайное чтение в норме должны быть почти одинаковыми. То же касается и записи данных.

Полезная ссылка: https://habr.com/ru/post/154235/

Удаляем старые версии snap пакетов

Как известно, в новых Ubuntu некоторый софт ставится из snap

Данное ПО автоматически обновляется и старые версии занимают место

# df -h
/dev/loop0       56M   56M     0 100% /snap/core18/2066
/dev/loop2      9.2M  9.2M     0 100% /snap/canonical-livepatch/98
/dev/loop1      100M  100M     0 100% /snap/core/10958
/dev/loop3      9.2M  9.2M     0 100% /snap/canonical-livepatch/99
/dev/loop4       99M   99M     0 100% /snap/core/11081
/dev/loop5       56M   56M     0 100% /snap/core18/1997

Как их удалить?

Получаем список с ключем --all

# snap list --all
Name                 Version    Rev    Tracking       Publisher   Notes
canonical-livepatch  9.6.1      98     latest/stable  canonical✓  disabled
canonical-livepatch  9.6.2      99     latest/stable  canonical✓  -
core                 16-2.49.2  10958  latest/stable  canonical✓  core,disabled
core                 16-2.50    11081  latest/stable  canonical✓  core
core18               20210309   1997   latest/stable  canonical✓  base,disabled
core18               20210507   2066   latest/stable  canonical✓  base

И удаляем snap пакеты которые помечены как disabled указывая ключ --revision=

# snap remove canonical-livepatch --revision=98
canonical-livepatch (revision 98) removed
# snap remove core --revision=10958
core (revision 10958) removed
# snap remove core18 --revision=1997
core18 (revision 1997) removed

Также настраивается политика хранения версий

# snap set system refresh.retain=1
# snap get system refresh.retain
1

Необходимо на системах с малым количеством места в /snap

https://forum.snapcraft.io/t/managing-updates/7022

The refresh.retain value can be a number between 2 and 20. The default is refresh.retain=3 on Ubuntu Core systems and refresh.retain=2 on classic Ubuntu systems, such as those running Ubuntu 18.04 LTS (Bionic Beaver) and Ubuntu 16.04 LTS (Xenial Xerus).

Отключить обновления

# snap set system refresh.metered=hold

Включить обновления

# snap set system refresh.metered=null

ffmpeg static build with libfdk-aac (Fraunhofer FDK AAC) codec

Проект ffmpeg https://ffmpeg.org/download.html распространяет продукт в бинарном статическом виде на https://www.johnvansickle.com/ffmpeg в виде файла ffmpeg-release-amd64-static.tar.xz

full static build, должно работать под всеми ОС

Он не содержит части кодеков которые могут быть нужны, например, libfdk-aac (Fraunhofer FDK AAC) который используется для кодирования звука мобильными устройствами.

Данное программное обеспечение собрано с опциями:

ffmpeg version 4.3.1-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 51.100 / 56. 51.100
libavcodec 58. 91.100 / 58. 91.100
libavformat 58. 45.100 / 58. 45.100
libavdevice 58. 10.100 / 58. 10.100
libavfilter 7. 85.100 / 7. 85.100
libswscale 5. 7.100 / 5. 7.100
libswresample 3. 7.100 / 3. 7.100
libpostproc 55. 7.100 / 55. 7.100

Что не включает в себя нужный кодек libfdk-aac и некоторые другие

Также они не раздают build-файлы/скрипты для повторяемой сборки и изменить что-либо или добавить аудио-видео кодек не предоставляется возможным.

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

В статье ниже ссылки на уже скомпилированные ffmpeg / ffprobe, рекомендую также смотреть https://dl.ispsystem.info/ffmpeg-static/ так как там могут появляться новые/более актуальные


1. zimbatm не самая свежая, но актуальная и стабильная версия ffmpeg 4 со стабильными кодеками https://github.com/zimbatm/ffmpeg-static

full static build, должно работать под всеми ОС

опции сборки zimbatm (собирать под Ubuntu 18.04, под gcc8 не собирается):

docker run -it ubuntu:bionic bash
apt-get update && apt-get install wget sudo git-core
git clone https://github.com/zimbatm/ffmpeg-static.git
cd ffmpeg-static
./build-ubuntu.sh

cd bin
./ffmpeg 
ffmpeg version db2935c Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/ffmpeg-static/target --pkg-config-flags=--static --extra-cflags=-I/ffmpeg-static/target/include --extra-ldflags=-L/ffmpeg-static/target/lib --extra-libs='-lpthread -lm -lz' --extra-ldexeflags=-static --bindir=/ffmpeg-static/bin --enable-pic --enable-ffplay --enable-fontconfig --enable-frei0r --enable-gpl --enable-version3 --enable-libass --enable-libfribidi --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libzimg --enable-nonfree --enable-openssl
  libavutil      56. 14.100 / 56. 14.100
  libavcodec     58. 18.100 / 58. 18.100
  libavformat    58. 12.100 / 58. 12.100
  libavdevice    58.  3.100 / 58.  3.100
  libavfilter     7. 16.100 /  7. 16.100
  libswscale      5.  1.100 /  5.  1.100
  libswresample   3.  1.100 /  3.  1.100
  libpostproc    55.  1.100 / 55.  1.100

Установка сборки zimbatm (рекомендуется как стабильное ПО):

cd /usr/local/bin/
wget https://dl.ispsystem.info/ffmpeg-static/zimbatm/bin/ffmpeg 
wget https://dl.ispsystem.info/ffmpeg-static/zimbatm/bin/ffprobe
chmod +x ffmpeg ffprobe

2. markus-perl последняя версия с актуальными аудио- и видеокодеками https://github.com/markus-perl/ffmpeg-build-script (лучше ставить её)

full static build, должно работать под всеми ОС

Опции сборки markus-perl (разработчик рекомендует для сборки Debian 10), пожалуй это самый живой проект и разработчик отвечает на issue (в течение дня по моей просьбе сделал опцию -f для full static build):

docker run -it debian:buster bash
apt-get update && apt-get install build-essential curl g++ git-core
git clone https://github.com/markus-perl/ffmpeg-build-script.git
cd ffmpeg-build-script
./build-ffmpeg -b -f

cd workspace/bin
./ffmpeg
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --enable-libx264 --enable-libx265 --enable-libvpx --enable-libxvid --enable-libvidstab --enable-libaom --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libtheora --enable-libfdk-aac --enable-openssl --enable-libsrt --disable-debug --disable-doc --disable-ffplay --disable-shared --enable-gpl --enable-nonfree --enable-pthreads --enable-static --enable-small --enable-version3 --extra-cflags=-I/ffmpeg-build-script/workspace/include --extra-ldexeflags=-static --extra-ldflags=-L/ffmpeg-build-script/workspace/lib --extra-libs='-lpthread -lm -lz' --pkgconfigdir=/ffmpeg-build-script/workspace/lib/pkgconfig --pkg-config-flags=--static --prefix=/ffmpeg-build-script/workspace
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100

Установка сборки markus-perl (рекомендуется как самое свежее ПО):

cd /usr/local/bin/
wget https://dl.ispsystem.info/ffmpeg-static/markus-perl/bin/ffmpeg 
wget https://dl.ispsystem.info/ffmpeg-static/markus-perl/bin/ffprobe
chmod +x ffmpeg ffprobe


3. ffmpeg static для CentOS 7

static build, работает только под centos 7

Собран по мануалу https://trac.ffmpeg.org/wiki/CompilationGuide/Centos в чистом окружении (использовался docker)

docker run -it centos:7 bash
PATH=$PATH:/root/bin

ffmpeg version N-99710-g6965ade Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-39)
  configuration: --prefix=/root/ffmpeg_build --pkg-config-flags=--static --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags=-L/root/ffmpeg_build/lib --extra-libs=-lpthread --extra-libs=-lm --bindir=/root/bin --enable-gpl --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvpx --enable-libx264 --enable-libx265 --enable-nonfree
  libavutil      56. 60.100 / 56. 60.100
  libavcodec     58.111.101 / 58.111.101
  libavformat    58. 62.100 / 58. 62.100
  libavdevice    58. 11.102 / 58. 11.102
  libavfilter     7. 88.100 /  7. 88.100
  libswscale      5.  8.100 /  5.  8.100
  libswresample   3.  8.100 /  3.  8.100
  libpostproc    55.  8.100 / 55.  8.100

Единственное, что изменено - взят x265_3.2.1.tar.gz,  для решения проблемы отсутствия файла x265.pc https://stackoverflow.com/questions/51918409/compiling-ffmpeg-x265-not-found-using-pkg-config (wget http://ftp.videolan.org/pub/videolan/x265/x265_3.2.1.tar.gz && tar xf x265_3.2.1.tar.gz && cd x265_3.2.1/build/linux)

Установка сборки ffmpeg для CentOS 7

cd /usr/local/bin/
wget https://dl.ispsystem.info/ffmpeg-static/centos7-snapshot-251020/bin/ffmpeg
wget https://dl.ispsystem.info/ffmpeg-static/centos7-snapshot-251020/bin/ffprobe
chmod +x ffmpeg ffprobe

yum install freetype

bitrix просит авторизацию на каждой странице - изменить путь к директории сайта

bitrix просит авторизацию на каждой странице - требуется изменить путь к директории сайта

update b_lang set DOC_ROOT="/var/www/bitrix/data/www/new" where DOC_ROOT="/var/www/old";


rm -rf bitrix/cache/*

rm -rf bitrix/managed_cache/*

Установка на Ubuntu 16.04 нового ядра

Новые ядра требуют openssl 1.1 которого нет в системе, поэтому перед установкой с https://kernel.ubuntu.com/~kernel-ppa/mainline/ следует его поставить


wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb

sudo dpkg -i libssl1.1_1.1.0g-2ubuntu4_amd64.deb


и, также, необходимо поставить пакет для сборки драйверов Nvidia, если используете

sudo apt install libelf-dev