우리 모두 알고 있듯이 Windows에서는 네트워크 케이블을 연결하면 네트워크 기호가 다른 상태로 변경됩니다.
Linux에서 명령 프롬프트를 통해 케이블이 연결되어 있는지 확인하는 방법은 무엇입니까?
답변1
내가 본 주요 두 가지 방법은 using ethtool
또는 manual parsing 입니다 /sys
.
이더넷 도구
예를 들어, 인터페이스가 있는 경우 "링크 감지됨" 줄을 eth0
사용하여 쿼리한 ethtool
다음 구문 분석할 수 있습니다.
$ sudo ethtool eth0
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbag
Wake-on: g
Current message level: 0x00000001 (1)
Link detected: yes
구체적으로 다음 명령은 다음과 같습니다.
$ ethtool eth0 | grep "Link"
Link detected: yes
아래로 내려가면 '아니요'라고 표시됩니다.
/sys 사용
다시 관심이 있다고 가정하면 eth0
수동으로 구문 분석할 수 있습니다./sys/class/net/
그런 다음 eth0
귀하의 장치에 대해. 이 디렉토리에는 링크가 활성화되었는지 여부를 알려주는 2개의 파일이 있습니다 carrier
.operstate
전선이 연결되면 두 파일은 다음과 같습니다.
$ cat /sys/class/net/eth0/{carrier,operstate}
1
up
회선 연결이 끊어지면 두 파일이 다음과 같이 나타납니다.
$ cat /sys/class/net/eth0/{carrier,operstate}
0
down