Я могу создать, переопределяют DNS, подобный записи в/etc/hosts без корневого доступа

Числа в общих библиотеках являются конвенцией, используемой в Linux для идентификации API библиотеки. Обычно формат:

libFOO.so.MAJOR.MINOR

И поскольку Вы обычно замечали существует символьная ссылка от libFOO.so до libFOO.so. MAJOR.MINOR. ldconfig ответственен за обновление этой ссылки на новейшую версию.

МАЙОР обычно увеличивается, когда API изменяется (новые точки входа удалены или параметры или измененные типы). НЕСОВЕРШЕННОЛЕТНИЙ обычно увеличивается для выпусков исправления ошибки или когда новые API представлены, не повреждая существующие API.

Более обширное обсуждение может быть найдено здесь: Разделение общих библиотек

48
22.11.2012, 00:27
8 ответов

Я искал способ запустить программу с измененным разрешением DNS для тестирования. Для меня решение использовало HOSTALIASES переменная среды:

$ echo "foo www.google.com" >> ~/.hosts
$ HOSTALIASES=~/.hosts wget foo

Посмотрите hostname(7).

(Примечание стороны: В примере HOSTALIASES переменная среды только влияет wget процесс. Конечно, Вы можете export HOSTALIASES чтобы иметь его вступают в силу для всех подпроцессов текущей оболочки.)

66
27.01.2020, 19:34
  • 1
    действительно, это должно быть похожим на +10k, к сожалению, я могу только дать Вам +1 –  xenoterracide 22.11.2012, 00:03
  • 2
    , я соглашаюсь! +10k!! –  Anders Hansson 21.09.2013, 19:45
  • 3
    Большое спасибо! Пример должен предварительно ожидать export в большинстве случаев: export HOSTALIASES=~/.hosts. –  ezequiel-garzon 27.04.2014, 01:04
  • 4
    , это кажется только хостами поддержки псевдонима хостов, не IP и хостами, не может содержать ".". –  netawater 16.04.2015, 08:26
  • 5
    Существует ли то же решение для Windows? –  Akceptor 09.06.2017, 10:39

Можно записать обертку вокруг функции libc, чтобы разрешить имена хостов и искать их в другом файле, чем/etc/hosts. Затем запустите любое приложение, с которым требуется использовать файл hosts

LD_PRELOAD=wrapper.so firefox
10
27.01.2020, 19:34
  • 1
    Наиболее полезно заставьте свою обертку перенаправить открытие /etc/nsswitch.conf кому: ~/.nsswitch.conf, и сделайте a ~/.nsswitch.conf это запрашивает Ваши базы данных DNS. –  Gilles 'SO- stop being evil' 05.02.2011, 01:49

Я думаю лучший способ сделать, это должно было бы настроить SOCKS5, проксируют и говорят Firefox отправлять запросы DNS по прокси SOCKS5 (сеть proxy.socks_remote_dns). Вы могли настроить прокси socks5 с openssh довольно легко (-D опция) и иметь удаленный хост, работающий с пользовательским/etc/hosts или чем-то как DNSMasq для более сложных настроек DNS. Эффективно, тем не менее, это продвигает конфигурацию настроек DNS к системе, в которую можно внести изменения в масштабе всей системы.

6
27.01.2020, 19:34
  • 1
    легче сказать чем сделать, рассматривая Великий китайский файрвол, это было установлено для блокирования нас от ssh-луга... –  xenoterracide 06.02.2011, 07:21

Для тестирования vhosts Вы могли бы установить сервер Apache как прокси в Firefox. Имя, которое Вы ввели, будет передано Apache. Это повредится, просматривание других сайтов таким образом задержало прокси, когда Вы сделаны.

2
27.01.2020, 19:34

Выезд после вопроса в суперпользователе:

https://superuser.com/questions/184643/override-dns-in-firefox

Если обсужденные опции и ТАК ссылка не являются эффективными решениями, затем проверьте:

https://superuser.com/questions/100239/hostname-override-in-firefox

Особенно выезд:

https://addons.mozilla.org/en-US/firefox/addon/redirector/

Это кажется, что это дополнение могло помочь - но я завишу от его фактической реализации.

5
27.01.2020, 19:34
  • 1
    , к сожалению, во многом как op в том вопросе ни один из них не кажется жизнеспособным. –  xenoterracide 04.02.2011, 12:28
  • 2
    @xenoterracide - я обновил свой ответ - возможно, дополнение редиректора является опцией? –  maxschlepzig 04.02.2011, 21:38
  • 3
    , я не думаю так от способа, которым он сформулирован.. то, что я действительно должен сделать, изменяют HTTP-заголовки, которые отправляются... как альтернативная опция к бездельничающему, используя –  xenoterracide 06.02.2011, 07:14
  • 4
    хостов, который я ввел по абсолютному адресу вокруг ТАК решение (TamperData), но я не видел, как изменить хост в этом. Интересно, позволяет ли живая http вещь заголовков действительно мне изменять заголовки, она говорит, что это - средство просмотра. –  xenoterracide 06.02.2011, 07:18
  • 5
    , я думаю Изменить расширение Заголовков, перечисленное вниз немного в, ТАКИМ ОБРАЗОМ, каждый работает..., если Вы используете имя хоста Хоста... в нем... еще не протестированный... за пределами повреждающихся сайтов с помощью него. –  xenoterracide 06.02.2011, 07:32

Неудачный не, Вы не можете, кроме Вас пишут Ваш собственный интернет-браузер.

Если необходимо сделать некоторые тесты, Вам нужна тестовая машина, независимо от того, что виртуальная машина или реальная, таким образом, необходимо спросить администратора Unix (или поставщик услуг хостинга), как можно поместить на месте среду разработки.

Можно также установить VM на ПК, установить дистрибутив Linux, Apache и протестировать изменения (это не настолько твердо, как это звучит),

Обновление

Для лучше объяснения каждое приложение записано, пользуясь стандартными библиотеками, этот путь никто не должен переписывать низкоуровневую библиотеку и функционирует как gethostbyname ().

Эти функции обычно устанавливаются использовать файл (/etc/hosts) и DNS, таким образом, неудачный, если Вам нужен тот Ваш браузер, разрешит имя, чем тот установлен в/etc/hosts, у Вас нет слишком многих альтернатив.

  1. Можно настроить собственный сервер DNS и спросить, кто имеет корневые права изменить/etc/resolve.conf
  2. Можно установить прокси-сервер как DeleGate и установить некоторые правила для VirtualHost
  3. Спросите sudo права относительно того клиентского хоста
  4. Измените поведение приложения, которое Вы используете для тестирования соединения (я предполагаю браузер), например, https://addons.mozilla.org/en-US/firefox/addon/switchhosts/
-2
27.01.2020, 19:34
  • 1
    1 сформулирован плохо и покровительство. Я - поставщик услуг хостинга, и это - проклятый клиентский сайт на нашем сервере, который я должен протестировать. У нас есть сетевая загрузка Linux, к которому у меня нет доступа администратора, и я не полагаю, что могу загрузить VM на нем. –  xenoterracide 04.02.2011, 12:01
  • 2
    @xenoterracide там не слишком много для высказывания. Действительно не выполнимо, что Вы просите, кроме Вас изменяют способ, которым создается СОКЕТ. –  tmow 04.02.2011, 15:01
  • 3
    @xenoterracide BTW, не было никакого намерения нарушить. –  tmow 04.02.2011, 15:08
  • 4
    хорошо как поставщик услуг хостинга... Я имею "sudo права" на самом деле, у меня есть реальный корень на каждом поле и полный доступ ко всему... кроме моего рабочего стола (закатывание глаз), но если они не хотели изменять свои серверы имен уже.. Я не могу помочь этому... –  xenoterracide 06.02.2011, 07:02
  • 5
    с LD_PRELOAD можно 'переопределить' определенные 'низкоуровневые' функции и сделать то, на чем Вы хотите, например, сообщение программы о Вашем собственном '/etc/hosts'' open() и любой другой низкоуровневый вызов.. пока динамическая загрузка кода включена (.so) прекрасная идея –  akira 06.02.2011, 07:34

Мне нужно было что-то подобное для ssh, scp и т.д. для сервера, который постоянно меняет IP каждые пару недель (и наш IT имеет пару недель задержки в настройке хоста). Я решил эту проблему, используя специальную переменную для этого сервера: export FOO='131.227.aaa.bbb и тогда я могу просто ssh bar@$FOO и я меняю IP в моем ~/.bashrc каждый раз, когда он меняется...

0
27.01.2020, 19:34

оверлеи + chroot:)

проблема :для монтирования требуется root-доступ

#!/bin/sh

D=/tmp/my-overlay

mkdir -p $D/{upper,work,merged}
mount -t overlay overlay -o lowerdir=/,upperdir=$D/upper,workdir=$D/work $D/merged

echo '1.2.3.4 myhost' >>$D/merged/etc/hosts

chroot $D/merged wget http://myhost/
0
10.02.2021, 17:26

Теги

Похожие вопросы