SOCKS proxy sunucusu tarafında kullanıcı adı ve şifre doğrulaması yapabilmek için, socks kütüphanesi bu işlevi sağlayan bir sunucu özelliği sunmadığı için manuel bir SOCKS proxy sunucusu oluşturmanız gerek
socksv5 kullanabilirsin Chatgpt basit bir örnek
const socks = require('socksv5');
// Kullanıcı doğrulama bilgileri
const validUsers = {
'username': 'password', // Örnek kullanıcı adı ve şifre
};
// SOCKS sunucusunu başlat
const server = socks.createServer((info, accept, deny) => {
console.log('Yeni bağlantı:', info);
const socket = accept(true); // İstek kabul edilir ve proxy başlatılır
if (socket) {
socket.on('data', (data) => {
console.log('Veri alındı:', data.toString());
});
}
});
// Kullanıcı adı ve şifre doğrulaması
server.useAuth(socks.auth.UserPassword((user, pass, callback) => {
if (validUsers[user] && validUsers[user] === pass) {
console.log('Doğrulama başarılı:', user);
callback(true); // Doğrulama başarılı
} else {
console.log('Doğrulama başarısız:', user);
callback(false); // Doğrulama başarısız
}
}));
server.listen(1080, '127.0.0.1', () => {
console.log('SOCKS5 sunucusu çalışıyor port: 1080');
});istemci bağlantısı
const { SocksProxyAgent } = require('socks-proxy-agent');
const https = require('https');
const socksHost = 'socks5://username:password@localhost:1080';
const targetUrl = 'https://jsonplaceholder.typicode.com/posts/1';
const agent = new SocksProxyAgent(socksHost);
https.get(targetUrl, { agent }, (res) => {
let data = '';
res.on('data', (chunk) => {
data += chunk;
});
res.on('end', () => {
console.log('Response:', data);
});
}).on('error', (err) => {
console.error('Error:', err);
});umarım yararlı olabilimiştir