Примусовий 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- тепер це папка з такою ж назвою.

Згідно з файлом читання у цій самій папці, 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

Поєднання, виправлення та доповнення до попередніх відповідей:

Щоб виправити інтерфейс (et або 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.