Показаны сообщения с ярлыком linux. Показать все сообщения
Показаны сообщения с ярлыком linux. Показать все сообщения

пятница, 7 января 2022 г.

Настройка маршрутизации в сети с неподконтрольным роутером

Я ненавижу рекламу, но постоянно на нее покупаюсь. Увидел в подъезде объявление МГТС - 500 мегабит за 500 рублей в месяц, настоящий IP, IPv6. Из минусов - всего лишь необходимость сверлить стену и вешать в квартире чужой роутер. Думаю надо брать - разберемся как-нибудь. (На самом деле нет, но об этом позже). Гигабитный роутер с WiFi 5G, без возможности модификации прошивки и установки софта (с вероятностью, но об этом еще позже). Задача - настроить VPN с другой сетью и прозрачное для клиентов использование ресурсов из луковой сети (The Onion Router aka TOR) с использованием своего сервера в локальной сети.

Думаю данная статья не потянет на полноценное руководство. Слишком разные возможности и потребности у людей - разное железо. Скорее некоторый указатель пути по которому можно пойти. Например для сервера можно использовать малину. Возможно даже с pi-hole. Я, например, поставил недорогой x86 сервер с распаянным на материнской плате процессором, поставил ubuntu и использую его в том числе как файловый, home assistant, веб и сервер приложений.

В общем я хотел, чтобы была возможность использовать WiFi интерфейс роутера, а также, чтобы клиенты локальной сети получили прозрачный доступ к некоторым внешним ресурсам без дополнительной настройки на стороне клиента. И не хотелось понапрасну пропускать весь трафик через сторонний сервер - хотелось, чтобы обычный интернет трафик шел напрямую на роутер, а специальный обрабатывался сервером. Решил, что отключу на маршрутизаторе DHCP и DNS server, поставлю DHCP на свой сервер, который будет анонсировать правильные маршруты по DHCP и на котором будет крутиться dns, vpn и tor daemon. С vpn все понятно - если другая локальная сеть имеет другие адреса, то достаточно просто настроить маршрутизацию. Для прозрачного доступа к ресурсам через луковый маршрутизатор решил использовать связку dnsmasq + tor.VirtualAddrNetwork + tor.DNS. Настраиваем dnsmasq для предопределенных доменов из списка, чтобы для их разрешения он использовал tor. После этого домены из луковой сети будут иметь специфичные адреса из специального выделенного диапазона частных адресов и можно использовать обычные правила маршрутизации для перенаправления этого трафика в tor.TransPort с использованием правил iptables. Для соединения локальных сетей по vpn использовал wireguard. В другой локалке стоит обычный роутер пока с прошивкой padavan + entware.

Итак ключевые параметры:

  • Локальная сеть - 192.168.2.0/24. У роутера локальной сети статический белый IP
  • Другая локальная сеть (доступ к которой получаем через vpn) - 192.168.3.0/24
  • Роутер - 192.168.2.1
  • Сервер - 192.168.2.4, имя ethernet интерфейс - enp1s0
  • tor
    • private network (VirtualAddrNetwork) - 10.254.0.0/16
    • dns server (DNSPort) - 127.0.0.1:9053
    • transparent proxy address (TransPort) - 0.0.0.0:9040
  • dnscrypt-proxy (DoH) address - 127.0.0.1:9153
  • wireguard device network (частный диапазон IP адресов из которого назначаются адреса wireguard интерфейсам) - 10.253.1.0/24
    • сервер wireguard address - 10.253.1.2
    • android клиент - 10.253.1.10
    • vpn сервер другой локалки - 10.253.1.3

Сервер

Как я уже говорил у меня сервер - обычный x86 с Ubuntu 20.04 LTS.

Установливаем пакеты (`apt install <packet>`):

  • iptables-persistent - сохранение и восстановление правил iptables
  • tor
  • dnsmasq - DNS + DHCP сервер
  • dnscrypt-proxy - DoH DNS клиент
  • systemd + netplan.io - были установлены по умолчанию и используются для настройки сети
  • wireguard - vpn
Настраиваем статический сетевой интерфейс - /etc/netplan/eth0-static.yaml и запускаем `netplan apply` для применения изменений.
Для включения маршрутизации установливаем параметры ядра:
```
sysctl -w net.ipv4.ip_forward=1
sysctl -w net.ipv6.conf.all.forwarding=1
```
и правим файл /etc/sysctl.conf для сохранения изменений после перезагрузки.

Настроиваем iptables - для таблицы filter установливаем default policy ACCEPT для цепочек INPUT и FORWARD - /etc/iptables/rules.v4. И перезагружаем правила `netfilter-persistent start` или `iptables-restore < /etc/iptables/rules.v4`.

Настройки dnsmasq

В /etc/default/dnsmasq добавляем опцию для игнорирования файлов с расширением *.i.
Локальные устройства прописываем в /etc/dnsmasq.d/src/lan_hosts.csv.i для задания фиксированных IP адресов.
Домены для доступа к которым будем использовать tor прописываем в /etc/dnsmasq.d/src/dns_tor_domains.txt.i
Для анонса маршрутов используется DHCP опция classless-static-route и microsoft-classless-static-route - 249 (на всякий случай). В принципе можно было бы попробовать и не отключать DHCP сервер на роутере, а просто анонсировать дополнительные маршруты. Проблема возникла на телефоне Android Xiaomi Mi 9T. Он не использовал маршруты с DHCP, использовал только один маршрут по умолчанию. Не уверен, что на всех андроидах есть такая проблема. Пришлось для андроидов сделать специальные настройки и перенаправлять весь трафик от андроид клиентов на сервер.
Специальные настройки для андроид - нет маршрутов, сервер используется в качестве маршрутизатора.
Для примения настроек запускаем `dnsmasq_reconfig.sh` - более подробно описано в разделе "Обновление конфигурации".

Настройки tor

Порт для socks5 proxy - SocksPort
Запрещаем выходные ноды в некоторых странах - ExcludeExitNodes
Порт для transparent proxy - TransPort
Порт DNS - DNSPort
Частный диапазон адресов из которых будут назначаться IP для серверов к которым мы будем ходить через tor - VirtualAddrNetwork
Список доменов которые мы будем резолвить через tor и которые будут иметь адреса из нашего частного диапазона (см. VirtualAddrNetwork) - AutomapHostsSuffixes - настраивается скриптом dnsmasq_reconfig.sh и сохраняется в файл /etc/tor/hosts_suffixes.cfg.

DoH

Конфигурация /etc/dnscrypt-proxy/dnscrypt-proxy.toml

Примечание: я немного изменил способ запуска dnscrypt-proxy потому что мне показалось, что он не работает. В настройках по умолчанию он запускается через systemd.socket - то есть порт слушает systemd и запускает dnscrypt-proxy когда нужно, а я его запускаю напрямую. Не думаю что это нужно. Для смены порта в конфигурации по умолчанию - когда dnscrypt активируется через systemd.socket надо выполнить `systemctl edit dnscrypt-proxy.socket` и установить
```
ListenStream=127.0.0.1:9153
ListenDatagram=127.0.0.1:9153
```
Должен появиться файл /etc/systemd/system/dnscrypt-proxy.socket.d/override.conf

Обновление конфигурации

Добавляем домен на который хотим ходить через tor в /etc/dnsmasq.d/src/dns_tor_domains.txt.i
Добавляем статический адрес устройства локальной сети в /etc/dnsmasq.d/src/lan_hosts.csv.i
Запускаем скрипт dnsmasq_reconfig.sh, который сгеренрирует файлы настройки для dnsmasq (/etc/dnsmasq.d/ lan_hosts.cfg.i, resolv.conf.i), tor (/etc/tor/hosts_suffixes.cfg) и все перезапустит для обновления конфигурации.
Для сброса DNS кэша:
На клиентском линуксе с systemd-resolve запускаем `sudo systemd-resolve --flush-caches`
На клиенте с windows запускаем `ipconfig /flushdns` в командной строке с правами администратора.
В google chrome открываем страничку `chrome://net-internals/#dns`, сбрасываем кэш браузера.

Плач Ярославны

Ну и напоследок напишу почему всё это оказалось ненужным
во-первых в какой-то момент МГТС отобрала настоящий IP и посадила всех за NAT. Почему-то в этот момент отвалился корпоративный VPN и в службе поддержки порекомендовали подключить выделенный IP
во-вторых после подключения выделенного IP перестал работать IPv6. Служба поддержки сообщила, что МГТС в принципе никогда и не поддерживала IPv6. Ну то есть он какбы работает, но его работу не гарантируют. На форумах есть объяснение на эту тему - типа выделяют статический IP, но IPv6 статический выделить не могут и чтобы  никого не смущать при подключении статического IP тупо обрубают v6.
в-третьих тех поддержка МГТС ужасна. Повысили тариф на 100 рубей. Сначала у меня был роутер sercomm rv6699 - вроде все более-менее работало. И это был не самый плохой вариант - там был доступ к iptables. Говорят его даже можно перепрошить. Был косяк - к внешнему IP адресу нельзя было достучаться из локальной сети по http и https - но это решалось удалениеми 2 правил iptables. Но потом я решил назначить фиксированный канал сети WiFi 5G. Канал не назначился - начал прыгать, я обратился в техподдержку и мне заменили роутер на ZTE ZXHN F680. И это оказалось полным концом. Он не пробрасывал DHCP пакеты из локальной сети в WiFi. Мою схему я использовать уже не мог. Техподдержкой был послан с заключением "в конфигурации по умолчанию странички грузятся, все остальное не наши проблемы". Думал может попробую использовать DNS от роутера, но там совсем шлак. Максимум можно настроить - 10 статических адресов в локальной сети. Статические и динамические адреса должны быть в одном диапазоне.
в-четрвертых у МГТС есть полный доступ к вашему роутеру. А иметь третье лицо, а вернее даже целую компанию в своей локальной сети - это как-то даже негигиенично. Ну то есть ты как бы перед ними голый. И они тебе такие - чувак - не смущайся, мы не смотрим.
Вывод - можно и МГТС, но отключать WiFi и переводить роутер в режим моста (не факт, что это можно сделать, не факт, что это не слетит после принудидтельного обновления, не факт, что это не запретят).
Говорят, что роутер Sercomm RV6699 v4 можно перепрошить. Хотел попробовать, но не могу - у меня этого роутера больше нет - мне его заменили на ZTE ZXHN F680.
Еще говорят, что можно купить коробочку мене чем за 1.5 тыс. рублей и она будет работать бриджом - думаю это хороший вариант.

среда, 31 мая 2017 г.

Мой Ноутбук и Линукс

Так получилось, что у меня по весне случается кризис. Несильный, но случается. Творческий кризис - работать не хочется совсем, руки опускаются. Даже если знаешь что надо делать, все равно работа стоит. В качестве спасения я иногда менял по весне работу. Но однажды придумал ставить себе линукс. Ну и вот с тех пор как бы повелось и теперь у меня почти всегда почти везде линукс стоит.
Недавно купил себе ноутбук для работы. Чтоб ездить с ним и чтоб можно было на кухне на диване в очередной раз развалиться во время работы. Давно хотел 17 дюймовый 4К ноут взять, а тут у ASUS появились не такие дорогие, вот и взял. ASUS VivoBook Pro N752VX, который с 4К дисплеем. Вот официальный сайт. Доставил памяти до 32Гб и поставил SSD. У него оказалось есть внутри настоящий SSD на 128, на котором винда установлена, скорее всего с интерфейсом PCI-E, но я его не нашел (не сильно и хотелось) и трогать не стал. Так что я SATA HDD заменил на SATA HDD и начал ставить на него линукс. Xubuntu. Я ее везде ставлю - она мне больше импонирует своей минималистичностью.
Установка линукс на самое новое железо это не всегда приятное занятие. Ubuntu 14.04 LTS загрузилась с флешки, но без поддержки тачпада и с плохой графикой. Ubuntu 16.04 LTS с флешки как-то совсем не загрузилась и я решил попробовать самую последнюю версию, 17.04. Не LTS. 17.04 загрузилась. И поставилась. Но в процессе загрузки с установленной версии не грузилась.
Я добавил в grub параметры для загрузки nosplash, чтоб было видно в какой момент она падает. (Для добавление параметра надо в процессе загрузки выбрать нужную строчку, нажать e и вбить параметр). И вроде как каким-то мифическим способом выяснил, что падает она в процессе загрузки иксов. Погуглил, нашел предложенный на форумах параметр загрузки nouveau.modeset=0, включил его и система загрузилась. Что странно поскольку этот параметр отключает KMS - aka Kernel mode setting - переключение режимов дисплея не в user-space, а в kernel-space. Но якобы этот параметр должен быть выпилен начиная с 2010-01-10. Ну да и пес с ним. Загрузилось, пошли странные сообщения в консоли. (Что-то типа pcieport 0000:00:1c.5:    [ 0] Receiver Error). Погуглил, добавил параметр pci=nomsi. MSI, как я понял, это возможность устройствам использовать один номер запроса на прерывание (IRQ) и должно негативно сказываться на работе системы если устройств много и на все устройства IRQ не хватает.
После успешного начала работы со своим линуксом на своем ноутбуке я поставил проприетарные драйвера nvidia. Потом поставил более свежие драйвера nvidia из ppa. В настройках ubuntu (Дополнительные драйверы aka Additional Drivers) включил параметр для использования некоего микрокода интел - Using processor microcode firmware for Intel CPUs from intel-microcode (proprietary).
Потом заметил, что система малость сильно греется. Попытался поставить TLP – Linux Advanced Power Management. Не заметил изменений, снес, поставил laptop-mode-tools. После установки laptop-mode-tools система перестала грузиться. Снес.
Потом нашел, что в ноуте установлены две видеокарты - дискретная (медленная) intel и nvidia. И типа в винде или при работе проприетарного драйвера nvidia он автоматом переключается на использование карты intel. Переключился на видеокарту intel, комп завис и отказался загружаться. Я перепугался, похимичил. Но выяснил, что переключиться обратно можно используя команду sudo prime-select nvidia. Переключился, попробовал пару других версий драйверов nvidia, выяснил, что со всеми ими система виснет при попытке переключения графики на использование карты intel. Поставил последние интеловские драйвера для видео. Изменений не произошло.
В какой-то момент выяснилось, что система не грузится при выборе пункта "Ubuntu" в grub - просто черный экран. Грузится при выборе пункта "Загрузка ubunu с дополнительными параметрами" при выборе последнего или предпоследнего ядра. Так и не понял в чем соль - разницы вроде нет никакой.
В какой-то момент выяснилось виснет при закрытии иксов (во время shutdown, что само по себе неприятно, во время Ctrl+F1). Полечилось выключением в настройках ubuntu (Дополнительные драйверы aka Additional Drivers) параметра для использования микрокода интел - Using processor microcode firmware for Intel CPUs from intel-microcode (proprietary).
Ну и еще настроил в терминале xfce Ctrl+C / Ctrl+V вместо используемых по умолчанию Ctrl+Shift+C/Ctrl+Shift+V - редактированием файла ~/.config/xfce4/terminal/accels.scm. Почему то изначально пришлось еще дополнительно сменить Ctrl+C -> Ctrl+K (например) - stty intr ^K.
Почему-то не включался NumLock по умолчанию. Не стал морочиться с lightdm, просто прописал numlockx on в .xinitrc.
Смапил клавишу отключения тачпада (touchpad disable) на клавишу XF86TouchpadToggle -
#!/bin/bash
if synclient | grep --quiet 'TouchpadOff             = 0'; then
  synclient TouchpadOff=2
  notify-send Touchpad Disabled
else
  synclient TouchpadOff=0
  notify-send Touchpad Enabled
fi
TouchpadOff=2 - это когда работает перемещение мышки тачпадом, но не работает скроллинг и клик по тапу - тачпад не мешает, но в принципе его можно использовать.
Как ни странно все остальные клавиши уже работали - даже включение подсветки клавиатуры.

Ну и еще меня раздражало отсутствие клавиши End - Home есть, а End нет. Поэтому я смапил fn+Cursor Move, которые по умолчанию используются для управления медиаплеером. Есть засада - клавиши срабатывают не на нажатие, а на отжатие - немного раздражает - xmodmap ~/.Xmodmap в файле .xinitrc. И ~/.Xmodmap
keycode 171 = End
keycode 172 = Next
keycode 173 = Home
keycode 174 = Prior
Еще есть проблемы с просыпанием после перехода в спячку. Если шнур питания подключен, то комп просыпается. Если нет, то сбрасывается и начинает загружаться.
Со скроллингом традиционный в линуксе пиздец. В каждой программе он работает по-своему. В каждом направлении он работает по-своему. Единственное, что мне понравилось в маке - это направление скроллинга. То есть на мой тупорылый взгляд он там сделан логично - ты тащишь страницу, а не ползунок и страница "следует" за твоими пальцами. Окей. В среднем на линуксе если я делаю reverse mouse для тачпада, то вверх-вниз работает как надо, влево вправо наоборот. Если я не делаю reverse, но все работает наоборот. То есть похоже горизонтальный скроллинг всегда работает наоборот и не настраивается. В хроме все наоборот, ему насрать на системные настройки. У него влево-вправо работает как надо, а вверх-вниз наоборот. Хотя не уверен по поводу хрома и горизонтальной прокрутки - так с ходу не нашел сайтов без специальной поддержки, чтоб проверить.
Такие дела. Надеюсь, что в будущем появится нормальная поддержка всего без шаманских плясок с бубном. Хотя судя по мизерному числу пользователей линукса на десктопе нормальной поддержки не будет никогда.

четверг, 25 октября 2012 г.

Skype под Linux - расширенные возможности

Меня надысь включили в большое число обильных чатов. Выбор стоял - либо запретить все сообщения, либо перестать работать. Причем в нелинуксовой версии я заметил возможность отключать нотификации для чата.
Оказалось, что в линуксовой верси - ура - ура - такая возможность тоже есть. Причем даже чуть больше, чем просто отключить нотификации. Но, как и положено для линукса, это возможность текстовая. Оказывается в чате можно вводить текстовые комманды. Например /help. Все остальное дело техники. Понятное дело отключить нотификации можно путем ввода в чат команды
/alertsoff
. Можно для группового чата, можно для индивидуального. Более подробная информация доступна по ссылке http://www.skype.com/go/help.chathelp

вторник, 10 мая 2011 г.

Ubuntu 11.04 Natty Narwhal

Уже первый день с новой Убунтой и все чаще на ум приходит слово epic fail.

Идея мне очень понравилась - минимизация места с рутинными барами. Объединение меню, title бар, task bar (вернее top/bottom panel). Это конечно рулез. Но исполнение ...

Во первых Unity. Конечно он модный и все такое, но нельзя же так сразу - как обухом по голове. ИМХО главное преимущество линукса в том, что он дает пользователю контроль над компьютером. Под виндой вечно непонятно что делает эта коробочка и как ее заставить делать то, что нужно тебе. В Линуксе это конечно еще больше непонятно, зато есть теоретическая возможность понять, прочитав горы манов, перелопатив полинета и спросив знающих людей и даже подправить - исходнички то вот они. Конечно никто этого не делает, но греет сама мысль. А тут бац. "Мы тут, в убунте решили что интерфейс должен выглядеть вот так. И все". Как то это непривычно-недемократично для линукса. Потому что как end-user система он объективно проигрывает и маку и винде. А тут получается ни панельку убрать, ни аплетик добавить. Вообще для линукса нормально было бы иметь 3 уровня настройки: для идиотов, графичскую и текстовую. В одном месте держать user level и в зависимости от этого давать разные возможности. Причем текстовую настройку как то интегрировать.

Ну ладно, Unity, снес - не нравится мне отсутствие возможности добавлять свои апплеты. Да и левая панелька не понравилась - поставил Gnome Session - у меня и раньше работал window-picker-applet и maximus. Так что top bar и window title у меня и раньше были вместе. Правда объединить window title с меню не удалось, зато поменял Window Picker на Namebar. Он не создает отдельную иконку для каждого запущенного приложения и в top bar показывает title только максимизированного окна (а не текущего) и еще имеет кнопки свернуть/развернуть. Еще вариант поставить DockbarX и Indicator Applet Appmenu - чтобы все-таки интегрировать меню в панель, но я остановился на Window Selector Applet. Indicator Applet Appmenu не стал ставить потому что он не умеет перекрываться с window title, как в Unity. Да и к тому же я посмотрел - у меня все приложения на java, а у них меню по определению с системным не интегрируется. В общем выглядит это вот так

Если кто узнает как еще и интегрировать top bar с application menu так, чтобы меню появлялось вместо window title дайте знать.


Firefox новый тоже порадовал своим минимализмом. И заодно стал похож на Google Chrome. Правда при попытке расставить свои кнопочки он делал что-то ужасное - все куда то пропадало и приходилось настраивать заново. Скорее всего проблема была в Google Toolbar - я его на всякий случай запретил. При попытке переместить кнопку Gmail из Google Toolbar на другую панель Firefox как то наполовину выходил из режима настройки панелей. И опять зайти в этот режим было уже нельзя без перезапуска. Но сейчас зато выглядет так как хотелось бы.

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


А вот потом начались косяки. При перезагрузке все повисло намертво после логина во время запуска иксов. И вроде как оно ругнулось что не может запустить Unity на моем железе. Ладно, запустил классическую Gnome Desktop. Все равно иногда виснет.

Хотел запустил VirtualBox. Оно мне пишет, что драйвер не установлен. И драйвер устанавливаться не хочет - говорит версии кернела и сорцов не совпадают. Я на всякий случай удалил старые сорцы ядра вместе со старыми ядрами - все равно не совпадает. Посмотрел - действительно в make файле версия не такая, как в uname, зато есть какой-то маппинг. Крутил-крутил, потом случайно обнаружил, что вышла новая версия Virtualbox, поставил ее - она поставилась.

Ну в общем впечатление такое, что это какая-то бета. Я и обновляться то стал только из-за того, что у меня проблемы с видеодрайвером были если экран на ночь выключить. Но теперь уж ни за что обновлять релиз больше не буду. По крайней мере не раньше чем через 2-3 месяца после релиза. Тем более, что убунта планирует отказаться от гнома и от xorg. Чет меня это беспкоит.

Еще хочу гном 3.0 поставить.

Ппц. Из-за проблем с видеодрайвером вообще не могу загрузиться.
Проблема в дровах, видяхе и подключенных мониторах
Нотик Lenovo Thinkpad 410
Видео Intel Integrated GMA HD (HD Graphics)
Вот бага https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/745112 Будем ждать когда фикс включат в релиз.

PS. Гном 3 поставил, вроде ничего, но собака не конфигурируемый. Оне пошли в другую сторону от КДЕ. В КДЕ 4 можно настроить все (например когда дернулась рука), в гноме 3 настроить ничего нельзя. Надо писать джаваскрипты чтоб добавить апплетик. Старые апплеты не работают. Ё. Дополнения к новому гному есть, но поскольку он новый, то мало. Например тут gnome-3.ru. Панель управления после установки гнома сильно победнела. Переключателя раскладки почему то не видно.

PS1. Маленькая победа. Вот тут нашел как выключить флаги и стала видна раскладка клавиатуры: linux4me.org

PSS. У меня maximus стоит. Это такая програмка, которая убирает window caption когда окно развернуто в full screen. И иногда (особенно когда я максимизировал окно на не основном мониторе) окно оставалось максимизированным навсегда. Кнопки Unmaximise, Move в меню окна (Alt+Space) дизэйблились и ниче с окном я сделать не мог. А тут выяснил - есть магическая кнопка F11, которая переключает окно в этот режим - достаточно еще раз нажать кнопку и вопрос решен.

PS4. Бляпиздуцсцуконах нецензурная брань. Ну ладно перестал работать виндовый сетевой принтер. Хотя он нужен примерно всем пользователям линукса в корпоративном секторе и должен работать как часики из коробки. Но блять когда периодически отваливается клавиатура это уж извините я ебу и плачу. Так и получается, что к 2020 году в линуксе будут решены практически все проблемы с подключением клавиатуры и добавлена своместимость со всем известному торвальдсу мышами. Upd. Говорят, что можно попробовать отключить irqbalance и клава перестанет отваливаться: пример. Но мне это не помогает. Что характерно если сделать sleep-wakeup, то клава не появляется. Если сделать switch user, то в окне ввода пароля клава начинает работать, а при возврате в залогиненую X сессию клава опять не работает.

пятница, 29 апреля 2011 г.

Unix way & ubuntu

А вот не люблю я unix way. (Что такое Unix way - это когда есть большой набор маленьких кубиков. Каждый кубик реализовывает маленький функционал, а потом эти кубики складываем и получаем большое ... систему. Общаться друг с другом кубики очень любят через pipe - труба. То есть просто текстовое такое общение. В результате в серединку между кубиками можно влепить еще любое количество других кубиков и получить мега кубик - ну типа это я так Unix way понимаю).

Почему я не люблю этот way - потому что не дело это - использовать текст там, где должно использоваться нормальное API. Ну вот возьмем например звук. Вместо того, чтобы придумать и реализовать нормальное Sound API в unix сделали /dev/dsp. Мега удобно - чтобы проиграть wav файл нужно сделать cp _file_name_.wav /dev/dsp (wov!). Не знаю когда это придумали, но к 2011 году уже почти все проблемы со звуком в линуксе решены и почти всегда звук работает без проблем. А все почему? Потому что кубики вместо нормального АПИ и вместо того, чтобы нормально сообщить код ошибки при вызове метода АПИ ошибка возникает где-то в логах, которые лежат ... - ну это уже вторая проблема. Вы не можете найти логи? Вы лох. Вы не можете понять что в этих логах написано - да вы просто лох. Не можете настроить звук - да вы просто лошарик какой-то. Вам не место в линукс сообществе - ставьте маздай и гуюшечки.

Ну а то, что никаких стандартов на логи нет, это уже дело десятое. И поэтому в принципе формализировать и автоматизировать устранение неполадок нет возможности никого особо не волнует. Видимо создатели unix way предполагают наличие хакера с дебагером для настройки звука на каждом конкретном экземпляре работающего unix. Почему я об этом говорю - у меня стояла мандрива, в которой почему то звук начинал работать только после того, как я заходил в какой то апплет управления и нажимал кнопку настройки звука. И это евм в 2009 году - когда этих стандартов на оборудование понаделали столько, что только кретинская OS/2 имеет права назвать железку "неопознанным устройством".

Ну или ppp. Вот есть стэк в винде. Ну может он и говно, но по крайней мере выдает код ошибки. По коду ошибки служба поддержки провайдера хотя бы может сказать (с некоторой долей вероятности) в чем проблема - провод, оборудование провайдера, оборудование клиента. Что есть в unix way? Логи. Где лежат - х. знает потому что тут целый зоопарк директорий, особенно на маленьких автоматических устройствах. То, что пишут в эти логи одни прогаммы, другие прочитать скорее всего не смогут потому что никаких стандартов на эти логи нет и понятное дело никакой гарантии что в разных версиях пишут одно и то же нет и не будет никогда. Unix way мать его, кернигана и ричи вместе со всей белой лабораторией.

Ну или вот вчерашний пример - наши дни, ubuntu. Дистрибутив линукс для людей. Настраиваем VPN по PPTP. Заходим куда надо, прописываем все, запускаем, не работает. В лог выдается малопонятная ошибка. Ищем в инете - оказывается надо включить режим отладки и тогда (!) перед нужно будет прочитать сообщение, которое вываливается в лог перед этой ошибкой. Ну понятное дело через UI линукса для людей включить debug нельзя. Запускаем руками и оно ... работает. Это уж совсем подлость. Я уж не говорю, что в апплете настройки VPN нет возможности установить новые доступные из репозитория типы VPN соединений.

Ну или тот же самый CVS клиент, логи которого надо парсить если хочешь сделать интерфейс для него.

Короче засада полная. Не для людей это. Ну оно и понятно. Если протокол TCP/IP создается для проверки работоспособности сети с коммутацией пакетов во время атомной войны, то наверно уж он не будет идеален для мирной жизни. И таки да, не идеален нихера. Только вот сцуко такой пробрался в топ рейтинга популярности и теперь из-за него мы имеем непонятные проблемы. А ля массовая рассылка видео, передача трафика по каналам с разной пропускной способностью. Также и Unix был разработан для решения своих задач, а не для людей. Так он и останется ядром.

Не зря. Не зря называют линуксоидов красноглазыми. Но мы продолжим ждать виндекАпец.

Лично я думаю, что все должно просто работать. Из коробки, без бубнов, сразу и как надо. Учитывая, что мир полон дерьма жизни надо иметь это ввиду и во все настройки добавлять кнопоку "для бородатых одминов" в которой можно сделать все.

Чем плохо мало линукса

Появился очередной стандарт карточек памяти SD. Давно появился :). SDXC. Практически без ограничений на объем данных (в ближайшие 3-7 лет). В качестве файловой системы выбрана exFAT. Все хорошо, но только система эта проприетарная и в линуксе появиться не  сможет. Памятуя качество драйверов NTFS в линуксе и время их разработки можно предположить, что нормальные драйвера появятся в следующем веке. Так что придется линукс фотографам задвигать. Если конечно были такие фотографы-любители, которые предпочитали GIMP фотошопу.

Но дело то не только в этом. Дело в том, что еслиб количество пользователей линукс было хотя бы более 10% (а не около 1), то можно было б рассчитывать на какое то нормальное отношение от производителей железа.

Да и убунта та же самая (хотя и описанная, как продавшася микрософту в троне) при таком количестве пользователей может погибнуть - превратится в УГ - клон MS Windows на ядре 2.6. Кому это интересно? Свободный софт должен являться двигателем прогресса если прогресс остановился. Свободный софт должен быть результатом кооперации с целью получения преимуществ.