Nstbrowser — это браузер, ориентированный на защиту конфиденциальности и управление отпечатками, что делает его подходящим для разработчиков или бизнес-сценариев, требующих настройки среды отпечатков.
Цель этого руководства — помочь разработчикам быстро начать работу с установкой и использованием агента Nstbrowser. Оно охватывает весь процесс от установки скрипта до управления браузером через Puppeteer. Следуя этой статье, вы сможете:
Чтобы обеспечить бесперебойную работу службы, убедитесь, что ваш сервер соответствует следующим требованиям перед началом настройки:
Nstbrowser GitHub предоставляет удобный скрипт установки. Вы можете загрузить и запустить его напрямую, используя следующую команду:
wget -qO- https://raw.githubusercontent.com/Nstbrowser/nstbrowser-agent-setup/refs/heads/main/scripts/agent_install.sh | sudo bash
Примечание: По умолчанию скрипт установки загрузит и установит необходимые шрифты и ядра. Если вам не нужны эти компоненты, вы можете пропустить их, используя следующие параметры:
--no-kernel--no-fontsНапример, если вы хотите установить только Nstbrowser-agent без шрифтов и ядер, выполните следующую команду:
wget -qO- https://raw.githubusercontent.com/Nstbrowser/nstbrowser-agent-setup/refs/heads/main/scripts/agent_install.sh | sudo bash -s --no-kernel --no-fonts
Разбивка процесса установки
Скрипт установки автоматически выполнит следующие задачи:
После завершения установки вы увидите запрос: "agent install success!"

После установки выполните следующую команду для запуска Nstbrowser-agent:
sudo ./agent --referer=client

По умолчанию Nstbrowser-agent использует порт 8848 для предоставления услуг. После запуска вы можете получить доступ к своему серверу веб-сканера, перейдя по адресу http://<YOUR_SERVER_IP>:8848.
После установки и запуска Nstbrowser-agent вы можете начать использовать его для разработки веб-сканеров. Поскольку Nstbrowser поддерживает основные инструменты автоматизации, такие как Puppeteer и Playwright, вы можете легко интегрировать его в свою существующую структуру веб-сканера.
Например, если вы используете Puppeteer, вы можете подключиться к Nstbrowser-agent с помощью следующего кода:
import puppeteer from 'puppeteer-core';
async function execPuppeteer(browserWSEndpoint) {
try {
const browser = await puppeteer.connect({
browserWSEndpoint: browserWSEndpoint,
});
const page = await browser.newPage();
await page.goto('https://www.google.com');
await page.screenshot({ fullPage: true, path: "google.png" })
await browser.close()
} catch (err) {
console.error(err);
}
}
async function createAndConnectToBrowser() {
const host = 'YOU_SERVER_IP:8848';
const apiKey = 'YOU_API_KEY';
const config = {
headless: true, // Must be true
name: 'NstProfile',
platform: 'linux',
kernel: 'chromium',
kernelMilestone: '132',
once: true,
};
const query = new URLSearchParams({
'x-api-key': apiKey, // required
config: encodeURIComponent(JSON.stringify((config))),
});
const browserWSEndpoint = `ws://${host}/devtool/launch?${query.toString()}`;
await execPuppeteer(browserWSEndpoint)
}
createAndConnectToBrowser().then();

Примечание: Поскольку Nstbrowser-agent обычно работает в среде headless-сервера без виртуального графического отображения, браузер может быть запущен только в headless-режиме.
Nstbrowser-agent предоставляет мощную поддержку API, позволяющую пользователям программным способом создавать и управлять конфигурациями браузера. Эти конфигурации могут использоваться для автоматизированного тестирования, разработки веб-сканеров или других сценариев, требующих экземпляров браузера.
Далее мы покажем конкретный пример использования API: Createfile
import axios from 'axios';
async function createProfile() {
const host = 'YOU_SERVER_IP:8848';
const apiUrl = `http://${host}/api/agent/profile`;
const apiKey = 'YOU_API_KEY';
const profileData = {
name: 'NstProfile',
platform: 'linux',
kernel: 'chromium',
kernelMilestone: '132',
proxy: 'http://username:password@proxy_ip:proxy_port',
startupUrls: ['https://www.google.com'], // URL, загружаемый при запуске
args: {
"--headless": true // параметр запуска chrome
}
};
try {
const response = await axios.post(apiUrl, profileData, {
headers: {
'x-api-key': apiKey,
'Content-Type': 'application/json',
},
});
console.log('Профиль создан успешно:', response.data);
} catch (error) {
console.error('Не удалось создать профиль:', error);
}
}
createProfile();
После успешного выполнения вы получите следующий результат:
Profile created successfully: {
data: {
profileId: 'YOU_PROFILEID',
fingerprintId: 'YOU_FINGERPRINTID',
groupId: 'YOU_GROUP_ID',
teamId: 'YOU_TEAM_ID',
userId: 'YOU_USER_ID',
name: 'NstProfile',
kernel: 0,
kernelVersion: '',
kernelMilestone: '132',
uaFullVersion: '132.0.6834.83',
platform: 2,
platformVersion: '6.3.3',
saveLocal: false,
status: 1,
note: '',
tags: null,
_id: 'YOU_ID',
createdAt: '2025-01-01T00:00:00.000Z',
updatedAt: '2025-01-01T00:00:00.000Z'
},
err: false,
msg: 'success',
code: 200
}
Ниже приведены ссылки на официальные ресурсы Nstbrowser. Разработчики могут изучить их по мере необходимости: