welsonjs/lib/tun2socks.js
2020-08-04 08:42:17 +09:00

44 lines
1.1 KiB
JavaScript

////////////////////////////////////////////////////////////////////////
// TUN2SOCKS API
////////////////////////////////////////////////////////////////////////
var SHELL = require("lib/shell");
var SYS = require("lib/system");
exports.VERSIONINFO = "TUN2SOCKS Lib (tun2socks.js) version 0.1";
exports.global = global;
exports.require = global.require;
exports.binPath = "bin/tun2socks.exe";
/**
* @param {string} name
* @param {Object} options
*/
exports.assign = function(name, options) {
var defaultOptions = {
tunAddr: "10.0.0.2",
tunGw: "10.0.0.1",
proxyType: "socks",
proxyServer: "127.0.0.1:1080",
tunDns: "8.8.8.8,8.8.4.4", // Cloudflare DNS
tunName: name
}, _options = options, cmd = [];
// fill with default options
for (var k in defaultOptions) {
if (!(k in _options)) {
_options[k] = defaultOptions[k];
}
}
// make command
cmd.push("tun2socks");
for (var k in _options) {
cmd.push('-' + k);
cmd.push(_options[k]);
}
// return
SHELL.run(cmd);
};