일반적으로 특정 컴퓨터의 외부 IP 주소를 확인하려면 curl
외부 웹사이트를 사용하여 내 IP 주소가 무엇인지 알려주는 응답을 보내면 됩니다. 그런데 ifconfig
내 외부 IP 주소도 나열되어 있는 것을 발견했습니다.
컴퓨터의 IP 주소를 확인하기 위해 요청을 보낼 수 있는 "표준" 소스가 네트워크에 있습니까 ifconfig
, 아니면 컴퓨터의 IP 주소를 찾는 다른 방법이 있습니까?
답변1
ifconfig
네트워크 인터페이스의 현재 구성을 설정/가져오기 위한 도구일 뿐입니다. 실행하면 이 정보가 반환됩니다. 이를 사용하여 모든 장치 또는 개별 인터페이스를 쿼리할 수 있습니다.
예
별도의 장치.
$ ifconfig lo
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:6119 errors:0 dropped:0 overruns:0 frame:0
TX packets:6119 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:8725156 (8.3 MiB) TX bytes:8725156 (8.3 MiB)
모든 장비.
$ ifconfig -a
eth0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Interrupt:20 Memory:f2600000-f2620000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:45792 errors:0 dropped:0 overruns:0 frame:0
TX packets:45792 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7548353 (7.1 MiB) TX bytes:7548353 (7.1 MiB)
wlan0 Link encap:Ethernet HWaddr XX:XX:XX:XX:XX:XX
inet addr:192.168.1.20 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1254848 errors:0 dropped:0 overruns:0 frame:0
TX packets:1408361 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:699671476 (667.2 MiB) TX bytes:347243164 (331.1 MiB)
/프로세스/네트워크
각 네트워크 인터페이스에 대해 조작할 수 있는 정보는 ifconfig
Linux 커널의 파일 시스템에 표시됩니다 /proc/net
. 매뉴얼 페이지를 참조하면 ifconfig
다음 섹션을 볼 수 있습니다.
FILES
/proc/net/socket
/proc/net/dev
/proc/net/if_inet6
이 파일에는 일부 네트워크 정보가 포함되어 있습니다. 아래에 /proc/net
다른 파일이 있습니다 .
ifconfig, ip의 대안
ip
네트워크 정보를 조작하는 데 사용할 수도 있는 대체 도구가 있습니다 .
$ ip addr show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
인터넷 정보
IP 주소와 같은 정보는 정적으로 또는 동적으로 설정할 수 있습니다. 정적으로 설정할 때 일반적으로 이 도구를 사용하여 , 또는 ifconfig
같은 특정 네트워크 장치에 대한 IP 주소를 설정합니다 .eth0
wlan0
또 다른 방법은 컴퓨터가 연결할 수 있는 네트워크상의 서버인 DHCP라는 서비스를 사용하여 IP 정보를 동적으로 설정하고 DHCP 서버에 IP 주소를 할당하도록 요청하는 것입니다.
두 경우 모두 네트워크 정보가 식별되면 아래에서 액세스할 수 있습니다 /proc/net/*
.
답변2
외부 주소를 구성하는 것이 작업입니다 ifconfig
. 단지 주소가 기록된 커널 데이터 구조를 읽습니다. 컴퓨터가 네트워크에서 연결이 끊어진 경우에도 작동합니다. ifconfig
네트워크는 컴퓨터를 네트워크와 분리하여 완전히 구성할 수 있으며, 올바르게 구성하면 네트워크 케이블이 연결되어 있는 동안 네트워크는 실행됩니다.
루프백 주소 [127.0.0.1]는 소프트웨어 장치에 구성되어 있으며 컴퓨터에 네트워크 카드가 설치되지 않은 경우에도 존재합니다. 이를 통해 TCP 및 UDP와 같은 프로토콜을 사용하여 로컬 연결이 가능해집니다. 이는 로컬 연결에 특별한 서비스가 필요하지 않기 때문에 소프트웨어 개발을 단순화합니다.
편집: ifconfig
이미 사용 중인 IP 주소를 구성했는지 알 수 없는 경우가 많습니다. 네트워크 인터페이스가 인터넷에 연결되어 있으면 ARP
네트워크에서 해당 주소가 사용 중인지 확인할 수 있습니다. 이는 필수 기능은 아니며 ifconfig
여러 컴퓨터가 동일한 IP 주소를 갖는 것은 드문 일이 아닙니다. 다른 소프트웨어에서 구성된 주소가 올바르지 않다고 판단하는 경우 ifconfig
일반적인 응답은 경고 메시지를 발행하는 것입니다.
ifconfig
잘못된 네트워크에 대해 장치를 구성하는 것도 가능합니다 . 제공된 구성이 ifconfig
올바른지 확인하는 것은 사용자의 책임입니다 . 동일한 기능을 수행 ifconfig
하고 동일한 제한 사항을 적용하는 다른 도구도 있습니다 .
개인 네트워크에는 세 가지 IP 주소 범위가 정의됩니다. 각각 10.0.0.0/8, 172.16.0.0/12 및 192.168.0.0/16입니다. 이러한 주소 범위에서 컴퓨터를 구성하는 것이 일반적입니다. 이 경우 해당 IP 주소는 인터넷의 "공용" IP 주소와 다릅니다. "공용" IP 주소는 개인 네트워크의 컴퓨터가 인터넷과 통신할 수 있도록 NAT(네트워크 주소 변환)를 수행하는 인터넷에 연결된 장치에 속합니다. 홈 네트워크의 컴퓨터에는 거의 항상 개인 네트워크 주소가 있습니다. 대부분의 홈 라우터는 로컬(개인) 네트워크에 있는 컴퓨터에 대해 NAT를 수행합니다.
답변3
NAT 뒤에 있는 경우 ifconfig는 "외부" IP 주소를 표시할 수 없습니다. DHCP 서버가 네트워크 인터페이스에 제공한 주소만 구성합니다. 외부 IP 주소를 알고 있는 경우 다음과 같은 것을 사용해야 합니다.https://ipof.in/txt.