Nstbrowser là một trình duyệt tập trung vào bảo vệ quyền riêng tư và quản lý dấu vân tay, làm cho nó phù hợp với các nhà phát triển hoặc các kịch bản kinh doanh đòi hỏi môi trường dấu vân tay tùy chỉnh.
Mục đích của hướng dẫn này là giúp các nhà phát triển nhanh chóng bắt đầu với việc cài đặt và sử dụng Nstbrowser Agent. Nó bao gồm toàn bộ quá trình từ cài đặt script đến vận hành trình duyệt thông qua Puppeteer. Bằng cách làm theo bài viết này, bạn sẽ có thể:
Để đảm bảo dịch vụ chạy trơn tru, hãy đảm bảo máy chủ của bạn đáp ứng các yêu cầu sau trước khi bắt đầu thiết lập:
Nstbrowser GitHub cung cấp một script cài đặt tiện lợi. Bạn có thể tải xuống và chạy nó trực tiếp bằng lệnh sau:
wget -qO- https://raw.githubusercontent.com/Nstbrowser/nstbrowser-agent-setup/refs/heads/main/scripts/agent_install.sh | sudo bash
Lưu ý: Theo mặc định, script cài đặt sẽ tải xuống và cài đặt các phông chữ và kernel cần thiết. Nếu bạn không cần các thành phần này, bạn có thể bỏ qua chúng bằng các tùy chọn sau:
--no-kernel--no-fontsVí dụ: nếu bạn chỉ muốn cài đặt Nstbrowser-agent mà không cần phông chữ và kernel, hãy chạy lệnh sau:
wget -qO- https://raw.githubusercontent.com/Nstbrowser/nstbrowser-agent-setup/refs/heads/main/scripts/agent_install.sh | sudo bash -s --no-kernel --no-fonts
Phân tích quá trình cài đặt
Script cài đặt sẽ tự động hoàn thành các tác vụ sau:
Sau khi cài đặt hoàn tất, bạn sẽ thấy lời nhắc: "agent install success!"

Sau khi cài đặt, chạy lệnh sau để khởi động Nstbrowser-agent:
sudo ./agent --referer=client

Theo mặc định, Nstbrowser-agent sử dụng cổng 8848 để cung cấp dịch vụ. Sau khi khởi động, bạn có thể truy cập máy chủ crawler của mình bằng cách truy cập http://<YOUR_SERVER_IP>:8848.
Sau khi cài đặt và khởi động Nstbrowser-agent, bạn có thể bắt đầu sử dụng nó để phát triển crawler. Vì Nstbrowser hỗ trợ các công cụ tự động hóa chính thống như Puppeteer và Playwright, bạn có thể dễ dàng tích hợp nó vào khung crawler hiện có của mình.
Ví dụ: nếu bạn đang sử dụng Puppeteer, bạn có thể kết nối với Nstbrowser-agent bằng mã sau:
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, // Phải là true
name: 'NstProfile',
platform: 'linux',
kernel: 'chromium',
kernelMilestone: '132',
once: true,
};
const query = new URLSearchParams({
'x-api-key': apiKey, // bắt buộc
config: encodeURIComponent(JSON.stringify((config))),
});
const browserWSEndpoint = `ws://${host}/devtool/launch?${query.toString()}`;
await execPuppeteer(browserWSEndpoint)
}
createAndConnectToBrowser().then();

Lưu ý: Vì Nstbrowser-agent thường chạy trong môi trường máy chủ headless mà không có màn hình đồ họa ảo, trình duyệt chỉ có thể được khởi chạy ở chế độ headless.
Nstbrowser-agent cung cấp hỗ trợ API mạnh mẽ, cho phép người dùng tạo và quản lý cấu hình trình duyệt bằng lập trình. Các cấu hình này có thể được sử dụng để kiểm tra tự động, phát triển crawler hoặc các kịch bản khác cần các phiên bản trình duyệt.
Tiếp theo, chúng tôi trình bày một ví dụ sử dụng API cụ thể: 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 được tải khi khởi động
args: {
"--headless": true // tham số khởi động chrome
}
};
try {
const response = await axios.post(apiUrl, profileData, {
headers: {
'x-api-key': apiKey,
'Content-Type': 'application/json',
},
});
console.log('Profile created successfully:', response.data);
} catch (error) {
console.error('Failed to create profile:', error);
}
}
createProfile();
Sau khi chạy thành công, bạn sẽ nhận được kết quả sau:
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
}
Dưới đây là các liên kết tài nguyên chính thức cho Nstbrowser. Các nhà phát triển có thể khám phá thêm nếu cần: