내 LAN IP(ubuntu 및 누락된 eth0)는 무엇입니까?

내 LAN IP(ubuntu 및 누락된 eth0)는 무엇입니까?

20.04를 실행 중입니다. 노트북의 LAN IP를 알아내려고 합니다. 실행하면 ifconfig다음과 같은 결과를 얻습니다.

$ ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 172.17.0.1  netmask 255.255.0.0  broadcast 172.17.255.255
        ...

enp0s31f6: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ...
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        ...

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ...

virbr1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.39.1  netmask 255.255.255.0  broadcast 192.168.39.255
        ...

wlp0s20f3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.23  netmask 255.255.255.0  broadcast 192.168.0.255
        ...

위 중 내 IP는 무엇입니까? 예를 들어 LAN의 다른 PC에서 이 노트북에 SSH로 연결할 때 어떤 IP를 사용합니까?

eth0또한 "오래된" 시절에는 항상 (우분투에서도) 보았지만 더 이상 사용되지 않는 것 같습니다.

https://www.linuxquestions.org/questions/linux-networking-3/eth0-is-not-displayed-in-ifconfig-4175444486/

답변1

enp0s31f6로고를 표시 UP하지만 표시하지 않음 RUNNING: 이는 일반적으로 현재 유효한 링크가 없음을 의미합니다.

반면 존재 와 기호가 wlp0s20f3동시에 존재한다 . 이름 접두사는 이것이 무선 인터페이스임을 나타냅니다. 이는 랩탑이라고 말하는 것과 같습니다. 접두사는 유선 인터페이스를 나타냅니다.UPRUNNINGwlen

따라서 인터페이스의 IP 주소 wlp0s20f3(예: 192.168.0.23)는 다른 물리적 호스트의 인바운드 SSH 연결에 사용됩니다.

인터페이스 docker0이며 Docker 컨테이너 및/또는 해당 시스템에서 실행되는 가상 머신 간의 네트워크 연결을 용이하게 하는 데 사용됩니다. 다른 설정에 따라 컨테이너/VM이 호스트 운영 체제 virbr0virbr1만 통신하도록 허용하거나 NAT 기반 액세스를 허용할 수 있습니다. 이 물리적 호스트 외부에 있습니다. 정확한 목적을 이해하려면 iptables NAT 및 정방향 필터링 규칙(예: sudo iptables -Lvn -t NATiptables ) 을 조사해야 할 수도 있습니다 sudo iptables -Lvn.

랩톱의 펌웨어에 적절한 데이터 로깅이 내장되어 있는 경우 통합 유선 네트워크 인터페이스는 으로 식별되어야 하며 eno1무선 네트워크 인터페이스는 로 식별되어야 합니다 wlo1. 하지만 노트북의 펌웨어에는 이러한 기록이 포함되어 있지 않은 것 같습니다. 원하는 경우 두 개의 간단한 파일을 생성하여 인터페이스 이름을 변경할 수 있습니다 /etc/systemd/network/*.link.

sudo udevadm info -q all -p /sys/class/net/enp0s31f6 | grep -e ID_NET_NAME -e ID_PATH먼저 하드웨어 경로를 식별하고 예를 들어 다음을 사용하여 자동으로 감지된 네트워크 인터페이스 후보 이름을 식별 해야 합니다 . 출력은 다음과 같습니다.

# udevadm info -q all -p /sys/class/net/enp0s31f6 | grep -e ID_NET_NAME -e ID_PATH
E: ID_NET_NAME_MAC=enx0123456789ab
E: ID_NET_NAME_ONBOARD=eno1
E: ID_NET_NAME_PATH=enp0s31f6
E: ID_PATH=pci-0000:00:1f.6
E: ID_PATH_TAG=pci-0000_00_1f_6
E: ID_NET_NAME=enp0s31f6

이 줄이 나타나지 않으면 ID_NET_NAME_ONBOARD시스템 펌웨어가 네트워크 인터페이스를 온보드 인터페이스로 올바르게 인식하지 못하는 것입니다. 이상적으로 할당된 이름을 사용하도록 인터페이스 이름을 변경하여 이 문제를 해결할 수 있습니다. 이 인터페이스의 이름을 바꾸려면 해당 행을 기록 하고 이를 사용하여 다음을 포함 ID_PATH=하는 구성 파일을 작성해야 합니다./etc/systemd/network/70-eno1.link

[Match]
Path=pci-0000:00:1f.6

[Link]
Name=eno1    #or whatever you want

무선 인터페이스도 마찬가지입니다.

Name=또한 NamePolicy=설정을 사용하여 미리 생성된 ID_NET_NAME_*후보를 선택하거나, 명시적으로 설정하는 대신 미리 생성된 이름이 선택되는 우선순위를 설정할 수도 있습니다. man 5 systemd.link자세한 내용은 참조하십시오 .

이러한 파일을 생성한 후 initramfs( )를 업데이트하고 재부팅해야 합니다 sudo update-inintramfs -u. 재부팅한 후에는 원하는 이름의 인터페이스를 찾아야 합니다.

이는 enp0s31f6PCI 장치 경로를 기반으로 한 이름입니다. 즉, PCI 장치를 00:1f.631 = 0x1f로 나타냅니다. 이번에도 wlp0s20f3PCI 장치 00:14.3(20 = 0x14)가 됩니다.

답변2

무엇보다도 이 hostname명령을 사용하여 이를 달성할 수 있습니다. 다음은 도움이 되는 두 가지 옵션입니다.

hostname -i또는 hostname --ip-address: 이는 호스트 이름을 확인할 수 있는 경우에만 작동합니다(호스트 이름을 사용하여 SSH로 연결하는 것이 좋을 수 있습니다). 아래의 다음 옵션이 선호됩니다.

hostname -I또는 hostname --all-ip-addresses: 호스트의 모든 IP 주소를 인쇄합니다. 물론아니요호스트 이름 확인에 따라 다릅니다.

관련 정보