0.0.6 • Published 6 years ago

tunnel v0.0.6

Weekly downloads
5,567,093
License
MIT
Repository
github
Last release
6 years ago

node-tunnel - HTTP/HTTPS Agents for tunneling proxies

Build Status Dependency Status DevDependency Status

Example

var tunnel = require('tunnel');

var tunnelingAgent = tunnel.httpsOverHttp({
  proxy: {
    host: 'localhost',
    port: 3128
  }
});

var req = https.request({
  host: 'example.com',
  port: 443,
  agent: tunnelingAgent
});

Installation

$ npm install tunnel

Usages

HTTP over HTTP tunneling

var tunnelingAgent = tunnel.httpOverHttp({
  maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets

  proxy: { // Proxy settings
    host: proxyHost, // Defaults to 'localhost'
    port: proxyPort, // Defaults to 80
    localAddress: localAddress, // Local interface if necessary

    // Basic authorization for proxy server if necessary
    proxyAuth: 'user:password',

    // Header fields for proxy server if necessary
    headers: {
      'User-Agent': 'Node'
    }
  }
});

var req = http.request({
  host: 'example.com',
  port: 80,
  agent: tunnelingAgent
});

HTTPS over HTTP tunneling

var tunnelingAgent = tunnel.httpsOverHttp({
  maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets

  // CA for origin server if necessary
  ca: [ fs.readFileSync('origin-server-ca.pem')],

  // Client certification for origin server if necessary
  key: fs.readFileSync('origin-server-key.pem'),
  cert: fs.readFileSync('origin-server-cert.pem'),

  proxy: { // Proxy settings
    host: proxyHost, // Defaults to 'localhost'
    port: proxyPort, // Defaults to 80
    localAddress: localAddress, // Local interface if necessary

    // Basic authorization for proxy server if necessary
    proxyAuth: 'user:password',

    // Header fields for proxy server if necessary
    headers: {
      'User-Agent': 'Node'
    },
  }
});

var req = https.request({
  host: 'example.com',
  port: 443,
  agent: tunnelingAgent
});

HTTP over HTTPS tunneling

var tunnelingAgent = tunnel.httpOverHttps({
  maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets

  proxy: { // Proxy settings
    host: proxyHost, // Defaults to 'localhost'
    port: proxyPort, // Defaults to 443
    localAddress: localAddress, // Local interface if necessary

    // Basic authorization for proxy server if necessary
    proxyAuth: 'user:password',

    // Header fields for proxy server if necessary
    headers: {
      'User-Agent': 'Node'
    },

    // CA for proxy server if necessary
    ca: [ fs.readFileSync('origin-server-ca.pem')],

    // Server name for verification if necessary
    servername: 'example.com',

    // Client certification for proxy server if necessary
    key: fs.readFileSync('origin-server-key.pem'),
    cert: fs.readFileSync('origin-server-cert.pem'),
  }
});

var req = http.request({
  host: 'example.com',
  port: 80,
  agent: tunnelingAgent
});

HTTPS over HTTPS tunneling

var tunnelingAgent = tunnel.httpsOverHttps({
  maxSockets: poolSize, // Defaults to http.Agent.defaultMaxSockets

  // CA for origin server if necessary
  ca: [ fs.readFileSync('origin-server-ca.pem')],

  // Client certification for origin server if necessary
  key: fs.readFileSync('origin-server-key.pem'),
  cert: fs.readFileSync('origin-server-cert.pem'),

  proxy: { // Proxy settings
    host: proxyHost, // Defaults to 'localhost'
    port: proxyPort, // Defaults to 443
    localAddress: localAddress, // Local interface if necessary

    // Basic authorization for proxy server if necessary
    proxyAuth: 'user:password',

    // Header fields for proxy server if necessary
    headers: {
      'User-Agent': 'Node'
    }

    // CA for proxy server if necessary
    ca: [ fs.readFileSync('origin-server-ca.pem')],

    // Server name for verification if necessary
    servername: 'example.com',

    // Client certification for proxy server if necessary
    key: fs.readFileSync('origin-server-key.pem'),
    cert: fs.readFileSync('origin-server-cert.pem'),
  }
});

var req = https.request({
  host: 'example.com',
  port: 443,
  agent: tunnelingAgent
});

CONTRIBUTORS

License

Licensed under the MIT license.

saucelabs@catlair/bilitoolspac-qa-toolssky-search-apiepi2me-apiryoma_rssmagnoabsass-sdfddabc-jdjdjjdlaunchdarkly-node-server-sdk-forkproxy_servicesync-proxy-servicesync-proxyssync-proxys-service@someok/spiderstestzzzsdkglobal-tunnel-wsetherscan-publishertestmagnoone-indexnetease-apipiclist-masnativescriptwallet-bunkerzfweb-cli@everything-registry/sub-chunk-2986zero.libzoi-nodejs-sdk@fuchengshun/truffle-plugin-verify@francisco-renteria/playwright-html@frogfish/enginezhi-picgo-corezcrmsdkxlf-auto-translatexzerox-executoryouzanyun-devtool-worker@loxjs/google-authfastgpt-service-xyqbilioutilsespider@k7eon/k7@l2studio/nhentai-apifamiliar-groups-apis@liesauer/node-binance-apifept@instaffogmbh/got-tunnelselectron-picgo@infinitebrahmanuniverse/nolb-tungoogle.cn-translategooglerestglobal-tunnelglobal-tunnel-ngglobal-tunnel-ng-wrapglobal-tunnel-with-disable-functionglobal-tunnel_custom@omneedia/isomorphic-git@openocean.finance/limitorder-sdk@open-iot-service-platform/oisp-sdk-js@methodus/platform-rest@metrist/axios_proxyflagpole@lyland/picgoforever-wget@n0x073/cr-dl@nebula-services/bare-server-node@nef10/homebridge-midea-air@nickhudkins/homebridge-midea-air@kintone/kintone-js-sdkelectron-epos-printer@jloewe/yarn-security-gitlabi18n-planinterstice-cli@rentready/azure-devops-node-apiinstagram-sdkimmunioimage-cli@eclipse-che/workspace-client@rnikitenko/workspace-clientihaniotkit-agent@hashhub/typed-rest-client@hypgame/yh-builder@invisionapp/dsm-storybookember-browserstack-runner@iosmanthus/clash-subscriber@ivinokur/workspace-clientern-core@prozo/scraperhttps-agent@puncsky/pipeline@qunitjs/browserstack-runner@quo-finance/synapsenodehaiyulu-language-translatehomebridge-mideahomebridge-midea-airhomebridge-midea-air-ac@pf126/file-downloader@petermikitsh/dsm-storybook@phillipleblanc/typed-rest-clienthubstack
0.0.6

6 years ago

0.0.5

7 years ago

0.0.4

8 years ago

0.0.3

10 years ago

0.0.2

12 years ago

0.0.1

12 years ago

0.0.0

12 years ago