2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

리눅스에서 특정 포트를 열거나 닫는 방법은?

_____
Q1: 리눅스에서 특정 포트를 열려면 어떻게 하나요?
A1: 리눅스에서 포트를 열려면 방화벽 설정을 변경해야 합니다. 주로 사용하는 방화벽 도구는 `firewalld`, `ufw`(Ubuntu 기본 방화벽), `iptables` 등이 있습니다.

- firewalld 사용 시:
```bash
sudo firewall-cmd --permanent --add-port=포트번호/tcp
sudo firewall-cmd --reload
```
예: 8080 포트 열기
```bash
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
```

- ufw 사용 시 (Ubuntu):
```bash
sudo ufw allow 포트번호/tcp
```
예: 8080 포트 열기
```bash
sudo ufw allow 8080/tcp
```

- iptables 사용 시:
```bash
sudo iptables -A INPUT -p tcp --dport 포트번호 -j ACCEPT
```
예: 8080 포트 열기
```bash
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
```

Q2: 리눅스에서 특정 포트를 닫으려면 어떻게 하나요?
A2: 포트를 닫으려면 방화벽에서 해당 포트에 대한 허용 규칙을 제거하거나 차단 규칙을 추가하면 됩니다.

- firewalld 사용 시:
```bash
sudo firewall-cmd --permanent --remove-port=포트번호/tcp
sudo firewall-cmd --reload
```

- ufw 사용 시:
```bash
sudo ufw deny 포트번호/tcp
```
또는 허용을 제거하려면:
```bash
sudo ufw delete allow 포트번호/tcp
```

- iptables 사용 시:
기존 허용 규칙을 삭제하거나 차단 규칙 추가
```bash
sudo iptables -D INPUT -p tcp --dport 포트번호 -j ACCEPT
```
또는 차단할 때:
```bash
sudo iptables -A INPUT -p tcp --dport 포트번호 -j DROP
```

Q3: 변경한 iptables 설정을 영구적으로 저장하려면 어떻게 하나요?
A3: iptables 규칙은 시스템 재부팅 시 초기화되므로, 아래 명령어로 저장해야 합니다.

- CentOS/RHEL 계열:
```bash
sudo service iptables save
```
또는 최신 시스템에서는:
```bash
sudo iptables-save | sudo tee /etc/sysconfig/iptables
```

- Debian/Ubuntu 계열에서는 `iptables-persistent` 패키지를 설치 후:
```bash
sudo apt-get install iptables-persistent
sudo netfilter-persistent save
```

Q4: 리눅스에서 특정 포트가 열려 있는지 확인하려면 어떻게 하나요?
A4: 다음 명령어로 포트 상태를 확인할 수 있습니다.

- `ss` 명령어:
```bash
sudo ss -tuln | grep 포트번호
```

- `netstat` 명령어 (설치 필요할 수 있음):
```bash
sudo netstat -tuln | grep 포트번호
```

- 포트 스캔 도구(`nmap`)를 사용:
```bash
nmap -p 포트번호 localhost
```

Q5: 특정 포트를 열었는데도 외부에서 접속이 안 됩니다. 왜 그럴까요?
A5: 몇 가지 원인이 있을 수 있습니다.

- 방화벽에서 포트가 허용되지 않았습니다. (firewalld, ufw, iptables 확인 필요)
- 서비스가 해당 포트를 바인딩하지 않았거나 실행되고 있지 않습니다.
- SELinux 또는 AppArmor 같은 보안 정책이 접속을 차단 중입니다.
- 네트워크 라우팅이나 NAT 설정 문제일 수 있습니다.
- 클라우드 환경에서는 클라우드 보안 그룹 설정도 확인하세요.

Q6: 방화벽 설정 변경 시 서비스에 영향이 있나요?
A6: 기본적으로 포트 열기/닫기 작업은 서비스 동작에 영향을 주지 않습니다. 다만, 포트를 닫으면 해당 포트로의 접속은 불가능해지므로 서비스 접근에 영향이 있으니 주의가 필요합니다.

Q7: 포트 대신 서비스 이름을 사용해 방화벽 규칙을 설정할 수 있나요?
A7: 예, `firewalld`에서는 서비스 이름을 사용할 수 있습니다. 예:
```bash
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
```

Q8: 리눅스에서 포트를 열어도 외부에서 접속이 안 될 경우 방화벽 이외에 확인할 사항은?
A8:

- 서비스가 `localhost`가 아닌 `0.0.0.0` 또는 외부 IP에 바인딩되어 있는지 확인 (예: `netstat -tuln`)
- 네트워크 방화벽이나 라우터에서 포트가 차단되어 있지 않은지 확인
- SELinux/AppArmor 설정으로 인한 제한 여부 확인

---
이러한 방법으로 리눅스에서 특정 포트를 열고 닫으며, 관련 문제를 해결할 수 있습니다.
리눅스에서 특정 포트를 열거나 닫는 방법을 쉽게 설명해 드리겠습니다. 포트는 컴퓨터에서 데이터를 주고받는 문 같은 역할을 합니다. 어떤 프로그램이 인터넷이나 다른 컴퓨터와 통신하려면 이 문(포트)을 열어야 하고, 필요 없으면 닫을 수도 있습니다.

1. 현재 열려 있는 포트 확인하기
먼저, 어떤 포트가 열려 있는지 확인하는 방법입니다.

터미널(명령어를 입력하는 창)을 열고 아래 명령어를 입력하세요.

```bash
sudo netstat -tuln
```

이 명령어는 리눅스에서 열려 있는 포트와 연결 상태를 보여줍니다. 여기서 `t`는 TCP, `u`는 UDP, `l`은 Listen(열려 있음), `n`은 숫자로 표시한다는 뜻입니다.

---

2. 포트 열기 (허용하기)
리눅스에는 방화벽이라는 문지기가 있습니다. 이 방화벽이 특정 포트를 통과할 수 있게 허락해야 합니다.

가장 많이 사용하는 방화벽 도구 중 하나가 `firewalld`와 `ufw`입니다.

방화벽이 firewalld일 때
포트 8080을 열고 싶다면:

```bash
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
```

- `--permanent`는 설정을 영구적으로 저장한다는 뜻입니다.
- `--reload`는 설정을 다시 불러와서 적용합니다.

방화벽이 ufw일 때
포트 8080을 열고 싶다면:

```bash
sudo ufw allow 8080/tcp
```

---

3. 포트 닫기 (차단하기)
포트를 다시 닫아야 한다면, 방화벽에서 그 포트를 차단하거나 제거하면 됩니다.

firewalld에서 닫기

```bash
sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent
sudo firewall-cmd --reload
```

ufw에서 닫기

```bash
sudo ufw deny 8080/tcp
```

또는 이미 허용된 포트를 삭제하고 싶으면 다음 명령어를 쓸 수 있습니다.

```bash
sudo ufw delete allow 8080/tcp
```

---

4. 참고사항

- 방화벽 설정 외에도, 열고자 하는 프로그램(서버)이 실제로 그 포트를 ‘잘 듣고’ 있어야 합니다. 프로그램이 실행 중이고, 포트를 열도록 설정되어 있어야 합니다.
- 포트를 열거나 닫는 명령어들은 관리자 권한이 필요하므로 `sudo`를 붙여서 실행해야 합니다.
- 방화벽이 꺼져 있으면 바로 포트가 열릴 수 있지만, 보안을 위해 방화벽을 켜놓는 게 좋습니다.

---

요약
- `netstat`로 어떤 포트가 열려 있는지 확인한다.
- `firewall-cmd` 또는 `ufw` 명령어로 원하는 포트를 열거나 닫는다.
- 설정을 적용하기 위해 방화벽을 재시작하거나 리로드한다.

이렇게 하면 리눅스에서 원하는 포트를 열고 닫는 작업을 할 수 있습니다.
리눅스에서 특정 포트를 열거나 닫는 방법 요약 및 핵심 포인트:

1. 포트 열기/닫기란?
- ‘포트를 연다’는 것은 외부에서 해당 포트로 네트워크 접근이 가능하도록 방화벽 설정을 허용하는 것
- ‘포트를 닫는다’는 것은 접근을 차단하는 것

2. 주요 방법
- 방화벽 설정 변경 (가장 일반적)
- *ufw (Uncomplicated Firewall)*: Ubuntu 등에서 사용
- 포트 열기: `sudo ufw allow 8080`
- 포트 닫기: `sudo ufw deny 8080` 또는 `sudo ufw delete allow 8080`
- *firewalld*: CentOS, RHEL 등에서 사용
- 포트 열기: `sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent`
- 설정 적용: `sudo firewall-cmd --reload`
- 포트 닫기: `sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent` + `sudo firewall-cmd --reload`
- *iptables*: 저수준 방화벽 도구
- 포트 열기: `sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT`
- 포트 닫기: `sudo iptables -D INPUT -p tcp --dport 8080 -j ACCEPT`
- 변경 후 저장 필요 (환경에 따라 다름)

3. 서비스 및 애플리케이션 확인
- 포트가 열려 있으려면 해당 포트를 사용하는 서비스(데몬)가 실제로 실행 중이어야 함
- 예: `sudo systemctl start nginx` (80번 포트 nginx 서비스 구동)
- `netstat -tuln` 또는 `ss -tuln` 명령어로 열린 포트 및 상태 확인 가능

4. 요약
- 포트 열기 = 방화벽에서 허용 + 해당 서비스 실행
- 포트 닫기 = 방화벽에서 차단 또는 허용 삭제 + 서비스 중지(필요시)
- 사용 방화벽 도구에 따라 명령어 다름 (ufw, firewalld, iptables 중 환경에 맞는 선택 필요)

---

핵심 포인트
- 방화벽 도구 파악 → 적절한 명령어로 포트 허용/차단
- 변경 후 방화벽 재시작 또는 설정 재적용 필수
- 서비스가 포트를 실제로 바인딩하고 있어야 외부 접속 가능
- 보안 위해 불필요한 포트는 닫아두기 권장
리눅스에서 특정 포트 열기/닫기 방법

1. 포트 열기 (방화벽 설정)
- ufw 사용 (Ubuntu):
```
sudo ufw allow [포트번호]/tcp
sudo ufw reload
```
- firewalld 사용 (CentOS, RHEL):
```
sudo firewall-cmd --permanent --add-port=[포트번호]/tcp
sudo firewall-cmd --reload
```

2. 포트 닫기 (방화벽 설정 해제)
- ufw:
```
sudo ufw deny [포트번호]/tcp
sudo ufw reload
```
- firewalld:
```
sudo firewall-cmd --permanent --remove-port=[포트번호]/tcp
sudo firewall-cmd --reload
```

3. 서비스/프로세스 점검 및 종료
- 포트 점유 프로세스 확인:
```
sudo lsof -i :[포트번호]
```
- 프로세스 종료:
```
sudo kill [PID]
```

요약: 방화벽 규칙으로 포트 개방/차단 → 필요 시 프로세스 관리.
리눅스에서 특정 포트를 열거나 닫는 방법

1. 포트 열기
- 방화벽 규칙 추가
- `firewalld` 사용 시:
```bash
sudo firewall-cmd --permanent --add-port=포트번호/tcp
sudo firewall-cmd --reload
```
- `ufw` 사용 시:
```bash
sudo ufw allow 포트번호/tcp
```
- 서비스 실행 및 바인딩
- 해당 포트를 사용하는 서비스가 실행 중이고, 포트에 바인딩되어 있어야 함.

2. 포트 닫기
- 방화벽 규칙 제거 또는 차단
- `firewalld` 사용 시:
```bash
sudo firewall-cmd --permanent --remove-port=포트번호/tcp
sudo firewall-cmd --reload
```
- `ufw` 사용 시:
```bash
sudo ufw deny 포트번호/tcp
```
- 서비스 중지 또는 포트 바인딩 해제
- 해당 포트를 사용하는 서비스를 중지하거나 설정 변경.

3. 현재 포트 상태 확인
- `ss` 또는 `netstat` 사용
```bash
ss -tulpn | grep 포트번호
```
또는
```bash
netstat -tulpn | grep 포트번호
```

4. 요약
- 포트를 열려면 방화벽에서 해당 포트의 인바운드 트래픽을 허용하고, 서비스가 포트를 바인딩해야 함.
- 포트를 닫으려면 방화벽에서 차단하거나 관련 서비스를 중지함.
1. 관리자 권한(또는 sudo) 확보
2. 현재 포트 사용 여부 확인: `netstat -tuln` 또는 `ss -tuln`
3. 방화벽 상태 확인: `sudo ufw status` 또는 `sudo firewall-cmd --list-all`
4. 포트 열기 (예: 포트 8080)
- UFW: `sudo ufw allow 8080`
- firewalld: `sudo firewall-cmd --add-port=8080/tcp --permanent` 및 `sudo firewall-cmd --reload`
- iptables: `sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT`
5. 포트 닫기
- UFW: `sudo ufw deny 8080` 또는 `sudo ufw delete allow 8080`
- firewalld: `sudo firewall-cmd --remove-port=8080/tcp --permanent` 및 `sudo firewall-cmd --reload`
- iptables: `sudo iptables -D INPUT -p tcp --dport 8080 -j ACCEPT`
6. 서비스가 해당 포트를 바인딩하도록 설정 및 재시작 (필요시)
7. 변경 사항 적용 및 방화벽 상태 재확인
8. 외부에서 포트 접속 테스트 (예: `telnet`, `nc`)
리눅스에서 특정 포트를 열거나 닫는 방법은 주로 방화벽 설정을 통해 이루어집니다.

리눅스에서 가장 많이 사용되는 방화벽 관리 도구는 `iptables`, `firewalld`, 그리고 `ufw`(Uncomplicated Firewall)입니다.

각 도구에 따라 포트를 여는 방법과 닫는 방법이 다르므로, 각각에 대해 자세히 설명하겠습니다.

1. iptables `iptables`는 리눅스 커널의 방화벽 기능을 제어하는 도구입니다.

기본적으로 패킷 필터링을 통해 네트워크 트래픽을 제어합니다.

포트 열기 특정 포트를 열기 위해서는 다음과 같은 명령어를 사용합니다.

예를 들어, TCP 8080 포트를 열고 싶다면: ```bash sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT ``` 포트 닫기 포트를 닫으려면 다음과 같은 명령어를 사용합니다: ```bash sudo iptables -A INPUT -p tcp --dport 8080 -j DROP ``` 변경 사항 저장 `iptables`의 설정은 시스템 재부팅 시 사라지므로, 변경 사항을 저장해야 합니다.

이를 위해 다음 명령어를 사용할 수 있습니다: ```bash sudo iptables-save > /etc/iptables/rules.v4 ```

2. firewalld `firewalld`는 `iptables`의 상위 레벨 인터페이스로, 동적 방화벽 관리를 지원합니다.

`firewalld`는 zones(영역) 개념을 사용하여 트래픽을 관리합니다.

포트 열기 TCP 8080 포트를 열려면 다음 명령어를 사용합니다: ```bash sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent ``` `--permanent` 플래그는 설정을 영구적으로 적용합니다.

이후 `firewalld`를 다시 로드해야 변경 사항이 적용됩니다: ```bash sudo firewall-cmd --reload ``` 포트 닫기 포트를 닫으려면 다음 명령어를 사용합니다: ```bash sudo firewall-cmd --zone=public --remove-port=8080/tcp --permanent ``` 변경 사항을 적용하기 위해 다시 로드합니다: ```bash sudo firewall-cmd --reload ```

3. ufw (Uncomplicated Firewall) `ufw`는 사용자 친화적인 방화벽 관리 도구로, 간단한 명령어로 방화벽을 설정할 수 있습니다.

포트 열기 TCP 8080 포트를 열려면 다음 명령어를 사용합니다: ```bash sudo ufw allow 8080/tcp ``` 포트 닫기 포트를 닫으려면 다음 명령어를 사용합니다: ```bash sudo ufw deny 8080/tcp ``` 상태 확인 현재 방화벽 상태를 확인하려면 다음 명령어를 사용합니다: ```bash sudo ufw status ``` 결론 리눅스에서 특정 포트를 열거나 닫는 방법은 사용하는 방화벽 도구에 따라 다릅니다.

`iptables`, `firewalld`, `ufw` 각각의 도구는 고유한 명령어와 설정 방식을 가지고 있으므로, 자신의 환경에 맞는 도구를 선택하여 사용하면 됩니다.

방화벽 설정을 변경한 후에는 항상 변경 사항이 제대로 적용되었는지 확인하는 것이 중요합니다.

작성자: 정채연 [비회원] | 작성일자: 1년 전 2024-09-30 08:49:39
조회수: 298 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.