proxy auto-config
Aug. 14th, 2026 01:35 pmЯ тут до недавнего времени использовал расширение FoxyProxy для того, чтобы оно определяло, ходить на какой-то сайт напрямую, или через прокси.
И всю дорогу меня раздражало неудобство синхронизации списка исключений. Оно там только через FireFox Sync синхронизируется. Поднять свой sync сервер теоретически можно, но практичеки это уйма геморроя и толпа уязвимостей. Администрировать замучаешься. Почему-то Mozilla Foundation ни слова в простоте не может. (GeoClue2 API у нее тоже чрезмерно навороченны. Чтобы тупо узнать текущие координаты нужно сделать пять DBus-вызовов).
Приходится экспортировать настройки в json-файл и над другом компьютере импортировать. А исключения-то добавляются довольно часть.
Еще конечно раздражает регулярное изменение интерфейса. Причем зачастую с урезанием функционалности. Потому что "ради безопасности" какую-то полезную функциональность расширениям запретили. Ну понятно когда такой фигней страдает Гугль. Гугль не заинтересован чтобы пользвоатели что-либо делали на своих компьюетрах. ему надо чтобы все данные проходили через его сервера, и там анализировалисю. Но Мозилла-то зачем это обезьянничает?
Но тут мне
phd_ru и
filin подсказали что у браузера есть встроенная функциональнсоть автоконфигурирования прокси. Которая не является расширением, а яявляется частью ядра браузера и существует как бы не со времен 3-го Netscape. И вообще предназначена для корпоративных сетей. в которых браузеры доверяют админу сети больше, чем не только пользователю, но и своему вендору.
Поэтому можно указать в настройках сети Automatic proxy configuration URL: file:///home/vitus/Sync/wpad.dat
и оно будет честно груизть оттуда javascript-функцию, вычисляющую по URL и выдранному оттуда hostname (это для удобства писателей функции) нужную прокси. Еще и кнопочка Reload в настройках рядом с полем ввода URL есть.
Там есть еще разнообразные механизмы позволяющие браузеру автоматически найти в локальной сети wpad.dat, но нас они сейчас не интересуют. Нам важно, что работает схема file:, и файл на локальной файловой системе воспринимается как доверенный источник информации о прокси.
Уж текстовый-то файлы между компьютерами синхронизировать можно миллионом разных способов. Я в данном случае решил использовать SyncThing, благо у меня все равно есть каталог со всякой мелочевкой который синхронизируются SyncThing-ом между всеми моими компьютерами.
Одна сложноть - формат этого файла представляет собой код на javascript. Поэтому, редактируя этот файл легко все сломать. Так что я написал маленький html-файлик, содержащий <script src="wpad.dat" type="text/javascript"> и простенькую формочку куда можно ввести URL, а оно ее передаст в функцию FindProxyForURL и результат на страничке покажет.
Правда, есть одна небольшая тонкость - в том контексте в котором эта функция выполняется в случае proxy auto-config доступна куча полезных хелпер-функций, которых в контексте обычной веб-страницы нет. Но мне проще было напевать на эти функции и пользвоаться только методами джаваскриптовской строки, чем отказаться от удобного инструмента отладки.
Cама функция у меня получилась вида примерно
function FindProxyForURL(url,host)
{
for (domain of [...список доменов...])
if (host==domain||host.endsWith("."+domain))
return "DIRECT"
if (host.startsWith("192.168.") || host == localhost)
return "DIRECT"
return "SOCKS localhost:1080"
}
В списке доменов там ru, рф, livejournal.com и те домены яндекса которые почему-то не в ru, а в net или st. Ну еще там gutenberg.org, потому что он очень нервно относится к хождению с адресов хостинговых датацентров.
no subject
Date: 2026-08-14 11:43 am (UTC)Сам андроидный Фокс прокси не умеет. Зато PAC умеет FoxyProxy! :-D
А свой PAC я генерирую Makefile'ом из шаблонов и простого списка доменов с помощью питоновского скрипта. Программы, которые генерируют программы.
Главный недостаток синхронизации файла PAC — в открытом браузере его надо обновлять руками через интерфейс. Это и раньше было муторно, а недавно мозилловцы запрятали этот интерфейс поглубже.
no subject
Date: 2026-08-15 01:06 pm (UTC)Нвчякт генеравции по списку шаблонов, это мысль, я ее буду думать. Потому что это позволяет генерировать заведомо корректный синтаксис. Правда ручное редактирование javascript дает большую гибкость, можно делать не просто шаблоны, а алгортимические проверки, примерно как у меня сделано для серых IP.
Что касается указанного недостатка, то он меня мало волнует. Я не имею привычки держать открытый браузер с сотнями вкладок месяцами. Поэтому скорее всего SyncThing притащит изменнеия на другой ноутбук быстрее, чем я там запущую браузер. А в крайнм случае можно его и закрыть ио открыть снова. Эти-то кнопки не Мозилла рисует, а LXDE, поэтому они сразу на экране видны.
no subject
Date: 2026-08-15 03:05 pm (UTC)no subject
Date: 2026-08-15 03:22 pm (UTC)Ну если исходить из "для работы и для развлеченуй". то по-моему перезапускать браузер надо минимум дважды в день. Утром встал, залогинился. посмотрел новости. Потом начался рабочий день, закрыл браузер для развлечений, открыл браузер для работы (и не важно, что это тот же самый браузер). Кончился рабочий день, закрыл браузер для работы открыл браузер для развлечений. Ложишься спать, делаешь логаут. Ну то есть я делаю, а то оставишь залогиненную сессию, кошка Лиза придет ночью на клавиатуру и что-нибудь от моего имени в ЖЖ напишет. А в деревне я вообще на ночь ноутбук обычно выключаю, чтобы если вдруг электричество ночью отключитс, он бы не тратил зря аккумулятора. Вот проснусь, включу, будет тратить не зря.
no subject
Date: 2026-08-15 04:40 pm (UTC)Ноутбук я вообще редко выключаю, я его в сон кладу или в гибернацию. Никакого расхода электричества, а все программы остаются запущенными.
no subject
Date: 2026-08-16 09:26 am (UTC)На мой взгляд мороки больше не с перезапусками, а с поиском нужной вкладки среди сотен открытых. Поэтмоу я всегда закрываю вкладку в браузере как только она перестает быть нужна.
Понадобится - открою заново. Либо по ссылке из какого-нибдуь письма или сообщения в мессенжере, либо из закладок.
При таком стиле работы количество нужных вкладок регулярно падает до нуля. И браузер закрывается. Это случается чаще чем в начале рабочего дня и в его конце, но в эти моменты случается обязательно.
Я бы вообще предпочел чтобы у браузера не было shared state между разными открытыми окнами. Зачем мне отдельный список вкладок в браузере, если у меня есть внизу экрана панель со списком открытых окон всех приложений? Вообще-то браузеры уже пришли к тому, что каждая вкладка - это отдельный процесс. Но всеми силами стараются от пользователя это скрыть. А на мой взгляд было бы удобнее, если бы каждая открытая веб-страница была на тех же правах, что каждое открытое окно терминала. (да у lxterm тоже бывают вкладки. Но никогда не понимал, зачем они нужны).
no subject
Date: 2026-08-16 10:27 am (UTC)У меня 4 постоянные вкладки в браузере на десктопе — Telegram, WhatsApp, Mattermost (рабочий чат) и индекс моих часто посещаемых страниц, развлекательных и рабочих. Перед перезапуском я их тоже закрываю. Все остальные вкладки временные и редко открываются больше, чем на час.
no subject
Date: 2026-08-17 01:15 pm (UTC)Мессенжеры в браузере? На мой взгляд жутко неудобно. Лучше использвоать отдельный клиент. Чем чаще ты пользуешься программой. тем больше ты выигрываешь от использоуания специализированной программы вместо бразуера. Даже если это завернутый в electron веб-сайт, как у mattermost. Все равно - умеет прятаться в tray, и показывать там на иконке наличие напрочинанных сообщений, что для мессенжера очень удобно.
Пожалуй только whatsapp я иногда открывал в браузере. Потому что у него нет нормального клиента под Linux. И то, будь у меня wayland, наверное бы в waydroid его запихал.
no subject
Date: 2026-08-17 02:12 pm (UTC)И не все приложения существуют, про WhatsApp ты сам сказал.
А что такое tray? У меня нет никакого tray.
no subject
Date: 2026-08-17 02:30 pm (UTC)Ну у приложения telegram есть своя настройка прокси.
Что касается маттермоста, то это интересная мысль - надо бы проверить, умеет ли это приложение брать настройки proxy из environment. Но мне сейчас негде, у меня ни одного живого маттермост-аккаунта нет. Хотя если у нас корпоративный мессенжер, который надо пускать через корпоративную VPN, то скорее всего через эту VPN у тебя и многое другое ходит, так что с началом рабочего дня все равно ее подниать придется. Но default route ему в VPN все равно не нужно, ему туда нужен route до конкретного корпоративного mattermost-сервера. Который, скорее всего корпоративная VPN и так ставит.
Вообще настройка прокси по приложениям, как это сделано, например в андроидном v2rayng, гораздо удобнее и проще, чем настрока по любым критериям которые можно засунуть в foxyproxy или wpad.dat. Использование pac в браузере - вынужденная мера, поскольку браузер - контейнер для многих приложений, и приходится логику выбора прямо в него засовывать.
tray это такая удобная штука, маленькая выделенная область на экране, куда умеют сворачиваться в иконки некоторые приложения. А некоторые другие утилиты (апплеты) умеют запускаться прямо туда, и это основной их интерфейс. От обычной панели задач отличается тем, что при клике правой кнопкой на иконку в трее вылезает не общее меню операций с окнами, как в панели задач, а меню, специфичное для данного приложения (а левый клик как и в панели задач - развертывает окно).
У меня там кроме телеграма торчит прогноз погоды, wpa-gui, управляющая wifi-соединениями управлялка блютусом и менеджер нотификаций (с которым впрочем, умеют взаимодействовать не только приложения, но и веб-страницы).
no subject
Date: 2026-08-17 03:24 pm (UTC)Я так понимаю, T-Proxy? У меня такого нет. У меня есть прокси HTTP и SOCKS5.
>
У нас есть корпоративный VPN, и я им иногда пользуюсь. Но вот как раз MM доступен без VPN.
>
Не, не ходит. Просто по причине отсутствия. У меня есть браузер и два десятка терминалов rxvt; я человек анти-GUI-шный, я юниксоид и предпочитаю shell-скрипты, командную строку, TUI и web-интерфейсы (в порядке убывания моего одобрения). Аудиплеер, видеоплеер, регулятор громкости и LibreOffice доступа к сети не требуют.
>
Для каждого приложения мессенджера отдельный маршрут? Для MM один, для Yandex.Chat другой, неизвестно какой? Нет, спасибо, не надо.
>
Понятно, виндузятина. У меня нет ни tray, ни соответствующих приложений.
>
И этот человек говорит, что у него нет сотни вкладок. Есть, просто они раскиданы между браузером и треем! :-D
>
У меня для этого shell-скрипты. Те, которые я запускаю раз в неделю, я так и запускаю из командной строки. Те, которые я запускаю несколько раз в день (управление яркостью монитора и громкостью звука) переехали в менюшку fvwm2 и на горячие клавиши xbindkeys.
>
Демон уведомлений у меня есть. Показывает уведомления от приложений в браузере. Но своего интерфейса у него нет, а счётчики уведомлений показываются в заголовках вкладок в браузере.
no subject
Date: 2026-08-18 07:29 am (UTC)У программы telegram-desktop есть меню настроек, и в нем раздел proxy, где можно выбрать и http, и socks прокси.
Ну маршруты все равно определяются не для приложений, а для хостов. Маршрут у тебя будет не "для приложения yandex messenger", а "для сервера yandex.messenger".
И очень зря. В Микрософте есть неплохие специалисты по usability. А хорошие интерфейсные решения имеет смысл тащить откуда угодно - хоть из винды, хоть из МакОс. Соответствущие приложения у тебя наверняка есть, ты просто не знаешь, что они еще и эту функциональность имеют.
И после этого ты утверждаешь что браузер у тебя основной рабочий инструмент? Вот если бы для вещей которые ты запускаешь раз в неделю, у тебя была бы вкладка в бразуере с кнопочками и скрипты бы запускались на локальном веб-сервере, тогда бы можно было считать что браузер у тебя основной рабочий инструмент. А так у тебя все же основной рабочий инструмент - командная строка. Основной рабочий инструмент это то в чем ты, даже не задумыыаясь, начинаешь выплонять задачу. которая возникла в первый раз.
Поэтому стоит подумать как бы хотя бы часть тех операций которые приходится делать в браузере, перетащить в командную строку. Сам с облегчением вздохнешь. У меня, вот например был в свое время "coreutils for jenkins" - скрипт который позволял из командной строки пачками управлять заданиями в дженкинс (потому что этих заданий у меня были десятки тысяч - в веб-интерфейсе не натыкаешься).
А зря. Иногда бывает удобно заглянуть в историю уведомлений и посмотреть что там вылезало и то ли само закрылось, то ли было не глядя закрыто.
no subject
Date: 2026-08-18 09:39 am (UTC)Буду знать, спасибо.
>
Я не знаю, где у Yandex.Messenger сервер. И он наверняка не один, и регулярно меняется. А маршрутизация идёт по IP, не по именам. В общем нет, слишком сложно, и требует частого вмешательства.
>
В этом смысле у меня вряд ли есть какой-то один-единственный рабочий инструмент. Shell, командная строка, скрипты, TUI файловый менеджер mc, TUI редактор vim, графические браузеры Fox и Chromium, TUI браузер links2. fvwm2 с менюшкой, в которую я постоянно что-то добавляю; пейджер (миниатюры открытых окон на 12 виртуальных десктопах); панель быстрого запуска приложений.
Больше всего времени я провожу в Fox, mc и vim.
>
Я это делаю, когда надо автоматизировать массовую или рутинную работу. Или избежать иметь дел с GUI. Скажем, я запускаю аудиоплеер, но плейлист в него не загружаю из его интерфейса; иду в mc и нажимаю Enter на плейлисте, и shell-скрипт загружает плейлист в плеер.
Торрент-файл в клиент я загружаю программой командной строки transmission-remote. Но как там торренты скачиваются и раздаются — смотрю в браузере. Во-первых, интерфейс красивее. Во-вторых, в transmission-remote очень неудобный интерфейс для манипулирования уже загруженными торрентами. Скажем, хочу я первой серии повысить приоритет, чтобы быстрее скачать и начать смотреть — это удобнее делать в web-интерфейсе. Но это не массовая работа, тут мало что можно автоматизировать.
no subject
Date: 2026-08-16 05:44 pm (UTC)У меня в браузере сотни вкладок, с характерным временем жизни в недели и месяцы. Мой стиль работы — весь контекст, точнее, все контексты, желательно сохранять столь долго, сколько они потенциально нужны, в виде, максимально пригодном для немедленной работы, насколько этого позволяют вычислительные ресурсы.
Проблема поиска нужной вкладки решается двумя способами.
Идею «не иметь в браузере табов, а держать всё табами оконного менеджера» я думал. В ней есть некое изящество. Но это не масштабируется, прям вообще, топ-левел окно — это очень дорого. В терминах, неожиданно, видеопамяти.
no subject
Date: 2026-08-17 11:27 am (UTC)Вот ведь вопрос в том, что 300+ окон это слишком дорого в терминах памияти С ДРУГОЙ СТОРОНЫ ЭКРАНА
no subject
Date: 2026-08-17 12:55 pm (UTC)Так эта стоимость никуда не девается, она intrinsic complexity. Её базовая форма — «папки → закладки + рабочий чатик → каналы → треды → ссылки из сообщений + рабочий багтрекер → проекты → тикеты + рабочая вики → спейсы → статьи + …».
Группировка «рабочие столы → окна → группы табов → табы» — это кэш решения множества задач «мне нужна вон та страница, где же там была ссылка на неё?». А кроме того, она даёт возможность держать в группе также окна терминала, редактора кода и других инструментов (при условии, что я способен закодить их переоткрытие на нужном столе).
no subject
Date: 2026-08-17 01:22 pm (UTC)Вот всегда считал что кэширование - это признак неумения делать правильно. Например наличие кэшей в процессоре - от неумения дешева делать быструю память. Фронтэнд кэши на сайтах - от неумения не выполнять лишних операций при генерации страницы Кэши - на прокси, от неумения делать скоростные каналы связи (заметим что по мере развития интернета кэширующие прокси-то и повывелись).
В компьютере ты можешь завести пару десятков виртуальных рабочих столов. А в голове? В конце концов окна на экране нам нужны для взаимодействия между содержимымм нашей головы и содержимым компьютера. Практика показывает что сосредоточиться над задачей получается лучше, если ты все прочие задачи выгружаешь из глловы. А если ты их выгрузил из глоовы. то зачем тебе их окна на экране? Только от неумения это состояние где-то сжатым образом зафиксировать.
no subject
Date: 2026-08-17 01:59 pm (UTC)Так у меня их и нет на экране. Они на воркспейсе, который не смаплен в физический output.
Фиксирование состояния сжатым образом ведёт к задержкам на декомпрессию, тем бо́льшим, чем плотнее сжатие.
Ну вот практический пример. Я работаю над тикетом, набросал код, запустил, работает, закоммитил, отправил на ревью. Завтра с этого ревью прилетят вопросы, мне надо будет над ними подумать, поменять реализацию, запустить, работает, закоммитить, следующая итерация. А пока я взял другую задачу из совсем другого края кодовой базы, завёл под неё отдельный worktree на диске (благо файлуха умеет copy-on-write) и стол. Да, это переключение контекстов, нет, я не могу его избежать, поэтому я его оптимизирую, чтоб машинная его часть вмещалась в 100–1000 миллисекунд, потому что если будет больше, то человеческая часть пойдёт втыкать в отвлекающую фиготу.
no subject
Date: 2026-08-16 06:30 pm (UTC)Так что вполне легко организовать сотни и тысячи вкладок и удобно между ними ориентироваться.
no subject
Date: 2026-08-17 01:11 pm (UTC)Тут вопрос в том что да, создано множество инструментов для разгребания бардака. Но лучше - бардак не создавать.
У человека только одно внимание. У Ричарда Фейнмана было два - зрительное и слуховое, но при работе с компьютером второе почти не задействовано. Поэтому не нужно держать больше открытых окон (всех,не только браузеров, но текстовых редакторов, терминалов etc) чем влезает в кратковременную память. То есть 7-9.