웹사이트 검색

네트워크 인터페이스 구성에 유용한 24가지 "IP" 명령


요약: 이 가이드에서는 ip 명령의 몇 가지 실제 예를 논의합니다. 이 가이드가 끝나면 사용자는 명령줄 인터페이스를 통해 Linux의 네트워킹 작업을 효율적으로 수행할 수 있습니다.

시스템 관리자는 Linux 서버에서 네트워킹 작업을 수행해야 하는 경우가 많습니다. 시중에는 다양한 그래픽 및 명령줄 도구가 있습니다. 그러나 대부분의 Linux 사용자는 단순성과 풍부한 기능으로 인해 ip 명령 사용을 선호합니다.

ip 명령은 네트워크 인터페이스에 IP 주소를 할당하거나 Linux 시스템에서 유용한 네트워크 변수를 구성/업데이트하는 데 사용되는 새로운 네트워킹 명령줄 유틸리티입니다.

이는 iproute2 패키지의 일부이며 네트워크 인터페이스 가져오기 또는 끄기, IP 주소 및 경로 할당 및 제거, ARP 캐시 관리 등과 같은 여러 네트워크 관리 작업을 제공합니다.

ip 명령은 이전 ifconfig 명령과 매우 유사하지만 더 많은 기능이 추가되어 훨씬 더 강력해졌습니다.

ifconfig 명령은 더 이상 사용되지 않으며 모든 최신 Linux 배포판에서 ip 명령으로 대체되었습니다. 그러나 ifconfig 명령은 여전히 작동하며 대부분의 Linux 배포판에서 사용할 수 있습니다.

참고: 변경하기 전에 구성 파일을 백업해 두십시오.

1. Linux에서 고정 IP 주소를 영구적으로 구성

Linux에서 고정 IP 주소를 영구적으로 구성하려면 네트워크 구성 파일을 업데이트하거나 편집하여 시스템에 고정 IP 주소를 할당해야 합니다. 터미널이나 명령 프롬프트에서 su(사용자 전환) 명령을 사용하는 수퍼유저여야 합니다.

RHEL 시스템에서 고정 IP 주소 설정

즐겨 사용하는 텍스트 편집기를 사용하여 (eth0 또는 eth1)에 대한 네트워크 구성 파일을 열고 편집합니다. 예를 들어 RHEL 기반 배포에서 다음과 같이 eth0 인터페이스에 IP 주소를 할당합니다.

vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

Debian 시스템에서 고정 IP 주소 설정

영구 고정 IP 주소를 구성하려면 네트워크 인터페이스 구성 파일 /etc/network/interfaces를 수정하여 Debian 기반 배포판에 대해 아래와 같이 영구적으로 변경해야 합니다.

sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

다음으로, 다음 명령어를 이용하여 모든 내용을 입력한 후 네트워크 서비스를 다시 시작합니다.

sudo systemctl restart networking

2. Linux에서 고정 IP 주소 임시 구성

임시 네트워크 구성의 경우 ip 명령을 사용하여 특정 인터페이스(eth2)에 IP 주소를 즉시 할당할 수 있습니다.

ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2

참고: 안타깝게도 시스템을 다시 시작하면 이러한 설정이 모두 손실됩니다.

3. 모든 네트워크 인터페이스를 표시하는 방법

ip 명령에서 링크 개체는 네트워크 인터페이스를 나타냅니다. show 명령을 사용하여 모든 네트워크 인터페이스를 표시할 수 있습니다.

이제 다음 명령을 사용하여 모든 네트워크 인터페이스를 표시해 보겠습니다.

ip link show

위 출력에는 인터페이스 이름, 플래그, 상태, 링크 주소, 브로드캐스트 주소 등과 같은 모든 네트워크 인터페이스의 세부 정보가 표시됩니다.

4. 특정 네트워크 인터페이스의 IP 주소를 확인하는 방법

IP 주소, MAC 주소 정보와 같은 개별 네트워크 인터페이스의 깊이 정보를 얻으려면 아래와 같이 다음 명령을 사용하십시오.

ip link show eth2

지금까지 우리는 네트워크 인터페이스에 대한 자세한 정보를 표시하는 링크 개체를 사용했습니다. 그러나 네트워크 인터페이스와 연결된 IP 주소는 표시되지 않습니다. 이 제한을 극복하기 위해 ip 명령과 함께 addr 개체를 사용할 수 있습니다.

예를 들어 이것을 이해해 봅시다.

ip addr show

여기서는 이제 출력에 다른 세부 정보와 함께 모든 네트워크 인터페이스의 IP 주소가 표시되는 것을 볼 수 있습니다.

개별 네트워크 인터페이스의 IP 주소를 표시하려면 명령에 대한 인수로 네트워크 인터페이스 이름을 제공하기만 하면 됩니다.

ip addr show eth2

5. 컬러 출력에 IP 주소를 표시하는 방법

ip 명령은 네트워크 개체에 대한 자세한 정보를 표시합니다. 그러나 때로는 제한된 정보를 살펴보아야 할 때도 있습니다. 이러한 경우 컬러 출력을 활성화할 수 있습니다. 이 옵션은 중요한 세부 정보를 다양한 색상으로 강조 표시합니다.

명령의 --color 옵션을 사용하여 출력을 다양한 색상으로 표시해 보겠습니다.

ip --color addr show eth2

위 출력에서 인터페이스 이름, 이더넷 주소 및 상태가 서로 다른 색상으로 강조 표시된 것을 볼 수 있습니다.

6. IP 주소를 JSON 형식으로 표시하는 방법

이전 예에서는 ip 명령이 의미 있는 정보를 표시하는 것을 확인했습니다. 그러나 원시 출력을 구문 분석하고 기초적인 스크립트를 사용하여 의미 있는 정보를 추출하는 것은 쉬운 작업이 아닙니다. 이러한 경우 ip 명령JSON 형식으로 출력을 생성하도록 지시할 수 있습니다.

따라서 명령과 함께 -j 옵션을 사용하여 JSON 형식으로 동일한 출력을 표시해 보겠습니다.

ip -j link show eth2

JSON은 널리 사용되는 형식이고 다양한 프로그래밍 언어로 사용할 수 있는 JSON 파서 라이브러리/도구가 많기 때문에 이 방법은 자동화를 수행하는 동안 유용합니다.

7. JSON 출력을 더 읽기 쉽게 만드는 방법

이전 예에서는 -j 옵션을 사용하여 JSON 형식으로 출력을 표시했습니다. 이 기본 JSON 형식은 컴팩트하고 공간 효율적입니다. 그러나 들여쓰기가 부족하여 출력을 읽기가 쉽지 않습니다.

이러한 제한을 극복하기 위해 들여쓰기를 통해 출력을 더 읽기 쉽게 만드는 -p 옵션을 사용할 수 있습니다. 아래 예를 통해 이를 이해해 보겠습니다.

ip -j -p link show eth2

여기서는 이전 예제에 비해 동일한 출력이 훨씬 더 읽기 쉽다는 것을 알 수 있습니다.

8. 네트워크 인터페이스에서 IP 주소를 제거하는 방법

이전 예에서는 add 하위 명령을 사용하여 IP 주소를 할당했습니다. 비슷한 방식으로 del 하위 명령을 사용하여 특정 IP 주소를 제거할 수 있습니다.

다음 명령은 지정된 인터페이스(eth2)에서 할당된 IP 주소를 제거합니다.

ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2

이제 IP 주소가 제거되었는지 확인해 보겠습니다.

ip -j -p addr show eth2

위 출력에서 이제 eth2 네트워크 인터페이스에는 IP 주소가 하나만 있음을 알 수 있습니다.

9. 네트워크 인터페이스를 활성화하는 방법

인터페이스 이름(eth2)이 있는 "up" 플래그는 네트워크 인터페이스를 활성화합니다. 예를 들어, 다음 명령은 eth2 네트워크 인터페이스를 활성화합니다.

ip link set eth2 up
OR
sudo ip link set dev eth2 up

이제 업데이트된 상태를 확인해 보겠습니다.

ip -j -p link show eth2 | grep operstate

10. 네트워크 인터페이스를 비활성화하는 방법

인터페이스 이름(eth2)이 있는 "down" 플래그는 네트워크 인터페이스를 비활성화합니다. 예를 들어, 다음 명령은 eth2 네트워크 인터페이스를 비활성화합니다.

ip link set eth2 down
OR
sudo ip link set eth2 down

이제 eth2 네트워크 인터페이스의 상태를 확인해 보겠습니다.

ip -j -p link show eth2 | grep operstate

위 출력은 네트워크 인터페이스의 수정된 상태를 보여줍니다.

11. 네트워크 인터페이스의 IP 주소를 플러시하는 방법

이전 예에서는 del 하위 명령을 사용하여 IP 주소를 제거하는 방법을 살펴보았습니다. 그러나 때로는 특정 네트워크 인터페이스의 모든 IP 주소를 제거해야 하는 경우도 있습니다. 이러한 경우 flush 하위 명령을 사용할 수 있습니다.

먼저 flush 하위 명령을 사용하여 eth2 네트워크 인터페이스의 모든 IP 주소를 제거합니다.

sudo ip addr flush eth2

이제 eth2 네트워크 인터페이스의 모든 IP 주소가 제거되었는지 확인해 보겠습니다.

ip -j -p addr show eth2

위 출력에서 addr_info 필드에는 빈 JSON 배열이 표시됩니다. 이는 eth2 네트워크 인터페이스와 연결된 IP 주소가 없음을 나타냅니다.

12. 라우팅 테이블을 확인하는 방법

라우팅 테이블은 네트워크 패킷을 올바른 대상으로 전달하는 데 필요한 정보를 저장합니다. ip 명령의 route 개체를 사용하여 라우팅 규칙을 표시할 수 있습니다.

아래 명령을 사용하여 라우팅 테이블의 모든 규칙을 나열해 보겠습니다.

ip route show

위 출력에서 첫 번째 열은 대상을 나타내고 마지막 열은 소스 IP 주소를 나타냅니다.

13. 새로운 고정 경로를 어떻게 추가하나요?

트래픽이 기본 게이트웨이를 통과하면 안 되므로 정적 경로나 수동 경로를 추가해야 하는 이유는 무엇입니까? 목적지에 도달하는 가장 좋은 방법에서 트래픽을 전달하려면 정적 경로를 추가해야 합니다.

sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

이제 항목이 성공적으로 추가되었는지 확인해 보겠습니다.

ip route show

15. 고정 경로를 제거하는 방법

del 하위 명령은 라우팅 테이블에서 특정 항목을 제거합니다. 예를 들어, 아래 명령은 eth2 장치 경로의 항목을 제거합니다.

sudo ip route del 172.19.1.0/24

이제 항목이 성공적으로 제거되었는지 확인해 보겠습니다.

ip route show

16. 영구 정적 경로를 어떻게 추가하나요?

시스템을 다시 시작하면 위의 모든 경로가 손실됩니다. 영구 정적 경로를 추가하려면 /etc/sysconfig/network-scripts/route-eth2 파일을 편집합니다((eth2)에 대한 정적 경로를 저장하고 있습니다. 기본적으로 route-eth2 파일은 존재하지 않으므로 생성해야 합니다.

RHEL 시스템에서 영구 경로 설정

vi /etc/sysconfig/network-scripts/route-eth2

다음 줄을 추가하고 저장하고 종료하십시오.

172.19.1.0/24 via 172.19.1.2 dev eth2

데비안 시스템에서 영구 경로 설정

/etc/network/interfaces 파일을 열고 마지막에 지속성 정적 경로를 추가합니다. IP 주소는 환경에 따라 다를 수 있습니다.

sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

다음으로, 다음 명령어를 이용하여 모든 내용을 입력한 후 네트워크 서비스를 다시 시작합니다.

sudo systemctl restart networking

17. 기본 게이트웨이를 추가하는 방법

네트워킹에서는 기본 게이트웨이가 중요한 역할을 합니다. 라우팅 테이블에 대상에 대한 정보가 포함되어 있지 않을 때 사용됩니다.

기본 게이트웨이는 전역적으로 지정하거나 인터페이스별 구성 파일에 대해 지정할 수 있습니다. 기본 게이트웨이의 장점은 시스템에 둘 이상의 NIC가 있다는 것입니다. 아래 명령에 표시된 대로 기본 게이트웨이를 즉시 추가할 수 있습니다.

먼저 eth0 네트워크 인터페이스를 기본 게이트웨이로 추가해 보겠습니다.

sudo ip route add default via 172.17.0.1

이제 다음 명령을 사용하여 기본 게이트웨이 설정을 확인해 보겠습니다.

ip route show

이 명령은 테스트 시스템에서 실행되었습니다. 프로덕션 환경에서 이 명령을 사용할 때는 주의하십시오.

18. 기본 게이트웨이를 제거하는 방법

다음 명령을 사용하여 기본 게이트웨이를 제거할 수 있습니다.

sudo ip route del default

이제 기본 게이트웨이가 제거되었는지 확인하기 위해 라우팅 테이블을 나열해 보겠습니다.

ip route show

19. ARP 캐시 표시 방법

ARP는 특정 IP 주소와 연결된 MAC 주소를 찾는 데 사용되는 주소 확인 프로토콜을 나타냅니다.

ARP 캐시를 표시하기 위해 ip 명령과 함께 neigh 개체를 사용할 수 있습니다.

ip neigh show

위 명령에서 neigh는 이웃 객체를 나타냅니다.

20. ARP 항목을 추가하는 방법

새 ARP 항목을 생성하려면 neigh 개체와 함께 add 하위 명령을 사용할 수 있습니다.

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

이제 ARP 캐시 항목을 나열해 보겠습니다.

ip neigh show

위 출력에서 eth2 네트워크 인터페이스에 대한 새 항목을 볼 수 있습니다.

21. ARP 항목을 제거하는 방법

다른 네트워크 개체와 마찬가지로 del 하위 명령을 사용하여 ARP 항목을 제거할 수 있습니다. 예를 들어, 아래 명령은 eth2 네트워크 인터페이스의 ARP 항목을 제거합니다.

sudo ip neigh del 172.19.1.0 dev eth2

이제 ARP 캐시를 나열하여 항목이 제거되었는지 확인해 보겠습니다.

ip neigh show 

22. ARP 항목을 플러시하는 방법

flush 하위 명령을 사용하여 여러 ARP 항목을 제거할 수 있습니다. 이를 이해하려면 먼저 STALE 상태의 몇 가지 ARP 항목을 추가하세요.

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

다음으로 새 항목이 성공적으로 추가되었는지 확인합니다.

ip neigh show

그런 다음 아래 명령을 사용하여 모든 항목을 플러시합니다.

sudo ip neigh flush all

마지막으로 모든 항목이 제거되었는지 확인합니다.

ip neigh show

23. 네트워크 인터페이스의 MTU를 설정하는 방법

MTU최대 전송 단위를 나타내며 단일 트랜잭션에서 전송할 수 있는 최대 패킷 크기를 나타냅니다. 성능 요구 사항에 따라 MTU 크기를 조작할 수 있습니다.

먼저 eth2 네트워크 인터페이스의 MTU를 찾아보겠습니다.

ip -j -p link show eth2 | grep mtu

다음으로 eth2 네트워크 인터페이스의 MTU 크기를 3000으로 업데이트합니다.

sudo ip link set mtu 3000 dev eth2

마지막으로 MTU가 성공적으로 업데이트되었는지 확인합니다.

ip -j -p link show eth2 | grep mtu

24. 네트워크 Mac 주소를 변경하는 방법

ip 명령을 사용하면 네트워크 인터페이스의 MAC 주소를 변경할 수 있습니다. 이를 달성하기 위해 링크 객체와 함께 set 하위 명령을 사용할 수 있습니다.

먼저 eth2 네트워크 인터페이스의 현재 MAC 주소를 나열합니다.

ip -j -p link show eth2 | grep address

그런 다음 아래 명령을 사용하여 네트워크 인터페이스의 MAC 주소를 변경합니다.

sudo ip link set dev eth2 address 02:42:ac:13:01:03

마지막으로 MAC 주소가 변경되었는지 확인합니다.

ip -j -p link show eth2 | grep address

IP 명령에 대한 자세한 내용은 터미널/명령 프롬프트에서 man ip를 실행하는 매뉴얼 페이지를 참조하세요.

man ip
결론

이 문서에서는 ip 명령의 몇 가지 일반적인 예를 논의했습니다. 일상생활에서 이러한 예를 사용하여 네트워크 관리를 수행할 수 있습니다.

Linux에서 ip 명령의 다른 가장 좋은 예를 알고 계십니까? 아래 댓글로 여러분의 의견을 알려주세요.