
gatewayip route show
default via 192.168.64.1 dev enp0s1 proto dhcp src 192.168.64.2 metric 100192.168.64.0/24 dev enp0s1 proto kernel scope link src 192.168.64.2 metric 100192.168.64.1 dev enp0s1 proto dhcp scope link src 192.168.64.2 metric 100sudo ip route add default via 게이트웨이 주소 dev 디바이스sudo ip route del 네트워크 주소# 네트워크 인터페이스 비활성화
sudo ip link set enp0s8 down
# 네트워크 인터페이스 활성화
sudo ip link set enp0s8 upd
# net-tools 라는 패키지를 설치해야 함
sudo apt install net-tools
# ifconfig [인터페이스명] [옵션] [값]
옵션
-a: 시스템의 전체 인터페이스에 대한 정보를 출력-up/down: 인터페이스를 활성화 및 비활성화-netmask 주소: 넷마스크 주소를 설정-broadcast 주소: 브로드캐스트 주소를 설정모든 네트워크 인터페이스 확인: ifconfig
enp0s1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
# inet, netmask, broadcast
inet 192.168.64.2 netmask 255.255.255.0 broadcast 192.168.64.255
# IPv6
inet6 fe80::c42e:7bff:fe86:d9c5 prefixlen 64 scopeid 0x20<link>
inet6 fd8b:c0b4:d374:f3ea:c42e:7bff:fe86:d9c5 prefixlen 64 scopeid 0x0<global>
# MAC Address
ether c6:2e:7b:86:d9:c5 txqueuelen 1000 (Ethernet)
# 부팅 후 받은 패킷 수와 바이트 수
RX packets 3803 bytes 567648 (567.6 KB)
RX errors 0 dropped 0 overruns 0 frame 0
# 부팅 후 보낸 패킷 수와 바이트 수
TX packets 2059 bytes 233912 (233.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
인터페이스 설정
sudo ifconfig <디바이스> <ip 주소> netmask <서브넷 마스크> broadcast <브로드캐스트 주소>
sudo ifconfig enp0s3 192.168.0.101 netmask 255.255.255.0 broadcast 192.168.0.255
route [명령]
add : 라우팅 경로나 기본 게이트웨이 추가del : 라우팅 경로나 기본 게이트웨이 제거Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 enp0s1
192.168.64.0 0.0.0.0 255.255.255.0 U 100 0 0 enp0s1
_gateway 0.0.0.0 255.255.255.255 UH 100 0 0 enp0s1
Destination : 목적지Gateway : 게이트웨이Genmask : 서브넷마스크Flags :Metric : 대상까지의 거리 (리눅스에서는 사용하지 않음)Ref : 해당 경로에 대한 참조 수 (리눅스에서는 사용하지 않음)Use : 사용 여부Iface : 패킷이 전달되는 인터페이스 이름# 기본 게이트웨이 설정
sudo route add default gw 192.168.147.2 dev ens33
# 기본 게이트웨이 삭제
sudo route del default gw 192.168.147.2
cat /etc/resolv.confnameserver 127.0.0.53
options edns0 trust-ad
search tail0e1ecb.ts.net로컬 스터브 주소(127.0.0.53)를 가리키는 심볼릭 링크인 경우가 많음resolvectl statusGlobal
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (enp0s1)
Current Scopes: DNS
Protocols: +DefaultRoute -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.64.1
DNS Servers: 192.168.64.1 fe80::a09a:8eff:fe27:764
DNS Domain: tail0e1ecb.ts.net
# nmcli 명령으로 DNS 정보 설정
nmcli con mod connection-name ipv4.dns
# DNS 서버에 질의(exit으로 종료)
nslookup
sudo netplan apply 또는 재부팅📌 yaml
- 데이터 직렬화 양식(데이터를 텍스트로 표현하기 위한 방법)
- 사람이 읽고 쓰기 매우 편하게 설계된 방식
- 설정 파일, 데이터 저장, 시스템 간 데이터 교환(쿠버네티스, 도커, 스프링 붑트 등)에 널리 사용
- JSON 이나 XML 보다 문장 구조가 단순
- 공백을 이용해서 계층 구조를 정의(들여쓰기)
- 주석 지원(JSON은 주석 지원 x)
- 상위 호환성(모든 JSON 파일은 유요한 yaml 파일)
- 확장자는 일반적으로 yaml, yml을 사용
# 인터페이스 설정
sudo vim /etc/netplan/01-netcfg.yaml
# 작성
network:
version: 2
renderer: networkd
ethernets:
enp0s1:
dhcp4: no
addresses:
- <IP Address>
- <IP Address>
gateway4: <Gateway Address>
nameservers:
addresses: [8.8.8.8, <DNS Address>]
uname [옵션]
-m: 하드웨어 종류를 출력-n: 호스트 이름을 출력-r: 운영체제의 릴리즈 정보를 출력-s: 운영체제의 이름을 출력-v: 운영체제의 버전을 출력-a: 위의 모든 정보hostname [옵션] [호스트 이름]
옵션
-l : 모든 IP 주소 출력-f : 전체 도메인(FQDN)이름 변경(현재 세션에서만 유효)
sudo hostname <변경할 이름>hostnamectl [옵션] [명령]
-h : 도움말 출력--version : 버전을 출력status : 현재 호스트 이름과 관련 정보 출력set-hostname : 호스트 이름을 설정<IP Address> 호스트 이름 [alias1, alias2, …]# Linux
sudo systemctl restart systemd-resolved
# Windows
# 윈도우로 서버를 만들 일이 있을까,,?
ipconfig /flushdns
# Mac OS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponser운영하는 서버에선 hosts 사용을 피해야 하는 이유→ 허용하는 경우📌 IP 주소를 찾는 과정
- URL 입력 → /etc/host.conf 조회(hosts 파일의 위치를 조회) → /etc/hosts 를 조회
- /etc/hosts 에 있는 경우 → IP 주소 획득
- /etc/hosts 에 없는 경우 → /etc/resolve.conf 를 조회해서 DNS Server 설정을 확인
- DNS Server 설정이 있는 경우 → DNS Server 에게 질의를 해서 응답을 받아서 IP 주소 획득
- DNS Server 설정이 없는 경우 → 호스트 이름 알 수 없음
ping [옵션] [목적지 주소]-a : 통신이 되면 소리가 남-q : 테스트 결과를 지속적으로 보여주지 않고 종합 결과만 출력-c 개수 : 보낼 패킷 수를 지정netstat [옵션]
-a: 모든 소켓 정보를 출력-r: 라우팅 정보를 출력-n: 호스트 이름 대신 IP 주소로 출력-i: 모든 네트워크 인터페이스 정보를 출력-s: 프로토콜별로 네트워크 통계 정보를 출력-p: 해당 소켓과 관련된 프로세스의 이름과 PID를 출력# 열려있는 포트 확인
netstat -an | grep LISTEN
netstat -P
netstat
arp
tcp [옵션]
-c 패킷 수: 지정한 패킷 수만큼 덤프 받고 종료-i 인터페이스명: 특정 인터페이스를 지정-n: IP 주소를 호스트 이름으로 바꾸지 않음-q: 정보를 간단한 형태로 출력-X: 패킷의 내용을 16진수와 ASCII로 출력-w 파일명: 덤프한 내용을 지정한 파일에 저장-r 파일명: 덤프를 저장한 파일에서 읽어옴host 호스트 이름 또는 주소: 지정한 호스트가 받거나 보낸 패킷만 덤프tcp port 번호: 지정한 포트 번호 패킷만 덤프ip: IP 패킷만 덤프sudo tcpdumpUTM에 3대의 가상머신을 띄워서 Master, node01, node02 만들고 연결하기
/etc/machine-id 를 새로 만듦# 기존 /etc/machine-id 삭제
rm /etc/machine-id
# 새롭게 작성
sudo vi /etc/machine-idmaster, node01, node02 로 호스트 이름을 수정Netplan 설정을 통해 직접 주소를 고정. 재부팅을 해도 주소가 변하지 않음network:
version: 2
renderer: networkd
ethernets:
enp0s1:
dhcp4: no # 동적 IP 사용 X
addresses:
- <Static IP Address>
routes:
- to: default
via: <Router 역할을 하는 노드의 IP Address>
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS 네임서버
dhcp-identifier: mac/etc/netplan/01-netcfg.yaml) 을 작성sudo chmod 600 명령어로 소유자만 읽고 쓸 수 있도록 수정/etc/hosts 수정 : 모든 가상머신의 hosts 파일에 IP - hostname 쌍을 등록