ifconfig에 따라 eth0과 wlan0이 있고 할 수 있습니다 ping google.com
. 핑 (또는 핑이 필수가 아닌) 인터페이스를 사용하는 것처럼 어떤 인터페이스가 활성화되어 있는지 (루트가 아닌 일반 사용자의 경우) 어떻게 알 수 있습니까?
참고 : Ubuntu 11.04 또는 Fedora 14 사용
ifconfig에 따라 eth0과 wlan0이 있고 할 수 있습니다 ping google.com
. 핑 (또는 핑이 필수가 아닌) 인터페이스를 사용하는 것처럼 어떤 인터페이스가 활성화되어 있는지 (루트가 아닌 일반 사용자의 경우) 어떻게 알 수 있습니까?
참고 : Ubuntu 11.04 또는 Fedora 14 사용
답변:
route
기본 경로를 찾는 데 사용할 수 있습니다 .
$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1000 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
Iface
대상이있는 줄 의 열에 default
사용되는 인터페이스가 표시됩니다.
route
경우 사용할 수 없습니다. @Torgeir는 라이트 답변을 가지고 있습니다.
192.168.1.0...
사용될 경로입니다. 물론이 경우 동일한 Iface를 참조하지만 시스템에 하나의 인터페이스가 있기 때문입니다.
route | grep '^default' | grep -o '[^ ]*$'
그리고 이것은 실험적 으로 macOS의 경우 :
route -n get default | grep 'interface:' | grep -o '[^ ]*$'
route |awk '/^default/{print $NF}'
GNU / Linux 시스템에서 :
#!/bin/sh
# host we want to "reach"
host=google.com
# get the ip of that host (works with dns and /etc/hosts. In case we get
# multiple IP addresses, we just want one of them
host_ip=$(getent ahosts "$host" | awk '{print $1; exit}')
# only list the interface used to reach a specific host/IP. We only want the part
# between dev and src (use grep for that)
ip route get "$host_ip" | grep -Po '(?<=(dev )).*(?= src| proto)'
host
이 스크립트에 대한 입력 인수 인 경우 답변이 더 정확합니다 . 경로에 따라 (따라서 인터페이스) IP에 따라 다를 수 있습니다.
러닝 ifconfig
은 필요한 정보를 제공합니다.
활성 인터페이스에는 다음 inet addr
과 같이 전송 된 데이터의 기록이 표시됩니다.
RX bytes:1930741 (1.8 Mb) TX bytes:204768 (199.9 Kb)
ip addr
명령 을 사용할 수도 있으며 비활성 인터페이스는 다음과 같이 지정됩니다 NO-CARRIER
..
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:
route
명령을 사용하는 것이지만 라우팅으로 인해 반드시 그런 것은 아닙니다. 기본 경로는 종종 인터넷에 연결되는 경로 일 필요는 없습니다.
일반적으로 명시 적으로 라우팅되는 DMZ, 개인 네트워크, VM 호스트 등과는 반대로 "남은"인터넷으로 라우팅하는 데 사용되는 기본 네트워크 인터페이스를 가져옵니다.
$ ip -4 route ls | grep default | grep -Po '(?<=dev )(\S+)'
eth0
ip -4 route ls |awk '/^default/{print $5}'
사용 명령 :
[root@linux1 network-scripts]# route|grep default | awk '{print $8}'
enp0s3
컴퓨터에 여러 인터페이스가있는 경우 (내 생각에) 인터넷에 연결하는 데 사용할 인터페이스가 하나도 없습니다.
연결하려는 대상에 따라 시스템은 ip 테이블 ( route
명령 을 수행 할 때 표시되는 것 )을 참조하여 다음 희망 / 라우터를 찾고,이를 찾을 때 연관된 인터페이스를 사용합니다.
즉, @torgeir의 답변 을 정확히 참조하십시오 .