Назад | Перейти на главную страницу

Где NetworkManager хранит доменное имя для создания файла resolv.conf?

У меня проблемы с правильной настройкой моего доменного имени в CentOS 6. Мой файл resolv.conf выглядит так:

nameserver 198.6.100.25
nameserver 198.6.100.53
nameserver 198.6.100.38
# Generated by NetworkManager
domain andyshinn.as
search vcolo.andyshinn.as

У меня один интерфейс eth0 со следующей конфигурацией:

DEVICE=eth0
BOOTPROTO=none
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
HWADDR=00:0c:29:3b:2a:70
IPADDR=192.168.50.6
NETMASK=255.255.255.0
DNS2=198.6.100.53
GATEWAY=192.168.50.1
DNS1=198.6.100.25
IPV6INIT=no
USERCTL=no

Файл Hosts также для справки:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.50.6    myvm myvm.vcolo.andyshinn.as

Я пытаюсь изменить домен на vcolo.andyshinn.as. Но после перезагрузки он возвращается к andyshinn.as. По встроенному комментарию я вижу, что он создается NetworkManager. Тем не мение, system-config-network-tui не имеет ничего о доменном имени (только путь поиска).

А fgrep -r 'andyshinn.as' /etc/* только воспитывает /etc/sysconfig/networking/profiles/default/resolv.conf как еще один вариант для редактирования. Но я пробовал редактировать этот файл и с теми же результатами. Это виртуальная машина, работающая в VMware Workstation. Но у меня отключен DHCP-сервер для интерфейса VMnet, который использует виртуальная машина.

Вместо того, чтобы просто отключать NetworkManager вслепую (что кажется ответом на большинство проблем, связанных с NetworkManager), я хотел бы больше узнать о том, как он работает и сохраняет конфигурацию. Так как же в моей системе andyshinn.as в качестве доменного имени и что необходимо обновить, чтобы установить для него vcolo.andyshinn.as?

Вам необходимо отредактировать следующие файлы: /etc/sysconfig/network. Установите следующее:

HOSTNAME=vcolo.andyshinn.as
DOMAIN=andyshinn.as

установите короткое имя в / etc / sysconfig / network

HOSTNAME=vcolo

Отредактируйте / etc / hosts и установите следующую строку:

[root@vcolo ~]# cat /etc/hosts
127.0.0.1   vcolo.andyshinn.as vcolo
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

NetworkManager использует файлы, которые уже есть в вашей системе. Взгляните на этот сценарий, /etc/NetworkManager/dispatcher.d/11-dhclient, который является частью файлов конфигурации NetworkManager.

В частности, это две строки:

...
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
...

...    
[ -f /etc/sysconfig/network-scripts/ifcfg-$interface ] && \
    . /etc/sysconfig/network-scripts/ifcfg-$interface
...

Эти строки будут источником содержимого того, что находится в / etc / sysconfig / network и различных файлов интерфейса ifcfg- $ (ifcfg-eth0, ifcfg-wlan0 и т. Д.), Если эти файлы присутствуют.

Поэтому обычно вы хотите установить /etc/sysconfig/network напишите так:

NETWORKING=yes
HOSTNAME=myhost

И настройте файл конфигурации клиента DHCP, /etc/dhcp/dhclient.conf, чтобы он содержал следующие строки:

supersede domain-name "my.domain.com";
prepend domain-search "my.domain.com";

Ресурсы

У меня это сработало в Fedora 14. Вы также можете попробовать следующую команду:

system-config-network

Перейти к «Конфигурация DNS» и вы найдете ячейку для полного имени хоста и домена для ваших хостов.

Я обнаружил, что, хотя моя сетевая маска была правильно настроена в различных файлах ifcfg-eth0 в / etc, она была неправильно установлена ​​во время загрузки. Не нашел, где он был установлен, но с помощью system-config-network я обнаружил, что он установлен на неправильное значение. Исправил это с помощью этого инструмента, и проблема решена!

Надеюсь, это сработает и для вас.