Принудительно использовать IPv4-адрес


15

Я обновил свой Raspberry Pi до Джесси, которая использует systemd. Одним из побочных эффектов является то, что он подключается только по IPv6 и не имеет адреса IPv4. Как я могу заставить его получить IPv4-адрес от DHCP-сервера?

Одним из специальных решений является команда

sudo dhclient -4 -v eth0

но это длится только для текущей сессии.


Ни один из приведенных ниже ответов не работал для меня, вместо этого мне нужно было sudo apt-get install isc-dhcp-clientпосле использования, sudo dhclient -4 -v eth0чтобы выйти в Интернет.
mrswadge

Некоторый дополнительный контекст к моему предыдущему комментарию. В моей ситуации симптомы при запуске sudo ifup -v eth0вызова dhclient не сработали и вместо этого отображались сведения об использовании.
Mrswadge

Ответы:


9

У Raspbian Jessie больше нет файла с именем /etc/sysctl.d- теперь это папка с тем же именем.

Согласно файлу read-me в той же папке, README.sysctlон в основном говорит, что любой .confфайл будет считан во время загрузки и обработан. Любое законное имя файла будет работать, но они предложили local.conf, вот что я использовал.

Я создал /etc/sysctl.d/local.confи добавил единственную строку из других ответов:

net.ipv6.conf.all.disable_ipv6=1

Это, кажется, работает просто отлично.


Все, что .dв нем /etcникогда не было, кроме каталога, с которого можно начать. Я не знаю, если ответ Джо Платано включает опечатку или это действительно сработает, почему-то я сомневаюсь в этом (хотя, кажется, есть другой ответ, подтверждающий, что это будет).
Златовласка

2

Вы можете вставить строку в sysctl, чтобы отключить ipv6.

echo net.ipv6.conf.all.disable_ipv6=1 > /etc/sysctl.d

это будет работать после следующей перезагрузки.


Это /etc/sysctl.conf в качестве целевого файла. Имейте в виду, что> переопределит весь файл!
Дэвид

2

В Raspbian Jessie / Jessie Lite просто отредактируйте /etc/sysctl.confфайл и добавьте переключатель для отключения ipv6 следующим образом:

sudo nano /etc/sysctl.conf

Введите текст:

net.ipv6.conf.all.disable_ipv6=1

Сохраните файл с Ctrl-O, Ctrl-Xи перезагрузите RPI.


2

sudo nano /etc/sysctl.conf

добавьте следующие строки, чтобы отключить ipv6:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

запустить, sudo sysctl -pчтобы вступить в силу или просто перезагрузиться.


1

Самый простой способ получить адрес IPv4 для интерфейса - это изменить / etc / network / interfaces: установить для руководства значение dhcp ... которое также дает вам адрес IPv4 для eth0 ... возможно, только взлом, но убежище ' Ничего лучшего пока не нашел ...

    auto eth0
    allow-hotplug eth0
    # iface eth0 inet manual
    iface eth0 inet dhcp

Raspbian Jessie не использует dhcp(если пользователь действительно не поиграл с ним), и это помешало бы работе поддержки GUI WiFi.
Милливэйс

1

Объединение, исправление и добавление к предыдущим ответам:

Чтобы исправить интерфейс (eth или wlan), который показывает только адрес inet6 (IPV6) и адрес inet (IPV4), вы можете добавить файл конфигурации, чтобы отключить назначение inet6 (IPV6), чтобы все интерфейсы получали inet (IPV4) адрес. Если этот файл конфигурации затем снова удаляется, интерфейсы получат ОБА inet (IPV4) и inet6 (IPV6), то есть возврат к обычному состоянию по умолчанию.

Чтобы добавить файл:

sudo nano /etc/sysctl.d/local.conf

и добавьте одну строку:

net.ipv6.conf.all.disable_ipv6=1

Сохранить с помощью Ctrl-O, Y, [Return]. Перезагрузитесь и войдите снова.

sudo reboot

Проверьте адреса с помощью

ifconfig

Удалите файл конфигурации и перезагрузите компьютер:

cd /etc/sysctl.d
sudo rm local.conf
sudo reboot

Проверьте еще раз с ifconfig:

ifconfig

См. Адреса inet (IPV4) и inet6 (IPV6) для всех интерфейсов:

eth0      Link encap:Ethernet  HWaddr 00:e0:4c:53:44:58
          inet addr:192.168.1.228  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::26a5:b629:f948:92c3/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:62:b4:7a
          inet addr:192.168.1.229  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::254c:3f61:fdc:bc49/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

И я снова могу использовать SSH для Pi Zero, используя eth0 или wlan0, оба с использованием адреса IPV4 или IPV6.


1

Я обновил свой Raspberry Pi до Stretch, и у меня не было никакого успеха с любым вариантом net.ipv6.conf.all.disable_ipv6=1ответов.

Запуск вручную sudo dhclient -4 -v eth0для восстановления работоспособности подключения к сети / Интернету, однако, как указано в первоначальном постере, он не переживает перезагрузку.

Я заметил, что sudo ifup -v eth0позвонил dhclient, но он не работал и вместо правильного функционирования показывал информацию об использовании dhclientкоманды.

Обходное решение, кажется, состоит в том, чтобы отойти dhclientи вместо этого установить isc-dhcp-client. После перезагрузки мое подключение было автоматически доступно после установки этого пакета.

sudo apt-get install isc-dhcp-client
sudo reboot

0

У меня та же проблема, и я попробовал решение ниже, это прекрасно работает после перезагрузки моего Pi.

sudo nano  /etc/sysctl.d

тип

net.ipv6.conf.all.disable_ipv6=1

сохранить с ^Oвsysctl.d

sudo reboot

Теперь я вижу свой IP4-адрес на загрузочном экране.

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