Здравствуйте!
Вот тут задачка у меня такая есть. Есть маленькая локальная сеть, выход в интернет раздается через proxy-сервер. Нужно получить на Linux-компьютере полноценный интернет (хотя бы для тех программ, которые не умеют работать через proxy). Эта задача состоит из двух этапов
1. Получение возможности для приложения соединяться с интернет-сервисами так, как будто приложение запущено с прямым подключением к интернету. Решено частично через программу
proxychains. Есть возможность подключаться к сервисам по IP, но нельзя подключиться по DNS-имени.
То есть, если я пытаюсь соединиться с указанием имени домена, соединение не устанавливается.
#proxychains ssh -2 linu.ru
ssh: linu.ru: Name or service not known
А если я на серваке (через ping например) узнаю IP-шник нужного хоста, и потом на linux-компе даю команду с указанием IP-шника, то соединение происходит нормально
#proxychains ssh -2 217.112.35.30
ProxyChains-2.1 (http://proxychains.sf.net)
dynamic chain:....192.168.1.3:3125....217.112.35.30:22..OK
The authenticity of host '217.112.35.30 (217.112.35.30)' can't be established.
2. Таким образом, надо настроить доступность DNS-имен, чтобы proxychains мог соединяться по имени хоста, а не только по IP-шнику. Я нашел статью, в которой написано, как сделать видимымы DNS имена. Для этого советуют использовать программу
dig. Вот ссылка на статью
http://www.soft-forum.ru/forum/f57/proksir...-linux-e-35091/ (Требуется регистрация, иначе весь текст не виден)
http://paste.org.ru/?lfp75b (Копия текста статьи)
В этой статье говорится, что нужно сделать скрипт
/bin/proxyresolv следующего содержания
#!/bin/sh
# file /bin/proxyresolv
# This script is called by proxychains to resolve DNS names
# DNS server used to resolve names
#здесь пишем IP нашего ДНС-а, в моем случае - ДНС прова
DNS_SERVER=xxx.xxx.xxx.xxx
if [ $# = 0 ]; then
echo " usage:"
echo " proxyresolv <hostname> "
exit
fi
export LD_PRELOAD=libproxychains.so
dig $1 @$DNS_SERVER +tcp | awk '/A.+[0-9]+\.[0-9]+\.[0-9]/{print $5;}'
И после создания данного скрипта у автора начинает по-волшебству видиться DNS-имена в proxychains! Как это так хитро происходит понять и
повторить не могу.
В данный момент, я могу на linux-компе вызвать этот скрипт с указанием нужного имени хоста, и он покажет IP-шники хоста.
$ proxyresolv linu.ru
ProxyChains-2.1 (http://proxychains.sf.net)
dynamic chain:....192.168.1.3:3125....195.161.172.254:53..OK
217.112.35.30
217.112.42.15
217.112.35.2
217.112.37.11
Т.е. скрипт proxyresolv рабочий. Но как его зацепить к proxychains, так, чтобы программы, запущенные через proxychains нормально обращались к интернет-хостам по имени, понять не могу. Есть кнонить кто знает как это сделать?