이것은 Linux에 관한 것이지만 일반적인 *nix 방법을 아는 사람이 있다면 좋을 것입니다.
어제 이더넷 케이블을 연결한 상태로 시스템을 부팅했습니다. "NetworkManager"가 설치되지 않았기 때문에 일단 시작한 후 ifconfig
이더넷 인터페이스의 이름을 찾아 DHCP 클라이언트를 수동으로 시작하려고 했지만 표시되지 않았습니다 lo
.
NIC가 나열 lspci
되고 적절한 커널 드라이버가 로드됩니다. 시스템은 일반적으로 Wi-Fi를 사용하며 인터페이스 이름은 입니다 wlan0
. 시도해보니 ifconfig wlan0 up
나타 wlan0
났습니다. 그러나 내가 기억할 수 있는 유일한 이더넷 인터페이스 이름은 eth[N]
및 em[N]
- 둘 다 작동하지 않습니다.
이 파일"예측 가능한 인터페이스 이름"을 참조하지만 그것이 무엇인지 간단한 용어로 설명하는 데는 적합하지 않습니다. 이것은 소스 코드의 일부를 참조합니다. 이는 이 경우 이름이 아마도 PCI 버스 및 슬롯 번호에서 추론되었음을 의미하므로 불필요한 복잡해 보입니다.
systemd
다른 검색을 통해 이것이 와 결합하여 결정될 수 있다고 믿게 되었지만 udev
거기에는 거의 100개의 파일이 있으며 /usr/lib/udev/rules.d
어디에 있는지 확인하는 데 한 시간이 걸렸습니다.만약에)에는 systemd 구성 파일이 있는데, 이것도 말도 안되는 것 같습니다.
이름이 어떻게 지정되었는지뿐만 아니라 사용 가능한지 확인할 수 있으면 좋을 것입니다.만약에예, 하드웨어 문제 등을 배제할 수 있습니다.Linux에서 사용 가능한 네트워크 인터페이스의 이름을 쉽게 찾을 수 있는 방법이 없나요?
답변1
모든 인터페이스를 나열하는 가장 간단한 방법은 다음과 같습니다.
ifconfig -a
편집하다
오래된 시스템을 사용하고 있다면 다음을 사용할 수 있습니다.
ip link show
답변2
커널은 이를 이름별로 /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 문서에 링크된 systemd 소스 코드에는 다음도 인용되어 있습니다.
Two character prefixes based on the type of interface:
* en -- ethernet
* sl -- serial line IP (slip)
* wl -- wlan
* ww -- wwan
위의 경우 ( ) 중 하나 p6s1
에는 접두사가 없습니다 .
답변3
나는 항상 cat /proc/net/dev
간단하고 기억하기 쉽게 만든다.
답변4
시스템에 IP 주소가 없을 때 ifconfig
Ubuntu에서 IP 주소를 얻는 데 도움이 되는 한 가지 방법은 다음과 같습니다.ip
hostname -i
설명에서 지적했듯이 이 메커니즘은 DNS 호스트 이름 확인에 의존하며 사용 가능한 모든 네트워크 인터페이스에 대해 신뢰할 수 있는 결과를 제공하지 않습니다.
그럼에도 불구하고 이 명령은 시스템 도구를 자주 사용할 수 없는 컨테이너(Docker, LXC) 시나리오 문제를 해결하는 데 도움이 될 수 있습니다. 적어도 어떤 경우에는 목표에 따라 도움이 될 수 있는 컨테이너 IP가 표시됩니다.