<?xml version="1.0" encoding="utf-8"?> 
<rss version="2.0"
  xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
  xmlns:atom="http://www.w3.org/2005/Atom">

<channel>

<title>Заметки Александра Чернышева</title>
<link>https://aschernyshev.ru/</link>
<description>Keep in mind</description>
<author>Александр Чернышев</author>
<language>ru</language>
<generator>E2 (v3576; Aegea)</generator>

<itunes:owner>
<itunes:name>Александр Чернышев</itunes:name>
<itunes:email></itunes:email>
</itunes:owner>
<itunes:subtitle>Keep in mind</itunes:subtitle>
<itunes:image href="" />
<itunes:explicit></itunes:explicit>

<item>
<title>Измененние комбинации клавиш для выбора языка ввода в GNOME</title>
<guid isPermaLink="false">91</guid>
<link>https://aschernyshev.ru/all/izmenennie-kombinacii-klavish-dlya-vybora-yazyka-vvoda-v-gnome/</link>
<pubDate>Thu, 24 Oct 2024 14:45:46 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/izmenennie-kombinacii-klavish-dlya-vybora-yazyka-vvoda-v-gnome/</comments>
<description>
&lt;p&gt;Изменение комбинации клавиш, для переключения раскладки клавиатуры в GNOME 40&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;gsettings set org.gnome.desktop.wm.keybindings switch-input-source &amp;quot;['&amp;lt;Shift&amp;gt;Alt_L']&amp;quot;
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward &amp;quot;['&amp;lt;Alt&amp;gt;Shift_L']&amp;quot;&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Циклы bash в одну строку</title>
<guid isPermaLink="false">89</guid>
<link>https://aschernyshev.ru/all/cikly-bash-v-odnu-stroku/</link>
<pubDate>Thu, 15 Aug 2024 14:53:42 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/cikly-bash-v-odnu-stroku/</comments>
<description>
&lt;p&gt;&lt;b&gt;while&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;while true; do ls; sleep 2; done&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;for&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;for i in 1 2 3; do mkdir ${i}; done&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;b&gt;if&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;if [ &amp;quot;${asd}&amp;quot; = &amp;quot;true&amp;quot; ]; then echo &amp;quot;hellow world&amp;quot;; fi&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Список горячих клавиш в шелле</title>
<guid isPermaLink="false">58</guid>
<link>https://aschernyshev.ru/all/spisok-goryachih-klavish-v-shelle/</link>
<pubDate>Sat, 03 Aug 2024 22:46:41 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/spisok-goryachih-klavish-v-shelle/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/term_logo.jpg" width="255" height="225" alt="" /&gt;
&lt;/div&gt;
&lt;h2&gt;Cочетаний клавиш с ctrl.&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;Ctrl + a&lt;/b&gt; — переход в начало строки (cisco, csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + b&lt;/b&gt; — переход на 1 символ назад (cisco, csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + c&lt;/b&gt; — посылает программе SIGINT. Обычно, прерывает текущее задание (csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + d&lt;/b&gt; — удаляет символ под курсором (аналог delete) (cisco, csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + e&lt;/b&gt; — переход к концу строки (cisco, csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + f&lt;/b&gt; — переход на 1 символ вперёд (cisco, csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + k&lt;/b&gt; — удаляет всё, до конца строки (EOL, а не на экране!) (cisco, csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + l&lt;/b&gt; — очищает экран. Аналог команды clear. (csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + q&lt;/b&gt; — выводит терминал из блокировки комбинацией &lt;b&gt;Ctrl + s&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Ctrl + r&lt;/b&gt; — поиск по истории. Повторение поиска (листание результатов поиска). То есть инкрементальный поиск. (zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + s&lt;/b&gt; — блокируют вывод данных на экран.&lt;br /&gt;
&lt;b&gt;Ctrl + j&lt;/b&gt; — прекращает поиск и позволяет отредактировать найденную команду. Если поиск не производился, то аналогично нажатию return. (в zsh выполняет команду)&lt;br /&gt;
&lt;b&gt;Ctrl + t&lt;/b&gt; — меняет символ под курсором на предыдущий. Или, если хотите, тянет предыдущий символ к концу строки. (cisco, csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + u&lt;/b&gt; — удаляет все символы слева от курсора до начала строки. (cisco, в csh, zsh удаляет всю строку)&lt;br /&gt;
&lt;b&gt;Ctrl + w&lt;/b&gt; — удаляет символы слева от курсора до начала слова. (cisco, csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + xx&lt;/b&gt; — переходит от текущей позиции курса в начало строки и обратно. На циске работает аналогично ctrl + u. (csh)&lt;br /&gt;
&lt;b&gt;Ctrl + x @&lt;/b&gt; — показывает возможные дополнения имени хоста (имена берутся из /etc/hosts)&lt;br /&gt;
&lt;b&gt;Ctrl + z&lt;/b&gt; — suspend’ит текущую задачу (csh, zsh)&lt;br /&gt;
&lt;b&gt;Ctrl + x&lt;/b&gt;; &lt;b&gt;Ctrl + e&lt;/b&gt; — открывает &lt;b&gt;$EDITOR&lt;/b&gt; для изменения введённой строки. После сохранения изменений, команда отправляется на исполнение. Если переменная не задана, то открывается системный текстовый редактор (для линукса это, зачастую, nano)&lt;/p&gt;
&lt;h2&gt;Cочетаниях с Alt.&lt;/h2&gt;
&lt;p&gt;Alt + &lt; — переход к первой команде в истории команд (zsh)&lt;br /&gt;
Alt + &gt; — переход к последней команде в истории&lt;br /&gt;
Alt +? — показывает список возможных дополнений команды(аналогично tab-tab) (в csh, zsh аналог which string)&lt;br /&gt;
Alt + * — вставляет все возможные дополнений команды в строку команд&lt;br /&gt;
Alt + / — пытается дополнить имя файла (аналогично табуляции)&lt;br /&gt;
Alt +. — вставляет последний аргумент предыдущей команды (аналог !$, только не надо делать :p, чтобы проверить )&lt;br /&gt;
Alt + b — сдвигает курсор влево на 1 слово (cisco, csh, zsh)&lt;br /&gt;
Alt + c — делает букву под курсором большой, а остальные, до конца слова, маленькими. (cisco, csh, zsh)&lt;br /&gt;
Alt + d — удаляет символы с текущей позиции курсора и до конца слова. (cisco, csh, zsh)&lt;br /&gt;
Alt + f — передвигает курсор на одно слово вперёд (cisco, csh, zsh)&lt;br /&gt;
Alt + l — делает все буквы с текущей позиции курсора и до конца слова маленькими (cisco, csh, zsh)&lt;br /&gt;
Alt + t — меняет местами слова под курсором и предыдущее (zsh)&lt;br /&gt;
Alt + u — переводит буквы с текущей позиции курсора и до конца слова в верхний регистр (cisco, csh, zsh)&lt;br /&gt;
Alt + back-space — удаляет символы с текущей позиции курсора до начала слова (cisco, csh, zsh)&lt;/p&gt;
&lt;h2&gt;Cочетаниях с двойным нажатие табуляции «2Т».&lt;/h2&gt;
&lt;p&gt;2T — дополнение команды. Если нажать при пустой строке — выведет список всех доступных команд&lt;br /&gt;
(string)2T — выведет список возможных дополнений&lt;br /&gt;
(dir)2T — покажет подпапки папки dir&lt;br /&gt;
*2T — покажет подпапки исключая скрытые (имена которых начинаются с точки)&lt;br /&gt;
~2T — выведет всех пользователей из /etc/passwd. Дополнив имя пользователя можно перейти в его домашний каталог. Например ~oxpa/ — домашний каталог пользователя oxpa&lt;br /&gt;
$2T — выводит список дополнений для системных переменных&lt;br /&gt;
@2T — дополняет имена хостов содержащимися в /etc/hosts&lt;br /&gt;
=2T — листинг текущей директории, аналогичный ls.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://habrahabr.ru/post/99843/"&gt;Источник&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>OpenVPN 2.5 MD5 support</title>
<guid isPermaLink="false">87</guid>
<link>https://aschernyshev.ru/all/openvpn-2-5-md5-support/</link>
<pubDate>Thu, 07 Apr 2022 17:49:45 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/openvpn-2-5-md5-support/</comments>
<description>
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;systemctl edit openvpn-client@&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;[Service]
Environment=&amp;quot;OPENSSL_ENABLE_MD5_VERIFY=1 NSS_HASH_ALG_SUPPORT=+MD5&amp;quot;&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>Настройка VNC сервера в Fedora</title>
<guid isPermaLink="false">81</guid>
<link>https://aschernyshev.ru/all/nastroyka-vnc-servera-v-fedora/</link>
<pubDate>Wed, 28 Aug 2019 16:02:41 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/nastroyka-vnc-servera-v-fedora/</comments>
<description>
&lt;p&gt;Возникла необходимость в организации удаленного подключения к рабочей станции по проьлколу VNC.&lt;br /&gt;
В процессе изучения вопроса выяснилось, что VNC сервер Vino, который установлен по дефолту, слушает порт 5900, который так же слушает демон Qemu и одновременная работа двух служб на одном хосте невозможна.&lt;br /&gt;
Решением данной проблемы станет изменение порта по умолчанию сервера &lt;b&gt;Vino&lt;/b&gt; через &lt;b&gt;gsettings&lt;/b&gt;.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;gsettings set org.gnome.Vino use-alternative-port true
gsettings set org.gnome.Vino alternative-port 5901
gsettings set org.gnome.Vino network-interface lo
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino lock-screen-on-disconnect true&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В Fedora 35 VNC активируется так:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;gsettings set org.gnome.desktop.remote-desktop.vnc encryption &amp;quot;['none']&amp;quot;
sudo firewall-cmd --permanent --add-service=vnc-server
sudo firewall-cmd --reload
sudo reboot now&lt;/code&gt;&lt;/pre&gt;&lt;h2&gt;Описание настроек VNC сервера Vino со значениями по умолчанию&lt;/h2&gt;
&lt;p&gt;&lt;b&gt;prompt-enabled&lt;/b&gt; — Prompt the user before completing a connection&lt;/p&gt;
&lt;p&gt;If true, remote users accessing the desktop are not allowed&lt;br /&gt;
access until the user on the host machine approves the&lt;br /&gt;
connection. Recommended especially when access is not password&lt;br /&gt;
protected.&lt;br /&gt;
&lt;i&gt;default: true&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;view-only&lt;/b&gt; — Only allow remote users to view the desktop&lt;/p&gt;
&lt;p&gt;If true, remote users accessing the desktop are only allowed to&lt;br /&gt;
view the desktop. Remote users will not be able to use the mouse&lt;br /&gt;
or keyboard.&lt;br /&gt;
&lt;i&gt;default: false&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;network-interface&lt;/b&gt; — Network interface for listening&lt;/p&gt;
&lt;p&gt;If not set, the server will listen on all network interfaces.&lt;br /&gt;
Set this if you want to accept connections only from some specific&lt;br /&gt;
network interface. For example, eth0, wifi0, lo and so on.&lt;br /&gt;
&lt;i&gt;default: ’’&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;use-alternative-port&lt;/b&gt; — Listen on an alternative port&lt;/p&gt;
&lt;p&gt;If true, the server will listen on another port, instead of the default&lt;br /&gt;
(5900). The port must be specified in the “alternative-port” key.&lt;br /&gt;
&lt;i&gt;default: false&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;alternative-port&lt;/b&gt; — Alternative port number&lt;/p&gt;
&lt;p&gt;The port which the server will listen to if the “use-alternative-port”&lt;br /&gt;
key is set to true. Valid values are in the range of 5000 to 50000.&lt;br /&gt;
&lt;i&gt;default: 5900&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;require-encryption&lt;/b&gt; — Require encryption&lt;/p&gt;
&lt;p&gt;If true, remote users accessing the desktop are required to&lt;br /&gt;
support encryption. It is highly recommended that you use a&lt;br /&gt;
client which supports encryption unless the intervening network&lt;br /&gt;
is trusted.&lt;br /&gt;
&lt;i&gt;default: true&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;authentication-methods&lt;/b&gt; — Allowed authentication methods&lt;/p&gt;
&lt;p&gt;Lists the authentication methods with which remote users may&lt;br /&gt;
access the desktop.&lt;br /&gt;
There are two possible authentication methods; “vnc” causes the&lt;br /&gt;
remote user to be prompted for a password (the password is&lt;br /&gt;
specified by the vnc-password key) before connecting and “none”&lt;br /&gt;
which allows any remote user to connect.&lt;br /&gt;
&lt;i&gt;default: [’none’]&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;vnc-password&lt;/b&gt; — Password required for “vnc” authentication&lt;/p&gt;
&lt;p&gt;The password which the remote user will be prompted for if the&lt;br /&gt;
“vnc” authentication method is used. The password specified by&lt;br /&gt;
the key is base64 encoded.&lt;br /&gt;
The special value of “keyring” (which is not valid base64) means&lt;br /&gt;
that the password is stored in the GNOME keyring.&lt;br /&gt;
&lt;i&gt;default: ’keyring’&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;mailto&lt;/b&gt; — E-mail address to which the remote desktop URL should be sent&lt;/p&gt;
&lt;p&gt;This key specifies the e-mail address to which the remote&lt;br /&gt;
desktop URL should be sent if the user clicks on the URL in the&lt;br /&gt;
Desktop Sharing preferences dialog.&lt;br /&gt;
&lt;i&gt;default: ’’&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;lock-screen-on-disconnect&lt;/b&gt; — Lock the screen when last user disconnect&lt;/p&gt;
&lt;p&gt;If true, the screen will be locked after the last remote client&lt;br /&gt;
disconnects.&lt;br /&gt;
&lt;i&gt;default: false&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;icon-visibility&lt;/b&gt; — When the status icon should be shown&lt;/p&gt;
&lt;p&gt;This key controls the behavior of the status icon. There are&lt;br /&gt;
three options: “always” — the icon will always be present; “client” —&lt;br /&gt;
the icon will only be present when someone is connected (this is the&lt;br /&gt;
default behavior); “never” — the icon will not be present.&lt;br /&gt;
&lt;i&gt;default: ’client’&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;disable-background&lt;/b&gt; — Whether to disable the desktop background when a user is connected&lt;/p&gt;
&lt;p&gt;When true, disable the desktop background and replace it with a single&lt;br /&gt;
block of color when a user successfully connects.&lt;br /&gt;
&lt;i&gt;default: false&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;use-upnp&lt;/b&gt; — Whether a UPnP router should be used to forward and open ports&lt;/p&gt;
&lt;p&gt;If true, request that a UPnP-capable router should forward and open the&lt;br /&gt;
port used by Vino.&lt;br /&gt;
&lt;i&gt;default: false&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;disable-xdamage&lt;/b&gt; — Whether we should disable the XDamage extension of X.org&lt;/p&gt;
&lt;p&gt;If true, do not use the XDamage extension of X.org. This extension does&lt;br /&gt;
not work properly on some video drivers when using 3D effects.&lt;br /&gt;
Disabling it will make Vino work in these environments, with slower&lt;br /&gt;
rendering as a side effect.&lt;br /&gt;
&lt;i&gt;default: false&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;notify-on-connect&lt;/b&gt; — Notify on connect&lt;/p&gt;
&lt;p&gt;If true, show a notification when a user connects to the system.&lt;br /&gt;
&lt;i&gt;default: true&lt;/i&gt;&lt;/p&gt;
&lt;h2&gt;Дополнительные материалы&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://wiki.archlinux.org/index.php/Vino"&gt;https://wiki.archlinux.org/index.php/Vino&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_the_desktop_environment_in_rhel_8/accessing-the-desktop-remotely_using-the-desktop-environment-in-rhel-8"&gt;https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/using_the_desktop_environment_in_rhel_8/accessing-the-desktop-remotely_using-the-desktop-environment-in-rhel-8&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Обновление таймзоны в Java</title>
<guid isPermaLink="false">79</guid>
<link>https://aschernyshev.ru/all/obnovlenie-taymzony-v-java/</link>
<pubDate>Thu, 25 Jul 2019 15:21:33 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/obnovlenie-taymzony-v-java/</comments>
<description>
&lt;p&gt;В настоящее время инструмент TZUpdater совместим только с форматом данных «арьергарда», который больше не имеет встроенных двоичных файлов. IANA никогда не публиковала их, и при попытке обновлении таймзоны появится следующая ошибка.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;Failed: java.lang.Exception: Failed while parsing file '/tmp/ziupdater21715634709704541231626652501292559/srcdir/asia' on line 1865 'Rule	Japan	1948	1951	-	Sep	Sat&amp;gt;=8	25:00	0	S'&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Для создания двоичный файлов необходимо проделать следующую процедуру&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;yum install lzip
mkdir ./tmp ; cd ./tmp
wget https://cdn.azul.com/tools/ziupdater1.0.2.2-jse8+7-any_jvm.tar.gz
tar -xzvf ziupdater1.0.2.2-jse8+7-any_jvm.tar.gz
wget https://data.iana.org/time-zones/releases/tzdb-2019b.tar.lz
lzip -d tzdb-2019b.tar.lz &amp;amp;&amp;amp; tar xvf tzdb-2019b.tar &amp;amp;&amp;amp; cd tzdb-2019b
make rearguard_tarballs&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/usr/java/java8/bin/java -jar ../ziupdater-1.0.2.2.jar -v -l file:./tzdata2019b-rearguard.tar.gz&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="http://qaru.site/questions/18068758/update-to-tzdata2019b-is-failing"&gt;http://qaru.site/questions/18068758/update-to-tzdata2019b-is-failing&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Добавляем цветной вывод в printf</title>
<guid isPermaLink="false">76</guid>
<link>https://aschernyshev.ru/all/dobavlyaem-cvetnoy-vyvod-v-printf/</link>
<pubDate>Wed, 29 Aug 2018 15:36:13 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/dobavlyaem-cvetnoy-vyvod-v-printf/</comments>
<description>
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;printf &amp;quot;\033[0;31m&amp;quot;  //Set the text to the color red
printf &amp;quot;Hello\n&amp;quot;     //Display Hello in red
printf &amp;quot;\033[0m&amp;quot;    //Resets the text to default color&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Escape is: &lt;b&gt;\033&lt;/b&gt;&lt;br /&gt;
Color code is: &lt;b&gt;[0;31m&lt;/b&gt;&lt;/p&gt;
&lt;div class="e2-text-table"&gt;
&lt;table cellpadding="0" cellspacing="0" border="0"&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;CODE&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;COLOR&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[0;31m&lt;/td&gt;
&lt;td&gt;Red&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[1;31m&lt;/td&gt;
&lt;td&gt;Bold Red&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[0;32m&lt;/td&gt;
&lt;td&gt;Green&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[1;32m&lt;/td&gt;
&lt;td&gt;Bold Green&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[0;33m&lt;/td&gt;
&lt;td&gt;Yellow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[01;33m&lt;/td&gt;
&lt;td&gt;Bold Yellow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[0;34m&lt;/td&gt;
&lt;td&gt;Blue&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[1;34m&lt;/td&gt;
&lt;td&gt;Bold Blue&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[0;35m&lt;/td&gt;
&lt;td&gt;Magenta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[1;35m&lt;/td&gt;
&lt;td&gt;Bold Magenta&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[0;36m&lt;/td&gt;
&lt;td&gt;Cyan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[1;36m&lt;/td&gt;
&lt;td&gt;Bold Cyan&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;[0m&lt;/td&gt;
&lt;td&gt;Reset&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>MTProto Proxy на CentOS7</title>
<guid isPermaLink="false">74</guid>
<link>https://aschernyshev.ru/all/mtproto-proxy-na-centos7/</link>
<pubDate>Tue, 10 Jul 2018 19:38:59 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/mtproto-proxy-na-centos7/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/mtproxy.png" width="234" height="234" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Решил попробовать использовать вместо &lt;a href="https://aschernyshev.ru/all/nastroyka-socks5-proksi-na-centos7/"&gt;&lt;b&gt;3proxy&lt;/b&gt;&lt;/a&gt; вышедшей не так давно &lt;a href="https://github.com/TelegramMessenger/MTProxy"&gt;&lt;b&gt;MTProto Proxy&lt;/b&gt;&lt;/a&gt;, собрал &lt;a href="https://cloud.mail.ru/public/cTC6/3Dv569TxC"&gt;пакет для 7 CentOS&lt;/a&gt;. Из зависимостей требует zlib, openssl и curl. В процессе установки автоматически генерируется секретный ключ авторизации, загружаются список серверов и ключ для доступа.&lt;br /&gt;
Установка сводится к следующим действиям&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;yum localinstall mtproto-proxy-20824f5-1.el7.x86_64.rpm
systemctl enable mtproto-proxy
systemctl start mtproto-proxy
firewall-cmd --permanent --zone=external --add-service=mtproto-proxy&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;По умолчанию сервер запускается на порту &lt;b&gt;8443&lt;/b&gt;. Если это необходимо изменить, то основные настройки вынесены в /etc/sysconfig/mtproto-proxy. Так же придется отредактировать и /etc/firewalld/services/mtproto-proxy.xml.&lt;/p&gt;
&lt;p&gt;Теперь для подключения, в приложении, необходимо перейти по ссылке.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;https://t.me/proxy?server=&amp;lt;SERVER_IP&amp;gt;&amp;amp;port=&amp;lt;PORT&amp;gt;&amp;amp;secret=&amp;lt;SECRET_KEY&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;где:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;SERVER_IP - ip адрес сервера mtproto-proxy
PORT - порт на котором запущен mtproto-proxy
SECRET_KEY - секретный ключ, который был создан в процессе установки&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Для страждущих паранойей &lt;b&gt;src.rpm&lt;/b&gt; пакет, для самостоятельной сборки, можно скачать &lt;a href="https://cloud.mail.ru/public/K7bc/dgrrtHejy"&gt;&lt;b&gt;здесь&lt;/b&gt;&lt;/a&gt;.&lt;/p&gt;
</description>
</item>

<item>
<title>Установка Tvheadend на HP t5325</title>
<guid isPermaLink="false">72</guid>
<link>https://aschernyshev.ru/all/ustanovka-tvheadend-na-hp-t5325/</link>
<pubDate>Sat, 21 Apr 2018 11:20:20 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/ustanovka-tvheadend-na-hp-t5325/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/tvheadend_logo.jpg" width="234" height="233" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Решил попробовать использовать &lt;b&gt;&lt;a href="https://aschernyshev.ru/all/usnanovka-debian-jessie-na-hp-t5325/"&gt;HP t5325&lt;/a&gt;&lt;/b&gt; в качестве сервера для раздачи эфирного теле-сигнала в домашней сети. В наличии у меня есть USB DVB-T2 адаптер  &lt;b&gt;&lt;a href="https://www.linuxtv.org/wiki/index.php/Geniatech_T230C"&gt;Geniatech T230C&lt;/a&gt;&lt;/b&gt;, который совместим с Linux. В качестве сервера будет использован &lt;b&gt;TVHeadend&lt;/b&gt; версии &lt;b&gt;4.2.1&lt;/b&gt;. В репозиториях Debian, для архитектуры ARMel, я его не нашел поэтому выкладываю пакет &lt;b&gt;&lt;a href="https://cloud.mail.ru/public/Ec1n/SSuxU9L14"&gt;здесь&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Так же, для работы данного модуля, понадобится &lt;b&gt;&lt;a href="https://github.com/LibreELEC/dvb-firmware/tree/master/firmware"&gt;Firmware&lt;/a&gt;&lt;/b&gt;, архив которыми можно скачать &lt;b&gt;&lt;a href="https://cloud.mail.ru/public/EHMZ/JHVU366n2"&gt;здесь&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;После того как все скачено можно приступить к установке.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;apt-get update
apt-get install dtv-scan-tables dvb-apps liburiparser1
dpkg -i tvheadend_4.2.1_armel.deb
tar -xvf t230_fw.tar.gz &amp;amp;&amp;amp; mv ./dvb-* /lib/firmware/&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Открываем порты для подключения клиентов и доступа к WEB-интерфейсу.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;iptables -A INPUT -p tcp -m tcp --dport 9981 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 9982 -j ACCEPT
iptables-save &amp;gt; /etc/iptables&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В браузере переходим по адресу &lt;b&gt;&lt;a href="http://SERVER_IP:9981"&gt;http://SERVER_IP:9981&lt;/a&gt;&lt;/b&gt; и авторизуемся введя учетные данные, которые указали при установки  &lt;b&gt;TVHeadend&lt;/b&gt;.&lt;/p&gt;
&lt;p&gt;Теперь можно приступить к настройке &lt;b&gt;TVHeadend&lt;/b&gt; о которой можно почитать &lt;a href="https://mysku.ru/blog/aliexpress/49808.html"&gt;здесь&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Полезные ссылки&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.linuxtv.org/wiki/index.php/Geniatech"&gt;Geniatech&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.linuxtv.org/wiki/index.php/Geniatech_T230"&gt;Geniatech T230&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.linuxtv.org/wiki/index.php/Geniatech_T230C"&gt;Geniatech T230C&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://drive.google.com/drive/folders/0B34ndkM3NwwtMUF5bzU5YjJtVjA"&gt;TVHeadend&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://github.com/LibreELEC/dvb-firmware/tree/master/firmware"&gt;Firmware&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Использование спецсимволов в sed</title>
<guid isPermaLink="false">70</guid>
<link>https://aschernyshev.ru/all/ispolzovanie-specsimvolov-v-sed/</link>
<pubDate>Fri, 20 Apr 2018 21:52:07 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/ispolzovanie-specsimvolov-v-sed/</comments>
<description>
&lt;p&gt;Необходимо заменить строчку&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt;minGain&amp;gt;20&amp;lt;/minGain&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Переводим все спецсимволы в HEX.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;&amp;lt; - \x3c
&amp;gt; - \x3e
/ - \x2f&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;В результате получается&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;sed -i 's/\x3cminGain\x3e20\x3c\x2fminGain\x3e/\x3cminGain\x3e60\x3c\x2fminGain\x3e/' /root/test.sh&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="https://www.rapidtables.com/convert/number/ascii-to-hex.html"&gt;https://www.rapidtables.com/convert/number/ascii-to-hex.html&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Частоты цифровых каналов DVB-T2</title>
<guid isPermaLink="false">42</guid>
<link>https://aschernyshev.ru/all/chastoty-cifrovyh-kanalov-dvb-t2/</link>
<pubDate>Fri, 20 Apr 2018 21:49:14 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/chastoty-cifrovyh-kanalov-dvb-t2/</comments>
<description>
&lt;p&gt;Понадобился список несущих частот цифровых ТВ каналов.&lt;br /&gt;
В интернет нашел следующие частоты.&lt;/p&gt;
&lt;p&gt;• 21-ый телевизионный канал — частота приема 474 МГц;&lt;br /&gt;
• 22-ой телевизионный канал — частота приема 482 МГц;&lt;br /&gt;
• 23-ий телевизионный канал — частота приема 490 МГц;&lt;br /&gt;
• 24-ый телевизионный канал — частота приема 498 МГц;&lt;br /&gt;
• 25-ый телевизионный канал — частота приема 506 МГц;&lt;br /&gt;
• 26-ой телевизионный канал — частота приема 514 МГц;&lt;br /&gt;
• 27-ой телевизионный канал — частота приема 522 МГц;&lt;br /&gt;
• 28-ой телевизионный канал — частота приема 530 МГц;&lt;br /&gt;
• 29-ый телевизионный канал — частота приема 538 МГц;&lt;br /&gt;
• 30-ый телевизионный канал — частота приема 546 МГц;&lt;br /&gt;
• 31-ый телевизионный канал — частота приема 554 МГц;&lt;br /&gt;
• 32-ой телевизионный канал — частота приема 562 МГц;&lt;br /&gt;
• 33-ий телевизионный канал — частота приема 570 МГц;&lt;br /&gt;
• 34-ый телевизионный канал — частота приема 578 МГц;&lt;br /&gt;
• 35-ый телевизионный канал — частота приема 586 МГц;&lt;br /&gt;
• 36-ой телевизионный канал — частота приема 594 МГц;&lt;br /&gt;
• 37-ой телевизионный канал — частота приема 602 МГц;&lt;br /&gt;
• 38-ой телевизионный канал — частота приема 610 МГц;&lt;br /&gt;
• 39-ый телевизионный канал — частота приема 618 МГц;&lt;br /&gt;
• 40-ой телевизионный канал — частота приема 626 МГц;&lt;br /&gt;
• 41-ый телевизионный канал — частота приема 634 МГц;&lt;br /&gt;
• 42-ой телевизионный канал — частота приема 642 МГц;&lt;br /&gt;
• 43-ий телевизионный канал — частота приема 650 МГц;&lt;br /&gt;
• 44-ый телевизионный канал — частота приема 658 МГц;&lt;br /&gt;
• 45-ый телевизионный канал — частота приема 666 МГц;&lt;br /&gt;
• 46-ой телевизионный канал — частота приема 674 МГц;&lt;br /&gt;
• 47-ой телевизионный канал — частота приема 682 МГц;&lt;br /&gt;
• 48-ой телевизионный канал — частота приема 690 МГц;&lt;br /&gt;
• 49-ый телевизионный канал — частота приема 698 МГц;&lt;br /&gt;
• 50-ый телевизионный канал — частота приема 706 МГц;&lt;br /&gt;
• 51-ый телевизионный канал — частота приема 714 МГц;&lt;br /&gt;
• 52-ой телевизионный канал — частота приема 722 МГц;&lt;br /&gt;
• 53-ий телевизионный канал — частота приема 730 МГц;&lt;br /&gt;
• 54-ый телевизионный канал — частота приема 738 МГц;&lt;br /&gt;
• 55-ый телевизионный канал — частота приема 746 МГц;&lt;br /&gt;
• 56-ой телевизионный канал — частота приема 754 МГц;&lt;br /&gt;
• 57-ой телевизионный канал — частота приема 762 МГц;&lt;br /&gt;
• 58-ой телевизионный канал — частота приема 770 МГц;&lt;br /&gt;
• 59-ый телевизионный канал — частота приема 778 МГц;&lt;br /&gt;
• 60-ый телевизионный канал — частота приема 786 МГц;&lt;br /&gt;
• 61-ый телевизионный канал — частота приема 794 МГц;&lt;br /&gt;
• 62-ой телевизионный канал — частота приема 802 МГц;&lt;br /&gt;
• 63-ий телевизионный канал — частота приема 810 МГц;&lt;br /&gt;
• 64-ый телевизионный канал — частота приема 818 МГц;&lt;br /&gt;
• 65-ый телевизионный канал — частота приема 826 МГц;&lt;br /&gt;
• 66-ой телевизионный канал — частота приема 834 МГц;&lt;br /&gt;
• 67-ой телевизионный канал — частота приема 842 МГц;&lt;br /&gt;
• 68-ой телевизионный канал — частота приема 850 МГц;&lt;br /&gt;
• 69-ый телевизионный канал — частота приема 858 МГц.&lt;/p&gt;
</description>
</item>

<item>
<title>Настройка SOCKS5 прокси на CentOS7</title>
<guid isPermaLink="false">73</guid>
<link>https://aschernyshev.ru/all/nastroyka-socks5-proksi-na-centos7/</link>
<pubDate>Fri, 20 Apr 2018 21:45:37 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/nastroyka-socks5-proksi-na-centos7/</comments>
<description>
&lt;p&gt;В свете последних событий, понадобился &lt;b&gt;SOCKS5&lt;/b&gt; прокси с авторизацией.&lt;br /&gt;
Поискав в интернете остановил свой выбор на &lt;b&gt;&lt;a href="https://github.com/z3APA3A/3proxy"&gt;3proxy&lt;/a&gt;&lt;/b&gt; от &lt;b&gt;z3APA3A&lt;/b&gt;, как наиболее легковесном, функциональном и активно развивающемся, последний релиз которого состоялся &lt;b&gt;&lt;a href="https://github.com/z3APA3A/3proxy/releases"&gt;18.04.2018&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;
К сожалению актуальной версии пакета в репозиториях CentOS не нашлось, поэтому пришлось переписать spec-файл для текущей версии 0.8.12.&lt;/p&gt;
&lt;p&gt;Для начала необходимо скачать &lt;a href="https://cloud.mail.ru/public/C9Vu/N9NiXPmdZ"&gt;3proxy&lt;/a&gt;, после чего можно приступать к его установки.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;yum localinstall 3proxy-0.8.12-1.el7.centos.x86_64.rpm&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Так как меня интересует именно SOCKS-прокси, то конфигурационный файл будет иметь следующий вид. Если нужен дополнительный функционал, то можно почитать 3proxy.cfg.example или &lt;a href="https://github.com/z3APA3A/3proxy/wiki/How-To-(%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)"&gt;wiki&lt;/a&gt; проекта на github.com&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;vim /etc/3proxy/3proxy.cfg&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;daemon
setgid 99
setuid 99

nscache 65536
nserver 127.0.0.1

timeouts 1 5 30 60 180 1800 15 60

external 0.0.0.0
internal 0.0.0.0

config /etc/3proxy/3proxy.cfg
monitor /etc/3proxy/3proxy.cfg
monitor /etc/3proxy/counters
monitor /etc/3proxy/passwd
monitor /etc/3proxy/bandlimiters

log /var/log/3proxy/3proxy.log
logformat &amp;quot;L%o %d %H:%M:%S      %U | %C | %R:%r | %O | %I | %n&amp;quot;
archiver gz /bin/gzip %F
rotate 7

users $/etc/3proxy/passwd

include /etc/3proxy/counters
include /etc/3proxy/bandlimiters

auth strong
flush
socks -p81080&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь добавляем пользователей, для этого выполним скрипт &lt;b&gt;add3proxyuser.sh&lt;/b&gt;&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/etc/3proxy/add3proxyuser.sh username password day_limit bandwidth&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;i&gt;где:&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;username&lt;/b&gt; — имя пользователя&lt;/i&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;password&lt;/b&gt; — пароль&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;day_limit&lt;/b&gt; — лимит трафика в Мегабайтах в день&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;bandwidth&lt;/b&gt; — полоса пропускания в битах в секунду&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;Для примера заведем пользователя с логином и паролем admin, лимитом трафика в 100 Мегабайт в день и полосой пропускания в 1 Мегабит.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/etc/3proxy/add3proxyuser.sh admin admin 100 1048576&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь в файле, &lt;b&gt;/etc/3proxy/passwd&lt;/b&gt;, появилась запись с логином и MD5-хешем пароля&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;admin:CR:$1$10216$EvIj9vLnQi/zydUXJXYa60&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Активируем и запускаем сервис&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;systemctl enable 3proxy
systemctl start 3proxy&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Добавляем правило в Firewall разрешающее внешнее подключение к прокси&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;firewall-cmd --permanent --zone=external --add-port=81080/tcp&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Теперь можно применять настройки прокси перейдя по ссылке следующего содержания:&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;https://t.me/socks?server=my.server.org&amp;amp;port=81080&amp;amp;user=admin&amp;amp;pass=admin&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Для страждущих паранойей src.rpm пакет, для самостоятельной сборки, можно скачать &lt;b&gt;&lt;a href="https://cloud.mail.ru/public/3dnc/j1RFzsyxJ"&gt;здесь&lt;/a&gt;&lt;/b&gt;.&lt;/p&gt;
</description>
</item>

<item>
<title>Конвертация из ASCII в HEX и обратно</title>
<guid isPermaLink="false">69</guid>
<link>https://aschernyshev.ru/all/konvertaciya-iz-ascii-v-hex-i-obratno/</link>
<pubDate>Fri, 26 Jan 2018 11:20:18 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/konvertaciya-iz-ascii-v-hex-i-obratno/</comments>
<description>
&lt;p&gt;Для выполнение данной операции можно воспользоваться утилитой xxd, которая создаёт  представление файла в виде шестнадцатеричных кодов или выполняет обратное преобразование.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;echo 'Привет мир!' | xxd -ps
echo 'd09fd180d0b8d0b2d0b5d18220d0bcd0b8d18021' | xxd -p -r&lt;/code&gt;&lt;/pre&gt;</description>
</item>

<item>
<title>HTTP/2.0 в Nginx на CentOS 7</title>
<guid isPermaLink="true">https://aschernyshev.ru/all/http-2-0-v-nginx-na-centos-7/</guid>
<link>https://aschernyshev.ru/all/http-2-0-v-nginx-na-centos-7/</link>
<pubDate>Wed, 12 Jul 2017 12:03:18 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/http-2-0-v-nginx-na-centos-7/</comments>
<description>
&lt;p&gt;&lt;b&gt;UPD&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Вышло обновление openssl-1.0.2k и даное руководство больше не актуально.&lt;/b&gt;&lt;br /&gt;
_____________________________________________________________________&lt;/p&gt;
&lt;p&gt;Решил включить HTTP/2.0 в Nginx. В процессе тестирование, при прохождении &lt;a href="https://tools.keycdn.com/http2-test"&gt;теста&lt;/a&gt;  выяснилось, что не активно &lt;a href="https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation"&gt;ALPN&lt;/a&gt; (Application-Layer Protocol Negotiation).&lt;/p&gt;
&lt;p&gt;Для полноценной работы HTTP/2.0, Nginx должен быть собран с &lt;a href="http://xgu.ru/wiki/OpenSSL"&gt;OpenSSL&lt;/a&gt; версии не ниже чем 1.0.2. В репах CentOS есть только OpenSSL версии 1.0.1.&lt;br /&gt;
Решить эту проблему можно двумя способами: собрать Nginx с флагом &lt;a href="https://victor.4devs.io/ru/architecture/nginx-http2-does-not-work.html"&gt;—with-openssl&lt;/a&gt; или собрать OpenSSL 1.0.2 для CentOS.&lt;br /&gt;
Первый вариант у меня не взлетел, сборка пакета завершалась неудачно, поэтому я остановился на втором варианте.&lt;br /&gt;
В интернет нашел &lt;a href="http://ja.528p.com/linux/centos6/XE001-openssl.html"&gt;сайт&lt;/a&gt;, где автор предлагает пачтить сорцы OpenSSL, но недавно в CentOS прилетело обновление glibc-2.17.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;rpm -qa | grep glibc
glibc-common-2.17-157.el7_3.4.x86_64
glibc-2.17-157.el7_3.4.x86_64
glibc-devel-2.17-157.el7_3.4.x86_64
glibc-headers-2.17-157.el7_3.4.x86_64&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;readelf -s /usr/lib64/libc.so.6 | grep secure_getenv&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;614: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __libc_secure_getenv@@GLIBC_PRIVATE
857: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __secure_getenv@GLIBC_2.2.5
1715: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 secure_getenv@@GLIBC_2.17
5228: 0000000000038950    27 FUNC    LOCAL  DEFAULT   12 __GI___libc_secure_getenv
6506: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __secure_getenv@GLIBC_2.2
6529: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 secure_getenv
6918: 0000000000038950    27 FUNC    WEAK   DEFAULT   12 __libc_secure_getenv&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Так что ничего патчить не нужно, а просто собираем &lt;a href="https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/fedora/linux/releases/23/Workstation/source/SRPMS/o/openssl-1.0.2d-2.fc23.src.rpm"&gt;openssl&lt;/a&gt; из FC23. Дополнительно потребуется пересобрать еще один пакет из FC23 &lt;a href="https://www.mirrorservice.org/sites/dl.fedoraproject.org/pub/fedora/linux/releases/23/Workstation/source/SRPMS/c/crypto-policies-20150518-3.gitffe885e.fc23.src.rpm"&gt;crypto-policies&lt;/a&gt;.&lt;/p&gt;
&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;yum install epel-release &amp;amp;&amp;amp; yum update &amp;amp;&amp;amp; yum install mock&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;mkdir -p ~/rpmbuild/{SPECS,SOURCES,SRPMS}&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;wget http://nginx.org/packages/centos/7/SRPMS/nginx-1.12.1-1.el7.ngx.src.rpm&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;rpm -ivh ~/nginx-1.12.1-1.el7.ngx.src.rpm&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;grep 'Requires: openssl &amp;gt;= 1.0.1' -P -R -I -l ~/rpmbuild/SPECS/nginx.spec | xargs sed -i 's/Requires: openssl &amp;gt;= 1.0.1/Requires: openssl &amp;gt;= 1.0.2/g'&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;grep 'BuildRequires: openssl-devel &amp;gt;= 1.0.1' -P -R -I -l ~/rpmbuild/SPECS/nginx.spec | xargs sed -i 's/BuildRequires: openssl-devel &amp;gt;= 1.0.1/BuildRequires: openssl-devel &amp;gt;= 1.0.2/g'&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;grep 'define main_release 1' -P -R -I -l  ~/rpmbuild/SPECS/nginx.spec | xargs sed -i 's/define main_release 1/define main_release 2/g'&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;grep '%changelog' -P -R -I -l  /root/rpmbuild/SPECS/nginx.spec | xargs sed -i 's/%changelog/%changelog\n* Wed Jul 12 2017 Aleksandr Chernyshev &amp;lt;mail@aschernyshev.ru&amp;gt;\n- 1.12.1 \n- Rebuild with openssl-1.0.2d\n/g'&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/usr/bin/mock -r epel-7-x86_64 --spec=~/rpmbuild/SPECS/nginx.spec --sources=~/rpmbuild/SOURCES/ --resultdir=~/rpmbuild/SRPMS/ --no-clean --buildsrpm&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;wget https://aschernyshev.ru/repository/rhel/7/noarch/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm
wget https://aschernyshev.ru/repository/rhel/7/x86_64/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm
wget https://aschernyshev.ru/repository/rhel/7/x86_64/openssl-1.0.2d-2.el7.centos.x86_64.rpm
wget https://aschernyshev.ru/repository/rhel/7/x86_64/openssl-devel-1.0.2d-2.el7.centos.x86_64.rpm&lt;/code&gt;&lt;/pre&gt;&lt;pre class="e2-text-code"&gt;&lt;code class=""&gt;/usr/bin/mock -r epel-7-x86_64 --init
/usr/bin/mock -r epel-7-x86_64 --install ~/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm
/usr/bin/mock -r epel-7-x86_64 --install ~/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm
/usr/bin/mock -r epel-7-x86_64 --install ~/openssl-1.0.2d-2.el7.centos.x86_64.rpm
/usr/bin/mock -r epel-7-x86_64 --install ~/openssl-devel-1.0.2d-2.el7.centos.x86_64.rpm
/usr/bin/mock -r epel-7-x86_64 --no-clean ~/rpmbuild/SRPMS/nginx-1.12.1-2.el7.centos.ngx.src.rpm&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Устанавливаем получившиеся &lt;a href="https://aschernyshev.ru/repository/rhel/7/noarch/crypto-policies-20150518-3.gitffe885e.el7.centos.noarch.rpm"&gt;crypto-policies&lt;/a&gt;, &lt;a href="https://aschernyshev.ru/repository/rhel/7/x86_64/openssl-1.0.2d-2.el7.centos.x86_64.rpm"&gt;openssl&lt;/a&gt;, &lt;a href="https://aschernyshev.ru/repository/rhel/7/x86_64/openssl-libs-1.0.2d-2.el7.centos.x86_64.rpm"&gt;openssl-libs&lt;/a&gt; , &lt;a href="https://aschernyshev.ru/repository/rhel/7/x86_64/nginx-1.12.1-2.el7.centos.ngx.x86_64.rpm"&gt;nginx&lt;/a&gt;.&lt;/p&gt;
</description>
</item>

<item>
<title>VIM Cheat Sheet</title>
<guid isPermaLink="true">https://aschernyshev.ru/all/vim-cheat-sheet/</guid>
<link>https://aschernyshev.ru/all/vim-cheat-sheet/</link>
<pubDate>Tue, 21 Mar 2017 07:05:44 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/vim-cheat-sheet/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/vim.png" width="1366" height="768" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>GNU Screen Cheat Sheet</title>
<guid isPermaLink="true">https://aschernyshev.ru/all/gnu-screen-cheat-sheet/</guid>
<link>https://aschernyshev.ru/all/gnu-screen-cheat-sheet/</link>
<pubDate>Tue, 21 Mar 2017 07:05:36 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/gnu-screen-cheat-sheet/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/screen.png" width="1280" height="800" alt="" /&gt;
&lt;/div&gt;
</description>
</item>

<item>
<title>Работа с PostgreSQL: настройка и масштабирование</title>
<guid isPermaLink="true">https://aschernyshev.ru/all/rabota-s-postgresql-nastroyka-i-masshtabirovanie/</guid>
<link>https://aschernyshev.ru/all/rabota-s-postgresql-nastroyka-i-masshtabirovanie/</link>
<pubDate>Tue, 21 Mar 2017 00:22:23 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/rabota-s-postgresql-nastroyka-i-masshtabirovanie/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/postgres_logo.jpg" width="225" height="225" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;Перед вами &lt;a href="https://cloud.mail.ru/public/c4qK/6RrD3RvL9"&gt;справочное пособие по настройке и масштабированию PostgreSQL&lt;/a&gt;. В книге исследуются вопросы по настройке производительности PostgreSQL, репликации и кластеризации. Изобилие реальных примеров позволит как начинающим, так и опытным разработчикам быстро разобраться с особенностями масштабирования PostgreSQL для своих приложений.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://postgresql.leopard.in.ua/"&gt;Источник&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Systemd для администраторов</title>
<guid isPermaLink="true">https://aschernyshev.ru/all/systemd-dlya-administratorov/</guid>
<link>https://aschernyshev.ru/all/systemd-dlya-administratorov/</link>
<pubDate>Tue, 21 Mar 2017 00:02:31 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/systemd-dlya-administratorov/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/tux_logo.jpg" width="186" height="225" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://cloud.mail.ru/public/Bnzh/jB45LS9yt"&gt;Русский перевод цикла статей «systemd for Administrators».&lt;/a&gt;&lt;br /&gt;
О том, что такое systemd — см. &lt;a href="http://www.freedesktop.org/wiki/Software/systemd"&gt;http://www.freedesktop.org/wiki/Software/systemd&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www2.kangran.su/~nnz/pub/s4a/"&gt;Источник&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>IPTABLES: правила хорошего тона</title>
<guid isPermaLink="true">https://aschernyshev.ru/all/iptables-pravila-horoshego-tona/</guid>
<link>https://aschernyshev.ru/all/iptables-pravila-horoshego-tona/</link>
<pubDate>Tue, 21 Mar 2017 00:02:22 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/iptables-pravila-horoshego-tona/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/tux_logo.jpg" width="186" height="225" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://cloud.mail.ru/public/9VSG/6JZLi91wA"&gt;Русский перевод статьи «Towards the perfect ruleset»&lt;/a&gt;&lt;br /&gt;
(подборка рекомендаций по составлению наборов правил для netfilter).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www2.kangran.su/~nnz/pub/perf_rs/"&gt;Источник&lt;/a&gt;&lt;/p&gt;
</description>
</item>

<item>
<title>Bash Cheat Sheet</title>
<guid isPermaLink="true">https://aschernyshev.ru/all/bash-cheat-sheet/</guid>
<link>https://aschernyshev.ru/all/bash-cheat-sheet/</link>
<pubDate>Mon, 20 Mar 2017 23:52:15 +0300</pubDate>
<author>Александр Чернышев</author>
<comments>https://aschernyshev.ru/all/bash-cheat-sheet/</comments>
<description>
&lt;div class="e2-text-picture"&gt;
&lt;img src="https://aschernyshev.ru/pictures/bash-cheatsheet.png" width="1753" height="1240" alt="" /&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/drakulavich/russian-bash-cheatsheet"&gt;Источник&lt;/a&gt;&lt;/p&gt;
</description>
</item>


</channel>
</rss>