Век живи — век собирай вся­кие полез­ные шту­кови­ны! Руководс­тву­ясь этим пра­вилом, я ско­пил обширную кол­лекцию ути­лит, луч­шими из которых хочу с тобой поделить­ся. Может, и ты под­берешь себе что‑то, что поможет тебе в ежед­невной работе или выручит в слож­ную минуту.

info

Это уже третья под­борка ути­лит, которую я пуб­ликую в «Хакере». В пер­вой были соб­раны по­лез­ней­шие кон­соль­ные тул­зы, во вто­рой — средс­тва авто­мати­зации.

Часть ути­лит из этой статьи прис­лал мне бла­годар­ный под­писчик. Если у тебя тоже есть о чем рас­ска­зать миру — доб­ро пожало­вать в ком­мента­рии.

 

Windows & WSL

 

WSL Host Patcher

Как извес­тно, в Windows 10 и 11 мож­но запус­кать при­ложе­ния для Linux. Сис­тема, которая поз­воля­ет это делать, называ­ется WSL — Windows Subsystem for Linux. WSL (в прос­тонародье — «вес­ло») име­ет две вер­сии, незамыс­ловато наз­ванные WSL и WSL 2. Пер­вая вер­сия выш­ла в 2016 году и уже мораль­но уста­рела. Мас­штаб­но обно­вили сис­тему в 2020 году, в релизе Windows 10 2004 — что­бы не путать, ее тог­да и наз­вали WSL 2. Внут­ри WSL 2 — вир­туаль­ная машина Hyper-V с проб­рошен­ными в нее ресур­сами хос­та.

Ког­да какой‑то про­цесс внут­ри WSL 2 начина­ет слу­шать TCP-порт, wslhost.exe слу­шает этот же порт на 127.0.0.1 хос­та, фак­тичес­ки прок­сируя его наружу, на хост. Проб­лема такого фор­вардин­га в том, что сна­ружи хос­та этот порт недос­тупен, то есть под­нятый на 8080-м пор­те веб‑сер­вис в WSL дос­тупен для хос­та, но не тор­чит в локал­ку.

Ес­ли хочет­ся получить дос­туп к такому сер­вису сна­ружи, а не толь­ко с машины с самой WSL — при­годит­ся WSL Host Patcher. Все, что он дела­ет, — это пат­чит в памяти wslhost.exe, что­бы тот откры­вал соеди­нения не на 127.0.0.1, а на 0.0.0.0, слу­шая соот­ветс­тву­ющий порт на всех интерфей­сах.

 

Wslgit

В про­дол­жение извра­щений с WSL хочу показать малень­кую ути­литу на Rust, которая прос­то тран­сли­рует все вызовы себя в соот­ветс­тву­ющие вызовы git в WSL 2. Зачем это надо? Допус­тим, у тебя есть какой‑то очень боль­шой репози­торий Git внут­ри WSL, а ты работа­ешь в тек­сто­вом редак­торе с хос­та. Что­бы Git кор­рек­тно работал с кодом внут­ри полувир­туаль­ного Linux, нуж­но как‑то тран­сли­ровать вызовы Git с исправ­ленны­ми путями внутрь кон­тей­нера. Wslgit дела­ет ров­но это: исправ­ляет путь, что­бы получить дос­туп из кон­тей­нера к фай­лам хос­та, и запус­кает Git в WSL 2, что­бы выпол­нить нуж­ное дей­ствие. Прос­то и понят­но.

Юз­кей­сов wslgit нем­ного, но иног­да он совер­шенно незаме­ним.

 

Очистка памяти vmmem

Раз уж загово­рили о WSL, упо­мянем еще одну важ­ную проб­лему, из‑за которой порой при­ходит­ся перезаг­ружать совер­шенно исправ­ный компь­ютер с неделя­ми аптай­ма. WSL очень любит агрессив­но кеширо­вать в опе­ратив­ную память, но не спе­шит осво­бож­дать ее, ког­да эта память нуж­на вин­де. В резуль­тате про­цесс vmmem съеда­ет всю опе­ратив­ку, и при­ходит­ся перезаг­ружать­ся.

Ре­шение проб­лемы прос­тое — выпол­нить от рута сле­дующую коман­ду в WSL:

# sh -c "echo 3 > /proc/sys/vm/drop_caches"

Но дол­жен быть и спо­соб получ­ше. Может, ты зна­ешь? Рас­ска­жи в ком­ментах!

 

Web

 

TLS Support Check

TLS.support — это быс­трый спо­соб про­верить, под­держи­вает ли бра­узер сов­ремен­ные фичи TLS. Сер­вис про­веря­ет под­дер­жку одно­разо­вых клю­чей, спи­сок дос­тупных шиф­ров, мгно­вен­ное возоб­новле­ние шиф­рован­ного соеди­нения и некото­рые дру­гие вещи.

TLS.support
TLS.support

На сер­висе мож­но получить код резуль­тата кон­крет­ной про­вер­ки. Удоб­но, если ты хочешь поп­росить кого‑то про­тес­тировать работу и показать резуль­таты.

 

SSH web client

Как‑то раз мне нужен был веб‑тер­минал. Я поис­кал и нашел про­ект Webshell.

Webshell — это пол­ноцен­ный тер­минал пря­мо в окне бра­узе­ра. Он работа­ет как SSH-кли­ент, но для моих задач было дос­таточ­но прос­то под­клю­чить­ся через него к 127.0.0.1 и работать. Сочета­ния кла­виш под­держи­вают­ся, пол­ноэк­ранные прог­раммы вро­де htop и nano — тоже. Что нам еще нуж­но для счастья?

Ес­ли у тебя есть свой сер­вер и ты хочешь иметь воз­можность получать к нему дос­туп из SSH через бра­узер, то это отличный вари­ант.

Ус­танав­лива­ется прог­рамма через Docker:

docker run -d --security-opt seccomp=unconfined -p 8018:80 -e ALLOWED_NETWORKS=0.0.0.0/0 bwsw/webshell
Webshell в действии
Webshell в дей­ствии

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Подписаться
Уведомить о
4 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии