7

Я недавно установил Arch Linux, и все работает нормально, кроме Интернета. После загрузки мне всегда нужно вводить следующие команды, чтобы это работало:

sudo ip link set enp3s0 up
sudo dhcpcd enp3s0

После этого интернет работает нормально.

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

В случае, если это полезно, вот некоторая информация: (собирается после выполнения указанных команд)

03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101/2/6E PCI Express Fast/Gigabit Ethernet controller (rev 05)
    Subsystem: Dell Device 0578
    Flags: bus master, fast devsel, latency 0, IRQ 29
    I/O ports at 2000 [size=256]
    Memory at f1404000 (64-bit, prefetchable) [size=4K]
    Memory at f1400000 (64-bit, prefetchable) [size=16K]
    Capabilities: [40] Power Management version 3
    Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [70] Express Endpoint, MSI 01
    Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
    Capabilities: [d0] Vital Product Data
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Virtual Channel
    Capabilities: [160] Device Serial Number 0e-00-00-00-36-4c-e0-00
    Kernel driver in use: r8169
    Kernel modules: r8169

и соответствующая часть IP-ссылки

2: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 5c:f9:dd:62:dd:f0 brd ff:ff:ff:ff:ff:ff

2 ответа2

5

Пришел сюда спустя годы с возможным ответом, потому что у меня тоже была эта проблема. Может быть, поможет будущим странникам в их поездках на эту страницу.

Основной факт - Arch использует systemd в наши дни для управления системными сервисами. Мы будем вводить команды, чтобы сообщить systemd о запуске службы dhcpcd при загрузке.

Предполагая, что вы планируете использовать dhcpcd (а не Network Manager или другие параметры), цель состоит в том, чтобы при загрузке служба dhcpcd запускалась. Служба dhcpcd автоматически вызывает любые необходимые интерфейсы, по крайней мере, типа Ethernet. Беспроводная связь явно требует дополнительной настройки.

Команды для включения, запуска сейчас и проверки состояния dhcpcd:

$ systemctl enable dhcpcd.service
$ systemctl start  dhcpcd.service
$ systemctl status dhcpcd.service

Примечание: включение службы также приведет к ее запуску при загрузке.

Документация Arch обширна и превосходна, но для достижения простых, базовых вещей, которые должны делать почти все нормальные люди, требуется тонна знаний и чтение больших кусков ряда очень длинных страниц документации. После всего этого прочтения, если вам повезет, вы, наконец, появитесь, ошеломленные, с одной или двумя строками, которые необходимы для большинства распространенных сценариев.

1

Пришёл сюда благодаря поиску, как и Эдуард, но я думаю, что использование systemd-networkd лучше (более стандартное, более гибкое, более общее), чем прямой вызов службы dhcpcd .

systemctl enable systemd-networkd.service
systemctl enable systemd-resolved.service
echo '
[Match]

[Network]
DHCP=yes
` >> /etc/systemd/network/20-all.network

Это вызовет все интерфейсы, назначит им каждое имя хоста, заданное сетью, и запустит DHCP для каждого.

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

systemctl start systemd-networkd.service
systemctl start systemd-resolved.service

Для получения дополнительной информации смотрите страницу ArchWiki systemd-networkd

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .