최근 Windows Server 2003에서 2012로 업그레이드된 파일 서버가 호스팅하는 네트워크 공유에 Ubuntu 13.04를 실행하는 클라이언트를 연결하려고 합니다.
현재 다음을 사용하여 LAN에 연결된 동안 원격 공유를 마운트할 수 있습니다.
sudo mount -t cifs //myserver.mydomain.co.uk/myshare /media/myshare/ -o user=myself,domain=myworkgroup,pass=**********
그러나 Cisco(IPsec/Xauth) VPN을 통해 공유를 마운트하는 데 문제가 있습니다. 서버 업그레이드 이전에는 아무런 문제가 없었으나 지금은 다음과 같은 메시지가 나타납니다.
mount error(112): Host is down
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
dmesg | tail
나에게 준다[ 1975.651346] CIFS VFS: cifs_mount failed w/return code = -112
호스트는 확실히 다운되지 않았습니다. 다음을 사용하여 VPN을 통해 동일한 공유에 계속 연결할 수 있습니다 smbclient
.
smbclient //myserver.mydomain.co.uk/myshare -U myself -W myworkgroup
Enter myself's password:
session request to MYSERVER.MYDOMAIN failed (Called name not present)
Domain=[MYWORKGROUP] OS=[Windows Server 2012 Standard 9200] Server=[Windows Server 2012 Standard 6.2]
smb: \>
session request to MYSERVER.MYDOMAIN failed (Called name not present)
아직 디렉토리 구조를 탐색할 수 있기 때문에 " " 오류의 의미를 잘 모르겠습니다 .
다음에 무엇을 시도할지 제안해 주시나요?
답변1
"익명"으로 접속이 가능하기 때문에 SMB 클라이언트와 접속이 가능합니다. 그러나 익명으로 연결할 수 있다고 해서 일반 사용자에 대한 인증 서비스가 작동하는 것은 아닙니다.
방화벽 문제가 있을 수 있습니다. 다음 4개의 포트를 엽니다.
- UDP&TCP/137
- UDP&TCP/138
- UDP&TCP/139
- TCP/445
Windows 측의 Netlogon 서비스도 통신할 수 있도록 허용하고 있는지 확인하십시오.
답변2
VPN을 통해 연결할 때 포트 445/tcp에 액세스할 수 있습니까? 사용
nc -v myserver.mydomain.co.uk 445.
효과가 있었다면.
Connection to myserver.mydomain.co.uk 445 port [tcp/microsoft-ds] succeeded!
볼 수 있는 유일한 문제는 어쨌든 성공할 수 있는 연결을 방화벽이 프록시하는 경우입니다. 그런 다음 패킷 캡처를 수행하여 Windows 서버가 무엇을 보내고 있는지 확인하고 싶을 것입니다.
답변3
글쎄, 1년 후 나는 마침내 그것을 알아냈습니다!
근본 원인은 호스트 이름 확인 문제로 밝혀졌습니다. VPN을 통해 동일한 원격 네트워크에 있는 컴퓨터에 SSH를 연결하는 것과 관련된 다른 문제를 해결하려고 할 때 단서가 나왔습니다.
출력에서 ssh -v
:
debug1: Connecting to myserver2.mydomain.ox.ac.uk [163.1.21.182] port 22.
나는 OpenSSH가 말도 안되는 IP 주소에 연결을 시도하고 있음을 발견했습니다(실제로는 내 서버의 호스트 이름을 네트워크 프린터의 IP 주소로 확인하고 있었습니다!). ping
호스트 이름을 올바르게 확인하는 데 실패했지만 작동 host
하는 것 같았습니다. 그게 결국 나를 이끌었어이 스레드우분투에 물어보세요.
ping
와 마찬가지로 둘 ssh
다 glibc 확인자를 사용하는 것으로 나타났습니다 mount.cifs
. glibc가 이름 서비스 정보를 얻는 소스는 다음에서 구성됩니다./etc/nsswitch.conf
.
내 내용은 nsswitch.conf
원래 다음과 같았습니다.
passwd: compat
group: compat
shadow: compat
hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns wins mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
중요한 줄은 으로 시작하는 줄로 hosts:
, 호스트 이름 확인을 수행할 때 glibc가 쿼리하는 소스의 순서를 나열합니다. 내 버전에서는 검색 순서에서 dns
뒤에 옵니다 .[NOTFOUND=return]
내 해석은 glibc가 처음 네 가지 소스에 따라 호스트 이름을 확인하는 데 실패하면 실제로 DNS 서버에 쿼리하기 전에 반환될 것이라는 것입니다! 왜 이런 식으로 구성되었는지는 모르겠지만 nsswitch.conf
(확실히 그렇게 설정하지는 않았습니다) 줄을 다음과 같이 변경했습니다.
hosts: files myhostname mdns4_minimal dns [NOTFOUND=return] wins mdns4
ping
갑자기 , ssh
및 을 포함한 모든 것이 제대로 작동하게 되었습니다 mount.cifs
.