Have ideas to improve npm?Join in the discussion! »

    tunnel2

    0.0.6 • Public • Published

    node-tunnel - HTTP/HTTPS Agents for tunneling proxies

    Build Status NPM version

    Example

    var tunnel = require('tunnel2');
     
    var tunnelingAgent = tunnel.httpsOverHttp({
      proxy: {
        host: 'localhost',
        port: 3128
      }
    });
     
    var req = https.request({
      host: 'example.com',
      port: 443,
      agent: tunnelingAgent
    });

    Installation

    $ npm install tunnel2
    

    Usages

    HTTP over HTTP tunneling

    var tunnelingAgent = tunnel.httpOverHttp({
      maxSockets: poolSize, // Defaults to 5
     
      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 5
     
      // 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 5
     
      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 5
     
      // 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
    });

    License

    This module is released under the MIT License.

    Install

    npm i tunnel2

    DownloadsWeekly Downloads

    363

    Version

    0.0.6

    License

    none

    Unpacked Size

    78.6 kB

    Total Files

    74

    Last publish

    Collaborators

    • avatar