Linux 네트워크 서비스 학습 정리
Samba & DHCP 실습 트러블슈팅
목차
- Samba 서비스 핵심 개념
- 내가 겪은 문제들과 해결법
- 실전 명령어 정리
- DHCP 서비스 이해하기
1. Samba 서비스 핵심 개념
Samba란?
- SMB/CIFS 프로토콜을 구현한 오픈소스
- Linux ↔ Windows 간 파일/프린터 공유를 가능하게 함
- 실무에서는 부서간 파일 공유, 백업 스토리지 등으로 활용
Samba가 사용하는 포트
포트 프로토콜 용도
| 445 | TCP/UDP | SMB Direct (현대적 방식) - 가장 중요! |
| 139 | TCP | NetBIOS Session (구형 시스템) |
| 137 | UDP | NetBIOS 이름 해석 |
| 138 | UDP | NetBIOS 데이터그램 |
핵심: 최신 환경에서는 TCP 445만 열어도 대부분 작동
2. 내가 겪은 문제들 (실전 트러블슈팅)
❌ 문제 1: smbpasswd: command not found
원인: samba 패키지만 설치하고 클라이언트 도구는 안 깔음
해결:
sudo dnf install -y samba samba-common samba-client
교훈: Samba는 서버/클라이언트 패키지가 분리되어 있음!
❌ 문제 2: NT_STATUS_LOGON_FAILURE
증상:
smbclient -L //서버IP -U 사용자명
# Password for [SAMBA\사용자명]:
# session setup failed: NT_STATUS_LOGON_FAILURE
원인: Linux 계정 ≠ Samba 계정 (완전 별개!)
해결:
# 1. Linux 사용자 생성
useradd smb_user
# 2. Samba 전용 비밀번호 설정 (필수!)
sudo smbpasswd -a smb_user
# 3. 서비스 재시작
sudo systemctl restart smb nmb
교훈: Samba는 자체 비밀번호 DB를 사용함. smbpasswd를 꼭 실행해야 함!
❌ 문제 3: "해당 서버가 존재하지 않습니다" (무한 로딩)
원인: SELinux가 SMB 연결을 차단함
해결:
# 실습용으로 SELinux 끄기
sudo setenforce 0
# 영구 비활성화 (재부팅 후에도 유지)
sudo vi /etc/selinux/config
# SELINUX=disabled 로 변경
교훈: 실무에서는 SELinux를 끄지 말고, 정책을 제대로 설정해야 함!
문제 4: macOS에서 접속 안 됨 (Timeout)
증상:
- Linux VM끼리는 잘 되는데 맥북에서만 안 됨
- Finder → Command+K → smb://서버IP 입력해도 타임아웃
원인: VMware Bridge 네트워크 + macOS SMB 조합이 불안정함
해결:
현실적 해결책 없음 😭
→ 실무에서는 NFS 또는 scp/rsync 사용
→ 또는 전용 NAS 장비 이용
왜 이런가?
구분 Linux VM 끼리 macOS → Linux VM
| 네트워크 경로 | VMware 내부 직접 연결 | Bridge 어댑터 경유 |
| 라우팅 | 단순 | 복잡 (가상 브리지) |
| SMB 패킷 | 직통 | 중간에 손실/지연 |
| 결과 | 성공 | ❌ Timeout |
교훈: 학습 환경의 한계를 인정하고, 실무에서는 안정적인 방법 선택
3. 실전 명령어 정리
서버 설정 (핵심 3대장)
# 1. Samba 비밀번호 등록 (제일 중요!)
sudo smbpasswd -a 사용자명
# 2. SELinux 끄기 (실습용)
sudo setenforce 0
# 3. 방화벽 열기
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --reload
공유 디렉토리 설정
# 공유 폴더 생성
sudo mkdir -p /srv/samba_share
# 권한 설정 (모두 접근 가능)
sudo chown nobody:nobody /srv/samba_share
sudo chmod 0777 /srv/samba_share
설정 파일 편집 (/etc/samba/smb.conf):
[samba_share]
path = /srv/samba_share
browsable = yes
writable = yes
valid_users = smb_user
서비스 재시작:
sudo systemctl restart smb nmb
테스트 명령어
# 공유 목록 확인
smbclient -L //서버IP -U 사용자명
# → 리스트가 나오면 90% 성공!
# 서비스 상태 확인
systemctl status smb nmb
# 로그 실시간 보기
tail -f /var/log/samba/log.smbd
클라이언트에서 마운트 (Linux → Linux)
# 1. CIFS 도구 설치
sudo dnf install -y cifs-utils
# 2. 마운트 지점 생성
sudo mkdir -p /mnt/samba
# 3. 마운트 실행
sudo mount -t cifs //서버IP/공유이름 /mnt/samba -o username=사용자명,password=비밀번호
# 4. 확인
df -h | grep samba
cd /mnt/samba
ls
주의: -o username=xxx,password=yyy 사이에 공백 없음!
마운트 명령어 해부
sudo mount -t cifs //192.168.4.131/share /mnt/samba -o username=guest,password=""
부분 의미
| mount | 연결해라 |
| -t cifs | SMB 방식으로 |
| //192.168.4.131/share | 서버의 /tmp/share 폴더를 (원본) |
| /mnt/samba | 내 /mnt/samba에 (목적지) |
| -o username=guest | guest 계정으로 |
쉬운 비유:
서버 (192.168.4.131)
└─ /tmp/share (창고 개방)
클라이언트
└─ /mnt/samba (창고로 가는 문)
→ /mnt/samba 열면 서버의 /tmp/share 내용이 보임!
문제 해결 순서도
안 될 때는 이 순서대로만 체크:
# 1단계: 네트워크 연결 확인
ping 서버IP
# 2단계: 서비스 작동 확인
systemctl status smb
# 3단계: SELinux 확인
getenforce # Enforcing이면 문제
sudo setenforce 0
# 4단계: 방화벽 확인
sudo firewall-cmd --list-all
# 5단계: 로그 확인
tail -f /var/log/samba/log.smbd
4. DHCP 서비스 이해하기
DHCP란?
"자동 IP 주소 나눠주는 기계"
- Dynamic Host Configuration Protocol
- 네트워크에 연결된 장치에 IP 주소를 자동으로 할당
- 수동 IP 설정의 고통 해결 (충돌, 관리 복잡도)
DHCP 4단계 과정 (DORA)
1. Discover (클라이언트 → 브로드캐스트)
"DHCP 서버 있어요?"
2. Offer (서버 → 클라이언트)
"여기 IP 192.168.1.100 어때요?"
3. Request (클라이언트 → 서버)
"그거 주세요!"
4. Acknowledge (서버 → 클라이언트)
"확정! 써도 돼요"
DHCP 포트
포트 방향 용도
| UDP 67 | 서버 수신 | DHCP 서버가 듣는 포트 |
| UDP 68 | 클라이언트 수신 | 클라이언트가 듣는 포트 |
DHCP 서버 설정
# 1. 설치
sudo dnf install dhcp-server
# 2. 설정 파일 편집
sudo vi /etc/dhcp/dhcpd.conf
설정 예시:
# 기본 임대 시간
default-lease-time 600;
max-lease-time 7200;
# DNS 서버
option domain-name-servers 8.8.8.8, 8.8.4.4;
# IP 범위 설정
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.200; # 할당할 IP 범위
option routers 192.168.1.1; # 게이트웨이
option subnet-mask 255.255.255.0;
}
# 3. 서비스 시작
sudo systemctl enable --now dhcpd
# 4. 방화벽 설정
sudo firewall-cmd --permanent --add-port=67/udp
sudo firewall-cmd --reload
DHCP 관리 명령어
# 임대 정보 확인
sudo cat /var/lib/dhcp/dhcpd.leases
# IP 재할당 (클라이언트에서)
nmcli connection down ens160
nmcli connection up ens160
MAC 주소 기반 고정 IP
특정 기기에 항상 같은 IP 주고 싶을 때:
host 회의실_프린터 {
hardware ethernet 00:1A:2B:3C:4D:5E;
fixed-address 192.168.1.50;
}
Samba
- Linux 계정 ≠ Samba 계정 → 반드시 smbpasswd 실행
- SELinux가 진짜 주범 → 실습 시 setenforce 0
- 방화벽은 기본 → firewall-cmd --add-service=samba
- macOS + VMware는 불안정 → 실무에서는 NFS 고려
DHCP
- DORA 프로세스 이해 필수
- UDP 67/68 방화벽 열기
- 임대 시간 개념 숙지
- 고정 IP는 MAC 주소로 설정
'리눅스' 카테고리의 다른 글
| [Linux] 리눅스 6주차 DNS, Apache, Nginx, SSL 수업정리 (0) | 2026.03.13 |
|---|---|
| [Linux 7주차 수업정리] Linux 메일 서버 + NIC Bonding 구축 실습 정리 (0) | 2026.03.08 |
| [Linux] 맥북 VMware Fusion에서 Port Forwarding 설정 완벽 가이드 (0) | 2026.02.03 |
| [Linux] 4주차 수업 정리 (디스크 쿼터, 백업, 방화벽, 쉘 스크립트) (0) | 2026.02.03 |
| [Linux: Docker] Docker 초보자를 위한 기초 명령어 및 실습 코드 - 클로드 이용 (0) | 2026.01.30 |