vmware 리눅스 서버 이용 시 scp 문제
안녕하세요.
리눅스를 클라이언트로 이용만 하다가 개인 PC로 고성능 컴퓨터가 생겨서 vmware로 cent os 6.2 를 설치하여 리눅스 서버로 활용 하려고 하는 학생 입니다.
많은 것들을 검색으로 찾아서,
vmware로 만든 가상 머신에 리눅스를 설치 하고,
NAT환경으로 네트워크를 구성해서, ssh 포트인 22 포트를 제 윈도우 OS 컴퓨터에서 vmware 리눅스로 포트 포워딩 까지 해 놓았습니다.
이 경우 제 업무 컴퓨터에서 XShell을 이용해서 ssh로 제 가상머신 서버로 접속이 잘 됩니다.
단, 내부 네트워크를 벗어난 집 컴퓨터에서는 접근이 안됩니다. 왜냐하면 네트워크 관리자가 내부 네트워크 밖에서 들어오는 22번 포트는 막아 두었기 때문인 것 같습니다.
그런데 해결 할 수 없는 문제에 봉착했습니다.
A : 제 컴퓨터(Windows 7)
a : 제 컴퓨터 내의 vmware 리눅스 서버
B : 내부 네트워크 내의 다른 서버
A 컴퓨터에서 XShell을 사용하여 A의 ip로 ssh 접속을 했습니다.(잘 됩니다. A의 22번 포트를 a의 22번 포트로 포트 포워딩 했기 때문인 것 같습니다.)
문제는 여기서 부터 입니다.
a에 ssh로 로그인 한 상태에서 B의 파일을 scp로 A로 가져오는 것은 잘 됩니다.
예를 들면 다음과 같은 상태에서 명령어를 사용했습니다.
[myaccountina@a] scp myaccountinB@B:~/target_file ~/destination_folder
그러나 B에 ssh 로그인 한 상태에서 B의 파일을 scp로 a로 전송 시키는 것은 아무런 응답이 없습니다.
예를 들면 다음과 같은 상태에서 명령어를 사용했습니다.
[myaccountinB@B] scp target_file myaccountina@a:~/destination_folder
A컴퓨터의 22번 포트가 막혀 있는 것이 원인이라면,
A에서 A의 ip로 ssh가 문제 없이 a로 로그인이 되며 scp를 사용할 때 첫번 째 경우는 아무런 문제 없이 파일을 가져오는 것이 가능 할까요?
22번 포트를 열어 달라고 관리자에게 말하면 해결이 될 지도 궁금하기도 하며,
현재 왜 안되는 지도 사실 네트워크 계층 구조 같은 것을 잘 몰라서 원인을 모르겠습니다. ㅠㅜ
이런 경우는 웹에서 자료를 찾기가 너무힘들어서 KLDP 포럼에 도움을 요청해 봅니다.
부디 고수님들의 많은 도움 부탁드립니다!
감사합니다.
일단 먼저 숙지 하실 내용이 있습니다.
vmware에서 네트웍 관련 설정을 보시면 Bridge모드와 NAT모드가 있습니다.
이 두가지에 대해서 간단히 말하면
Bridge모드는 Host컴과 Guest컴의 아이피 대역대가 같은것입니다. 예를들면 Host의 아이피가
192.168.1.2이면 Guest는 192.168.1.3인것이지요 192.168.1.x이라는 공통 대역대를 쓰는것입니다.
NAT모드는 Host컴과 Guest컴의 아이피 대역대가 다릅니다. 이것은 마치 Host컴의 네트웍 카드가
두개라고 생각하시면 됩니다.(공유기를 내장했다고 생각하시면 되겠지요) 네트웍카드1개는 내부네트웍,
다른 네트웍카드는 Guest컴과 연결되었다고 생각하시면 됩니다.
통상적으로 vmware에서 가상머신을 생성하면 NAT모드로 생성이 됩니다. NAT모드로 생성이 되면
위에서 이야기한 내부네트웍들에 물려있는 pc들은 가상머신의 존재를 모르게 되지요.
마치 공유기 밑에 있는 애들이어서 공유기의 존재만 알뿐 그 밑에 있는 애들은 모릅니다.
간단하게 해결방법
1. 네트워크 관리자에게 IP 할당요청
2. VMWare에서 네트워크를 Bridge 모드로 설정하고 할당받은 IP 설정
3. 이제 위에서 설며한 B와 같은 서버와 같은 네트워크이므로 별문제가 없을것입니다.
답변 감사드립니다.
하지만... IP를 할당 받을 수가 없는게 현재의 문제입니다 ㅠㅜ
포트 포워딩을 하시면 될듯합니다.
방법을 아시면서 물어 보시는것 같네요.
IP를 할당 받을수 없다면 지금 윈도우의 IP에 특정포트를 guest의 22번으로 포트포워딩 하시면
될것 같은데요.
Windows 방화벽 꺼보시죠..
B(211.200.10.102) -> A(211.200.10.101) PC로 telnet 해서 네트워크 연결이
되는지 확인해 보세요.
STEP1
A> netstat -an 1 | findstr [B IPAddress]
netstat -an 1 | findstr 211.200.10.102
** 1초 간격으로 211.200.10.102 세션에 대해서 필터링.
STEP2
B> netstat -an 1 | findstr 211.200.10.101
B> telnet IPADDRESS 22
telnet 211.200.10.102 22
** telnet 으로 22 번 포트 연결 시도...
** netstat 결과물이 SYN_SENT 상황이면, Windows 자체 방화벽 또는 학교또는 기업에서 제공하는
소프트웨어 방화벽에 막혀 있어서 그럴 수 있습니다, 이 경우 Windows 방화벽까지는 개인이
제어가 가능하니 방화벽 off 시켜 보세요.
JS.LEE
답변 감사드립니다.
B->A로는 연결이 잘 됩니다.
A의 22번 포트를 a의 22번 포트로 VMware를 이용하여 포트포워딩 했는데도 안되서 질문을 드렸던 것인데,
자포자기 심정으로 공유기를 설치 하고 VMware를 브리지 모드로 하여 공유기에서 포트 포워딩을 설정해 주었더니...
잘 됩니다... 잘 되기는 하는데 안되던 이유를
정말 알 수가 없습니다 ㅜㅠ
답변 감사드립니다.
네, VMware의 포트 포워딩 기능을 이용 했는데, 되지 않고,
자포자기로 연결한 공유기 - VMware(브리지모드)로 포트포워딩을 했더니 잘 됩니다...
VMware에서 설정이 틀어졌던 것인지, 왜 안되는지는 미궁으로....ㅠㅜ
[myaccountinB@B] scp
[myaccountinB@B] scp target_file myaccountina@A:~/destination_folder
댓글 달기