Socket
Socket
Sign inDemoInstall

socks5.js

Package Overview
Dependencies
0
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    socks5.js

SOCKS v5 proxy server implementation in JavaScript for Node.js.


Version published
Weekly downloads
1
Maintainers
1
Install size
13.0 kB
Created
Weekly downloads
 

Readme

Source

socks5.js

npm

SOCKS v5 proxy server implementation in JavaScript for Node.js.


Table of Contents

Features

  • CONNECT CMD.
  • UDP Associate CMD.

TODO

  • IPv6 support.
  • Authentication support.
  • Better DOCS.

Installation:

Install the library from npm:

$ npm install socks5.js --save

Then require it:

const socks5 = require("socks5.js")
// or
import socks5 from "socks5.js"

Usage:

socks5(opts: object, callback: function)

The function socks5 used to create a new SOCKS5 server, here is an example usage:

var socks5 = require('socks5.js')
var net = require('net')
var udp = require('dgram')

var server = socks5({
    debug: true,
    port: 1080,
    host: '::',
    handleConnect: (sock, accept, deny, info) => {
        var socket = net.connect(info.dstPort, info.dstAddress)
        socket.on('connect', () => {
            accept()
            sock.pipe(socket)
            socket.pipe(sock)
        })
        socket.on('error', err => console.error(err))
    },
    handleUdpAssociate: (msg, accept, deny, info) => {
        var socket = udp.createSocket('udp4')
        socket.on('error', err => {
            console.error('Error: ' + err)
            socket.close()
        })
        socket.once('message', (msg, rinfo) => {
            accept(msg)
            socket.close()
        })
        socket.send(msg, info.dstPort, info.dstAddress)
    }
}, err => {
    if (!err) {
        var { address, port } = server.address()
        console.log(`SOCKS5 proxy server started on ${address}:${port}!`)
    } else {
        if (err.code === 'EADDRINUSE') {
            log('Address in use, retrying...')
            setTimeout(() => {
                server.close()
                server.start()
            }, 10000)
        }
    }
})

Resources

Notes

Give this cool project a star ⭐! I will appreciate it ❤

GitHub Repo stars

License

MIT © iMrDJAi

Keywords

FAQs

Last updated on 01 May 2021

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc