На виртуальной машине в Yandex Cloud не работает отправка почты посредством sendmail на любой почтовый сервер, кроме яндекса, в журнале записываются ошибки вида:
stat=Deferred: Connection timed out with mxs.mail.ru
Проблема в том, что Яндекс Cloud автоматически блокирует трафик, который отправляется с публичных IP-адресов виртуальной машины на TCP-порт 25 любых серверов в Интернете. Исключение — соединения с почтовыми серверами Яндекс Почты.
Yandex Cloud может предоставить специальный публичный адрес с открытым 25 TCP-портом по запросу в техническую поддержку. При этом он оставляет за собой право заблокировать исходящий трафик на 25 порту, при рассылке спама.
Для уже используемых публичных IP-адресов порт 25 не открывается.
Windows 11: Попытка L2TP-подключения не удалась из-за ошибки, произошедшей на уровне безопасности во время согласований с удаленным компьютером
У одного из L2TP-клиентов сервера VPN, поднятого на Mikrotik, неожиданно перестало устанавливаться соединение, выдавая ошибку: Попытка L2TP-подключения не удалась из-за ошибки, произошедшей на уровне безопасности во время согласований с удаленным компьютером.
На стороне Микротика, в журнале присутствуют записи:
no suitable proposal found.
188.xxx.235.5 failed to get valid proposal.
188.xxx.235.5 failed to pre-process ph1 packet (side: 1, status 1).
188.xxx.235.5 phase1 negotiation failed.
Проблема заключается в том, что стороны не могут согласовать алгоритм шифрования. По какой причине Windows перестал нравится прежний набор алгоритмов неизвестно. Но теперь, ОС требуется обязательного наличия алгоритма aes-256. Данный алгоритм нужно задействовать в настройках Микротика: раздел IP → IPsec → вкладка Profiles → профиль по умолчанию default → блок Encryption Algorithm.
Микротик — Туннель IPsec не пропускает трафик
Имеется проблема при настройке IPsec туннеля на маршрутизаторе Mikrotik: туннель поднимается, пакеты из удаленной сети приходят и даже возвращаются ICMP ответы, однако, из сети со стороны Микротика, пакеты предназначенные в удалённую сеть, в туннель не перенаправляются.
Для начала следует понять пропускает ли Микротик вообще эти пакеты, и если да, то куда перенаправляет. Если их не блокирует фаервол, то скорее всего они уходят в интернет, через шлюз по умолчанию. Проверить это можно встроенной программой сниффера: Tools → Packet Sniffer.
Если пакеты уходят в интернет, то скорее всего обрабатываются правилом по умолчанию (маскарада). Соответственно, нужно перед ним добавить правило, исключающее обработку пакетов, предназначенных для IPsec туннеля:
- переходим во вкладку IP → Firewall → NAT;
- добавляем правило Chain: srcnat;
- указываем Src. Address сети за Микротиком и Dst. Address удаленной сети;
- указываем Action: Accept и нажимаем кнопку Ok;
- перетягиваем созданное правило на самый верх, чтобы оно было с номером 0.
bxSiteFiles::bx_dbconn: Cannot open dbconn.php
Не выполняется создание резервной копии по расписанию. При попытке запустить сценарий bx_backup.sh вручную отображается ошибка:
bxSiteFiles::bx_dbconn: Cannot open /home/bitrix/site.ru/bitrix/php_interface/dbconn.php: Permission denied at /opt/webdir/lib/bxSiteFiles.pm line 273
Данный сайт был создан через меню управления окружением, запущенным от имени root. Поэтому владельцем директории с ядром Битрикса стал root. Исправить это можно сменив владельца директории на bitrix командой:
chown -R bitrix:bitrix /home/bitrix/site.ru
Запрет протокола UDP в RDP сессиях
При плохом качестве связи или неправильных настройках MTU, использование протокола UDP для RDP-подключения может вызывать проблемы: периодическое замирание картинки, обрывы RDP сессий, пользователи видят черных экран вместо удаленного рабочего стола, сообщение о внутренней ошибке при RDP подключении и т.п.
Проверить, используется ли UDP протокол, можно во время подключения к удалённому рабочему столу, нажав на пиктограмму качества соединения:
На стороне сервера запрет использования протокола UDP для RDP-подключений настраивается так:
- открываем редактор групповой политики: нажимаем клавиши Windows + R → вводим gpedit.msc → нажимаем кнопку Ok;
- в редакторе групповой политики переходим в раздел Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Подключения;
- открываем свойства политики Выбор транспортных протоколов RDP дважды нажав ЛКМ;
- устанавливаем переключатель на Включено;
- в выпадающем меню выбираем тип транспорта Использовать только TCP и нажимаем кнопку Ok;
- перезагружаем сервер.
На стороне клиента запрет использования протокола UDP для RDP-подключений настраивается так:
- открываем редактор групповой политики: нажимаем клавиши Windows + R → вводим gpedit.msc → нажимаем кнопку Ok;
- в редакторе групповой политики переходим в раздел Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов удаленных рабочих столов → Клиент подключения к удаленному рабочему столу;
- открываем свойства политики Отключение UDP на клиенте дважды нажав ЛКМ;
- устанавливаем переключатель на Включено и нажимаем кнопку Ok;
- перезагружаем компьютер.
В ОС Windows версии Home, редактор групповых политик отсутствует. Вместо его использования, можно изменить значение ключа реестра посредством командной строки.
Для этого в строку поиска на панели задач вбиваем cmd → нажимаем ПКМ на результате поиска и выбираем Запустить от имени администратора → в открывшееся окно копируем команду:
reg add «HKLM\software\policies\microsoft\windows nt\Terminal Services\Client» /v fClientDisableUDP /d 1 /t REG_DWORD
и нажимаем Enter. После этого компьютер перезагружать не требуется.
PHP-FPM: как узнать, какие строки кода долго выполняются
PHP-FPM поддерживает опцию журналирования медленных участков кода. Для её включения, необходимо в конфигурационный файл воркера добавить строки:
slowlog = /var/log/php-fpm/www-slow.log
request_slowlog_timeout = 5s
где slowlog — принимает путь, до файла для ведения журнала;
request_slowlog_timeout — задаёт максимальное время исполнения команды интерпретатора, при превышении которого она будет добавлена в журнал.
Bash: сценарий удаления таблиц MySQL
Код сценария для удаления всех таблиц базы данных MySQL без удаления самой базы:
#!/bin/bash MUSER="$1" MPASS="$2" MDB="$3" # Detect paths MYSQL=$(which mysql) AWK=$(which awk) GREP=$(which grep) if [ $# -ne 3 ] then echo "Usage: $0 {MySQL-User-Name} {MySQL-User-Password} {MySQL-Database-Name}" echo "Drops all tables from a MySQL" exit 1 fi TABLES=$($MYSQL -u $MUSER -p$MPASS $MDB -e 'show tables' | $AWK '{ print $1}' | $GREP -v '^Tables' ) for t in $TABLES do echo "Deleting $t table from $MDB database..." $MYSQL -u $MUSER -p$MPASS $MDB -e "drop table $t" done
Пример использования:
$ ./drop_tables.sh user_name password database_name
Hyper-V — нет пункта «удалить контрольную точку»
В Hyper-V Manager не удаётся удалить контрольную точку, так как в выпадающем меню ПКМ нет соответствующего пункта.
Такое иногда случается после сбоя резервного копирования DPM или Veeam: нельзя удалить сломанные контрольные точки восстановления для виртуальной машины, созданной Hyper-V.
Решить проблему можно тремя способами.
Первый вариант:
- проверить наличие контрольной точки командой PowerShell:
- в случае если место на диске нет и машина в приостановленном состоянии — выключить ее;
- удалить контрольные точки командой PowerShell:
Get-VMSnapshot -VMName "virtual machine name"
Get-VMSnapshot -VMName "virtual machine name" | Remove-VMSnapshot
Второй вариант:
- создать новую контрольную точку;
- выбрать её и экспортировать (это создаст копию VHD диска в одном файле);
- удалить старую виртуальную машину, после чего импортировать копию.
Второй вариант:
- в Hyper-V Manager используя функцию Изменить диск, выбрать наиболее свежий AVHDX файл с последней контрольной точкой;
- выбрать действие Объединить;
- выбрать пункт К родительскому жесткому диску.
BitrixVM — не работает почта
В журнале msmtp_site.ru.log присутствуют записи вида:
msmtp: cannot connect to 127.0.0.1, port 25: Connection refused
msmtp: could not send mail (account default from /etc/msmtprc)
Скорее всего в этом случает не установлен почтовый агент (MTA), проверить это можно командой:
echo -e «test message» | /usr/bin/msmtp —debug -t -i admin@mail.ru
Для решения проблемы, его необходимо установить командами:
yum install sendmail
systemctl start sendmail.service
После чего добавить в автозагрузку:
systemctl enable sendmail.service
Proxmox и ZFS — значительное потребление памяти
При использовании ProxmoxVE с ZFS, при работе виртуальных машин, память на хосте постепенно расходуется до полного исчерпания, результатом чего может стать выключение виртуальных машин:
kernel: [1123659.062155] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/qemu.slice/104.scope,task=kvm,pid=1045923,uid=0
kernel: [1123659.062203] Out of memory: Killed process 1045923 (kvm) total-vm:10639204kB, anon-rss:8332420kB, file-rss:2320kB, shmem-rss:4kB, UID:0 pgtables:17172kB oom_score_adj:0
kernel: [1123660.010306] oom_reaper: reaped process 1045923 (kvm), now anon-rss:0kB, file-rss:68kB, shmem-rss:4kB
systemd1: 104.scope: A process of this unit has been killed by the OOM killer.
Следует понимать, что ZFS требовательна к памяти сервера и по умолчанию использует 50% установленной памяти для ARC (Adaptive Replacement Cache). Текущие минимальные и максимальные пределы можно посмотреть командой:
cat /proc/spl/kstat/zfs/arcstats
где c_min и c_max являются таковыми.
Изменить используемые в настоящее время лимиты можно, установив значения в байтах в файлах /sys/module/zfs/parameters/zfs_arc_min и /sys/module/zfs/parameters/zfs_arc_max соответственно, например командой:
echo «$[10 * 1024*1024*1024]» >/sys/module/zfs/parameters/zfs_arc_max
где 10 — максимальный предел выделяемой памяти в ГБ.
Чтобы изменить максимальный предел ARC навсегда, необходимо добавить в файл /etc/modprobe.d/zfs.conf опцию:
options zfs zfs_arc_max=8589934592
где 8589934592 — устанавливаемый предел в 8 ГБ ОЗУ.
Если корневая файловая система также на ZFS, то после изменения лимитов, необходимо обновить образ initramfs:
update-initramfs -u
После чего требуется перезагрузить сервер.