Это касается linux, но если кто-нибудь знает общий метод * nix, это было бы хорошо.
Вчера я загрузил систему с подключенным кабелем Ethernet. «NetworkManager» не установлен, поэтому после его запуска я отправился искать имя интерфейса Ethernet, ifconfig
чтобы вручную запустить клиент DHCP, но он не показал ничего, кроме lo
,
Сетевая карта была указана через lspci
, и соответствующий драйвер ядра был загружен. Система обычно использует Wi-Fi, и я мог вспомнить имя интерфейса для этого wlan0
. Когда я попробовал ifconfig wlan0 up
, wlan0
появился. Но только имена локальных сетей интерфейса я мог помнить , были eth[N]
и em[N]
- ни один из них работал.
Этот документ ссылается на «предсказуемые имена интерфейсов», но не помогает объяснить, какими они могут быть в простых терминах. Это относится к фрагменту исходного кода, который подразумевает, что имя в этом случае может быть выведено из шины PCI и номеров слотов, что выглядит как излишне сложная проблема.
Другие поиски привели меня к мысли, что это может быть определено systemd
в связи с udev
, но есть почти 100 файлов /usr/lib/udev/rules.d
и потратить час, пытаясь определить, где (и если ) есть файл конфигурации systemd для этого, также кажется смешным.
Также было бы неплохо знать наверняка, что они доступны, а не только как они могут быть названы, если они есть, так что я могу исключить проблемы с оборудованием и т. Д. Разве нет простого способа найти имена доступных сетевых интерфейсов? на Linux?
ip link
но затем вы принимаете ответ, который предполагает,ip link show
что делает то же самое. Почему?ip route
- я написал этот вопрос на следующий день после того, как проблема была решена (см. Мой собственный ответ); Я не имею привычки использоватьip
и не ценю чрезмерно спартанские справочные страницы, поэтому я, вероятно, отказался от них после одной попытки и начал проходить/sys
, так как я знал, что kmod был загружен и т. Д., И это было более простым мне. Я полностью уберу это из вопроса.Ответы:
Самый простой из известных мне методов перечисления всех ваших интерфейсов:
РЕДАКТИРОВАТЬ
Если вы находитесь в системе, где это было сделано устаревшим, вы можете использовать
источник
ip
есть ли параллель, поскольку предположительно ifconfig «устарел» в пользу этой (IMO) более тупой и менее удобной команды.man ifconfig
: «ПРИМЕЧАНИЕ. Эта программа устарела! Для замены проверьте ip ...» Это может быть характерно для Linux. Надеюсь, они должны сохранить его для обратной совместимости с чем-либо.ip
. Смотрите статью ifconfig в Википедии: en.wikipedia.org/wiki/Ifconfig .Ядро перечисляет их по именам
/sys
, как по отдельности (например, в дереве устройств PCI) - хотя найти их там, если вы не знаете, с чего начать, непросто - и вместе через символические ссылки в/sys/class/net
. Например:Другой пример:
Если вы не уверены, что именно, вы можете просто поставить их всех:
Или же:
А затем посмотрите на (довольно ясные) подсказки, перечисленные
ifconfig
(без аргументов). Исходный код systemd, связанный с документом Freedesktop.org, также ссылается на:Хотя в одном из случаев выше (
p6s1
) префикса нет.источник
eth
. Я считаю,en
что для беспроводной локальной сети.eth
- это ядро Linux; systemd реализует через udev предсказуемые имена интерфейсов Freedesktop.org - ядра не являются предсказуемыми в том же смысле, что является причиной всей путаницы. Цитата выше явно вырезана и вставлена отсюда . Это еще не все, поскольку у меня нет системных компьютеров, использующихen
Ethernet; ближе всегоem
, другие совершенно разные. Вы можете прочитать ссылку Freedesk.org в вопросе самостоятельно для получения дополнительной информации.eno1
.Я всегда делаю
cat /proc/net/dev
это просто и легко запомнитьисточник
ifconfig
= Solarisipconfig
= Windowsip
= LinuxЭто я знаю, но, безусловно, открыт для дополнений и исправлений.
источник
man ifconfig
о системе Linux.