npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vless-setup

v1.6.1

Published

Поднимает VLESS + Reality на вашем сервере и кладёт на рабочий стол профиль Clash и QR-коды для Happ

Readme

vless

Поднимает VLESS + Reality на вашем сервере и кладёт на рабочий стол готовый профиль для Clash и QR-коды для Happ на телефоне.

Одна команда. Установка занимает две-три минуты.

npx vless-setup

npx сам скачивает свежую версию при каждом запуске.

Запасной вариант — та же установка прямо из этого репозитория, git при этом не нужен:

npx https://github.com/IBR-new/vless/archive/refs/heads/main.tar.gz

Команда npx github:IBR-new/vless тоже работает, но только если на компьютере установлен git — npm в этой форме клонирует репозиторий. На чистой Windows git не предустановлен, и команда падает с ошибкой spawn git ENOENT. Используйте один из двух вариантов выше.

Скрипт спросит IP, логин и пароль — их присылает хостер в письме после аренды сервера. Дальше он всё сделает сам и в конце положит на рабочий стол файл vless.yaml для Clash Verge и два QR-кода для Happ.


Что нужно

| | | |---|---| | На вашем ПК | Windows 10/11 или macOS, установленный Node.js (LTS) | | Сервер | Ubuntu 22.04 или 24.04, 1 vCPU, 1 GB RAM. Подойдёт самый дешёвый тариф у любого хостера | | Локация | Любая. От страны сервера зависит только то, какой IP увидят сайты |

Проверить, установлен ли Node:

node --version

Если команда не найдена — поставьте Node.js LTS с nodejs.org и откройте терминал заново (без этого система не увидит новую программу).


Что делает скрипт

  1. Проверяет, что сервер вообще доступен с вашего интернета.
  2. Подключается по SSH и ставит Xray 26.3.27. Версия закреплена: начиная с 26.10.21 сервер не принимает подключения от Clash Verge и короткий отпечаток edge. Если на сервере уже стоит другая версия, скрипт поставит поверх эту. Если на сервере не работает DNS — что бывает на свежих VPS, — прописывает публичные 1.1.1.1 и 8.8.8.8 (прежний /etc/resolv.conf сохраняется рядом как resolv.conf.bak-vless).
  3. Генерирует ключи.
  4. Подбирает сайт-прикрытие: перебирает кандидатов и берёт первый с ECDSA-сертификатом и поддержкой HTTP/2 — с RSA рукопожатие Reality обрывается.
  5. Настраивает VLESS + Reality на портах 443 и 8443. Если на сервере включён firewall (ufw или firewalld — у части хостеров он стоит в образе), открывает в нём эти порты.
  6. Включает BBR и ротацию логов.
  7. Проверяет себя: поднимает временный клиент прямо на сервере и пропускает через него реальный запрос. Если проверка не прошла — скрипт сообщит об этом, а не отдаст нерабочий профиль.
  8. Собирает vless.yaml для Clash и кладёт на рабочий стол. Рядом — QR-коды для Happ (vless-happ-443.png, vless-happ-8443.png) и те же ссылки текстом в vless-happ.txt.
  9. Стучится в оба порта уже с вашего компьютера — так же, как будет стучаться Clash. Самопроверка на сервере не видит firewall хостера, а эта проверка видит.

После установки

  1. Откройте Clash Verge → Профили → перетащите vless.yaml.
  2. Настройки сети → включите Режим TUN, системный прокси при этом выключите.

Режим TUN обязателен, если нужен весь трафик. Системный прокси — лишь пожелание для программ, и браузеры нередко ходят мимо него.

В профиле два узла: VLESS-443 основной и VLESS-8443 запасной, на случай если провайдер начнёт фильтровать порт 443. Группа AUTO выберет живой сама.

Happ на телефоне (iOS и Android): откройте на компьютере vless-happ-443.png, в Happ нажмите «+» и отсканируйте код с экрана; затем так же vless-happ-8443.png — это запасной узел. Если сканировать не с чего, перешлите себе ссылки из vless-happ.txt и добавьте их в Happ из буфера обмена.

Профиль Clash и ссылки Happ — одни и те же ключи: один сервер можно держать и на компьютере, и на телефоне одновременно.


Если что-то пошло не так

Скрипт не завершается на ошибке ввода — он просто задаёт вопрос заново. Выйти можно в любой момент через Ctrl+C, на сервере при этом ничего не меняется.

«Адрес недоступен с вашего интернета» Сервер исправен, но маршрута до него нет — обычно это блокировка IP у провайдера. Настройками не лечится: попросите хостера заменить IP-адрес. Скрипт предложит ввести другой адрес.

«Сервер отклонил логин или пароль» Сверьтесь с письмом хостера — пароль вводится без пробелов по краям. Скрипт спросит данные заново, перезапускать его не нужно. Если скрипт пишет, что в пароле есть символы не из латиницы, — переключите раскладку или наберите пароль вручную: при копировании из письма мог попасть невидимый символ. Версии до 1.6.1 не умели входить на серверы, где пароль принимается только способом keyboard-interactive, и отклоняли даже верный пароль — запустите npx vless-setup заново.

«Не похоже на адрес» Нужен именно IP вида 203.0.113.10, а не ссылка на панель управления.

«Сервер разорвал соединение» Скрипт сам повторит попытку трижды с паузой. Если не помогло — причина обычно одна из трёх: сервер ещё разворачивается (подождите 5 минут после письма хостера), сработала защита от перебора паролей (подождите 15 минут) или SSH закрыт firewall в панели хостера.

«У сервера нет выхода в интернет» Подключение по SSH прошло, но сам сервер не открывает ни один сайт. Если сервер создан только что — подождите 10–15 минут и запустите команду ещё раз. Не помогло — в поддержку хостера: «на VPS не работает исходящий интернет».

«На сервере не работает DNS» Скрипт уже попробовал прописать 1.1.1.1 и 8.8.8.8 — не помогло, значит хостер закрывает DNS-запросы наружу. Это решается только через поддержку хостера.

«Сервер не смог скачать Xray с GitHub» Чаще всего временный сбой — повторите через пару минут. Если повторяется, проверьте на сервере curl -I https://github.com и напишите хостеру.

«Порт 443 на сервере уже занят» На сервере уже работает другая программа — обычно веб-сервер или VPN-панель, поставленная раньше (3x-ui, Marzban, Amnezia и т. п.). Скрипт рассчитан на чистый сервер и в этом случае ничего не меняет. Проще всего переустановить ОС (Ubuntu 22.04) в панели хостера и запустить команду ещё раз.

«Порт 8443 с вашего интернета недоступен» Xray на сервере работает, но порт закрыт снаружи — обычно firewall в панели управления хостера (его скрипт открыть не может). Откройте порт там; профиль менять не нужно. Второй узел при этом работает, и группа AUTO переключится на него сама.

«Xray установился, но не запускается» / «Самопроверка не прошла» Под сообщением — последние строки журнала Xray, по ним видна причина. Пришлите их вместе со скриншотом.

«Запущена старая версия скрипта» npx запоминает скрипт при первом запуске и по той же ссылке сам его не обновляет. Скрипт заметил это и уже удалил старую копию — запустите команду ещё раз.

Скрипт ведёт себя по-старому, исправление не дошло Версии до 1.5.0 сами не проверяют, свежие ли они. Очистите кеш npx вручную и запустите команду заново:

  • Windows — удалите папку %LocalAppData%\npm-cache\_npx (путь можно вставить в адресную строку Проводника);
  • macOS — выполните rm -rf ~/.npm/_npx.

npm error spawn git ENOENT На компьютере нет git, а команда npx github:… без него не работает. Возьмите команду npx vless-setup или вариант с архивом — см. начало этой страницы.

Прокси подключился, но сайты показывают ваш настоящий IP Включён системный прокси вместо TUN. Переключитесь на режим TUN.


Неинтерактивный запуск

Для повторных прогонов данные можно передать сразу:

npx vless-setup --host 203.0.113.10 --user root --pass ВАШ-ПАРОЛЬ

Те же значения читаются из переменных VLESS_HOST, VLESS_USER, VLESS_PASS.

Если у хостера SSH висит не на стандартном порту, добавьте --port 2222 (или переменную VLESS_PORT).

Повторный запуск создаёт новые ключи. Старый профиль после этого перестанет подходить — нужно будет заново перетащить свежий vless.yaml в Clash и заново отсканировать QR-коды в Happ.


Безопасность

Пароль от сервера используется только для одного SSH-подключения, никуда не записывается и не передаётся третьим сторонам. Весь код — в этом репозитории, index.js и setup.sh, около шестисот строк вместе с комментариями; их можно прочитать целиком перед запуском.

Зависимостей две: ssh2 — клиент SSH на чистом JavaScript (внешний ssh и sshpass не нужны) — и qrcode-generator для QR-кодов, без собственных зависимостей. Картинку PNG скрипт собирает сам встроенным в Node zlib.


Оговорки

Скрипт рассчитан на Ubuntu 22.04 и 24.04 — на других системах он не тестировался.

Часть хостеров запрещает прокси и VPN условиями договора. Проверьте правила своего провайдера.

MIT.