Как настроить рабочий стол для статического IP-адреса?

24

По умолчанию Ubuntu использует DHCP и Gnome NetworkManger для настройки интерфейсов. Это не оптимально во многих случаях.

Как настроить настольный компьютер для статического IP-адреса, который применяется ко всем пользователям?

Дополнительные сведения : для 99,9% пользователей статическая запись DHCP, вероятно, является самым простым решением, однако я обнаружил конфликт с mythtv-backgroundпроцессом и любые изменения в интерфейсе eth0. Если интерфейс запускается / выключается после запуска mythtv, процесс зависает (что также нарушает приостановку работы системы). Таким образом, мои вопросы действительно нуждаются в статическом IP-адресе, где интерфейс связан с известным IP-адресом и постоянно работает.

cmcginty
источник
2
В качестве примечания вы можете использовать резервирование DHCP на вашем маршрутизаторе, который зарезервирует IP-адрес для вашего компьютера, идентифицируя его по MAC-адресу сетевой карты, и это будет вести себя, как если бы был установлен статический IP-адрес.
LFC_fan
1
Спасибо, хороший совет для тех, кто просто ищет постоянный IP-адрес
cmcginty

Ответы:

20

Щелкните правой кнопкой мыши nm, выберите « Редактировать соединения» ... найдите свой интерфейс, нажмите « Редактировать» , нажмите « Настройки IPv4» , выберите « Вручную» и настройте свой интерфейс.

Альтернативой может быть редактирование / etc / network / interfaces . пример конфигурации будет:

auto eth0
iface eth0 inet static
   address 192.168.1.1
    netmask 255.255.255.0
    gateway 192.168.1.1

тогда беги

/etc/init.d/networking restart

Имейте в виду, что это деактивирует nm для этого интерфейса, и вам придется удалить (или раскомментировать) записи, чтобы снова активировать nm.

Изменить (см. Сообщение Кейси): Вы также должны установить DNS после редактирования / etc / network / interfaces:

Установите один или несколько желаемых серверов имен в /etc/resolv.conf:

nameserver 192.168.1.1

sBlatt
источник
после «перезагрузки сети» появляется только интерфейс lo
cmcginty
2
Имя интерфейса ( eth0в примере sBlatt) может отличаться на вашем ПК: eth0это обычное имя для первого проводного интерфейса Ethernet; не существует стандарта для именования беспроводных интерфейсов. Команда ip link showотобразит список сетевых интерфейсов вместе с их соответствующими параметрами.
Риккардо Мурри,
Кроме того, после щелчка правой кнопкой мыши на сетевом менеджере и выбора «Редактировать соединения», выберите, будет ли он проводным или беспроводным, затем нажмите «Добавить». После добавления статического IP-адреса при необходимости закройте все диалоговые окна, затем щелкните левой кнопкой мыши значок диспетчера сети. Теперь у вас есть опция «Auto Eth0», то есть DHCP, и соединение, которое вы добавили вручную. Вы можете делать это несколько раз, создавая список различных статических IP-адресов для каждого местоположения или ситуации, в которой вы можете оказаться.
Scaine
@Riccardo, да, мой интерфейс - eth0. Как я уже сказал, только внесение изменений в интерфейсы не является для меня рабочим решением
cmcginty
@ Scain, применяются ли изменения в диспетчере сети ко всем пользователям? Моя проблема заключалась в том, что переключение пользователей приводило к отключению интерфейса и его резервному копированию. Это не совсем статично.
cmcginty
5

Обновление /etc/networking/interfacesдля установки статического адреса:

auto eth0
iface eth0 inet static
    address 192.168.0.10
    netmask 255.255.255.0
    gateway 192.168.0.1

Установите один или несколько желаемых серверов имен в /etc/resolv.conf:

nameserver 192.168.0.1

Вы должны предотвратить попытки gnome-network-manager взломать eth0соединение:

sudo apt-get remove network-manager network-manager-gnome

Назначьте статический IP-адрес, перезапустив сетевую подсистему:

sudo invoke-rc.d networking restart
cmcginty
источник
5
Не удаляйте сетевой менеджер! Вы рискуете оказаться без подключения к Интернету вообще, если вы допустили некоторые ошибки при настройке статического IP (и вы не можете их исправить).
Риккардо Мурри
1
Вы можете указать NetworkManager не запускать интерфейс автоматически (щелкните правой кнопкой мыши -> Изменить подключения ... -> выберите один -> Изменить ... -> установите флажок Подключаться автоматически ); таким образом, вы все равно можете установить сетевой менеджер и вручную активировать интерфейсы через ifup/ifdown
Riccardo Murri
2
Кроме того, мой комментарий был там, чтобы предупредить пользователей о той же проблеме, что удаление сетевого менеджера - рискованный путь. Вы, очевидно, можете управлять сетевым подключением и устранять проблемы; другие читатели этого вопроса могут не ...
Риккардо Мурри
Не должно /etc/networking/interfacesбыть /etc/network/interfaces?
CJBS
1

Если у вас есть небольшой маршрутизатор, вошедший в него (что-то вроде http://192.168.1.1 из вашего браузера), запишите текущие адреса DNS-серверов. Зарезервируйте еще один IP-адрес от DHCP (что-то вроде 192.168.1.200-192.168.1.210) или отключите DHCP все вместе.

Из меню Ubuntu: Система -> Настройки -> Сетевые подключения -> Авто eth0 -> Редактировать -> Настройки IPV4 -> Изменить на Ручной -> Добавить IP, (что-то вроде 192.168.1.200, что вы зарезервировали выше), маска сети 255.255.255.0 ,, и внутренний адрес маршрутизатора для маршрута по умолчанию (что-то вроде 192.168.1.1, что вы использовали для входа в него) -> Введите адреса DNS-серверов, которые вы записали в нижней части окна.


источник
Я немного обновил свой вопрос, чтобы объяснить, почему это решение не будет работать для меня. Мне нужен интерфейс, чтобы не спать постоянно.
cmcginty
Он всегда будет появляться по этому адресу при загрузке (в этом примере 192.168.0.200) и постоянно оставаться на связи. Ваш маршрутизатор больше не устанавливает его через DHCP. Это жестко запрограммировано в компьютер.
0

1) проверьте, какой интерфейс должен быть настроен, предположим, что интерфейс, который вы хотите изменить, eth0в этом случае:

$ ip addr

2) открыть и редактировать /etc/network/interface:

$ sudo gedit /etc/network/interface

3) добавьте в файл следующие строки /etc/network/interface:

auto eth0
iface eth0 inet static
address 192.168.1.22
netmask 255.255.255.0
gateway 192.168.1.1

3) перезагрузите интерфейс с помощью команды ifdownи ifup:

$ sudo ifdown --force eth0
$ sudo ifup --force eth0

PS: использовать $ sudo systemctl restart networkingили $ sudo ifup eth0 может не работать, когда используются другие сетевые инструменты, пожалуйста, проверьте также Can't ifdown eth0 (основной интерфейс)

realhu
источник