lightsword
Version:
LightSword Secure SOCKS5 Proxy / iOS VPN Server
72 lines (59 loc) • 1.62 kB
text/typescript
//---------------------------------------------
// Copyright(c) 2015 Neko
//---------------------------------------------
require('async-node');
require('kinq').enable();
require('../lib/socketEx');
import { LsServer } from '../server/server';
import { LocalProxyServer } from '../client/socks5/localProxyServer';
import { RemoteProxyServer } from '../client/socks5/remoteProxyServer';
import * as assert from 'assert';
import * as socks from 'socks';
import * as net from 'net';
describe('socks5 server', () => {
let serverPort = 10000;
let proxyPort = 8900;
let algorithm = 'rc4';
let pw = '19';
let serverOpts = {
cipherAlgorithm: algorithm,
password: pw,
port: serverPort,
timeout: 60
};
let proxyOpts = {
listenAddr: 'localhost',
listenPort: proxyPort,
serverAddr: 'localhost',
serverPort: serverPort,
cipherAlgorithm: algorithm,
password: pw,
timeout: 60,
bypassLocal: true
};
let clientOpts = {
timeout: 60000,
proxy: {
ipaddress: "localhost",
port: proxyPort,
command: 'connect',
type: 5 // (4 or 5)
},
target: {
host: "google.com", // (google.com)
port: 80
}
};
let server = new LsServer(serverOpts);
server.start();
let rpServer = new RemoteProxyServer(proxyOpts);
rpServer.start();
it('status test', async (done) => {
socks.createConnection(clientOpts, async (err, socket, info) => {
if (err) return assert.fail(err, null, err.message);
assert(net.isIP(socket.remoteAddress));
done();
});
});
});