리눅스 네트워크 연결 테스트 명령어 / 네트워크 상태 확인
서버 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