Запрос DNS через TCP с помощью локальной переадресации SSH
Перенаправьте локальный непривилегированный TCP-порт на удалённый DNS-сервер и явно запросите DNS over TCP с помощью dig.
Локальная переадресация OpenSSH передаёт TCP. DNS тоже может использовать TCP, если инструмент запросов и удалённая служба DNS применяют этот транспорт.
Для DNS-сервера, доступного с SSH-хоста, откройте переадресацию, слушающую только на loopback:
ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]
Затем отправьте явный TCP-запрос DNS с локальной машины:
dig +tcp @127.0.0.1 -p 1053 app.internal A
Замените DNS-сервер, SSH-хост и запрашиваемое имя нужными значениями. Сторона SSH-сервера должна иметь доступ к dns.internal:53, и политика переадресации должна это разрешать.
Локальный порт находится выше диапазона привилегированных портов. Запрос на локальный порт 1053 не требует привязки системного DNS-порта 53.
Это не перенаправляет обычные UDP-запросы DNS автоматически. Необработанный байтовый туннель UDP-в-TCP недостаточен, потому что DNS over TCP добавляет поле длины и потоковую кадрировку. Интеграция с системным резолвером требует подходящего DNS-форвардера или явно поддерживаемой конфигурации TCP.
Наконец, получение адреса этим путём не направляет последующее веб-соединение через SSH. Поиск DNS и транспорт до назначения остаются отдельными решениями.