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


24

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

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

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


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


после «перезагрузки сети» появляется только интерфейс 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

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 (основной интерфейс)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.