-
네트워크 연결 상태 확인CS/Network 2024. 5. 7. 21:44
오류를 겪고 해결 과정을 겪어야 실력이 향상된다고 한다.
ip 주소를 설정하거나 네트워크를 연결시키거나 프로그램을 설치 및 실행시켰을 때, 의도한대로 설정이 되면 좋겠지만, 항상 의도한대로 되지는 않는다.😥
연결 상태를 확인하고 오류가 났을 때 원인을 잘 파악하는 과정을 꼼꼼히 해야 원인을 알고 해결할 수 있다!
1. ip 주소 확인
기본적으로 ip 설정 전/후에 현 ip주소가 무엇이고, 내가 설정한 ip로 잘 적용이 됐는지 확인해볼 수 있다.
#cmd ipconfig #linux ifconfig # yum install net-tools 설치 필요 #또는 ip addr show2. ping 테스트
네트워크와 연결이 잘 되는지 확인할 수 있는 방법이다. 일반적으로 가까운 쪽의 네트워크부터 확인하고 점차 범위를 넓혀 확인하는 것이 오류를 찾는 데 도움이 된다. 예를들어 뭔가 잘 안될 때, 내 컴퓨터의 ip주소가 먼저 잘 연결이 되는지, 잘된다면 사설 ip주소가 잘 연결이 되는지, 그것도 잘된다면 공인 ip 주소가 연결이 잘 되는지 확인해보면서 문제가 있는 ip 주소를 찾아가면 된다.
ping [ip 주소]💡ICMP 프로토콜
인터넷 제어 메시지 프로토콜(ICMP)은 디바이스가 네트워크에서 데이터 전송 오류를 전달하는 데 사용하는 통신 규칙 집합입니다. 발신자와 수신자 간에 메시지를 교환할 때 예상치 못한 오류가 발생할 수 있습니다. 예를 들어 메시지가 너무 길거나 데이터 패킷이 순서에 맞지 않게 도착하여 수신자가 메시지를 조합하지 못할 수 있습니다. 이러한 경우 수신자는 ICMP를 사용하여 발신자에게 오류 메시지를 알리고 메시지 재전송을 요청합니다.
💡ping
ICMP는 ping 명령에 가장 많이 사용됩니다. ping 명령은 ICMP 에코 요청 패킷을 대상 디바이스에 전송하여 네트워크 디바이스의 연결 가능 여부를 테스트합니다. 디바이스에 연결할 수 있는 경우 ICMP 에코 응답을 반환합니다. 높은 신뢰도로 네트워크 지연 시간을 검사하고 디바이스가 사용 가능한 상태인지 확인합니다
[출처 https://aws.amazon.com/ko/what-is/icmp/]3. port 연결 확인
port 연결 확인도 필수적이다. 연결하고싶은 프로세스에 연결을 하기 위해서는 해당 프로세스가 실행중인 컴퓨터의 ip주소와 해당 프로세스를 찾아갈 수 있는 포트번호가 필요하다. 따라서 프로세스와 포트가 잘 연결돼있어야 그 프로세스를 잘 찾아갈 수 있기 때문에 포트의 상태를 확인해야 한다.
#cmd netstat -ano netstat -ano | findstr 10000 #10000번 포트만 확인 #linux netstat -anlp netstat -anlp | grep 10000 #10000번 포트만 확인💡port의 연결 상태
- LISTENING : 포트가 열려있고, 연결을 위해 접속을 기다리는 상태
- ESTABLISHED : 현재 포트와 연결이 되어있는 상태
두 상태 모두 포트가 사용되고 있는 상태이므로 다른 프로세스는 사용할 수 없음.💡ip 주소? port? pid?
- ip 주소 : 다른 곳에 있는 컴퓨터를 찾아가는 주소
- port : 다른 컴퓨터가 내 컴퓨터에서 실행중인 프로그램을 구분하는 번호
- pid : 내 컴퓨터가 내 컴퓨터에서 실행중인 프로그램을 구분하는 번호
다른 컴퓨터가 내 컴퓨터의 a 프로그램을 찾아오기 위해서는 우선 내 컴퓨터를 ip 주소로 찾아오고, 컴퓨터에 찾아온 후에는 port번호를 통해 a 프로그램을 찾아낸다.4. 프로그램 상태 확인
포트 번호, 아이피 주소도 잘 연결 된다면 프로그램 상태를 확인해야한다.
Active 상태면 잘 실행이 되는 것이다! (실재로 active 상태면 글씨가 초록색으로 표시가 된다.)
포트 연결도 잘되고, 아이피 연결도 잘 됐는데, active 상태가 아니라면 프로그램이 문제라는 것을 알 수 있다.
# 리눅스 systemctl status #[프로그램 이름]5. 방화벽 확인/끄기
ip 설정/연결도 잘됐고, port번호도 정상적으로 listen 중인데도 연결이 잘 안된다면, 방화벽을 확인해볼 필요가 있다.
#window 방화벽 상태 확인/끄기 #window defender 이용 #linux 방화벽 상태 확인 systemctl status firewalld #linux 방화벽 끄기 systemctl stop firewalld # 네트워크 방화벽 끄기 setenforce 0 #로컬 방화벽 끄기💡로컬 방화벽 / 네트워크 방화벽?
1 네트워크 방화벽 (Network Firewall):
- 네트워크 방화벽은 네트워크 레벨에서 작동하며, 네트워크 트래픽을 모니터링하고 제어합니다.
- 일반적으로 기업이나 조직의 네트워크 게이트웨이에 위치하며, 내부 네트워크와 외부 네트워크 간의 트래픽을 관리합니다.외부에서 내부로 들어오는 트래픽과 내부에서 외부로 나가는 트래픽을 필터링하여 보안 위협으로부터 네트워크를 보호합니다.
2. 로컬 방화벽 (Local Firewall 또는 Host-based Firewall):
- 로컬 방화벽은 개별 컴퓨터나 장치에 설치되어 해당 장치의 트래픽을 관리합니다.
- 주로 운영 체제 수준에서 실행되며, 개인용 컴퓨터나 서버에서 사용됩니다.
- 로컬 방화벽은 특정 컴퓨터에 대한 보안을 강화하고, 컴퓨터 내부의 애플리케이션 수준의 트래픽을 관리합니다.6. 많이 놓치는 부분이, config 파일 등 어떤 설정 파일을 변경했을 때, 대부분 해당 파일을 가진 프로그램을 재실행 시켜야 변경된 내용이 적용이 된다.
예를들어, 가상머신을 만들고 config 파일에서 ip 설정을 변경했을 때, 바로 적용되는 것이 아니라 가상머신을 재부팅 시켜야 변경한 ip 설정이 적용이 된다.
'CS > Network' 카테고리의 다른 글
로드밸런싱 (3) 2024.09.08 네트워크 인터페이스 / MAC 주소 (0) 2024.05.11 공인 IP 주소와 사설 IP 주소 / 포트 포워딩 (2) 2024.05.08 REST, REST api, RESTful api, stateless (0) 2024.04.10