Поддержание '/etc/hosts' 'для хостов на DHCP

4 ответа

Это зависит от того, что делает DHCP?

Большинство домашних маршрутизаторов использует dnsmasq, и можно использовать это в качестве локального сервера DNS. Просто необходимо установить dnsmasq для возврата себя как сервер DNS. Затем, необходимо удостовериться, что ПК широковещательно передают имя хоста во время запроса DHCP.

Затем вуаля, необходимо смочь разрешить все локальные машины через сервер DNS/DHCP.

5
27.01.2020, 20:18
  • 1
    я полагаю, что получение сервера DHCP согласиться с сервером DNS является единственным способом сделать это, не имея клиентов DHCP, обновляет DNS так или иначе. У меня есть dhcpd, настроенный для выделения конкретного IP-адреса к определенным Ethernet-адресам. Те IP-адреса находятся в файле hosts, используемом dnsmasp. –  Bruce Ediger 26.12.2010, 21:08
  • 2
    , Который является другим способом сделать это путем распределения зафиксированного дюйм/с по dhcp. Это означает, что клиенты не должны были бы быть настроены индивидуально. –  sybreon 28.12.2010, 14:14
  • 3
    у меня нет администраторских полномочий по маршрутизатору (маршрутизаторам). –  Stefan 31.12.2010, 10:35

В зависимости от того, что Вы хотите выполнить, Вы могли настроить avahi, который может широковещательно передать существование sshd сервиса на Вашу машину. Будьте осторожны во 'внешних' сетях хотя...

3
27.01.2020, 20:18
  • 1
    Даже вне широковещательной передачи существования sshd, avahi очень легко предоставит Вам актуальное разрешение сетевых имен. –  Steven D 31.12.2010, 22:07

Я часто задавался вопросом об этом, и я пытался создать сценарий как это в/etc/sysconfig/network-scripts/update-hosts:-

#!/bin/sh

set -e

if [ "$IFACE" = lo ]; then
    exit 0
fi

SHORT_HOST=`hostname`

# Remove current line with hostname at the end of line
sed -i '/'$SHORT_HOST'$/ d' /etc/hosts

ipaddr=$(ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}')
echo "$ipaddr $SHORT_HOST" >>/etc/hosts

У меня затем был бы выполненным с помощью init сценария/etc/init.d/updatehosts:-

#!/bin/sh
# chkconfig: 2345 11 89
# description: automatically update /etc/hosts
#

if [ ! -x /etc/sysconfig/network-scripts/update-hosts ]
then
    echo "Update hosts: can't update hosts file"
    exit
fi

case "$1" in
    'start')
        # Update hosts:
        cp /etc/hosts /etc/hosts.001
                /etc/sysconfig/network-scripts/update-hosts
                echo "/etc/hosts updated"
        ;;
    'stop')
        # Restore hosts:
                cp /etc/hosts.001 /etc/hosts
                echo "/etc/hosts restored"
        ;;
esac

включенное использование chkconfig - добавляет updatehosts

Кто-либо может рекомендовать лучший путь или улучшения этого метода?

0
27.01.2020, 20:18

stty не имеет значения.

Аппаратная линейная скорость, набор через линейную дисциплину, не имеет значения для виртуального терминала, если она ненулевая. Он имеет значение только для «терминалов», которые формируются с фактическими последовательными устройствами, потому что он управляет скоростью линии последовательного устройства. В встроенном эмуляторе терминала ядра нет последовательного устройства.

ywrap не является панацеей.

Дисплей аппаратные механизмы, такие как те, которые включены ywrap , могут помочь эмулятору терминала только с (почти) полноразмерной прокруткой по ширине.

По понятным причинам эмулятор терминала не может использовать такие аппаратные механизмы вообще , если он поддерживает левое и правое поля, и, таким образом, действия прокрутки не прокручивают всю ширину строки. Встроенный эмулятор терминала ядра Linux не поддерживает управляющую последовательность DECSLRM («DEC Set Left and Right Margins») (или что-либо подобное), однако, поэтому частичная прокрутка строк здесь не вызывает беспокойства.

Но прокрутка по частичной высоте выполняется. Встроенный эмулятор терминала ядра Linux поддерживает последовательность управления DECSTBM («DEC Набора Top and Bottom Margins»), которая позволяет приложениям устанавливать первую и последнюю строки на экране для участия в прокрутке. Эта последовательность управления правильно указана как change _ scroll _ region в записи linux terminfo. Использование таких областей прокрутки действительно довольно распространено в полноэкранных приложениях TUI. Например, vim использует их при прокрутке окон полной ширины.

Драйвер fbcon ядра Linux использует механизм ywrap только в том случае, если более трех четвертей всего изображения экрана сохраняется и перемещается действием прокрутки. Это связано с тем, что частичная прокрутка по высоте с использованием ywrap также включает в себя некоторое копирование, так что «нескрученные» части экрана, по-видимому, остаются на том же месте, даже если аппаратные средства прокрутили весь экран . Чем меньше область прокрутки, тем менее полезен ywrap , потому что чем больше количество копирования, которое должно происходить, чтобы представить иллюзию того, что некоторые части дисплея не были прокручены.

Управляющие последовательности не поддерживаются.

На реальных терминалах, в отличие от виртуальных, иногда существуют управляющие последовательности, позволяющие выбирать скорости прокрутки. Например, семейство DEC VT имеет флаг DECSCLM («DEC Scroll Mode», флаг закрытого режима DEC # 4). При сбросе (с помощью последовательности управления ECMA-48 RM) терминал прокручивается как можно быстрее. Если установлено (через последовательность управления ECMA-48 SM), терминал прокручивается медленнее, вставляя задержки по мере прокрутки.

Если бы встроенный эмулятор терминала ядра Linux был полной эмуляцией DEC VT, это было бы способом управления скоростью прокрутки. Но это не так.Хотя некоторые эмуляторы терминала userspace, такие как xterm , реализуют этот флаг режима, я не знаю, что эмулятор терминала ядра это делает. Встроенный эмулятор терминала ядра Linux, конечно, не работает.

-121--111602-

Существует по крайней мере два способа создания такой системы:

  1. Ядро выполняет службу RPC. В основном это относится к серверам NFS. Ядро Linux выполняет службу NFS. Вы не увидите много, если какой-либо из пользовательских процессов. Частично это связано с производительностью (а служба NFS критически важна), а частично с тем, что ядро имеет сведения о файлах и файловых системах, которые больше нигде не доступны.
  2. Можно запустить « internet super server », который прослушивает несколько портов TCP и/или UDP. Когда некоторые данные поступают на один из членов набора портов, «суперсервер» запускает реальный серверный процесс и отключает сокет как stdin и stdout. Оригинальный inetd попал путь в немилость, и существует ряд замен , включая xinetd , systemd и другие.
-121--230094-

Можно использовать демон avahi для привязки IP-адреса к какому-либо разрешаемому имени хоста каждый раз при изменении IP-адреса DHCP.

0
27.01.2020, 20:18

Теги

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