Js2ray
The v2ray vmess protocol, based on nodejs javascript which you can use on hosts and servers
Install / Use
/learn @seezaara/Js2rayREADME
js2ray
A Node.js implementation of the V2Ray VMess protocol (plus other protocols like SOCKS and Freedom). Deployable on cPanel Node.js hosts and dedicated servers.
Install & Run
Install with:
npm i js2ray
Then create a file at /root/js2ray/index.js:
var js2ray = require("js2ray");
// your config here
Run as a systemd service:
systemctl enable js2ray
systemctl restart js2ray
It will stay alive forever.
Debug Mode
Stop the systemd service:
systemctl disable js2ray
systemctl stop js2ray
Then run manually for debugging:
node /root/js2ray/index.js
Setup
Server-side
var js2ray = require("js2ray");
var config = {
inbounds: [
{
protocol: "vmess",
networks: [
{
type: "http", // ws | tcp | http | xhttp
address: "0.0.0.0",
port: 80,
option: {
path: "/ws",
fake: "hello world"
},
}
],
users: [
{
id: "b87cd5bc-71d1-e7c7-e031-24390995a198",
security: "none", // auto | aes-128-gcm | chacha20-poly1305 | none | zero
alterId: 0,
}
],
},
{
protocol: "socks",
networks: [
{
address: "0.0.0.0",
port: 1080
}
]
}
],
debug: function (...e) {
// console.log(...e)
},
storage: __dirname + "/app.json",
}
js2ray.config(config).start();
Client / Bridge Side (Tunnel)
var js2ray = require("js2ray");
var config = {
inbounds: [
{
protocol: "vmess",
networks: [
{
type: "http", // ws | tcp | http | xhttp
address: "0.0.0.0",
port: 80,
option: {
path: ["/", "/data"],
fake: "hello world"
},
}
],
users: [
{
id: "b87cd5bc-71d1-e7c7-e031-24390995a155",
security: "none",
alterId: 0,
}
],
},
{
protocol: "socks",
networks: [
{
address: "0.0.0.0",
port: 1080
}
]
}
],
outbounds: [
{
tag: "outbound",
protocol: "vmess",
networks: [
{
type: "tcp",
address: "server.address",
port: 1234
}
],
users: [
{
id: "b87cd5bc-71d1-e7c7-e031-24390995a198",
security: "none",
alterId: 0,
}
],
}
],
storage: __dirname + "/app.json",
debug: function (...e) {
// console.log(...e)
},
}
js2ray.config(config).start();
API-Enabled Server
You can leave users: [] and instead manage them remotely via the api field.
var js2ray = require("js2ray");
var fs = require("fs");
var os = require("os");
var config = {
inbounds: [
{
protocol: "vmess",
networks: [
{
type: "http",
address: "0.0.0.0",
port: 80,
ip: ["1.1.1.1"] // limit clients ip
option: {
path: "/ws",
fake: "hello world"
},
}
],
users: []
},
{
protocol: "socks",
networks: [
{
address: "0.0.0.0",
port: 1080,
ip: ["1.1.1.1"] // limit clients ip
}
]
}
],
api: {
address: "0.0.0.0",
port: 2050,
post: {
task: function () {
return JSON.stringify({
rmx: Math.round(os.totalmem() / 1024 / 1024),
ram: Math.round(os.freemem() / 1024 / 1024),
net: 0 // placeholder
})
},
backup: function () {
return fs.readFileSync(__dirname + "/app.json", "utf-8");
}
}
},
storage: __dirname + "/app.json",
debug: function (...e) {
// console.log(...e)
},
}
js2ray.config(config).start();
SOCKS Examples
Minimal SOCKS Proxy with Freedom
var js2ray = require("js2ray");
var config = {
inbounds: [
{
protocol: "socks",
networks: [
{
address: "0.0.0.0",
port: 10805,
}
]
}
],
// if outbounds not defined, "freedom" is used by default
storage: __dirname + "/app.json",
}
js2ray.config(config).start();
SOCKS-to-SOCKS Tunnel (SOCKS Inbound + SOCKS Outbound)
var js2ray = require("js2ray");
var config = {
inbounds: [
{
protocol: "socks",
networks: [
{
address: "0.0.0.0",
port: 1080,
}
],
users: [
{
user: "u",
pass: "p",
}
],
}
],
outbounds: [
{
protocol: "socks",
networks: [
{
address: "remote.socks.server",
port: 1080,
}
],
users: [
{
user: "server-u",
pass: "server-p",
}
],
}
],
storage: __dirname + "/app.json",
}
js2ray.config(config).start();
License
<p> <img width="32px" src="https://raw.githubusercontent.com/seezaara/RocketV2ray/main/doc/logo.png"> <a href="https://www.youtube.com/@seezaara">seezaara YouTube</a><br> <img width="32px" src="https://raw.githubusercontent.com/seezaara/RocketV2ray/main/doc/logo.png"> <a href="https://t.me/seezaara">seezaara Telegram</a> </p>Related Skills
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
