0.0.6 • Published 7 years ago

tunnel v0.0.6

Weekly downloads
5,567,093
License
MIT
Repository
github
Last release
7 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-maswallet-bunkerzfweb-cli@everything-registry/sub-chunk-2986hexo-bilibili-bangumi-hfsyuntabletojson-rnwgetwget-improvedwget-improved-2wgetswgetv2weptwept-tracweptswebcheweweb-cliwordpressrestxlf-auto-translatetest-sdk-typescripttestzzztssdkvso-node-api@rnikitenko/workspace-clientjambo-wgetjfrog-npm-loginjs-utils-newjmtech-mailerjqpm_ziserviotkit-agentjx-language-translatekianamusiclaunchdarkly-node-server-sdklanguage-translatekoa-web-kitihanimmunioi18n-cli-translateimage-clii18n-planhubstackhttps-agentgoogleresthomebridge-midea-airhomebridge-midea-air-achomebridge-mideahomebridge-beoplayhaiyulu-language-translateharstahexo-bilibili-bangumihexo-bilibili-bangumi-anzhiyuinterstice-cliinstagram-sdklinks-coreluminati-tunnelmac-authorizationmars-micro-climartinezkz-httpldclient-nodekr-test-package3market-csgo-manager@walmartlabs/cookie-cutter-azure@xiaoxu_dev/azure-devops-node-api@tsed/cli-core@tlrg/behind-proxy@tlrg/https-proxy@tianhr/dnsprove@txpjs/translate@thebestgame/nba.js@transact-open-ux/cli@vzhukovs/workspace-client@wafarm/netease-cloudmusic-api@unlike/github-actions-http-client@useoptic/optic@yiktllw/ncm-api@yarnpkg/core@youzanyun-fe/youzanyun-devtool-worker@yrstruely/concertoalpha-playwright-html
0.0.6

7 years ago

0.0.5

8 years ago

0.0.4

10 years ago

0.0.3

12 years ago

0.0.2

13 years ago

0.0.1

14 years ago

0.0.0

14 years ago