我有以下情況:CNAME重定向之前攔截交通
用戶連接到域:test.com
我想這個域名,例如重定向到google.com
要做到這一點,我已將一條CNAME記錄指向google.com:www google.com(TTL:automatic)
是否有可能攔截t raffic在發送到google.com之前在test.com上發佈? (自定義協議,而不是http或https)
我找到了一個名爲:native-dns的庫,我認爲它可能會承載一個dns服務器?
我將其配置如下:
"use strict";
var dns = require('native-dns'),
tcpserver = dns.createTCPServer(),
server = dns.createServer();
var onMessage = function (request, response) {
console.log('request from:', request.address);
var i;
response.additional.push(dns.CNAME({
name: 'www.mydomain.com',
data: 'otherdomain.com'
}));
response.additional.push(dns.NS({
name: 'ns1.mydomain.com',
data: '127.0.0.1'
}));
response.send();
};
var onError = function (err, buff, req, res) {
console.log(err.stack);
};
var onListening = function() {
console.log('server listening on', this.address());
//this.close();
};
var onSocketError = function (err, socket) {
console.log(err);
};
var onClose = function() {
console.log('server closed', this.address());
};
server.on('request', onMessage);
server.on('error', onError);
server.on('listening', onListening);
server.on('socketError', onSocketError);
server.on('close', onClose);
server.serve(53, '127.0.0.1');
我想知道的事情是我怎麼實際上可以使這個DNS服務器功能。我想ping www.mydomain.com並獲取otherdomain.com作爲答案。
目前我正在使用運行在節點腳本上的ubuntu服務器。 ping將從Windows 10計算機執行
我想找到一種方法,我不必代理服務,代理將花費太多的服務器權力,因爲它是一款遊戲。 –
@MaximGeerinck:好的,如果你想攔截整個流量,你需要以這樣或那樣的方式接收完整的流量。如果您可以操縱客戶端網絡,則可以在任何端點或兩者之間進行。但是,如果您只需要知道某個特定客戶是否試圖連接到該服務,則可能有辦法做到這一點 - 請告訴我是哪種情況。 – PeterK
感謝您的回覆,在最好的情況下,我需要知道流量的第一部分(例如用於登錄的用戶名)。但只知道客戶端是否嘗試連接也是一個很好的選擇 –