proxy-chain 2.6.1 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +93 -0
- package/dist/server.d.ts +35 -10
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +67 -2
- package/dist/server.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -110,6 +110,99 @@ server.on('requestFailed', ({ request, error }) => {
|
|
|
110
110
|
});
|
|
111
111
|
```
|
|
112
112
|
|
|
113
|
+
## Run a simple HTTPS proxy server
|
|
114
|
+
|
|
115
|
+
This example demonstrates how to create an HTTPS proxy server with a self-signed certificate. The HTTPS proxy server works identically to the HTTP version but with TLS encryption.
|
|
116
|
+
|
|
117
|
+
```javascript
|
|
118
|
+
const fs = require('fs');
|
|
119
|
+
const path = require('path');
|
|
120
|
+
const ProxyChain = require('proxy-chain');
|
|
121
|
+
|
|
122
|
+
(async () => {
|
|
123
|
+
// TODO: update these lines to use your own key and cert
|
|
124
|
+
const sslKey = fs.readFileSync(path.join(__dirname, 'ssl.key'));
|
|
125
|
+
const sslCrt = fs.readFileSync(path.join(__dirname, 'ssl.crt'));
|
|
126
|
+
|
|
127
|
+
const server = new ProxyChain.Server({
|
|
128
|
+
// Main difference between 'http' and 'https' is additional event listening:
|
|
129
|
+
//
|
|
130
|
+
// http
|
|
131
|
+
// -> listen for 'connection' events to track raw TCP sockets
|
|
132
|
+
//
|
|
133
|
+
// https:
|
|
134
|
+
// -> listen for 'securedConnection' events (instead of 'connection') to track only post-TLS-handshake sockets
|
|
135
|
+
// -> additionally listen for 'tlsError' events to handle TLS handshake errors
|
|
136
|
+
//
|
|
137
|
+
// Default value is 'http'
|
|
138
|
+
serverType: 'https',
|
|
139
|
+
|
|
140
|
+
// Provide the TLS certificate and private key
|
|
141
|
+
httpsOptions: {
|
|
142
|
+
key: sslKey,
|
|
143
|
+
cert: sslCrt,
|
|
144
|
+
},
|
|
145
|
+
|
|
146
|
+
// Port where the server will listen
|
|
147
|
+
port: 8443,
|
|
148
|
+
|
|
149
|
+
// Enable verbose logging to see what's happening
|
|
150
|
+
verbose: true,
|
|
151
|
+
|
|
152
|
+
// Optional: Add authentication and upstream proxy configuration
|
|
153
|
+
prepareRequestFunction: ({ username, hostname, port }) => {
|
|
154
|
+
console.log(`Request to ${hostname}:${port} from user: ${username || 'anonymous'}`);
|
|
155
|
+
|
|
156
|
+
// Allow the request
|
|
157
|
+
return {};
|
|
158
|
+
},
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// Handle failed HTTP/HTTPS requests
|
|
162
|
+
server.on('requestFailed', ({ request, error }) => {
|
|
163
|
+
console.log(`Request ${request.url} failed`);
|
|
164
|
+
console.error(error);
|
|
165
|
+
});
|
|
166
|
+
|
|
167
|
+
// Handle TLS handshake errors
|
|
168
|
+
server.on('tlsError', ({ error, socket }) => {
|
|
169
|
+
console.error(`TLS error from ${socket.remoteAddress}: ${error.message}`);
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
// Emitted when HTTP/HTTPS connection is closed
|
|
173
|
+
server.on('connectionClosed', ({ connectionId, stats }) => {
|
|
174
|
+
console.log(`Connection ${connectionId} closed`);
|
|
175
|
+
console.dir(stats);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
// Start the server
|
|
179
|
+
await server.listen();
|
|
180
|
+
|
|
181
|
+
// Handle graceful shutdown
|
|
182
|
+
process.on('SIGINT', async () => {
|
|
183
|
+
console.log('\nShutting down server...');
|
|
184
|
+
await server.close(true);
|
|
185
|
+
console.log('Server closed.');
|
|
186
|
+
process.exit(0);
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
// Keep the server running
|
|
190
|
+
await new Promise(() => { });
|
|
191
|
+
})();
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Run server:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
node https_proxy_server.js
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Send request via proxy:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
curl --proxy-insecure -x https://localhost:8443 -k https://example.com
|
|
204
|
+
```
|
|
205
|
+
|
|
113
206
|
## Use custom HTTP agents for connection pooling
|
|
114
207
|
|
|
115
208
|
You can provide custom HTTP/HTTPS agents to enable connection pooling and reuse with upstream proxies. This is particularly useful for maintaining sticky IP addresses or reducing connection overhead:
|
package/dist/server.d.ts
CHANGED
|
@@ -10,11 +10,14 @@ import { Buffer } from 'node:buffer';
|
|
|
10
10
|
import type dns from 'node:dns';
|
|
11
11
|
import { EventEmitter } from 'node:events';
|
|
12
12
|
import http from 'node:http';
|
|
13
|
-
import
|
|
13
|
+
import https from 'node:https';
|
|
14
14
|
import { URL } from 'node:url';
|
|
15
15
|
import type { HandlerOpts as CustomResponseOpts } from './custom_response';
|
|
16
|
-
import type { Socket } from './socket';
|
|
16
|
+
import type { Socket, TLSSocket } from './socket';
|
|
17
17
|
export declare const SOCKS_PROTOCOLS: string[];
|
|
18
|
+
/**
|
|
19
|
+
* Connection statistics for bandwidth tracking.
|
|
20
|
+
*/
|
|
18
21
|
export type ConnectionStats = {
|
|
19
22
|
srcTxBytes: number;
|
|
20
23
|
srcRxBytes: number;
|
|
@@ -65,10 +68,27 @@ export type PrepareRequestFunctionResult = {
|
|
|
65
68
|
};
|
|
66
69
|
type Promisable<T> = T | Promise<T>;
|
|
67
70
|
export type PrepareRequestFunction = (opts: PrepareRequestFunctionOpts) => Promisable<undefined | PrepareRequestFunctionResult>;
|
|
71
|
+
type ServerOptionsBase = {
|
|
72
|
+
port?: number;
|
|
73
|
+
host?: string;
|
|
74
|
+
prepareRequestFunction?: PrepareRequestFunction;
|
|
75
|
+
verbose?: boolean;
|
|
76
|
+
authRealm?: unknown;
|
|
77
|
+
};
|
|
78
|
+
export type HttpServerOptions = ServerOptionsBase & {
|
|
79
|
+
serverType?: 'http';
|
|
80
|
+
};
|
|
81
|
+
export type HttpsServerOptions = ServerOptionsBase & {
|
|
82
|
+
serverType: 'https';
|
|
83
|
+
httpsOptions: https.ServerOptions;
|
|
84
|
+
};
|
|
85
|
+
export type ServerOptions = HttpServerOptions | HttpsServerOptions;
|
|
68
86
|
/**
|
|
69
87
|
* Represents the proxy server.
|
|
70
88
|
* It emits the 'requestFailed' event on unexpected request errors, with the following parameter `{ error, request }`.
|
|
71
89
|
* It emits the 'connectionClosed' event when connection to proxy server is closed, with parameter `{ connectionId, stats }`.
|
|
90
|
+
* It emits the 'tlsError' event on TLS handshake failures (HTTPS servers only), with parameter `{ error, socket }`.
|
|
91
|
+
* with parameter `{ connectionId, reason, hasParent, parentType }`.
|
|
72
92
|
*/
|
|
73
93
|
export declare class Server extends EventEmitter {
|
|
74
94
|
port: number;
|
|
@@ -76,7 +96,8 @@ export declare class Server extends EventEmitter {
|
|
|
76
96
|
prepareRequestFunction?: PrepareRequestFunction;
|
|
77
97
|
authRealm: unknown;
|
|
78
98
|
verbose: boolean;
|
|
79
|
-
server: http.Server;
|
|
99
|
+
server: http.Server | https.Server;
|
|
100
|
+
serverType: 'http' | 'https';
|
|
80
101
|
lastHandlerId: number;
|
|
81
102
|
stats: {
|
|
82
103
|
httpRequestCount: number;
|
|
@@ -87,6 +108,9 @@ export declare class Server extends EventEmitter {
|
|
|
87
108
|
* Initializes a new instance of Server class.
|
|
88
109
|
* @param options
|
|
89
110
|
* @param [options.port] Port where the server will listen. By default 8000.
|
|
111
|
+
* @param [options.serverType] Type of server to create: 'http' or 'https'. By default 'http'.
|
|
112
|
+
* @param [options.httpsOptions] HTTPS server options (required when serverType is 'https').
|
|
113
|
+
* Accepts standard Node.js https.ServerOptions including key, cert, ca, passphrase, etc.
|
|
90
114
|
* @param [options.prepareRequestFunction] Custom function to authenticate proxy requests,
|
|
91
115
|
* provide URL to upstream proxy or potentially provide a function that generates a custom response to HTTP requests.
|
|
92
116
|
* It accepts a single parameter which is an object:
|
|
@@ -117,13 +141,14 @@ export declare class Server extends EventEmitter {
|
|
|
117
141
|
* @param [options.authRealm] Realm used in the Proxy-Authenticate header and also in the 'Server' HTTP header. By default it's `ProxyChain`.
|
|
118
142
|
* @param [options.verbose] If true, the server will output logs
|
|
119
143
|
*/
|
|
120
|
-
constructor(options?:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
144
|
+
constructor(options?: ServerOptions);
|
|
145
|
+
/**
|
|
146
|
+
* Handles TLS handshake errors for HTTPS servers.
|
|
147
|
+
* Without this handler, unhandled TLS errors can crash the server.
|
|
148
|
+
* Common errors: ECONNRESET, ERR_SSL_SSLV3_ALERT_CERTIFICATE_UNKNOWN,
|
|
149
|
+
* ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION, ERR_SSL_SSLV3_ALERT_HANDSHAKE_FAILURE
|
|
150
|
+
*/
|
|
151
|
+
onTLSClientError(err: NodeJS.ErrnoException, tlsSocket: TLSSocket): void;
|
|
127
152
|
log(connectionId: unknown, str: string): void;
|
|
128
153
|
onClientError(err: NodeJS.ErrnoException, socket: Socket): void;
|
|
129
154
|
/**
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;;;AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/dist/server.js
CHANGED
|
@@ -6,6 +6,7 @@ const tslib_1 = require("tslib");
|
|
|
6
6
|
const node_buffer_1 = require("node:buffer");
|
|
7
7
|
const node_events_1 = require("node:events");
|
|
8
8
|
const node_http_1 = tslib_1.__importDefault(require("node:http"));
|
|
9
|
+
const node_https_1 = tslib_1.__importDefault(require("node:https"));
|
|
9
10
|
const node_url_1 = require("node:url");
|
|
10
11
|
const node_util_1 = tslib_1.__importDefault(require("node:util"));
|
|
11
12
|
const chain_1 = require("./chain");
|
|
@@ -33,16 +34,26 @@ exports.SOCKS_PROTOCOLS = ['socks:', 'socks4:', 'socks4a:', 'socks5:', 'socks5h:
|
|
|
33
34
|
// requiring prior update of deployed intermediaries."
|
|
34
35
|
const DEFAULT_AUTH_REALM = 'ProxyChain';
|
|
35
36
|
const DEFAULT_PROXY_SERVER_PORT = 8000;
|
|
37
|
+
const HTTPS_DEFAULT_OPTIONS = {
|
|
38
|
+
// Disable TLS 1.0 and 1.1 (deprecated, insecure).
|
|
39
|
+
// All other TLS settings use Node.js defaults for cipher selection (automatically updated).
|
|
40
|
+
minVersion: 'TLSv1.2',
|
|
41
|
+
};
|
|
36
42
|
/**
|
|
37
43
|
* Represents the proxy server.
|
|
38
44
|
* It emits the 'requestFailed' event on unexpected request errors, with the following parameter `{ error, request }`.
|
|
39
45
|
* It emits the 'connectionClosed' event when connection to proxy server is closed, with parameter `{ connectionId, stats }`.
|
|
46
|
+
* It emits the 'tlsError' event on TLS handshake failures (HTTPS servers only), with parameter `{ error, socket }`.
|
|
47
|
+
* with parameter `{ connectionId, reason, hasParent, parentType }`.
|
|
40
48
|
*/
|
|
41
49
|
class Server extends node_events_1.EventEmitter {
|
|
42
50
|
/**
|
|
43
51
|
* Initializes a new instance of Server class.
|
|
44
52
|
* @param options
|
|
45
53
|
* @param [options.port] Port where the server will listen. By default 8000.
|
|
54
|
+
* @param [options.serverType] Type of server to create: 'http' or 'https'. By default 'http'.
|
|
55
|
+
* @param [options.httpsOptions] HTTPS server options (required when serverType is 'https').
|
|
56
|
+
* Accepts standard Node.js https.ServerOptions including key, cert, ca, passphrase, etc.
|
|
46
57
|
* @param [options.prepareRequestFunction] Custom function to authenticate proxy requests,
|
|
47
58
|
* provide URL to upstream proxy or potentially provide a function that generates a custom response to HTTP requests.
|
|
48
59
|
* It accepts a single parameter which is an object:
|
|
@@ -111,6 +122,12 @@ class Server extends node_events_1.EventEmitter {
|
|
|
111
122
|
writable: true,
|
|
112
123
|
value: void 0
|
|
113
124
|
});
|
|
125
|
+
Object.defineProperty(this, "serverType", {
|
|
126
|
+
enumerable: true,
|
|
127
|
+
configurable: true,
|
|
128
|
+
writable: true,
|
|
129
|
+
value: void 0
|
|
130
|
+
});
|
|
114
131
|
Object.defineProperty(this, "lastHandlerId", {
|
|
115
132
|
enumerable: true,
|
|
116
133
|
configurable: true,
|
|
@@ -139,11 +156,40 @@ class Server extends node_events_1.EventEmitter {
|
|
|
139
156
|
this.prepareRequestFunction = options.prepareRequestFunction;
|
|
140
157
|
this.authRealm = options.authRealm || DEFAULT_AUTH_REALM;
|
|
141
158
|
this.verbose = !!options.verbose;
|
|
142
|
-
|
|
159
|
+
// Keep legacy behavior (http) as default behavior.
|
|
160
|
+
this.serverType = options.serverType === 'https' ? 'https' : 'http';
|
|
161
|
+
if (options.serverType === 'https') {
|
|
162
|
+
if (!options.httpsOptions) {
|
|
163
|
+
throw new Error('httpsOptions is required when serverType is "https"');
|
|
164
|
+
}
|
|
165
|
+
// Apply secure TLS defaults (user options can override).
|
|
166
|
+
const effectiveOptions = {
|
|
167
|
+
...HTTPS_DEFAULT_OPTIONS,
|
|
168
|
+
honorCipherOrder: true,
|
|
169
|
+
...options.httpsOptions,
|
|
170
|
+
};
|
|
171
|
+
this.server = node_https_1.default.createServer(effectiveOptions);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
this.server = node_http_1.default.createServer();
|
|
175
|
+
}
|
|
176
|
+
// Attach common event handlers (same for both HTTP and HTTPS).
|
|
143
177
|
this.server.on('clientError', this.onClientError.bind(this));
|
|
144
178
|
this.server.on('request', this.onRequest.bind(this));
|
|
145
179
|
this.server.on('connect', this.onConnect.bind(this));
|
|
146
|
-
|
|
180
|
+
// Attach connection tracking based on server type.
|
|
181
|
+
// Only listen to one connection event to avoid double registration.
|
|
182
|
+
if (this.serverType === 'https') {
|
|
183
|
+
// For HTTPS: Track only post-TLS-handshake sockets (secureConnection).
|
|
184
|
+
// This ensures we track the TLS-wrapped socket with correct bytesRead/bytesWritten.
|
|
185
|
+
this.server.on('secureConnection', this.onConnection.bind(this));
|
|
186
|
+
// Handle TLS handshake errors to prevent server crashes.
|
|
187
|
+
this.server.on('tlsClientError', this.onTLSClientError.bind(this));
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
// For HTTP: Track raw TCP sockets (connection).
|
|
191
|
+
this.server.on('connection', this.onConnection.bind(this));
|
|
192
|
+
}
|
|
147
193
|
this.lastHandlerId = 0;
|
|
148
194
|
this.stats = {
|
|
149
195
|
httpRequestCount: 0,
|
|
@@ -151,6 +197,25 @@ class Server extends node_events_1.EventEmitter {
|
|
|
151
197
|
};
|
|
152
198
|
this.connections = new Map();
|
|
153
199
|
}
|
|
200
|
+
/**
|
|
201
|
+
* Handles TLS handshake errors for HTTPS servers.
|
|
202
|
+
* Without this handler, unhandled TLS errors can crash the server.
|
|
203
|
+
* Common errors: ECONNRESET, ERR_SSL_SSLV3_ALERT_CERTIFICATE_UNKNOWN,
|
|
204
|
+
* ERR_SSL_TLSV1_ALERT_PROTOCOL_VERSION, ERR_SSL_SSLV3_ALERT_HANDSHAKE_FAILURE
|
|
205
|
+
*/
|
|
206
|
+
onTLSClientError(err, tlsSocket) {
|
|
207
|
+
const connectionId = tlsSocket.proxyChainId;
|
|
208
|
+
this.log(connectionId, `TLS handshake failed: ${err.message}`);
|
|
209
|
+
// Emit event in first place before any return statement.
|
|
210
|
+
this.emit('tlsError', { error: err, socket: tlsSocket });
|
|
211
|
+
// If connection already reset or socket not writable, nothing more to do.
|
|
212
|
+
if (err.code === 'ECONNRESET' || !tlsSocket.writable) {
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
// TLS handshake failed before HTTP, cannot send HTTP response.
|
|
216
|
+
// Destroy the socket to clean up.
|
|
217
|
+
tlsSocket.destroy(err);
|
|
218
|
+
}
|
|
154
219
|
log(connectionId, str) {
|
|
155
220
|
if (this.verbose) {
|
|
156
221
|
const logPrefix = connectionId != null ? `${String(connectionId)} | ` : '';
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "proxy-chain",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"description": "Node.js implementation of a proxy server (think Squid) with support for SSL, authentication, upstream proxy chaining, and protocol tunneling.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"keywords": [
|
|
@@ -37,8 +37,9 @@
|
|
|
37
37
|
"clean": "rimraf dist",
|
|
38
38
|
"prepublishOnly": "npm run build",
|
|
39
39
|
"local-proxy": "node ./dist/run_locally.js",
|
|
40
|
-
"test": "nyc cross-env NODE_OPTIONS=--insecure-http-parser mocha
|
|
41
|
-
"test:docker": "docker build --tag proxy-chain-tests --file test/Dockerfile . &&
|
|
40
|
+
"test": "nyc cross-env NODE_OPTIONS=--insecure-http-parser mocha",
|
|
41
|
+
"test:docker": "docker build --tag proxy-chain-tests --file test/Dockerfile . && docker run proxy-chain-tests",
|
|
42
|
+
"test:docker:all": "bash scripts/test-docker-all.sh",
|
|
42
43
|
"lint": "eslint .",
|
|
43
44
|
"lint:fix": "eslint . --fix"
|
|
44
45
|
},
|