리눅스 네트워크 설정 명령들과 nmcli 사용법
리눅스 네트워크 설정 - nmcli 사용법
리눅스 네트워크 설정 명령들은 계속 변화 되고 있습니다.
리눅스에서 사용하는 네트워크 관리 명령어들
1. netconfig: ( GUI 네트워크 설치 관리자)
- GUI(그래픽 사용자 인터페이스) 기반의 네트워크 설치 관리자입니다.
- 용도: 주로 네트워크 설정을 쉽게 하기 위해 사용됩니다.
2. ifconfig: (기본 네트웍 설정)
- 기본 네트워크 설정 도구입니다.
- 용도: 네트워크 인터페이스 설정 및 관리에 사용됩니다.
3. nmcli: (레드헷리눅스 계열)
- NetworkManager의 명령줄 인터페이스입니다.
- 용도: 레드헷 계열의 리눅스 배포판에서 네트워크를 구성 및 관리하는 데 사용됩니다.
4. netplan: (우분투)
- YAML 기반의 네트워크 구성 도구입니다.
- 용도: 우분투에서 네트워크 설정을 정의하고 관리하는 데 사용됩니다.
네트워크의 개요
네트워크는 파일, 프린터, 애플리케이션 및 인터넷 연결과 같은 공유 정보와 리소스를 공유할 수 있는 상호 연결된 장치의 시스템입니다.
둘 이상의 장치 간에 메시지를 보내고 받을 고유한 인터넷 프로토콜(IP) 주소가 있으며, IP 네트워크는 인터넷과 대부분의 내부 네트워크간의 통신을 위해 사용됩니다. 일반적인 연결은 이더넷, Cable Modems, DSL Modems, 전화 업 모뎀, 무선 네트워크 및 VPN 등으로 연결 됩니다.
장치에 IP 주소를 할당하는 방법으로 수동으로 할당하는 고정 IP 방식이 있으며, DHCP( 동적 호스트 제어 프로토콜 )는 호스트에 네트워크 구성을 동적으로 할당 하는 동적 IP주소 할당 방식으로 관리를 합니다.
IP를 설정하는 방법으로 nmcli 명령을 이용하여 구합니다.
- NetworkManager (ifcfg) 설정 :
이전에 NetworkManager는 네트워크 프로파일을 ifcfg 형식으로 디렉토리(/etc/sysconfig/network-scripts/)에 저장했습니다. 더이상 ifcfg 형식은 사용하지 않게 되었습니다.
nmcli 를 이용한 네트워크 환경 설정
nmcli 방식의 키 파일은 /etc/NetworkManager/system-connections/ 아래에 저장을 합니다.
# cd /etc/NetworkManager/system-connections
# ls -al
total 4
-rw-------. 1 root root 182 Jan 1 17:22 enp0s3.nmconnection
# cat enp0s3.nmconnection
[connection]
id=enp0s3
uuid=22132ac3-5fda-46b2-a156-b913c4c89fc8
type=ethernet
interface-name=enp0s3
[ethernet]
[ipv4]
method=auto
[ipv6]
addr-gen-mode=eui64
method=auto
[proxy]
nmcli 명령 사용법
[ nmcli 상태를 확인 명령들]
1. nmcli :
- 현재 네트워크 설정 상태를 확인 (ifconfig와 유사함)
2. nmcli connection show :
- 활성화된 네트워크 연결 정보를 보여줍니다.
- 용도: 현재 활성화된 네트워크 연결을 확인할 때 사용합니다.
3. nmcli networking connectivity check
- 네트워크 연결 상태를 검사합니다.
- 용도: 네트워크 연결성 상태를 점검할 때 사용합니다.
4. nmcli general status
- 네트워크 상태를 요약하여 보여줍니다.
- 용도: 시스템의 전체 네트워크 상태를 확인할 때 사용합니다.
5. nmcli device show [device name]
nmcli -f GENERAL.DEVICE,GENERAL.STATE device show [device-name]
nmcli -f GENERAL,CAPABILITIES,INTERFACE-FLAGS,WIFI-PROPERTIES,AP,WIRED-PROPERTIES,WIMAX-PROPERTIES,NSP,IP4,DHCP4,IP6,DHCP6,BOND,TEAM,BRIDGE,VLAN,BLUETOOTH,CONNECTIONS device show lo
- 특정 네트워크 장치의 상세 상태 정보를 보여줍니다. "-f" 출력 가능한 항목을 지정 할 수 있습니다.
- 용도: 특정 네트워크 장치의 상세 상태를 확인할 때 사용합니다.
6. nmcli device status [device name] :
- 네트워크 장치의 상태를 나열합니다.
- 용도: 각 네트워크 장치의 상태를 확인할 때 사용합니다.
[ 연결 활성화 수정하는 명령]
7. nmcli connection add type <type> ifname <interface> con-name <name> <options>
-새로운 연결 생성하는 명령
- 새로운 디바이스를 추가하고 수동으로 설정하는 방법입니다.
8. nmcli connection up <name>
- 설정된 네트워크를 활성화 합니다.
9. nmcli connection down <name>
- 설정된 네트워크를 비 활성화 합니다.
10. nmcli connection modify <name> <property> <value>
- 연결 설정을 변경합니다.
11. nmcli connection delete <name>
- 연결 설정을 삭제 합니다.
1. nmcli로 네트워크 상태 확인
아래 다음 두개의 인터페이스 " enp0s3" 와 " enp0s8" , "lo" 등의 내용을 확인 합니다.
- enp0s3: connected to enp0s3
- enp0s8: connecting (getting IP configuration) to Wired connection 1
- lo: connected (externally) to lo
# nmcli
enp0s3: connected to enp0s3
"Intel 82540EM"
ethernet (e1000), 08:00:27:1F:EE:E0, hw, mtu 1500
ip4 default, ip6 default
inet4 10.0.2.15/24
route4 10.0.2.0/24 metric 100
route4 default via 10.0.2.2 metric 100
inet6 fd00::a00:27ff:fe1f:eee0/64
inet6 fe80::a00:27ff:fe1f:eee0/64
route6 fe80::/64 metric 1024
route6 fd00::/64 metric 100
route6 default via fe80::2 metric 100
enp0s8: connecting (getting IP configuration) to Wired connection 1
"Intel 82540EM"
ethernet (e1000), 08:00:27:CC:19:1C, hw, mtu 1500
lo: connected (externally) to lo
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
inet4 127.0.0.1/8
inet6 ::1/128
route6 ::1/128 metric 256
DNS configuration:
servers: 10.0.2.3
interface: enp0s3
2. nmcli connection show :
# nmcli connection show
NAME UUID TYPE DEVICE
enp0s3 22132ac3-5fda-46b2-a156-b913c4c89fc8 ethernet enp0s3
Wired connection 1 cf7a93b5-2b9e-33e4-9a59-732a5ec39733 ethernet enp0s8
lo 94368c97-26f8-487c-931d-dfc42032be1d loopback lo
3. nmcli networking connectivity check
# nmcli networking connectivity check
full
4. nmcli general status
# nmcli general status
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full missing enabled missing enabled
5. nmcli device show
각 디바이스별 상세 설정 내용을 확인 합니다.
각 항목이 많은 경우 특정 필드 항목을 선택하여 출력 가능합니다.
# nmcli -f GENERAL.DEVICE,GENERAL.STATE device show enp0s3
GENERAL.DEVICE: enp0s3
GENERAL.STATE: 100 (connected)
아래와 같이 각 디바이스별 상세한 설정 상태 값들을 확이 할 수 있습니다.
- nmcli device show enp0s3
- nmcli device show enp0s8
- nmcli device show lo
[root]# nmcli device show enp0s3
GENERAL.DEVICE: enp0s3
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:1F:EE:E0
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected)
GENERAL.CONNECTION: enp0s3
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/2
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 10.0.2.15/24
IP4.GATEWAY: 10.0.2.2
IP4.ROUTE[1]: dst = 10.0.2.0/24, nh = 0.0.0.0, mt = 100
IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.0.2.2, mt = 100
IP4.DNS[1]: 10.0.2.3
IP6.ADDRESS[1]: fd00::a00:27ff:fe1f:eee0/64
IP6.ADDRESS[2]: fe80::a00:27ff:fe1f:eee0/64
IP6.GATEWAY: fe80::2
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024
IP6.ROUTE[2]: dst = fd00::/64, nh = ::, mt = 100
IP6.ROUTE[3]: dst = ::/0, nh = fe80::2, mt = 100
[root]# nmcli device show lo
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 100 (connected (externally))
GENERAL.CONNECTION: lo
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ::1/128, nh = ::, mt = 256
[root]# nmcli device show enp0s8
GENERAL.DEVICE: enp0s8
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:CC:19:1C
GENERAL.MTU: 1500
GENERAL.STATE: 30 (disconnected)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
WIRED-PROPERTIES.CARRIER: on
IP4.GATEWAY: --
IP6.GATEWAY: --
6. nmcli device status
# nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected enp0s3
enp0s8 ethernet connecting (getting IP configuration) Wired connection 1
lo loopback connected (externally) lo
nmcli 를 이용하여 네트워크의 연결 설정을 변경하는 방법
7. enp0s8 디바이스의 IP 정보를 수정합니다.
- nmcli connection add type ethernet ifname enp0s8 con-name "enp0s8"
# nmcli device status
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected enp0s3
enp0s8 ethernet connecting (getting IP configuration) Wired connection 1
lo loopback connected (externally) lo
# nmcli connection add type ethernet ifname enp0s8 con-name "enp0s8" ip4 192.168.1.100/24 gw4 192.168.1.1
# nmcli conn show enp0s8
NAME UUID TYPE DEVICE
enp0s8 7cb7d897-b52b-4459-95cf-5fecdc66d4c2 ethernet enp0s8
8. 네트워크를 활성화 합니다.
nmcli connection up <name>
# nmcli conn up enp0s8
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/47)
9. 네트워크를 비활성화 합니다.
nmcli connection down <name>
# nmcli conn down enp0s8
Connection 'enp0s8' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/47)
10. 세부 연결 설정을 수정 합니다.
nmcli connection modify <name> <property> <value>
# enp0s8 : ip 정보를 수정합니다.
# nmcli connection modify "enp0s8" ipv4.addresses 192.168.1.200/24
동적 IP를 이용하는 방법을 수정합니다.
# dhcp 클라이언트에서 IP요청이 완료될 때까지 대기 시간은 기본60초이며 10초로 조정합니다.
# nmcli connection modify enp0s3 ipv4.dhcp-timeout 10
# DHCPv4를 영구적으로 만들려면 ipv4.dhcp-timeout 속성을 32비트 정수(MAXINT32)의 최대값으로 설정하려면 2147483647
# nmcli connection modify enps1s0 ipv4.dhcp-timeout infinity
11. 연결을 삭제 합니다.
- nmcli connection delete <name>
# nmcli connection delete enp0s8
Connection 'enp0s8' (7cb7d897-b52b-4459-95cf-5fecdc66d4c2) successfully deleted.
참고 : 리눅스 네트워크 설정
1. [InfraPlatform] - [꿀팁]Linux nmcli 사용법 - 네트웍 ip 설정하기
2. [InfraPlatform] - [linux] 우분투 network static ip 수동으로 설정 - ifconfig,netplan, interfaces
3. RHEL 7 - Redhat Enterprise networking_guide