사용 가능한 네트워크 인터페이스를 어떻게 찾을 수 있습니까?


88

이것은 리눅스와 관련이 있지만, 누구나 일반적인 * nix 방법을 알고 있다면 좋을 것입니다.

어제 이더넷 케이블을 연결 한 상태에서 시스템을 부팅했습니다. "NetworkManager"가 설치되어 있지 않기 때문에 일단 시작하면 이더넷 인터페이스의 이름을 찾아 ifconfigDHCP 클라이언트를 수동으로 시작했지만 그 외에는 아무것도 표시하지 않았습니다. lo.

를 통해 NIC가 나열 lspci되었고 적절한 커널 드라이버가로드되었습니다. 시스템은 일반적으로 wifi를 사용하며 인터페이스 이름은을 기억할 수 wlan0있습니다. 제가 시도했을 때 ifconfig wlan0 up, wlan0나타났다. 하지만 기억할 수있는 유일한 이더넷 인터페이스 이름은 있었다 eth[N]em[N]- 어느 쪽도 아니했다.

이 문서 는 "예측 가능한 인터페이스 이름"을 언급하지만 간단한 용어로 설명 할 수있는 것은 아닙니다. 이 경우 이름이 PCI 버스 및 슬롯 번호에서 추론 될 수 있음을 의미하는 소스 코드를 의미합니다. 이는 불필요하게 복잡한 번거 로움처럼 보입니다.

다른 검색을 통해 이것이 systemd와 함께 결정될 수 있다고 믿었 지 udev만 거의 100 개의 파일이 /usr/lib/udev/rules.d있으며 한 시간 동안 시스템 구성 파일이 어디에 있는지 (그리고 경우 ) 결정하는 것도 어리석은 것처럼 보입니다.

또한 확실히 알고 좋을 것이다 그들은 이름이 지정 될 수뿐만 아니라 어떻게 사용할 수 있는지 경우 등, 그들이, 그래서 하드웨어 문제를 배제 할 수 사용 가능한 네트워크 인터페이스의 이름을 찾을 수있는 간단한 방법이없는 리눅스에서?


이 질문에서 당신은 당신이 사용했다고 ip link말하지만 ip link show정확히 똑같은 일 을 제안하는 대답을 받아들 입니다. 왜?
Pavel Šimerda

@ PavelŠimerda 당신이 맞아요. 실제로 사용했을 수도 있습니다 ip route. 문제가 해결 된 다음 날이 질문을 썼습니다 (내 답변 참조). 나는 사용하는 습관 ip이 아니며 지나치게 스파르타 맨 페이지를 이해하지 못합니다. 따라서 /syskmod 가로 드 된 것을 알고 있었기 때문에 한 번 시도한 후에 포기하고 시작했을 것입니다 . 나에게. 질문에서 완전히 제거하겠습니다.
goldilocks

iproute2 의 매뉴얼 페이지는 요즘 꽤 좋습니다. 이전 버전의 패키지를 사용하고 있다고 생각합니다.
Pavel Šimerda

답변:


93

모든 인터페이스를 나열하는 가장 간단한 방법은

ifconfig -a

편집하다

더 이상 사용되지 않는 시스템을 사용하는 경우

ip link show

3
맨 페이지를 보셨다면! ip아마도 ifconfig가 그 (IMO)보다 더 모호하고 사용자 친화적 인 명령을 선호하여 "폐기"되고 있기 때문에 병렬이 있는지 알고 있어야합니다 .
goldilocks

2
내 첫 번째 man ifconfig: "참고이 프로그램은 더 이상 사용되지 않습니다! 대체 확인 ip ..."이는 Linux에만 해당 될 수 있습니다. 바라건대 그들은 무언가와의 역 호환성을 위해 그것을 유지해야합니다.
금발 미녀

4
ifconfig는 더 이상 사용되지 않으므로 TMK를 사용하여 예제를 표시하려고합니다 ip. ifconfig wikipedia 기사 ( en.wikipedia.org/wiki/Ifconfig)를 참조하십시오 .
slm

3
@slm 문제는 리눅스에 관한 것이지만, BSD 사용자가 어쨌든 "linux"페이지를 보는 습관이있을 수 있으므로 두 가지모두 사용하는 예 는 좋을 것 같습니다. 실제로 제목에서 리눅스를 꺼내고 비트 (원래 이것은 스스로 답변을 받았으며 휴대용 방법이 있다고 생각하지 않았습니다).
goldilocks

5
ifconfig가 더 이상 사용되지 않습니까? 어서 이 명령은 약 30 년 동안 사용되었습니다.
Michael Martinez

72

커널은 /sys(예를 들어) PCI 장치의 트리에서 개별적 으로 이름으로 그것들을 나열합니다 -비록 그들이 어디서 시작해야하는지 모른다면 그것들을 찾는 것은 간단하지는 않습니다 /sys/class/net. 예 :

> ls /sys/class/net
em1 lo wlp6so

또 다른 예:

> ls /sys/class/net
lo p6s1 wlan0

어느 것이 어느 것인지 확실하지 않으면 다음 중 하나를 사용하여 둘 수 있습니다.

ifconfig [name] up 

또는:

ip link set [name] up

그런 다음 (논리없이) 나열된 (공평한) 단서를 살펴보십시오 ifconfig. Freedesktop.org 문서에서 링크 된 시스템 소스 코드는 다음을 참조합니다.

Two character prefixes based on the type of interface:
 *   en -- ethernet
 *   sl -- serial line IP (slip)
 *   wl -- wlan
 *   ww -- wwan

위의 경우 중 하나 ( p6s1)에는 접두사가 없습니다.


이더넷에 대한 접두사는 eth입니다. 나는 en무선 랜에 대한 것이라고 생각 합니다.
Kaushal Modi

4
@kaushalmodi eth는 리눅스 커널이다. systemd는 udev Freedesktop.org의 예측 가능한 인터페이스 이름을 통해 구현 합니다. 커널 이름은 같은 의미로 예측할 수 없으므로 모든 혼란의 원인입니다. 위의 인용문 은 여기에서 붙여 넣은 n '을 명시 적으로 잘라 냅니다. en이더넷에 사용하는 시스템화 된 시스템이 없기 때문에 그 이상이 있습니다 . 가장 가까운 것은 em다른 것들은 완전히 다릅니다. 자세한 설명은 질문에서 Freedesk.org 링크를 직접 읽을 수 있습니다.
goldilocks

4
[나중에] 페도라 나 지난해 언젠가 그 문제를 해결 했습니까? 내 PCI ​​이더넷은 이제 eno1입니다.
금발 미녀

10

나는 항상 cat /proc/net/dev간단하고 기억하기 쉽습니다.


4
그러나 모든 인터페이스가 아니라 활성 인터페이스 만 제공합니다.
Grant Bowman

4

ifconfig= Solaris
ipconfig= Windows
ip= Linux

나는 알고 있지만, 추가 및 수정에 확실히 열려 있습니다.


2
응? ifconfig도 Linux입니다.
fpmurphy

4
@ fpmurphy1 man ifconfig리눅스 시스템 에서 첫 번째 단락 (시놉시스 후)을 읽는다 .
goldilocks
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.