LINUX.ORG.RU

Избранные сообщения KosmiK

Жива ли концепция «одно приложение - один сервер» или виртуализация уже похоронила этот стереотип?

Форум — General

Собственно, раньше крайне была (особенно в ынтерпрайзе) популярна практика выделять по серверу на приложение. Особенно в случае использования явы, либо вин-серверов. Насколько сейчас это сохранилось? Вытеснила ли виртуализация данный подход?

На моей практике всё выглядит так:
1. говноприложения (которым и PIII много) переехали в виртуализацию и стали делить сервер.
2. большие базы данных, системы бекапов, большие почтовики, java-приложения, терминальные сервера если и переехали в виртуализированные окружения, то только для упрощения бекапа или отката (ну или для HA с общим хралинищем): фактически приложение до сих юзает весь сервер монопольно.

 , , , ,

ktulhu666
()

Duke Nukem на Карибах

Форум — Games

Игрался помню давно, был диск - там разные сборки были Дюка, я вообще его фанат. Так там ещё был мод с зимним и на Карибах и ещё несколько. Кто-то знает, где найти, про который спросил?
И как поставить?

 

fehhner
()

Старый шелудёр в новом ядре

Форум — General

Осталась ли возможность включить O(1) scheduler вместо CFS? Естественно, с помощью пересборки ядра. Или его удалили с концами? Я понимаю что CFS очень крутой и быстрый, но всё же?

Просто у меня 12309 с нетбука никуда не делся. Мне кажется что «совокупность множества багов» может чудесным образом исчезнуть, если выключить CFS, и я хочу проверить.

BFS пробовал. Также попробовал старый дистр с 2.6.18, и он под высокой нагрузкой не тормозит - но вдруг это заслуга легковесного DE, я не O(1) scheduler?

 ,

ZenitharChampion
()

Проблема с softirqs

Форум — Admin

Добрый день всем.

Столкнулся с непонятным поведением одного старого сервера в нагрузочном тесте. При скорости входящего трафика в районе 300Мбит/с - полет нормальный, однако где-то после ~360Мбит - все прерывания собираются на одно ядро.

[root@cat ~]# uname --all
Linux cat 2.6.32-573.7.1.el6.x86_64 #1 SMP Tue Sep 22 22:00:00 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

[root@cat ~]# ethtool -i eth0
driver: e1000e
version: 3.2.5-k
firmware-version: 1.0-0
bus-info: 0000:04:00.0

[root@cat ~]# cat /proc/interrupts | grep eth
 49:    3899076    3127071    3138498    3129201    3021226    3024870    3021558    3031263   PCI-MSI-edge      eth0

[root@cat ~]# cat /proc/softirqs | grep RX
  NET_RX:   13273515   20093759   20261881   20181581   11821256   11702301   11883894   11702684

[root@cat ~]# sysctl -a | grep -E 'netdev|backlog|weight'
net.core.dev_weight = 64
net.core.netdev_max_backlog = 1000
net.core.netdev_rss_key = 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
net.core.netdev_budget = 300
net.ipv4.tcp_max_syn_backlog = 2048

[root@cat ~]# cat /sys/class/net/eth0/queues/rx-0/rps_cpus
00

[root@cat ~]# cat /proc/irq/49/smp_affinity
ff

[root@cat ~]# ethtool -k eth0
Offload parameters for eth0:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off

[root@cat~]# ethtool -c eth0
Coalesce parameters for eth0:
Adaptive RX: off  TX: off
stats-block-usecs: 0
sample-interval: 0
pkt-rate-low: 0
pkt-rate-high: 0

rx-usecs: 3
rx-frames: 0
rx-usecs-irq: 0
rx-frames-irq: 0

tx-usecs: 0
tx-frames: 0
tx-usecs-irq: 0
tx-frames-irq: 0

rx-usecs-low: 0
rx-frame-low: 0
tx-usecs-low: 0
tx-frame-low: 0

rx-usecs-high: 0
rx-frame-high: 0
tx-usecs-high: 0
tx-frame-high: 0

[root@cat ~]# cat /proc/net/softnet_stat
1220c6f5 00000000 0005668a 00000000 00000000 00000000 00000000 00000000 00000000 005e1cce
126639dd 00000000 000352c3 00000000 00000000 00000000 00000000 00000000 00000000 00e07895
12955ce5 00000000 00032a67 00000000 00000000 00000000 00000000 00000000 00000000 00e2f100
1893a083 00000000 00083e69 00000000 00000000 00000000 00000000 00000000 00000000 00dccfe3
0e5324de 00000000 00040a2f 00000000 00000000 00000000 00000000 00000000 00000000 005fce5f
0c54c177 00000000 0002232b 00000000 00000000 00000000 00000000 00000000 00000000 006025ae
0c8125ea 00000000 00030479 00000000 00000000 00000000 00000000 00000000 00000000 00619b8c
13edcf79 00000000 00092307 00000000 00000000 00000000 00000000 00000000 00000000 005912cd

При выключенном RPS и трафике в 330Мбит загрузка CPU выглядит так:

Cpu0  : 33.3%us,  2.9%sy,  0.0%ni, 49.3%id,  0.0%wa,  0.0%hi, 14.5%si,  0.0%st
Cpu1  : 19.7%us, 12.7%sy,  0.0%ni, 66.2%id,  0.0%wa,  0.0%hi,  1.4%si,  0.0%st
Cpu2  :  7.4%us,  7.4%sy,  0.0%ni, 77.9%id,  5.9%wa,  0.0%hi,  1.5%si,  0.0%st
Cpu3  : 14.1%us, 23.9%sy,  0.0%ni, 54.9%id,  1.4%wa,  0.0%hi,  5.6%si,  0.0%st
Cpu4  : 42.9%us,  8.6%sy,  0.0%ni, 40.0%id,  0.0%wa,  0.0%hi,  8.6%si,  0.0%st
Cpu5  :  3.0%us,  1.5%sy,  0.0%ni, 92.5%id,  0.0%wa,  0.0%hi,  3.0%si,  0.0%st
Cpu6  : 28.0%us, 57.3%sy,  0.0%ni,  6.7%id,  0.0%wa,  0.0%hi,  8.0%si,  0.0%st
Cpu7  : 20.0%us, 41.4%sy,  0.0%ni, 28.6%id,  0.0%wa,  0.0%hi, 10.0%si,  0.0%st

При трафике 380Мбит:

Cpu1  :  5.9%us,  9.8%sy,  0.0%ni, 82.4%id,  2.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu2  :  0.0%us,  1.9%sy,  0.0%ni, 98.1%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu3  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu4  : 41.2%us, 37.3%sy,  0.0%ni, 21.6%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu5  :  0.0%us,  0.0%sy,  0.0%ni, 98.0%id,  2.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu6  :  3.8%us,  7.5%sy,  0.0%ni, 88.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.0%us,  0.0%sy,  0.0%ni,  0.0%id,  0.0%wa,  0.0%hi,100.0%si,  0.0%st

Соответственно все отложенные прерывания собираются на одном ядре. При этом обычные прерывания в interrupts для eth0 в этот момент останавливаются. Нагуглил, что при превышении budget в NAPI переключается обработка пакетов на отложенные прерывания, как «более дешевые». Однако на деле это оказывается не так.

Что пробовал сделать: 1) Включать RPS (первоначально он и был включен, но с ним нагрузка при трафике в 330Мбит выше, чем без) на все ядра, на все ядра кроме того, на которое заведены прерывания сетевой карты, попроцессорно 2) Менять маску smp_affinity в разных вариациях - на все ядра, попроцессорно, на одно ядро. 3) Увеличивать netdev_max_backlog, netdev_budget, netdev_weight и другие. 4) Менять режимы rx-usecs

В итоге всех изменений где-то меньше теряется пакетов, где-то загрузка CPU поменьше, но главное не меняется - после пересечения рубежа в ~350Мбит прекращают тикать interrupts сетевой карты, а все softirqs собираются на каком-то одном (случайном) ядре.

Подскажите, в какую сторону копать?

 

Amoled
()

Выпуск GNOME Flashback 3.18.0, рабочего стола на базе классической панели GNOME

Новости — GNOME
Группа GNOME

Доступен выпуск рабочего стола GNOME Flashback 3.18.0, продолжающего развитие кода классической панели GNOME, оконного менеджера Metacity и апплетов, ранее доступных в составе fallback-режима GNOME 3. В рамках проекта панель GNOME-Panel и оконный менеджер Metacity переведены на использование технологий GNOME 3, таких как GTK3+ и DConf/GSettings. Проект был основан после того, как из состава GNOME 3.8 были удалены компоненты для поддержки fallback-режима, на смену которому пришёл набор дополнений к GNOME Shell, не устроивший некоторых приверженцев классического рабочего стола.

Основные новшества:

  • Компоненты fallback-режима адаптированы для работы с GNOME 3.18;
  • Добавлен апплет для настройки подключения через Bluetooth;
  • Добавлен апплет для управления питанием;
  • Добавлены файлы автозапуска для NetworkManager (nm-applet) и gnome-screensaver;
  • Добавлены директории для создания собственного меню;
  • Осуществлён уход от привязки к пакетам gnome-common и intltool (задействован gettext);
  • Добавлена поддержка polkit на основе оригинального пакета PolicyKit-gnome;
  • На основе портирования кода из Mutter в display-config обеспечена поддержка управления видеорежимами через Randr 1.5 и режим underscan;
  • В апплет управления звуком добавлена возможность установки громкости выше номинального 100%, обеспечено изменение громкости колесом мыши;
  • Реализован компонент для создания скриншотов, основанный на коде из gnome-screensaver.

>>> Подробности на Opennet:

 , , , ,

anonymous
()

Два стула: процессорное время или потребление памяти?

Форум — Web-development

Назрел ещё один насущный вопрос. Не знаю как у других реализаций SQL, но при использовании SQLite3 в качестве БД для сайта на PHP, мы имеем весьма скудное API, которое не позоволяет перемещаться по результатам выборки из базы, выдёргивать любые данные из любого места, да даже нельзя узнать количество строк (rows) в результате $try = $dbh->query(); выполнения запроса SQLite3! Только если выполнить отдельный COUNT(*), но это уже будет второй запрос.

Всё, что можно, это лишь вывести результат запроса. <?php while ($row = $try->fetchArray()): extract($row); unset($row); ?><?php endwhile; ?>.

Возвращаясь к выбору между нагрузкой на процессор и потребляемой php-скриптом памятью.

Самое простое, нам нужно узнать сколько «строк» (rows) мы имеем в результате выборки из базы.

Вариант 1) сделать $lines++; в цикле при выводе (но тогда нельзя будет сразу сделать постраничную навигацию, потому что количество строк требуется знать заранее).

Вариант 2) предварительно сохранить весь результат выборки в массив, таким образом php-скрипт отожрёт приличное количество памяти.

Едем дальше. Нам нужно вывести данные с учётом других таблиц, допустим вывести все статьи и комментарии к каждой статье, и здесь дилемма: как лучше, сделать один раз JOIN чтобы подключить комментарии к статьям, либо сделать цикл внутри цикла: один SELECT, чтобы вывести все статьи, а потом ещё в каждой статье делать SELECT чтобы отдельно вывести все комментарии к статье?

Много SELECT'ов мне кажется ламерским способом выводить данные на сайт. И тогда мы возвращаемся к нашему JOIN таблиц статей и комментариев.

Как вы знаете, результатом JOIN будет повторение данных в некоторых случаях:

статья 1 | комментарий 1
статья 2 | комментарий 1
статья 2 | комментарий 2

но выводим-то мы всё в одном цикле, и чтобы не получилось так, что «статья 2» вывелась два раза из-за двух комментариев к ней, то придётся в цикле расставлять проверки, дескать «статья уже была выведена, значит выведи только комментарий к ней».

Что лучше, предварительно считать всё в массив на php, и это отожрёт много памяти на один запрос, либо, выполнять SELECT с JOIN'ами в цикле, но уже в самом цикле выполнять проверки которые излишне нагрузят процессор?

Кратко: много SELECT'ов внутри многих циклов ИЛИ один SELECT с JOIN'ами и одним циклом для вывода всего?

 ,

Spoofing
()

Утилита для показа частот ядер cpu

Форум — General

Помогите вспомнить.

Помню была какая-то мелкая утилитка, которая компилировалась даже из одного .c файла вроде. Очень точно показывала реальную частоту, используя msr-регистры.

К сожалению абсолютно вылетело её название. Но вроде это не cpufreq, у той все ядра почему-то на одной частоте, хотя этого не должно быть.

Название вроде с буквы m начилалось, но не уверен.

 ,

anonymous_incognito
()

Патчем к LLVM реализовано ускорение свободного драйвера RadeonSI в 1,5-2 раза

Новости — Hardware and Drivers
Группа Hardware and Drivers

Для LLVM представлен коммит объёмом примерно в 2 тысячи строк, после применения которого производительность графической подсистемы, известной под обобщённым названием RadeonSI, увеличивается на десятки процентов. На самом деле после применения этого патча во всех тестах производительность открытого графического стека обходит проприетарный драйвер Catalyst.

Так же стоит отметить что в Mesa 11 (релиз которой ожидается в течении недели-двух) для RaseonSI обеспечена полная поддержка OpenGL 4.0 и 4.1 (ранее поддержка ограничивалась версией 3.3).

Измерение производительности

>>> Подробности

 , ,

haku
()

Об оптимальной разбивке винечестера

Форум — General

Доброго вечера, ЛОР.

Приехал венчик на 1ТБ (хитачи на 5400RPM).Поставил в ноут вместо дисковода(основной стоит SSD OCZ Vertex 120 GB).

Как у меня обстоят дела с системами : основная стоит Kubuntu 14.04, для других людей есть Windows 7 x64 Ultimate. Это всё на SSD.

Винчестер этот на 1тб я собираюсь использовать как хранилку. Но эта хранилка должна быть доступна как с Винды, так и с Кубунты. ТАк как в винде вроде как не запили нормальной поддержки ext4, то думаю его весь форматнуть в ntfs. Так как линь вроде как нормально с ним работает.

Какие у меня есть вопросы:

1) Правильно ли я делаю, что в данной ситуации всё конвертирую в ntfs? Или лучше сделать кусок на ntfs и кусок на ext4? Или лучше всё в ext4? Но всё стрёмно как-то в ext4 - ext2fs вроде как не очень нативная такая поддержка...

2) Нормально ли, что при копировании на ntfs винчестер с ext4 SSD процесс mount.ntfs выедает половину а то и всё ядро?(i7 3630QM)Что он там такого делает?

Не советуйте сносить Винду - я бы рад, но приходится её оставлять :(

 , , ,

zamazan4ik
()

Отказ создания новой сессии

Форум — General

иксы стартуют через сервис.

# Licensed under GPLv3.
# Ivan Shapovalov <intelfx100@gmail.com>
# modded by plugnburn (http://github.com/plugnburn/)

[Unit]
Description=Xorg server on %I
Documentation=man:Xorg(1)
After=systemd-user-sessions.service

Conflicts=getty@%i.service
After=getty@%i.service

[Service]
User=user
PAMName=login

StandardOutput=tty
StandardInput=tty-fail

ExecStart=/usr/bin/xinit -- /usr/bin/X -nolisten tcp :0 vt${XDG_VTNR}
Type=simple
Restart=always
RestartSec=0
UtmpIdentifier=:0
TTYPath=/dev/%I
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
IgnoreSIGPIPE=no
WorkingDirectory=/home/user

[Install]
WantedBy=multi-user.target

После обновления systemd до 222, новую сессию на tty не создаёт при перезапуске сервиса, если сессия на этом tty уже открыта ( это не описано в changelog, но коммиты такие есть - вот они 1 2 3 ), старая не закрывается если в ней висит хоть 1 процесс, в моём случае это ssh-agent запускающийся из плагина oh-my-zsh.

Можно ли как-то модифицировать этот unit, чтобы он подхватывал уже открытую сессию, если она есть на текущем tty?

Или если не возможно решить выше обозначенное, кто может посоветовать альтернативные варианты запуска ssh-agent user-wide, дабы не вводить постоянно пароли на ключи.

 

dhampire
()

Как сгенерировать на bash киррилическую рандомную строку?

Форум — General

Пробовал через cat и через tr (по этому гайду http://www.howtogeek.com/howto/30184/10-ways-to-generate-a-random-password-fr...), но результат нулевой.

Как именно киррилическую строку сгенерировать? Желательное еще и рандомной длины (от 20 до 100 например).

Вроде как в sed есть юникода поддержка, но не нашел я примера в гугле.

 ,

Zabroid
()

reiser4 стоит ли?

Форум — General

Собираюсь накатить на /
Какие подводные камни есть?
Ну кроме отдельного /boot, или второй grub уже научился в рейзер?

Есть ли профи по сравнению с ext4?

Как лучше всего перенести / на новую фс?

 ,

smilessss
()

Компрессор для Pulseaudio

Форум — Multimedia

Хочу поделиться своей маленькой радостью.

Ни для кого не секрет, что аудио и видео записи в интернете бывают разной громкости, настолько разной, что одни записи еле слышно на 140% громкости, а другие орут так, что покойники с соседних кладбищ просят сделать потише. Особенно от этого страдают владельцы лаптопов, не подключать же каждый раз колонки. Но, не буду растекаться мыслию по древу, перехожу к описанию моего решения:

Нужен компрессор, Пульсаудио имеет возможность запускать плагины ladspa. Есть замечательная коллекция - ZamPlugins, не знаю, есть ли они в стандартных репозиториях дистрибутивов, я их ставил из KXStudio. После того как поставите их, добавьте эти строки:

.ifexists module-ladspa-sink.so
.nofail
load-module module-ladspa-sink sink_name=ZamCompX2-ladspa plugin=ZamCompX2-ladspa label=ZamCompX2 control=,,12,,-12,14,
set-default-sink ZamCompX2-ladspa
.fail
.endif
В файл ~/.pulse/default.pa или /etc/pulse/default.pa и перезапустите пульс или перезагрузитесь, если лень тыкать пальцами в консоль. С пульсой должен запуститься плагин, он будет главным выходом. Вот.

Собсна, с чего я так обрадовался, долгое время пользовался плагином из проекта calf, но их больше не собирают для ladspa, все остальные компрессоры работают ужасно, а этот, Замовский, долгл не получалось подружить с пульсом.

Настройки вам могут не понравиться, я только предварительно их набросал, поковыряйте, поделитесь.

За сим, откланиваюсь.

 ,

Deleted
()

Блокировка отдельных страниц через iptables string

Форум — Admin

Делаем правило:

 iptables -A ZAPRET_GOV -m conntrack --ctstate ESTABLISHED -m string --string "http://memo.ru/d/236514.html" --algo bm  --from 280  -p tcp -j REJECT --reject-with tcp-rst

Получаем то, что сайт открывается, но элементы ссылки не прогружаются.

Как сделать так, чтобы сбразывалось соединение?

 , , ,

ne-vlezay
()

Маленькая скорость и ошибки на интерфейсе если в iptables много правил

Форум — Admin

Если в iptables добавить много правил, то на интерфейсе наблюдаются ошибки и падает скорость соединения. С чем это связано?

 , , , ,

ne-vlezay
()

Выпущена новая версия биллинга (корпоративного интернет-шлюза, софт-роутера) TraffPro 1.4.7

Новости — Проприетарное ПО
Группа Проприетарное ПО

Выпущена новая версия биллинга (корпоративного интернет-шлюза, софт-роутера) TraffPro 1.4.7!

  • Добавлен отчёт по ТОП (наиболее посещаемым) сайтам по всем пользователям, а также по отдельному пользователю (пользователям).
  • Добавлен отчёт для требований службы безопасности и органов МВД и ФСБ, позволяющий: Отобрать по параметрам посещения на домен, ip адрес, порт, по времени и дате.
  • Внесение изменений в систему антифлуда, помимо общисистемной конфигурации антифлуда появилась возможность указания независимых настроек антифлуда для отдельных клиентов.
  • Возможность указывать количество разрешённых пакетов для всех протоколов для конкретного клиента.
  • Возможность указывать количество соединений по TCP и количество пакетов по UDP и прочим протоколам для конкретного клиента.
  • Формирование блоков архивов посещений клиентов для продолжительного хранения соответствующего требованиям силовых структур, архивация.
  • Добавлен online-чат для поддержки клиентов (Online Manager) находящийся на странице входа в клиентский кабинет.
  • Добавлен Online Manager для размещения на сторонних ресурсах, это позволяет устанавливать Online Manager на корпоративные сайты, или сайты с информацией для клиентов.
  • Добавлена новая политика ядра шейпера, на каждый поток захвата пакетов введены раздельные потоки шейпера с раздльными очередями, несколько потоков шейпера на несколько потоков захвата в одной очереди, независимость потоков исходящего и входящего трафика.
  • Исправлена работа скрипта GOSREESTR — загрузка списков блокируемых сайтов рос. реестра.
  • Доработан раздел системной конфигурации, добавлены подсказки наименований параметров в конфигурационном файле /etc/traffpro/traffpro.cfg для тех, кто меняет параметры вручную.
  • Исправлена проблема некорректного отображения названий параметров раздела системной конфигурации для Ubuntu, Debian из-за ошибки Mysql.
  • Доработано корректное отображение версии и подверсии в административной консоли.
  • Изменено местоположение некоторых пунктов меню, перенесены в меню более соответствующие смысловой нагрузке.
  • Исправлена ошибка установщика, приводившая к удалению собственных форм договоров при обновлении.
  • Введено оповещение о выходе новых версий.
  • Добавлена система моментальных платежей Робокасса robokassa.ru

>>> Подробности

 , , , софт роутер

gavru
()

Postfix,Dovecot - Автоматический ответ на определенные письма.

Форум — Admin

Добрый день! Задался целью отучить пользователей локальных почтовых ящиков использовать всякие шмуглы, хотмейлы, в общем внешнюю почту. Но не все используют внешнюю почту. Решил это сделать помягче и с регулярными напоминаниями.

Концепт таков: Когда пользователь ящика petrov@gmail.com посылает письмо на любой ящик нашего почтового сервера (postfix, dovecot, amavis-new, postgrey, sieve) - она должна успешно доставляться и в ответ автоматически должно уходить сообщение с каким-либо заранее заданным содержанием.

Соответственно есть список почтовых адресов на которые всегда нужно отвечать и текст ответа что-то вроде «Не пользуйся внешней почтой!».

Знаю что для отдельных почтовых ящиков можно на sieve такое сделать, а можно ли для всех (глобально)?

Буду благодарен, если подскажите как это можно реализовать.

 ,

shpak1
()

ESI|100% масштаб|масштабирование

Галерея — Скриншоты

Сравнение применения ESI со 100%-м масштабом и доведением размера шрифта с помощью масштабирования таким образом, чтобы он примерно совпадал с ESI. Во многих случаях либо плывёт вёрстка сайта, либо количество информации уменьшается настолько, что им пользоваться невозможно. Моя задача заключается в адаптации сайтов под приемлемый для пользователя базовый размер шрифта (16 пикселей, но на многих сайтах работает и с большим значением).

ПС: изображение пришлось немного сжать по высоте. Проект реализован для веба с помощью допиленного Stylish'а (в Chromium-версии немного увеличен функционал — можно сразу настраивать стили из popup'а), надеюсь, временно, а также из специального css-шаблона+костыли к нему, если сайт начинает отображаться некорректно с ним.

Также есть простенькая реализация для Windows (reg-файлы с необходимыми метриками + батник для изменения логического разрешения).

Попробовать на себе (особенно, если вы имеете проблемы со зрением/осанкой/много времени проводите за компьютером) можно на моём сайте.

Плагины выложены в магазин приложений Оперы и Хрома, для FF пока нет. Качать с сайта

Для владельцев телефонов — вы можете пользоваться версией для FF.

Буду рад вашим отзывам ☻

>>> Просмотр (3443x5120, 2380 Kb)

Dreamject
()

Браузер без анальных зондов

Форум — Desktop

Как пропатчить браузер что бы удалить из него всю гадость типа открытия google search, предложений войти в гугл аккаунт, показа рекламы каких то пожертвований при открытии мозиллы, шпионские сервисы подсказок при наборе URL и прочее говно? Если open source значит можно. Существуют ли уже готовые решения? Задолбали изготовители браузеров пихающие новое и новое говно с каждым новым релизом!!!!

 

mongo
()

Добавить сетевое пространство имён из юнита systemd

Форум — Admin

В общем наваял я тут такой юнит для systemd:

[Unit]
Description=OpenVPN inside %I network namespace
After=syslog.target network.target

[Service]
PrivateTmp=true
Type=forking
PIDFile=/var/run/openvpn/%i.pid

ExecStartPre=/bin/ip netns add vpn
ExecStartPre=/bin/ip -netns vpn addr add 127.0.0.1/8 dev lo
ExecStartPre=/bin/ip -netns vpn link set lo up
ExecStartPre=/bin/ip link add vpn0 type veth peer name vpn1
ExecStartPre=/bin/ip link set vpn0 up
ExecStartPre=/bin/ip link set vpn1 netns vpn up
ExecStartPre=/bin/ip addr add 10.200.200.1/24 dev vpn0
ExecStartPre=/bin/ip -netns vpn addr add 10.200.200.2/24 dev vpn1
ExecStartPre=/bin/ip -netns vpn route add default via 10.200.200.1 dev vpn1
ExecStartPre=/sbin/iptables -A INPUT ! -i vpn0 -s 10.200.200.0/24 -j DROP
ExecStartPre=/sbin/iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o wl+ -j MASQUERADE
ExecStartPre=/sbin/sysctl  -q net.ipv4.ip_forward=1
ExecStartPre=/bin/mkdir  -p /etc/netns/vpn
ExecStartPre=/bin/sh -c "echo 'nameserver 8.8.8.8' > /etc/netns/vpn/resolv.conf"

ExecStart=/bin/ip netns exec vpn /usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf

ExecStopPost=/bin/rm -rf /etc/netns/vpn
ExecStopPost=/sbin/sysctl -q net.ipv4.ip_forward=0
ExecStopPost=/sbin/iptables -D INPUT ! -i vpn0 -s 10.200.200.0/24 -j DROP
ExecStopPost=/sbin/iptables -t nat -D POSTROUTING -s 10.200.200.0/24 -o wl+ -j MASQUERADE
ExecStopPost=/bin/ip link del vpn0
ExecStopPost=/bin/ip netns delete vpn

[Install]
WantedBy=multi-user.target
Если это неочевидно, задача - создать сетевое пространство имён (network namespace) vpn, наладить взаимодействие этого пространства имён с внешним миром, и запустить в нём openvpn. Сперва протестировал эту последовательность команд вручную, всё работало. Создал юнит - запинается на второй:
/bin/ip -netns vpn addr add 127.0.0.1/8 dev lo
с таким выхлопом:
setting the network namespace "vpn" failed: Invalid argument
После фейла остаётся висеть созданное пространство имён vpn и если с ним попробовать повторить эту же команду, она так же сфейлит. Даже просто ip netns выдаёт:
RTNETLINK answers: Invalid argument
vpn
Если после этого вручную удалить и создать этот namespace, а в юните закомментить строчку с командой ip netns add vpn, то юнит запускается и работает как и должен. Отсюда делаем вывод, что при создании сетевого пространства имён из юнита systemd что то происходит не так. Вопрос - что? Есть у кого идеи?

sudo cast intelfx

 , ,

eternal_sorrow
()