Как мне установить статический IP-адрес в Ubuntu?

Я новичок в Linux, имею многолетний опыт работы с серверами / настольными компьютерами Windows, и у меня возникают проблемы с настройкой статического IP-адреса. Я использую метод, используемый для предыдущих версий Ubuntu, который, похоже, не работает с 16.04

Я использовал команду sudo nano /etc/network/interface и добавил следующее

iface enp0s25 inet staticaddress 10.10.8.2netmask 255.255.0.0gateway 10.10.1.1dns-nameservers 8.8.8.8 8.8.4.4

Я перезагрузил систему, и Ethernet в значительной степени отключен, ping вообще не работает. Я пытался изменить /etc/NetworkManager/NetworkManager.conf и внес следующие изменения

#dns=dnsmasq (comment out the dnsmasq)[ifupdown]managed=true (changed from false)

С помощью этого я могу заставить Ethernet работать эпизодически, однако в конечном итоге он выходит из строя.

Я попробовал эту конфигурацию на двух других машинах, а также на виртуальной машине, и все они дали одинаковые результаты. Я могу подтвердить, что эти настройки работают нормально, когда я устанавливаю Windows на любой из этих компьютеров.Кроме того, когда я разрешаю автоматическую настройку DHCP, все работает нормально, без проблем.

Я полагаю, что мне здесь чего-то не хватает, настройка статического IP-адреса не должна быть сложной задачей.

У меня была такая же проблема, и это было мое решение:

sudo nano /etc/network/interfaces

и вставьте (изменяя для вашей сети) это в # The primary network interface:

auto enp0s25iface enp0s25 inet staticaddress 192.168.0.16netmask 255.255.255.0gateway 192.168.0.1dns-nameservers 8.8.4.4 8.8.8.8

Вы можете получить правильное имя интерфейса с помощью команды терминала ifconfig -a на ubuntu 16.04 или ip address на 18.04+

Выключите свою виртуальную машину, а затем!!!Перейдите в настройки сети и несколько раз нажмите кнопку обновить MAC-адрес :)

enter image description here

и запустите свою виртуальную машину, и вы должны выйти в Интернет!

ОБНОВЛЕНИЕ 20.02.2019

Для ubuntu 18.04+ вам необходимо отредактировать этот файл

/etc/netplan/50-cloud-init.yamlnetwork:    ethernets:        enp0s3:            addresses: [192.168.0.55/24]            gateway4: 192.168.0.1            dhcp4: no            nameservers:              addresses: [1.1.1.1,8.8.8.8]            optional: true    version: 2

Установка статического IP-адреса, как указано выше в принятом ответе, здесь работает, но необходимо сбросить старую настройку IP addr, а затем перезапустить networking.service:

sudo ip addr flush enp0s25sudo systemctl restart networking.service

Затем убедитесь, что это правильно:

ip add
<код># интерфейсы(5) файл, используемый ifup(8) и ifdown(8)
# автоматическая загрузка
# iface lo inet loopback
auto enp2s0
iface enp2s0 inet статический
    адрес 172.16.9.124
    маска сети 255.255.240.0
    шлюз 172.16.0.9
dns-серверы имен 8.8.8.8

<код>sudo vim /etc/network/interfaces

 auto lo
iface lo inet loopback
auto eth0
    iface eth0 inet статический
    адрес 192.168.1.10
    шлюз 192.168.1.1
    маска сети 255.255.255.0
    dns-серверы имен 8.8.8.8


<код>sudo ifdown eth0 && sudo ifup eth0

У меня была такая же проблема, и решение "было" простым... по крайней мере, для меня.

auto ens160iface ens160 inet staticaddress 172.31.0.164/22netmask 255.255.252.0gateway 172.31.0.2network 172.31.0.0broadcast 172.31.3.255dns-nameservers 172.31.0.21 172.31.0.18#Add internal routeup route add -net 172.16.168.0/21 gw 172.31.0.20 dev ens160

И создайте пустой файл с именем сетевого интерфейса в:

~$ touch /etc/network/interfaces.d/ens160

Это работает...

У меня была такая же проблема, и это было мое решение: удалите все пустые строки в конце файла /etc/network/interface.

Если ваш сервер показывает этот старый IP-адрес, а также новый назначенный IP-адрес, просто перезапустите свой сервер. Он автоматически удалит старый IP-адрес и сохранит новый.
И если вы не хотите перезапускать свой сервер, используйте эту команду:


sudo ip addr flush <your-interface-here>

Выполните эти простые команды, чтобы узнать, настроен ли ваш сетевой интерфейс (ы) на отображение при загрузке / перезагрузке компьютера.

grep "auto" /etc/network/interfaces

Если в стандартный вывод не выводится ни одной строки, затем откройте /etc/network/interfaces с помощью текстового редактора (vi, nano, sed) и, надеюсь, вы увидите что-то похожее на изображение ниже ниже.

A default /etc/network/interfaces file

Очевидно, что если grep не вернул ни одной строки в окно терминала, формат вашего /etc /network /interfaces вообще не может быть очень похожим. :-) Тем не менее, следуйте формату авто линии.

auto lo(Loopback configuration follows)...auto enp0s3(primary interface configuration follows)...

====================

Теперь, на вашем компьютере.

auto yourInteraceNameHere(your interface configuration follows)...

Не знаете, какие имена интерфейсов доступны? Выполните эту команду.

ifconfig -a

Следующая команда вернет только имена сетевых интерфейсов.

ifconfig -a | grep encap | awk {'print $1'}

enter image description here

Раньше я устанавливал статические IP-адреса на своих компьютерах Ubuntu, а затем заметил, что могу просто назначить IP-адрес с помощью своего маршрутизатора. Это может быть самым простым решением. Просто войдите в свой маршрутизатор, найдите подключенные устройства и назначьте там IP-адрес.

Dns-серверы имен являются приемлемыми с точки зрения синтаксиса, так что это не должно быть проблемой. Когда он работал с DHCP, вы запускали “ifconfig”, чтобы проверить имя интерфейса, или вы предполагали, что это enp0s25? Также есть ли у вас "auto enp0s25` в верхней части вашего конфигурационного файла? Если вы этого не сделаете, возможно, интерфейс просто не отображается при загрузке.

единственное, что я заметил, и, возможно, здесь была просто опечатка, но я бы изменил Dns-nameservers на dns-nameservers, вероятно, ничего не сделает для решения этой проблемы, но может предотвратить возникновение других проблем

Пожалуйста, отредактируйте свой вопрос и опубликуйте точное содержимое вашего файла “/etc/network/interfaces”. Редактируя свое сообщение, выделите текст этого файла, затем нажмите на ссылку с кодом “{}” в верхней части редактора сообщений, чтобы он правильно отформатировал текст, облегчив нам чтение содержимого. Также выполните эту команду ip address и выполните те же действия с {} (формат кода), который выводится.