네트워크 설정 · 3 min read · Dec 11, 2025
리눅스 머신으로 윈도우 네트워크 탐색하기: 자동 마운트 및 모든 호스트와 공유 발견
가장 최근 버전은 다음에서 확인할 수 있습니다:
http://linux.bononline.nl/linux/automountsmbshares/index.php
색인
- 소개 및 요약
소개
한동안 제 컴퓨터가 윈도우 네트워크를 발견하고 필요에 따라 공유를 마운트할 수 있는 좋은 방법을 찾고 있었습니다. 현재로서는 충분히 좋은 솔루션이 없습니다. 제가 선택한 데스크탑(KDE)에서 kioslaves와 FUSE 프로그램인 Fusesmb 및 SmbNetFs를 시도해본 결과, 정말 만족스럽지 않았습니다. 제 컴퓨터가 모든 작업 그룹/도메인, 호스트 및 공유를 발견하고 필요에 따라 호스트의 공유를 마운트할 수 있는 방법이 있어야 했습니다. 어떤 사람들은: 원하는 공유를 수동으로 마운트하라고 할 것입니다. 하지만 아니요!! 제가 원하는 것은 이게 아닙니다. 제 컴퓨터가 자동으로 모든 호스트와 사용 가능한 공유를 발견하고 필요할 때만 공유를 마운트할 수 있도록 할 수 있습니다. 이건 가능해야 합니다! 그리고 시도해본 결과, 가능하다는 것을 알게 되었습니다!
다음과 같은 문제들이 필요하다고 생각합니다:
SMB 네트워크(도메인, 호스트 및 공유)의 자동 발견
사용자가 홈 디렉토리에 로그인할 때 의미 있는 표현 구축
필요에 따라 공유의 자동 마운트
사용되지 않은 후 일정 시간 후 공유의 자동 언마운트
SMBFS 또는 CIFS와 같은 커널 파일 시스템 사용
데스크탑 관리자와 독립적
SSH 및 FTP와 같은 다른 네트워크 서비스 지원
FUSE 프로그램인 Fusesmb는 제가 찾고 있는 것에 매우 가깝지만, CIFS가 가진 확장된 기능, 즉 권한의 올바른 표현, inotify 지원, 심볼릭 링크 및 ATTR/ACL이 부족합니다. FUSE 프로그램이 이러한 기능이 부족한 이유를 알아내는 데 시간이 좀 걸렸습니다. FuseSMB는 Samba 패키지의 일부인 smbclient 라이브러리 smbclient.so를 기반으로 하며, smbfs 또는 cifs와는 아무 관련이 없습니다.
결과
이 구조의 결과는 사용자의 홈 디렉토리에 있는 네트워크 관련 디렉토리(글로벌 네트워크)로, 자동 마운터가 모든 지원되는 네트워크 서비스에 접근할 수 있는 탐색 가능한 트리를 제공합니다.
현재 SMB 및 SSH 서비스를 지원합니다(FTP 작업 중). “네트워크 마운트 포인트”에 접근:
/home/sbon/Global Network/
SSH 호스트
윈도우 네트워크
윈도우 네트워크(==smb)에 접근하면 모든 작업 그룹 및/또는 도메인이 나타납니다:
/home/sbon/Global Network/
SSH 호스트
윈도우 네트워크
BONONLINE
CWWERKGROEP
작업 그룹 CWWERKGROEP에 들어가면 모든 서버 및 기타 호스트가 표시됩니다:
/home/sbon/Global Network/
SSH 호스트
윈도우 네트워크
BONONLINE
CWWERKGROEP
ROUTER
PC1
서버 ROUTER에 들어가면 연결된 사용자에게 사용 가능한 공유가 나타납니다:
/home/sbon/Global Network/
SSH 호스트
윈도우 네트워크
BONONLINE
CWWERKGROEP
ROUTER
cwdocumenten
public
sbon
공유에 접근하면 자동으로 마운트됩니다(CIFS 또는 SMBFS 사용). 자격 증명 사용이 지원되며, 게스트 로그인이 기본입니다.
smb 서비스에 대한 “다중 마운트 맵”을 구축하기 위해 네트워크 캐시가 사용됩니다. 이는 작업 그룹 및/또는 도메인, 호스트 및 사용 가능한 서버와 공유에 대한 정보를 제공합니다. 이는 일부 스크립트에 의해 유지되며, 이 스크립트는 일부 유틸리티(nbtscan을 사용하여 호스트 및 작업 그룹/도메인을 결정하고, smbclient를 사용하여 호스트별 공유를 결정)를 사용합니다.
SSH 호스트(=ssh)에 접근하면 이 사용자에게 접근할 수 있는 모든 호스트가 나타납니다:
/home/sbon/Global Network/
SSH 호스트
192.168.0.2
윈도우 네트워크
여기서는 이 트리를 생성하기 위해 캐시가 사용되지 않지만, 파일 .known_hosts가 사용됩니다. 또한 mount.sshfs가 사용 가능하지 않았습니다. 저는 FUSE와 sshfs를 사용하여 하나를 만들었습니다(그리고 umount.sshfs).
이제 호스트 192.168.0.2에 접근하면 192.168.0.2의 루트가 마운트됩니다.
작동 방식
이 구조는 자동 마운터를 사용합니다. 사용자가 로그인하고 새 세션이 시작되면 auto.master 파일에 “네트워크 마운트 포인트”가 추가되고 자동 마운터 데몬은 “reload” 신호를 받습니다. 이 마운트 포인트는 기본적으로 “글로벌 네트워크”라는 이름이 사용자의 홈 디렉토리에 있습니다. 이에 연결된 스크립트(auto.network)가 있으며, 이는 지원되는 모든 네트워크 서비스와 발견된 리소스를 기반으로 맵을 생성합니다. 탐색 옵션과 함께, 이는 접근할 때 공유/호스트가 마운트되는 탐색 가능한 맵을 제공합니다.
사용자가 로그오프하면 세션이 종료되고, 마운트 포인트가 다시 제거되며, 자동 마운터 데몬은 변경 사항을 적용하기 위해 다시 reload 신호를 받습니다.
여기서는 KDM이 세션 시작과 종료 시 루트 권한으로 스크립트를 실행할 수 있는 기능이 사용됩니다.
현재 SMB와 SSH만 지원됩니다.
알려진 문제
몇 가지 병목 현상이 있습니다:
- 공유가 추가되거나 호스트가 오프라인 상태가 되거나 smb 환경에서 다른 변경 사항이 발생하면 캐시에서 이를 볼 수 있을 때까지 시간이 걸립니다. 이 캐시는 일부 스크립트를 통해 유지되며, “풀“ 기반 메커니즘으로 작동합니다. 두 번째로, 자동 마운터는 캐시의 데이터가 변경되었음을 스스로 감지하지 않습니다. 타임아웃 후에만 자신의 데이터(다중 마운트 맵)를 갱신하며, 그때조차 모든 변경 사항을 완전히 반영하지 않습니다.
- 자동 마운터는 탐색 가능한 마운트 맵을 제공하도록 지시받습니다. 이는 최상위 디렉토리가 항상 사용 가능하다는 것을 의미합니다. 이는 매우 좋은 점으로, 사용 가능한 네트워크는 항상 사용자에게 표시되고 접근할 수 있습니다. 타임아웃 후에도 마찬가지입니다. 실제로는 때때로 “네트워크 서비스” 중 하나가 사라지기도 합니다…
- 자동 마운터는 빈 auto.master 파일(및 빈 포함)로 시작할 때 문제가 있습니다. 부팅 시, 로그인한 사용자가 없고, 따라서 autofs가 관리하는 네트워크 마운트 포인트가 없을 경우, 자동 마운터는 빈 맵으로 시작해야 합니다.
링크
윈도우 또는 Samba 공유에 접근하기 위한 autofs 사용
SMB 공유를 위한 autofs 설정 가이드, 기존 파일 사용;
리눅스 호스트를 윈도우 환경에 통합하기
대체 방법으로 공유에 접근하기 위한 autofs 설정 가이드.
파일 시스템 자동 마운트 방법 (AUTOFS) / udev와 autofs
여기서는 autofs와 udev를 사용하여 하드웨어를 마운트하는 거의 동일한 구조가 사용됩니다. 여기에서도 마운트 포인트가 auto.master 파일에 동적으로 추가되고 제거됩니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.