Header Ads Widget

Ticker

6/recent/ticker-posts

NodeJS: cree un servidor proxy SOCKS4 / SOCKS4A / SOCKS5 / HTTP / HTTPS con autenticación

Implementación de proxy SOCKS / HTTP / HTTPS en node.js
===============================

Una implementación de proxy SOCKS / HTTP / HTTPS simple y un proxy de demostración en `node.js `_.

Es compatible con socks5 / socks4 / socks4a / http / https proxy
Puede ejecutarlo fácilmente como:

./test/socksproxy5.js
./test/socksproxy4.js
./test/httpproxy.js

en Windows puede ejecutar run.vbs.
Esto creará un proxy socks5 en "127.0.0.1" en el puerto "8888".
Esto creará un proxy socks4 socks4a en "127.0.0.1" en el puerto "9999".
Esto creará un proxy http https en "127.0.0.1" en el puerto "8080".

¡Puede usar esto como un buen punto de partida para escribir un proxy o un túnel!

Caracteristicas

* Soporta proxy SOCKS v4, v4a y v5.
* Soporta proxy HTTP / HTTPS.
* Admite CONNECT, BIND y ASSOCIATE para SOCKS v5.
* Admite autenticación de usuario / pase.
* Admite IP prohibidas.

Instalación

`npm install @ sansamour / node-socks`

Uso

1
2
3
4
5
6
7
8
// TypeScript
import { http, socks4, socks5 } from '@sansamour/node-socks';
 
// ES6 JavaScript
import { http, socks4, socks5 } from '@sansamour/node-socks';
 
// Legacy JavaScript
const socks5 = require('@sansamour/node-socks').socks5;

Ejemplo de inicio rápido

Cree el servidor SOCKS v5: socks5: // usuario: pass@127.0.0.1: 9999 con archivos IP prohibidos `ip.txt` (separados por punto y coma)

1
2
3
4
5
6
7
8
9
const { socks5 } = require('@sansamour/node-socks')
 
socks5.createServer({
    authorization: function(u,p){
        return u == 'user' && p == 'pass'
    },
    port: 9999,
    fileBannedIPs: './ip.txt'
});

Con el servidor proxy SOCKS v4 / v4a, solo admite autenticación de nombre de usuario (sin contraseña).
Cree el servidor SOCKS v4 / v4a: socks4: // usuario: anypass@127.0.0.1: 8888 con archivos IP prohibidos `ip.txt` (separados por punto y coma)

1
2
3
4
5
6
7
8
9
const { socks4 } = require('@sansamour/node-socks')
 
socks4.createServer({
    authorization:function(u){
        return u == 'user'
    },
    port: 8888,
    fileBannedIPs: './ip.txt'
});

Otras lecturas:

Lea las especificaciones de SOCKS 5 para obtener más información sobre cómo utilizar Associate.
http://www.ietf.org/rfc/rfc1928.txt

Licencia

Este trabajo está autorizado bajo la [licencia MIT] (http://en.wikipedia.org/wiki/MIT_License).

Publicar un comentario

0 Comentarios