ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • NAS - SMB 윈도우네트워크 접속 오류 (samba)
    Linux 2025. 9. 3. 22:59

    회사 NAS 서버가 여러개가 있었는데 그 중에 하나의 서버가 접속이 되질않는다고 연락이 왔다.

    같은 오류인지는 모르겠으나 예전에도 한번 같은 서버가 오류가 있었는데 같은 오류였었는지는 기억이 가물가물하였다

    이번에 어찌되었든 해결하여서 여기에 해결방법과정을 쓴다.

     

    - 잘만되던 서버가 갑자기 접속이 안된다고 하였다.

    - 사용자 폴더 접속 권한등은 이미 다 확인

    - 윈도우에서 해당 서버 ping 확인 - 정상

    - ssh 접속을 해본 결과 root 계정으로 잘 접속이 됨

    - 가끔 로그인까지 뜨지만 그 이후로 네트워크 이름을 찾을수 없다고 오류

    - docker를 재실행하고 싶어도 docker compose 파일이 어디있는지 찾을수가 없음

     

    1. 잘만되던 서버가 갑자기 접속이 안된다고 하였다.

    - 내가 NAS를 만지긴했지만 사용자 추가,권한,삭제만 했었을뿐이지 서버에 영향이 갈정도의 작업을 하지않았다.
    - 다른 클라우드 VPC서버가 한번 뻗은적이 있었는데 그때 Docker Image 파일들이 쌓여있어서 용량이 부족하여 Server가 뻗었었던적이 있었다.
    - 그래서 이번에 문제가 된 NAS 서버도 동일한 현상이었지 않았을까 싶어 용량을 확인했다.
    - df -h 로 확인한 결과 98%~99%로 가득차긴 했지만 avail 용량이 1T가 있었기에 서버가 뻗을정도의 용량은 아니었다.
    - 하지만 그래도 혹시 모르니 다른 NAS 서버로 1.5T 정도의 폴더를 옮겨서 지워보기로하였다.

     

    2. 옮겨지고 난 이후 용량을 확보하여 다시 윈도우 네트워크 연결로 접속해본 결과 실패하였다.

    - 그럼 일단 용량확보를 하였어도 안되는거면 다른 문제로 인해 접속이 불가하다고 판단하였다.
    - docker로 samba가 실행되는 구조여서 docker ps 로 정상적으로 docker container가 실행되고 있는지 확인하였다.
    - 정상적으로 실행되고 있었고 무려 5달전에 재실행흔적이 있었는데 그땐 아마 예전에 한번 안됐어서 restart했었던 것 같았다.
    - 그럼 나도 docker restart <container_name> 으로 재실행해보았다.
    - 하지만 어림없지 그대로 접속 불가

     

    아래글 읽기전 SMB, SAMBA 란 ?

    - Server Message Block. (CIFS) 라고도 한다.

    - 네트워크 상 존재하는 자원 공유할수있도록 설계된 프로토콜

    - 예전 1990년도부터 난잡한 운영체제간 자원공유를 해줄 목적으로 만들어졌고

       윈도우에서는 파일공유를 클라이언트 없이 탐색기로 직접 수정가능하다는 장점이 있어 쓰고있음

       (애플도 AFP 유사한 프로토콜을 사용했지만 SMB로 대체)

    - 리눅스에서는 SAMBA라는 소프트웨어를 설치하면 SMB를 이용하여 공유가 가능하다.

     

    3. samba 관련 conf 파일, log 접속파일 확인

    - samba 설정, samba log를 확인할수 있는 경로를 찾아서 잘못된게 있는지 확인하였다.
    - samba.conf 파일을 확인해본 결과 ( 경로 : /etc/samba/smb.conf)
    - SMB 연결은 TCP 445 or 139 거의 445 포트를 쓴다고 한다.
    - 그럼 도커 컨테이너에서 TCP 445 가 뚫려있는지 확인해보았다.
    - docker ps 로 확인해본 결과 0.0.0.0:445->445/tcp 로 잘 뚫려있는걸 확인하였다.
    - docker inspect <container_name> 으로도 확인해본 결과 똑같았다.
    - testparm 명령어를 이용하여 혹시나 해서 smb.conf 구문이 잘못되었는지 확인했지만 정상적으로 나옴 Loaded services file OK.
    - ??????????

     

    4. 로그 확인

    - 위에 docker inspect <container_name> 에서 확인한 로그 위치로 이동하여 내가 접속한 흔적에서의 로그를 보았다.
    - NT_STATUS_NOT_FOUND 라고 나와서 이 에러는 경로나 파일이 실제 존재하지 않을때 나온다고 한다.
    - 하지만 경로를 바꾼적이 없고 samba.conf에 설정된 파일경로랑 ssh로 접속하여 파일경로는 동일하였다.
    - ??????????????

     

    5. samba 프로세스 데몬 확인

    - 위에서 당연히 samba가 올려진 도커 컨테이너를 재실행하면 samba service도 당연히 다시 돈다고 생각하여 도커 컨테이너 안 samba 프로세스 확인을 할 생각을 안했었다.
    docker exec -it <container_name> /bin/bash
    해당 명령어로 samba가 띄워진 docker container 접속하였다.

    - 문득 블로그를 찾아본 결과 samba 프로세스를 확인하는 명령어가 있었다.
    ps aux | grep smbd 
    - 잘 실행되고 있는 서버와 비교했는데 확연하게 차이는 났다.
    /usr/sbin/smbd -D 가 여러 개 보이면 서비스가 실행 중인 상태 (정상적인 서버 결과)
    만약 grep smbd 자기 자신만 보이면 서비스가 실행되지 않음  (비정상 서버 결과)

    - 여기서 뭔가 힌트를 얻어서 다른 service 명령어로 정상/비정상 서버에서 실행해보았다.
    service smbd status  (이 명령어로 힌트 얻음)
    service nmbd status (여기선 실행하지않음 참고 구문)

    - service smbd status로 정상/비정상 서버에서 실행해본 결과 
    정상적 서버  : active (runnuing)
    비정상 서버 : inactive 였는지 암튼 정상결과는 아니었다.

    - 결국 컨테이너 안에서 
    service smbd start 
    명령어로 samba 서비스 가동이 되었고 윈도우/맥 에서도 smb접속이 잘 되었다.

    'Linux' 카테고리의 다른 글

    Linux - GNOME (GUI 데스크톱)  (0) 2025.10.20
    Linux - ubuntu 한글인코딩 설정  (0) 2025.09.09
    Linux - ubuntu 파일,폴더등 식별할수있게 설정  (0) 2025.09.09
    Linux - 명령어 모음  (4) 2025.08.07
Designed by Tistory.