![인터넷에 연결하기 위해 어떤 인터페이스를 사용하고 있는지 어떻게 알 수 있나요?](https://linux55.com/image/2472/%EC%9D%B8%ED%84%B0%EB%84%B7%EC%97%90%20%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EC%96%B4%EB%96%A4%20%EC%9D%B8%ED%84%B0%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EA%B3%A0%20%EC%9E%88%EB%8A%94%EC%A7%80%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%95%8C%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
나는 가지고 eth0
있고 wlan0
그에 따라 ifconfig
할 수 있습니다 ping google.com
.
일반 사용자의 경우 root
어떤 인터페이스를 어떻게 찾을 수 있습니까?긍정적인예를 들어, ping(또는 필수가 아닌 기타 ping)은 어떤 인터페이스를 사용합니까?
Ubuntu 11.04 또는 Fedora 14를 사용하고 있습니다.
답변1
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
사용할 인터페이스를 알려줍니다.
답변2
답변3
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 the remainder (use grep for that)
ip route get "$host_ip" | grep -Po '(?<=(dev ))(\S+)'
답변4
일반적으로 명시적으로 라우팅되는 DMZ, 개인 네트워크, VM 호스트 등과 달리 "나머지" 인터넷으로 라우팅하는 데 일반적으로 사용되는 기본 네트워크 인터페이스를 가져옵니다.
$ ip route get 8.8.8.8 | sed -n 's/.* dev \([^\ ]*\) .*/\1/p'
eth0