ipTIME 공유기 환경에서 Ubuntu 서버의 GitLab, Nexus, Apache 서비스를 외부에서 접속할 수 있도록 포트포워딩 설정 방법과 UFW 방화벽 개방, 포트 확인, 운영 환경 권장 구성까지 자세히 정리합니다.

ipTIME 포트포워딩 설정으로 Ubuntu 서버 외부 공개하기
Ubuntu 서버를 사내 또는 집에서 운영하다 보면 GitLab, Nexus, Apache 같은 서비스를 외부에서도 접속할 수 있도록 설정해야 하는 경우가 많습니다.
하지만 서버가 정상적으로 실행 중이어도 외부에서는 접속되지 않는 경우가 대부분입니다. 이유는 공유기가 외부에서 들어온 요청을 내부 서버로 전달하도록 설정되어 있지 않기 때문입니다.
이번 글에서는 ipTIME 공유기 환경에서 Ubuntu 서버의 GitLab, Nexus, Apache 서비스를 외부에 공개하는 방법을 정리합니다.
현재 네트워크 구성
예시 네트워크 구조는 다음과 같습니다.
인터넷
│
공인 IP
│
ipTIME 공유기
│
┌───────────────┐
│ Ubuntu Server │
└───────────────┘
172.30.10.xxx
현재 서버 정보 예시입니다.
| GitLab | 9999 |
| Nexus | 9998 |
| Apache | 8081 |
서버 내부 IP는 다음과 같이 가정합니다.
172.30.10.xxx
실제 운영 환경에서는 내부 IP가 변경되지 않도록 DHCP 예약 또는 고정 IP 설정을 권장합니다.
공인 IP 확인하기
외부 사용자는 공유기의 공인 IP를 통해 접속하게 됩니다.
Ubuntu 서버에서 확인 가능합니다.
curl ifconfig.me
예시
123.xxx.xxx.xxx
확인된 공인 IP가 외부 접속 주소가 됩니다.
예를 들어 다음과 같은 주소로 접속하게 됩니다.
http://공인IP:9999
http://공인IP:9998
http://공인IP:8081
하지만 기본 상태에서는 접속되지 않습니다.
왜 외부 접속이 안 될까?
외부 사용자가 접속하면 요청은 먼저 공유기로 들어옵니다.
인터넷
↓
공유기
↓
???
공유기는 해당 요청을 어느 내부 서버로 보내야 하는지 알 수 없습니다.
따라서 포트포워딩 설정이 반드시 필요합니다.
ipTIME 포트포워딩 설정 방법
관리자 페이지 접속
http://192.168.0.1
메뉴 이동
고급설정
→ NAT/라우터 관리
→ 포트포워드 설정
포트포워딩 규칙을 추가합니다.
| GitLab | 172.30.10.xxx | 9999 | 9999 |
| Nexus | 172.30.10.xxx | 9998 | 9998 |
| Apache | 172.30.10.xxx | 8081 | 8081 |
설정을 저장한 뒤 적용합니다.
Ubuntu 방화벽(UFW) 포트 개방
포트포워딩만 설정했다고 끝나는 것은 아닙니다.
Ubuntu 서버 자체 방화벽에서도 포트를 허용해야 합니다.
sudo ufw allow 9999/tcp
sudo ufw allow 9998/tcp
sudo ufw allow 8081/tcp
sudo ufw reload
현재 상태 확인
sudo ufw status
예시
9999/tcp ALLOW Anywhere
9998/tcp ALLOW Anywhere
8081/tcp ALLOW Anywhere
서버가 실제로 포트를 열고 있는지 확인
서비스가 실행 중인지 확인해야 합니다.
sudo ss -ntlp
예시
LISTEN 0 511 0.0.0.0:9999
LISTEN 0 511 0.0.0.0:9998
LISTEN 0 511 0.0.0.0:8081
반드시 확인할 부분
0.0.0.0
입니다.
이 의미는 모든 네트워크 인터페이스에서 접속을 허용한다는 뜻입니다.
반대로 다음과 같이 표시된다면
127.0.0.1:9999
로컬 서버에서만 접속 가능하므로 외부 접속은 불가능합니다.
외부 접속 테스트 방법
같은 Wi-Fi 환경에서는 테스트가 정확하지 않을 수 있습니다.
가장 쉬운 방법은 스마트폰으로 테스트하는 것입니다.
- Wi-Fi 비활성화
- LTE 또는 5G 사용
- 브라우저 접속
예시
http://공인IP:9999
정상적으로 설정되었다면 GitLab 화면이 표시됩니다.
SSH 외부 접속 설정
외부에서 SSH 접속이 필요하다면 포트포워딩을 추가해야 합니다.
포트포워딩 설정
| SSH | 172.30.10.xxx | 22 | 22 |
Ubuntu 방화벽 허용
sudo ufw allow 22/tcp
외부 접속
ssh username@공인IP
예시
ssh naya@123.xxx.xxx.xxx
운영 환경에서는 포트 직접 공개를 최소화하는 것이 좋습니다
테스트 환경에서는 다음과 같이 사용해도 됩니다.
공인IP:9999
공인IP:9998
공인IP:8081
하지만 운영 환경에서는 권장되지 않습니다.
일반적으로는 다음과 같은 도메인 기반 구성을 사용합니다.
gitlab.example.com
nexus.example.com
dev.example.com
그리고 외부에는 80, 443 포트만 공개합니다.
인터넷
│
80,443
│
Nginx 또는 Apache
│
├─ GitLab (9999)
├─ Nexus (9998)
└─ Apache (8081)
이 방식을 사용하면 다음과 같은 장점이 있습니다.
- SSL 인증서 적용이 쉬움
- 포트 노출 최소화
- 보안 향상
- 운영 관리 편의성 증가
- 서비스 확장 용이
특히 GitLab과 Nexus는 직접 인터넷에 노출하기보다 Apache 또는 Nginx 리버스 프록시 뒤에서 운영하는 구성을 권장합니다.
자주 묻는 질문 (FAQ)
포트포워딩만 설정하면 외부 접속이 가능한가요?
아닙니다.
다음 항목이 모두 충족되어야 합니다.
- 포트포워딩 설정
- Ubuntu 방화벽 허용
- 서비스 실행 상태
- 서비스가 0.0.0.0으로 바인딩됨
- ISP에서 해당 포트 차단 없음
공유기 공인 IP와 서버 IP는 다른가요?
네.
공인 IP는 인터넷에서 보이는 주소이고,
123.xxx.xxx.xxx
내부 IP는 공유기 내부 네트워크 주소입니다.
172.30.10.xxx
127.0.0.1로 실행 중이면 왜 외부 접속이 안 되나요?
127.0.0.1은 로컬 루프백 주소입니다.
현재 서버 내부에서만 접속 가능하며 외부 요청은 받을 수 없습니다.
GitLab과 Nexus를 직접 공개해도 되나요?
가능하지만 권장하지 않습니다.
실제 운영 환경에서는 Nginx 또는 Apache 리버스 프록시를 사용하여 80, 443 포트만 외부에 공개하는 것이 일반적입니다.
마무리
ipTIME 공유기 환경에서 Ubuntu 서버를 외부에 공개하려면 단순히 서비스를 실행하는 것만으로는 부족합니다. 포트포워딩 설정, UFW 방화벽 허용, 서비스 포트 개방 상태 확인까지 모두 완료해야 정상적으로 외부 접속이 가능합니다.
운영 환경에서는 GitLab, Nexus, Apache를 각각 포트로 직접 노출하기보다 도메인과 리버스 프록시를 활용하여 80, 443 포트만 공개하는 구조를 사용하는 것이 보안과 관리 측면에서 훨씬 효율적입니다.
'서버 & 인프라' 카테고리의 다른 글
| 게이트웨이(Gateway)란 무엇인가? 인터넷이 연결되는 원리 쉽게 이해하기 (0) | 2026.06.02 |
|---|---|
| Ubuntu 22.04 Nexus 3.92 systemd 서비스 등록 및 자동 실행 설정 방법 (0) | 2026.06.02 |
| Ubuntu 22.04 UFW 방화벽 설정 가이드 (GitLab, Nexus, Apache, MySQL, vLLM 운영 서버) (0) | 2026.06.02 |
| Ubuntu 22.04 LVM 디스크 용량 확장 방법 (100GB → 3.6TB 적용 사례) (0) | 2026.06.01 |
| Ubuntu 22.04 개발 서버 구축기 - Apache, PHP, MySQL, GitLab, Nexus, vLLM 포털 구성 및 트러블슈팅 (0) | 2026.06.01 |
