A simple SOCKS 5/4/4a implementation and demo proxy
npm install socks5serverSOCKS v4/v4a/v5 server implementation with user/pass authentication node.js
=============================================================================
A simple SOCKS v5/v4/v4a server implementation and a demo proxy.
You can launch a demo proxy server easily :
``
`
node proxy.js [options]
127.0.0.1:1080
This will create a proxy server default at .
options
: see node proxy.js --help
`
$3
`
npm install socks5server
proxy.js
$3
You may need socks protocol knowledge to use this one in your project, or refer to the demo.
`
javascript
${net.isIP(socket.targetAddress)?'':'('+socket.targetAddress+')'} ${socket.remoteAddress}:${socket.targetPort}
const socks5server = require('socks5server');
var server = socks5server.createServer();
//or
//var server = new socks5server.socksServer();
server
.on('tcp',(socket, address, port, CMD_REPLY)=>{
//do something with the tcp proxy request
}).on('udp',(socket, expectClientAddress, expectClientPort, CMD_REPLY)=>{
//do something with the udp proxy request
}).on('error', function (e) {
console.error('SERVER ERROR: %j', e);
}).on('client_error',(socket,e)=>{
console.error(' [client error]',,e.message);
${net.isIP(socket.targetAddress)?'':'('+(socket.targetAddress||"unknown")+')'} ${socket.remoteAddress||"unknown"}}:${socket.targetPort||"unknown"}
}).on('socks_error',(socket,e)=>{
console.error(' [socks error]',,e);
`
}).listen(1080, "127.0.0.1");
/*
What is 'CMD_REPLY'?
CMD_REPLY(replyCode,addr,port)
see https://www.ietf.org/rfc/rfc1928.txt @page5:"6 Replies" for details
*/
proxy.js` is a simple demo of the server.
The