티스토리 뷰
목차
오라클 클라우드 Free 플랜 우분투 서버에서 Node.js(Express)로 REST API 서버를 3000번 포트에 띄웠으나 외부에서 접속이 되지 않는 경우, 다음과 같은 원인과 해결 방법을 확인해야 합니다.
1. 오라클 클라우드 네트워크(VCN) 수신 규칙(방화벽) 미설정
오라클 클라우드의 VM 인스턴스는 기본적으로 **외부에서 들어오는 트래픽(수신, inbound)**이 22(SSH) 포트만 허용되고, 나머지 포트는 모두 차단되어 있습니다. 따라서 3000번 포트로 외부에서 접속하려면 VCN(가상 클라우드 네트워크)의 보안 목록(Security List)에 3000번 포트 허용 규칙을 추가해야 합니다.
설정 방법
- 오라클 클라우드 콘솔 → 네트워킹 → 가상 클라우드 네트워크(VCN) → 해당 VCN 선택 → 서브넷 선택 → 보안 목록(Security List) 선택 → 수신 규칙(Ingress Rule) 추가
- 소스 CIDR: 0.0.0.0/0 (모든 외부 IP 허용)
- 프로토콜: TCP
- 대상 포트 범위: 3000
- 저장 후 적용45611121316.
2. 우분투 서버 내 방화벽(iptables/ufw) 미설정
서버 OS(우분투) 자체 방화벽(iptables 또는 ufw)에서도 3000번 포트가 막혀 있으면 외부 접속이 불가합니다. 오라클 클라우드의 네트워크 방화벽과 OS 방화벽 둘 다 열어야 합니다.
iptables로 포트 열기
ufw 사용 시
3. Node.js 서버 바인딩 주소 확인
코드에서 app.listen(port, '0.0.0.0')으로 되어 있으므로, 모든 네트워크 인터페이스에서 접속 허용이 맞습니다. 만약 '127.0.0.1'이나 'localhost'로 바인딩하면 외부 접속이 불가하지만, 현재 코드는 정상입니다391019.
4. 추가 체크리스트
- 서버가 정상적으로 실행 중인지 (node 프로세스가 떠 있는지, 에러 없이 구동 중인지)
- 공인 IP로 접속하고 있는지 (내부 IP가 아닌 오라클에서 할당받은 공인 IP 사용)
- 포트가 이미 다른 프로세스에 의해 사용 중이지 않은지 (sudo lsof -i:3000 등으로 확인)
- 클라이언트에서 방화벽/네트워크 정책에 의해 차단되지 않는지 (예: 사내망, ISP 등)
요약
외부에서 오라클 클라우드 우분투 서버의 Node.js(Express) 3000번 포트에 접근이 안 되는 주된 이유는 1) 오라클 클라우드 VCN 보안 목록(수신 규칙)에 3000번 포트가 열려 있지 않거나, 2) 우분투 서버 내 방화벽(iptables/ufw)에 3000번 포트가 허용되어 있지 않기 때문입니다. 두 곳 모두에서 3000번 포트를 허용하면 정상적으로 외부에서 접속할 수 있습니다14561213141617.
정리:
- 오라클 클라우드 콘솔에서 3000번 포트 수신 규칙 추가
- 우분투 서버에서 3000번 포트 방화벽 허용
- Node.js 서버가 0.0.0.0으로 리슨 중인지 확인
이렇게 설정하면 외부에서 http://[공인IP]:3000으로 접속이 가능합니다.
'유용한 정보' 카테고리의 다른 글
무료 QR코드 생성기: 간편하게 QR코드 만들고 비즈니스 효율성 높이기 (1) | 2025.04.17 |
---|---|
무료 이미지 크기 변환 사이트 (블로거 주목) (1) | 2025.04.17 |
추천 무료 다이어그램 프로그램 (1) | 2025.04.16 |
웹 버전 무료 글자수 세기 사이트 (블로거 주목) (4) | 2025.04.16 |
캐논 GX1090 프린터 드라이버(첨부파일 제공) (0) | 2025.01.09 |