Raspbian 5/5/2015를 사용하여 호스트 이름을 확인하는 방법은 무엇입니까?

Raspbian 5/5/2015를 사용하여 호스트 이름을 확인하는 방법은 무엇입니까?

NTFS 드라이브나 삼바를 통해 드라이브의 디렉토리를 공유하려고 하는데, 단 몇 분 안에(업데이트 및 패키지 설치 제외) 이 작업을 수행하는 방법을 보여주는 여러 튜토리얼을 찾았습니다. 3주 정도 사용해봤는데 작동이 안되네요. 현재 네트워크의 다른 컴퓨터는 호스트 이름을 확인할 수 없습니다. 이것이 오류 0x80070035의 근본 원인이라고 생각됩니다.

\\192.168.1.xx\와 같은 IP 주소를 사용하면 공유 "공유"가 표시되고 사용자 이름/비밀번호를 묻는 메시지가 표시됩니다. 그러나 사용자 이름과 비밀번호를 입력한 후 다음 오류 코드가 나타납니다.0x80070035 네트워크 경로를 찾을 수 없습니다.(수퍼유저 문제에 대한 이미지) 나는 이미 시작했다이 문제SuperUser에서는 정지 상태이므로 여기로 와서 이 모든 것에 대해 무엇을 할 수 있는지 물어봐야겠다고 생각했습니다.


내가 사용한 튜토리얼

튜토리얼 1 - Raspberry Pi NAS: Raspberry Pi Samba 서버 구축

튜토리얼 2 - Raspberry Pi를 저전력 네트워크 저장 장치로 전환하는 방법

튜토리얼 3 / YouTube DIY - Samba를 사용하여 Raspberry Pi를 NAS로 사용 - 방법


질문과 연구

n00b Samba 문제 해결을 시작하는 방법은 무엇입니까? 이 작업을 수행하는 데 도움이 될 수 있는 튜토리얼이 있습니까?

새로운 라즈베리 파이 이미지를 굽고 처음부터 시작했지만 도움이 되지 않았습니다. 나는 samba/netbios를 사용하고 있기 때문에 avahi/Bonjour가 필요하지 않으며 HOSTS 파일 수정을 사용하려는 컴퓨터가 여러 대 있기 때문에 사용하고 싶지 않습니다. 거기에 패키지와 튜토리얼이 있다는 점을 감안할 때 왜 그것을 시작하고 실행할 수 없고 왜 그렇게 어려움을 겪고 있는지 혼란스럽습니다. 특히 지침의 동질성을 고려하면 더욱 그렇습니다.

nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal dns mdns4 wins [NOTFOUND=return]
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

라즈베리 파이의 핑:

$ ping -c3 raspberrypi
PING raspberrypi (127.0.1.1) 56(84) bytes of data.
64 bytes from raspberrypi (127.0.1.1): icmp_req=1 ttl=64 time=0.208 ms
64 bytes from raspberrypi (127.0.1.1): icmp_req=2 ttl=64 time=0.200 ms
64 bytes from raspberrypi (127.0.1.1): icmp_req=3 ttl=64 time=0.240 ms
--- raspberrypi ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.200/0.216/0.240/0.017 ms

smb 구성 파일

[global]
   workgroup = WORKGROUP
#   NetBIOS name = raspberrypi
   server string = %h server
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = user
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n$
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
[homes]
   comment = Home Directories
   browseable = no
   read only = yes
   create mask = 0700
   directory mask = 0700
   valid users = %S
[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
[Shares]
   comment = Shares Folder
   path = '/media/80Gigger/shares'
   browsable = yes
   read only = no

시스템 테이블

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
#/dev/sda1      /media/USB              auto    gid=1002,uid=1001       0       0
# a swapfile is not a swap partition, so no using swapon|off from here on, use  dphys-swapfile swap[o$

업데이트 1

잠깐\호스트

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi

업데이트 2

Windows 컴퓨터가 도메인에 가입되어 있지 않습니다. pi에는 기본 호스트 이름과 호스트 파일이 있습니다. "조작"이라고 하면 무엇을 바꿔야 하나요?

$ hostname
raspberrypi

$ nmblookup raspberrypi
querying raspberrypi on 192.168.1.255
192.168.1.14 raspberrypi<00>

$ nmblookup -M -- -
querying __MSBROWSE__ on 192.168.1.255
192.168.1.14 __MSBROWSE__<01>

$ smbclient -L 192.168.1.14
Enter pi's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]

        Sharename       Type      Comment
        ---------       ----      -------
        print$          Disk      Printer Drivers
        Shares          Disk      Shares Folder
        IPC$            IPC       IPC Service (raspberrypi server)
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]

        Server               Comment
        ---------            -------
        D-WHALEY2
        LAPTOP
        RASPBERRYPI          raspberrypi server

        Workgroup            Master
        ---------            -------
        WORKGROUP            RASPBERRYPI

업데이트 3

Raspberry Pi에서 NetBios 필드의 주석 처리를 제거했는데 이제 Windows 탐색기에서 오류 0x80004005가 나타납니다. \raspberrypi\로 이동하려고 하면 이 오류가 발생합니다. 이 문제를 발견했습니다이는 오류의 여러 측면을 설명합니다. 그러나 Microsoft 6to4 어댑터는 1개만 찾았습니다. 제거하고 다시 시작해도 효과가 없습니다.

\192.168.1.14\로 이동하여 적절한 자격 증명을 입력해도 여전히 오류 0x80070035가 발생합니다.

Windows 7 노트북에서 ipv6을 비활성화했습니다. 그러나 나는 이것이 현상에 아무런 영향을 미치지 않을 것이라고 생각합니다.

Raspberry Pi에서는 Windows 시스템의 이름을 ping할 수 없으며 Windows 7 시스템의 Samba 공유에 액세스할 수도 없습니다. PCMANFM이 이 작업을 수행할 수 있는지는 확실하지 않지만 확실히 작동하지 않습니다.

업데이트 4

이제 Samba를 사용하여 공유에 있는 파일을 볼 수 있지만 이름 확인이 여전히 작동하지 않습니다. 진전! 지금까지 모두의 도움에 감사드립니다!

두 가지 이상의 문제를 해결하고 있는 것 같은데 방금 액세스 공유 문제를 해결했습니다. 드라이브에는 삼바가 읽고 쓰기 위한 영구 마운트 지점이 필요하므로 fstab 파일을 수정해야 했습니다. 그리고 볼륨 이름에서 공백을 지웠을 때 smb.conf 파일에서 oath 주위에 작은따옴표를 남겨 두었는데, 삼바 로그를 보면 그게 문제가 된 것 같아서 그 부분도 수정해야 했습니다.

여전히 파이의 이름을 IP로 핑할 수는 없지만 도움이 될 것 같은 아래 답변을 해독하려고 노력하겠습니다.

이전에 이 작업을 잊어버린 경우를 대비하여 사용 중인 계정에 대해 smbpasswd를 다시 실행했습니다.

sudo smbpasswd -a backups

이것은 내 새 호스트 파일입니다.

127.0.0.1       raspberrypi localhost
::1             raspberrypi localhost ip6-localhost ip6-loopback
fe00::0         ip6-localnet
ff00::0         ip6-mcastprefix
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

#127.0.0.1      raspberrypi
#127.0.1.1      raspberrypi

이것은 내 fstab 파일입니다.

proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1
/dev/sda1       /media/80Gigger         auto    gid=1002,uid=1001       0      $
# a swapfile is not a swap partition, so no using swapon|off from here on, use $

이것은 나의 새로운 smb.conf입니다:

[global]
   workgroup = WORKGROUP
   #netbios name = raspberrypi
   server string = %h server
   dns proxy = no
   log file = /var/log/samba/log.%m
   max log size = 1000
   syslog = 0
   panic action = /usr/share/samba/panic-action %d
   security = user
   encrypt passwords = true
   passdb backend = tdbsam
   obey pam restrictions = yes
   unix password sync = yes
   passwd program = /usr/bin/passwd %u
   passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n$
   pam password change = yes
   map to guest = bad user
   usershare allow guests = yes
[homes]
   comment = Home Directories
   browseable = no
   read only = yes
   create mask = 0700
   directory mask = 0700
   valid users = %S
[printers]
   comment = All Printers
   browseable = no
   path = /var/spool/samba
   printable = yes
   guest ok = no
   read only = yes
   create mask = 0700
[print$]
   comment = Printer Drivers
   path = /var/lib/samba/printers
   browseable = yes
   read only = yes
   guest ok = no
[Shares]
   comment = Shares Folder
   path = /media/80Gigger/shares
   browsable = yes

답변1

"ping raspberrypi"라고 말하면 Windows 시스템과 같은 방식으로 이름 조회를 수행하지 않습니다.아마도. 즉, SMB/CIFS 프로토콜에는 이름 조회를 수행하는 세 가지 방법이 있지만 나머지 두 가지 방법은 실제로 도메인을 구성할 때만 사용되며 도메인을 구성하지 않습니다.

이는 NMB 프로토콜을 통해 이름 조회를 수행해야 함을 의미합니다. Samba는 기본적으로 로컬 컴퓨터의 호스트 이름(명령의 출력 hostname)을 NMB 이름으로 사용합니다. 실행해 보고 예상한 호스트 이름인지 확인하세요. 그렇지 않다면, /etc/hosts그렇게 될 때까지 계속 만지작거려보세요. /etc/hostname을 복구해야 할 수도 있습니다(그러나 hostname후자 파일의 변경 사항은 init 스크립트를 실행하거나 재부팅할 때까지 적용되지 않습니다).

당연히 NMB 조회를 수행하는 데 사용되는 삼바 도구는 입니다 nmblookup. 인수로 출력을 사용하여 Raspberry Pi에서 프로그램을 실행하고 hostnameRaspberry Pi의 IP 주소와 일치하는지 확인합니다. 그렇지 않은 경우 출력을 게시하십시오. 그렇다면 IP 주소 앞에 꺾쇠 괄호(<>) 사이에 16진수 숫자가 붙는다면 괜찮습니다. 16진수 숫자는 결과 유형입니다. 가능한 결과 유형은 많습니다.

NMB 프로토콜은 부분적으로 "마스터 브라우저" 호스트를 선택하려고 하기 때문에 끔찍하지만 항상 작동하는 것은 아닙니다. 실행해 보세요 nmblookup -M -- -(예: nmblookupdash-capital m-space-dash-dash-space-dash. 예, 보기 흉합니다). 그러면 마스터 브라우저가 검색됩니다. 반환 IP 주소를 기록해 두십시오. 실행 smbclient -L ip, 어디에서아이피그 IP 주소입니다. Raspberry Pi가 목록에 있는지 확인하세요. 그렇지 않은 경우 preferred master = yes에 로그인을 시도할 수 있습니다 smb.conf. 그러나 도메인을 실행 중인 경우에는 이 작업을 수행하지 마십시오(도메인 호스트가 마스터 브라우저여야 합니다. 그렇지 않으면 도메인 로그인이 실패합니다).

도메인에 가입된 Windows 7 이상을 실행하는 경우 Windows는 더 이상 기본적으로 NMB 조회를 수행하지 않습니다. 이 경우 이러한 기본값을 변경하기 위해 일부 레지스트리 키를 설정해야 할 수도 있습니다(이는 삼바 위키에서 찾을 수 있습니다). 또는 Raspberry Pi를 Windows 도메인에 가입시켜 NMB가 더 이상 필요하지 않게 할 수 있습니다.

답변2

이는 올바른 방향을 제시할 수는 있지만 문제를 해결하지 못할 수도 있습니다. 라우터의 DHCP 및 DNS 악마는 상황을 망칠 수 있습니다. 제 경우에는 opensuse와 raspberypi에서 동일한 문제가 발생했습니다. 내가 수행한 모든 단계는 다음과 같습니다.

  1. 호스트 이름 파일 /etc/hostname도 편집해 mymacnine보았지만 mycmachine.domain둘 다 작동하지 않았습니다.
  2. resolv.conf를 엉망으로 만들고 Windows 시스템에서 무언가가 업데이트되거나 제거될 때까지 계속 작동했습니다.
  3. 내 WRT1900ac에 도메인 이름을 입력하고 실행할 수 있는 곳이 있고, 매번 작동한다는 것을 알았습니다.

누군가 NetBIOS 이름이 주석 처리되어 있다고 지적했습니다.

답변3

해결책

댓글로 이 내용을 제공할 수는 없지만 작업 hosts파일(제 젠투 설치 작업 중)을 보셨으면 좋겠습니다.

# /etc/hosts: Local Host Database
#
# This file describes a number of aliases-to-address mappings for the for 
# local hosts that share this file.
#
# In the presence of the domain name service or NIS, this file may not be 
# consulted at all; see /etc/host.conf for the resolution order.
#

# IPv4 and IPv6 localhost aliases
127.0.0.1       bedroom-gentoo.myISP.net     bedroom-gentoo  localhost
::1             bedroom-gentoo.myISP.net     bedroom-gentoo  localhost


#
# Imaginary network.
#10.0.0.2               myname
#10.0.0.3               myfriend
#
# According to RFC 1918, you can use the following IP networks for private 
# nets which will never be connected to the Internet:
#
#       10.0.0.0        -   10.255.255.255
#       172.16.0.0      -   172.31.255.255
#       192.168.0.0     -   192.168.255.255
#
# In case you want to be able to connect directly to the Internet (i.e. not 
# behind a NAT, ADSL router, etc...), you need real official assigned 
# numbers.  Do not try to invent your own network numbers but instead get one 
# from your network provider (if any) or from your regional registry (ARIN, 
# APNIC, LACNIC, RIPE NCC, or AfriNIC.)
#

localhost주소는 여러 127.0.0.1이름으로 해석될 수 있습니다.

  1. 애플리케이션에서 요구하는 경우 FQDN(두 번째 열)입니다. (OP에서 제공하는 링크에 설명되어 있습니다.)
  2. 내 컴퓨터 이름(세 번째 열)
  3. localhost(네 번째 열).

또한 IPv4와 IPv6를 구별하지 않습니다.


이 형식을 사용하면 127.0.1.1네트워크의 다른 사람이 내 컴퓨터를 보는 것을 원하지 않기 때문에 가상의 네트워크 부분을 주석 처리했지만 그렇게 하고 싶다면 추가하겠습니다(귀하의 장치가 있다고 가정). :

#
# Real Network
192.168.1.14            raspberrypi.myISP.net    raspberrypi
192.168.1.x             D-WHALEY2.myISP.net      D-WHALEY2
192.168.1.xx            LAPTOP.myISP.net         LAPTOP

# Imaginary Network
#10.0.0.2               myname
#10.0.0.3               myfriend
#

이것이 매번 작동하려면 라우터에 로그인하고 MAC 필터링을 통해 할당하고 hostsRaspian 파일에서 127.0.1.1을 제거해야 합니다. 이 작업은 한 번만 수행하면 됩니다. (MAC 주소는 고정 IP 주소로 확인됩니다.)

  1. Pi의 MAC 주소 --> 192.168.1.14
  2. D-WHALEY2의 MAC 주소 --> 192.168.1.x
  3. 노트북 MAC 주소 --> 192.168.1.xx

이렇게 하면 네트워크의 장치가 시작될 때마다 hosts파일과 일치하는 주소가 할당됩니다. 또한 내부 주소를 확인하기 위해 Windows 컴퓨터가 필요하지 않습니다.


질문

Windows는 다음 두 가지 이유로 Pi의 주소를 확인할 수 없습니다.

  1. 127.0.1.1은(는) 유효한 내부 주소가 아닙니다.RFC 1918, 로 교체되다RFC 6761. hosts파일의 설명 도 참조하세요 .
  2. 127.0.1.1Windows 에는 해당 주소가 포함되지 않은 호스트 파일이 있기 때문에 이를 다른 로컬 호스트 주소로 처리합니다(참조:누가 127.0.0.1을 로컬 호스트로 선택했으며 그 이유는 무엇입니까? 점은 무엇인가?),왜. 이 동작으로 인해 OP에 설명된 오류가 발생합니다.

간단히 말해서 이것은 Windows 문제이자 Debian 기반 배포판의 "기능"입니다. "기능"을 제거하고 Windows에서 문제를 "수정"하도록 라우터를 구성하면 Samba 연결이 허용됩니다.

관련 정보