ifconfig 많이 이용하시져?
하지만 그(=ifconfig)의 외침을 전부 다 이해하고 계신가여?
혹시 대충 inet만 보고 이해한척 하고 계시진 않는지.. 전 그랬음 ㅋㅋ.
$ifconfig
를 파헤쳐보자 !!
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
inet6 fe80::42:fdff:fe61:39de prefixlen 64 scopeid 0x20<link>
ether ??:??:??:??:??:?? txqueuelen 0 (Ethernet)
RX packets 151964 bytes 10493908 (10.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 102561 bytes 38415767 (38.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp1s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether ??:??:??:??:??:?? txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp3s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether ??:??:??:??:??:?? txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 15580 bytes 3174040 (3.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15580 bytes 3174040 (3.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth264b929: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::184c:60ff:fe5b:19f8 prefixlen 64 scopeid 0x20<link>
ether ??:??:??:??:??:?? txqueuelen 0 (Ethernet)
RX packets 24 bytes 1104 (1.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 328 bytes 33238 (33.2 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethf923eb3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::60f9:f9ff:fe31:ddc0 prefixlen 64 scopeid 0x20<link>
ether ??:??:??:??:??:?? txqueuelen 0 (Ethernet)
RX packets 151100 bytes 12550576 (12.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 102281 bytes 38260464 (38.2 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.12 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::8373:4607:aa81:2ee4 prefixlen 64 scopeid 0x20<link>
ether ??:??:??:??:??:?? txqueuelen 1000 (Ethernet)
RX packets 2966243 bytes 3457731101 (3.4 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1736038 bytes 244740309 (244.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
docekr0
, enp1s0
, enp3s0
, lo
, veth264b929
, vethf923eb23
, wlp2s0
와 같은 항목들은 NIC, Bridge, Tap Interface 그리고 Tunneling Interface 같은 부분들의 이름이 표시됩니다.
잠깐 @!!!
여기서 제가 MAC주소에 대해 오해하고 있어서,,, MAC 주소는 하드웨어 주소인데... 왜 같은 호스트(하드웨어) 에 있는 네트워크 인터페이스마다 다른 주소를 갖는거야?
같은 바보같은 의문이 들었습니다.
MAC 주소를 하드웨어 주소 라고만 기억하고 있었는데 이로 인해 오해가 생기더라구요
(나는 바보 X﹏X)
→
MAC 주소에 다시 정의하자면 Media Access Control의 약자로 NIC(네트워크 카드)가 고유하게 가지는 38비트 주소를 말합니다. 즉 네트워크 장치의 하드웨어 주소로 네트워크 카드마다 하나씩 갖고있다고 생각하면 편할 것 같습니다.
저는 부끄럽지만 호스트를 구분하는 기계주소로 인식하고 있었습니다..
∴ 그러므로 네트워크 인터페이스마다 다른 eth 값 즉, 다른 MAC 주소를 갖고 있는게 당연합니다.
1. docker0
2. enp1s0
en
은 ethernet을 뜻하고, p1
은 PCI slot 1을 의미한다, s0
은 첫 번째 네트워크 포트를 나타낸다. 3. lo
4. veth-
veth
는 Virtual Ethernet의 약자로, Docker나 가상 머신에서 사용되는 가상 네트워크 인터페이스이다. veth로 시작하는 인터페이스가 두개나 생기는 이유는 Docker의 브릿지 네트워크랑 관련이 있습니다.. (5. wlp2s0
wl
은 wireless를 뜻하고, p2
는 PCI slot 2를 의미한다. s0
은 첫 번재 네트워크 포트를 나타낸다. 1. ether: MAC 주소
2. inet: IP 주소
3. netmask: 서브넷 마스크
4. broadcast: 브로드캐스트 주소
5. RX (Receive)
6. TX (Transmit)
7. RX Packets와 TX Packets
8. RX errors, TX errors
9. RX dropped, TX dropped
암튼 저의 내부 ip를 확인하고 싶다면
저는 무선wi-fi를 이용하고 있으니 wlp2s0
의 inet 값을 확인하면 되겠죠?
- @@ 그렇다면 외부 ip (= 공인 ip 주소)를 알고싶다면?
공인 ip주소는 일반적으로 라우터, ISP(인터넷 서비스 제공자)에 의해 할당된다. 그러므로 라우터 설정페이지나,What is my IP
를 검색하여 확인하여야 한다.
p.s : MAC 주소는 ?로 가렸습니다 ㅎㅎ;; 혹시 몰라서
요즘 ifconfig가 deprecated되어서 쉽게 설치되지 않는 OS들이 많은데요, ip addr 에 익숙해지시면 편합니다~
ip -c=always a
이렇게 쳐보시면 알록달록 색칠까지 해줍니다~