Я прочитал много сообщений о том, что для изменения IP-адресации ПК со статической на DHCP-адресацию нужно изменить файл /etc/network/interfaces, а затем перезапустить сеть с помощью:
/etc/init.d/networking restart
Однако когда я это делаю, перезапуск вроде бы проходит нормально, но (например, при использовании статического адреса) я вижу, что IP-адрес не изменился (при использовании ifconfig eth0
).
Однако когда я делаю это вручную:
sudo ifconfig eth0 192.168.3.20 netmask 255.255.255.0 up
Затем все работает нормально, но только если я удалю строку «auto eth0» из сетевого файла, в противном случае будет использоваться DHCP.
Похоже, сетевой файл используется, но я не могу заставить его работать со статическими IP-адресами :(
Вот содержимое моего сетевого файла:
#auto eth0 COMMENTED OUT iface eth0 inet static address 192.168.3.21 (USING .21 HERE TO DISTINGUISH BETWEEN MANUAL AND NETWORKING) netmask 255.255.255.0 network 192.168.3.0 broadcast 192.168.3.255 gateway 192.168.3.1
Я что-то делаю не так?
решение1
Ваша ошибка в том, что вы удалили строку
auto eth0
которые вместо этого должны оставаться на месте. Вы также можете добавить DNS, чтобы ваша сеть работала: добавьте в строфу eth0 строку
dns-nameservers 8.8.8.8 8.8.4.4
Обратите внимание на множественное число, nameserverс, и отсутствие знаков препинания между двумя именами серверов. Если вам не нравится Google, вы можете выбрать любой другой.
Что касается разницы между service networking restart
и ifdown eth0 && ifup eth0
, то ее нет: файл /etc/init.d/networking
, который выполняется при перезапуске сетевой службы, содержит строки:
# Provides: networking ifupdown
...........
ifup $ifaces "$@"
и так далее: другими словами, service networking restart
использует ifup/ifdown
. Оба варианта использования допустимы.