리눅스 네트워크 연결 테스트 명령어 / 네트워크 상태 확인

서버 IP 및 도메인 확인

서버 내부 IP 확인

ifconfig
또는
ip addr

eth0:의 inet 오른쪽에 내부 IP가 나옵니다.

서버 외부 IP 확인

curl ifconfig.me

인터넷 연결이 안 되는 서버에서는 Unknown Error가 나올 수 있습니다.

ip로 도메인 확인

nslookup ip

ip에 연결된 도메인이 있는데 찾을 수 없는 경우도 있습니다.

도메인으로 ip 확인

nslookup 도메인명

http://를 제외하고, com 또는 co.kr까지의 도메인만 입력해야 나옵니다.


네트워크 연결 확인

ping

ping IP또는도메인
또는
ping IP또는도메인 -p 포트번호

연결 받는 쪽에서 ping을 막아둔 경우 ping이 안 나갈 수 있습니다.
ping 명령어도 http://를 제외하고, com 또는 co.kr까지의 도메인만 입력해야 나옵니다.

tcping

tcping ip
또는
tcping ip port

서버 IP 자체에 ping이나 telnet(23포트) 날렸는데 신호가 안 오는 경우 사용합니다.
리눅스에서는 yum으로 설치, 윈도우에서는 cmd 경로에 exe 위치시킨 후 명령어 실행 가능합니다.
응답 성공 시 Port is open, 실패 시 No response라고 나옵니다.

tcping 설치 방법

yum install tcping

PC에서 서버 URL 연결이 안 되고 서버 IP로 tcping이 가는데, 서버 port로는 안가는 경우
모바일에서 와이파이 말고 데이터로 서버 URL 연결했는데 접속이 되면 서버에서는 인바운드 0.0.0.0(모든 접속) 또는 해당 PC IP:포트 대상으로 방화벽 허용(AWS EC2 서버는 보안규칙 인바운드 설정 + 리눅스 firewall-cmd 설정)이 정상적으로 되었고 문제가 없는 것입니다.
접속을 시도하는 PC가 속한 네트워크 망에서 해당 서버 IP:포트 대상으로 아웃바운드 보안을 해제해야 합니다.

telnet

telnet IP또는도메인 포트

telnet은 yum으로 설치해야 사용할 수 있는 명령어입니다.

telnet 미설치 시 에러

-bash: telnet: command not found

curl

curl -v telnet://IP또는도메인:포트

yum으로 telnet을 설치할 수 없는 인터넷 사용 불가 환경에서 사용할 수 있는 명령어입니다.
-v는 자세한 디버깅 정보를 출력하고, -I는 응답 헤더만 출력합니다.

curl -I https://IP또는도메인:포트

서버에서 호출하는 API로 curl를 날렸을 때 Connection refused가 나오면 방화벽 허용이 필요합니다.
목적지 URL이 http이면 80포트, https이면 443 기본 포트 허용이 필요합니다.
:포트 번호가 명시되어 있으면 기본 포트 대신 해당 서비스 포트 번호만 허용하면 됩니다.

만약, 방화벽 허용이 되어있는데도 Connection refused가 나오면?
내부IP로 접근해야 하는 사이트에 도메인으로 접근 시 외부IP로 접근되기 때문일 수 있습니다.
리눅스 호스트 파일에 ‘서버내부IP 서버도메인’ 형태로 저장하면 정상 연결 됩니다.

-v 연결 성공 메세지

*   Trying IP:포트...
* Connected to IP또는도메인 (IP) port 포트
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
* Failure writing output to destination
* Closing connection

-v 연결 실패 메세지

* Rebuilt URL to: telnet://IP또는도메인:포트
*   Trying IP...
* TCP_NODELAY set
* connect to IP port 포트 failed: 연결이 거부됨
* Failed to connect to IP또는도메인 port 포트: 연결이 거부됨
* Closing connection 0
curl: (7) Failed to connect to IP또는도메인 port 포트: 연결이 거부됨

서버 인증서 만료 메세지

curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

요청받는 서버 SSL 인증서가 만료되어 https 연결을 받을 수 없는 상태라서 인증서 갱신이 필요합니다.


네트워크 상태 확인

열려있는 모든 포트 확인

netstat -nap

특정 포트만 확인

netstat -nap | grep 포트번호

연결 가능한 상태의 포트만 확인

netstat -nap | grep LISTEN

톰캣 포트는 tcp6 우측에 :::8080 형태로 나옵니다.


hosts 파일 수정

hosts 파일 수정 명령어

sudo vi /etc/hosts

도메인에 대한 IP 변경

10.10.100.IP 도메인.co.kr

현재 호스트에서 도메인으로 요청 시, 연결하는 IP 주소를 지정하도록 설정합니다.
리눅스 서버 호스트 파일은 저장 시 자동 적용 됩니다.

Leave a comment