VirtualBox 가상 머신에서 localhost 주소 지정
포트 8000을 수신하는 로컬 테스트 / 개발 서버 (물론 HTTP)가 있습니다.
저는 Linux에서 작업 중이므로 Internet Explorer 6, 7, 8 등에서 페이지를 테스트합니다. VirtualBox를 사용하여 가상 머신을 실행합니다. 또한 Windows 환경에서 Firefox에서 어떻게 보이는지 확인해야합니다 (예 : 글꼴이 다름).
실제 컴퓨터에서 URL을 사용하여 웹 사이트를 엽니 다 http://localhost:8000
. 가상 컴퓨터에서이 로컬 호스트 주소를 어떻게 지정합니까?
지금 내 해결 방법은 IP 주소를 사용하는 것입니다. 더 좋은 아이디어가 있습니까?
인터넷 검색이이 문제를 해결했습니다 : http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu
IP :를 사용하는 것이 좋습니다 http://10.0.2.2
.
그래서 hosts 파일을 편집하고 C:\windows\system32\drivers\etc\hosts
다음 항목을 추가했습니다.
10.0.2.2 outer
IE8에서 테스트하는 경우 http://
주소 표시 줄에 입력해야합니다. IP를 직접 입력하는 것만으로는 작동하지 않습니다.
예를 들면 :
http://10.0.2.2:3000/
맥 OS
저는 macOS (이전 OS X)에서 Virtual Box를 실행하고 있으며 Virtual Box를 사용하여 Windows에서 IE를 테스트하고 있습니다.
Virtual Box에서 IE로 이동하여 for 또는 for localhost
를 통해 액세스 합니다 .http://10.0.2.2
localhost
http://10.0.2.2:3000
localhost:3000
네트워크 설정을 NAT로 유지했으며 위에서 제안한대로 브리지가 필요하지 않았습니다. 구성 파일을 편집 할 필요가 없습니다.
OSX에서이 기능을 활성화하려면 다음을 수행해야합니다.
- 가상 머신을 종료하십시오.
VirtualBox Preferences -> Network -> Host-only Networks ->
"+"아이콘 을 클릭하십시오. 확인을 클릭하십시오.- 상자를 선택
"Settings" icon -> Network -> Adapter 2 ->
하고 "연결 대상 :"드롭 다운에서 "호스트 전용 어댑터"를 선택하면 네트워크 (vboxnet0
)가 기본적으로 아래에 표시됩니다. 확인을 클릭하십시오. - 상자를 다시 시작하면 다음 위치에서 localhost에 액세스 할 수 있습니다.
http://10.0.2.2/
다음과 같이 localhost
호스트 파일 ( C:\windows\system32\drivers\etc\hosts
)에 해당 참조를 추가하여 다른 로컬 호스팅 사이트를 참조하고 액세스 할 수 있습니다 .
10.0.2.2 localhost
10.0.2.2 subdomain.localhost
가상 머신의 네트워킹을 NAT로 설정했을 가능성이 높습니다. 네트워킹을 Bridged로 설정하면 호스트 이름으로 호스트 컴퓨터에 액세스 할 수 있습니다. 예를 들어, 호스트 이름이“jsmith-Precision-7510”이고 http : // localhost : 3000 / 을 열려면 http : // jsmith-Precision-7510 : 3000 / 에서 해당 페이지를 볼 수 있습니다 .
호스트 이름을 찾으려면 터미널 / 콘솔을 열고 명령을 실행하십시오 hostname
. 호스트 이름은 다음 줄에 출력됩니다.
네트워킹 설정을 Bridged로 설정하는 방법에 대한 지침 은 VirtualBox 설명서 를 참조하십시오 .
버추얼 박스로 가서 네트워크 설정을 'NAT'로 변경해야했습니다. 그 후 localhost
Virtualbox의 에뮬레이터에서 호스트 컴퓨터에서 실행을http://10.0.2.2:3000
그 발견 10.0.2.2:<port>
의 작품을,하지만 무차별 모드가 올바르게 설정되어있는 경우. VM을 설치 한 후 설정> 네트워크> 어댑터 1로 이동했습니다.
NAT는 기본적으로 설정되며 Promiscuous Mode 드롭 다운은 비활성화되어 있습니다. NAT에서 Bridged Adapter로 전환하여 Promiscuous Mode 드롭 다운을 활성화 한 다음 값을 "Deny"에서 "Allow VMs"로 변경했습니다. 그런 다음 다시 NAT로 전환하여 Promiscuous Mode를 다시 비활성화했지만 새 값은 유지했습니다.
이 변경 후에야 VM을 시작하고에서 VM에있는 호스트 컴퓨터 localhost:<port>
를 볼 수있었습니다 10.0.2.2:<port>
.
NAT에 어댑터가 연결되어 있다면 요즘에는 포트 포워딩을 로컬 포트로 설정하는 것이 더 좋고 우아한 솔루션입니다.
Settings
> Network
> Adapter
> Advanced
>Port forwarding
그냥 새 규칙 및 세트 삽입 Host port
과 Guest port
에 80
(HTTP) 또는 22
등 (SSH)입니다.
그런 다음 입력하여 해당 컴퓨터에 액세스 할 수 있습니다. http://localhost
맥 OS
Mac에서 Virtualbox로 Windows 환경을 설정하려면 어댑터의 기본 NAT 설정을 사용하고 Windows VM에서 호스트 파일로 이동하여 다음을 추가하십시오.
10.0.2.2 localhost
10.0.2.2 127.0.0.1
Differently from the answers above, it's important to include both lines, otherwise it won't work.
You need to edit your hosts file on your Windows Virtual machine the same way you do for your local host machine:
C:\WINDOWS\system32\drivers\etc\hosts
And link your virtual hosts to 10.0.2.2, If you are just using localhost then replace
127.0.0.1 localhost with 10.0.2.2 localhost
For example:
10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com
This tells your virtual machine to point to your local machine for those domain names.
You don't need to change hosts file or any Virtual Box configuration. Keep settings in NAT. Go to your Windows instance and run "cmd" or open cmd.exe. Execute command "ipconfig" and get the Default Gateway IP Address. Browse http://10.0.2.2:8080 on Windows IE you will see is the same than your Mac Safari http://localhost:8080/ or http://127.0.0.1:8080
A combination of a few things eventually got things working on my end. Running a flask server on macosx.
In my windows VM I edited the hosts file:
- Run notepad as administrator
- open
C:\windows\system32\drivers\etc\hosts
- add this entry:
10.0.2.2 outer
Shutdown VM and on my Mac in VirtualBox:
- Go to
VirtualBox > preferences > Network > Host-only Networks > +
to add a networkvboxnet1
- Go to
My_VM > settings > Network > Adapter 1
. - Select
Enable Network Adapter
and setAttached to:
toBridged Adapter
. - Then set
Advanced > Promiscuous Mode:
toAllow VMs
. - Click
OK
- Go to
My_VM > settings > Network > Adapter 1
. - Set
Attached to:
back toNAT
.
Then I went to Adapter 2
- Set
Attached to:
toHost-only Adapter
and select the previous added networkvboxnet1
.
I started my server on my mac, running on 127.0.0.1:5000
and this was now accessible on my vm at http://10.0.2.2:5000
Man what a nightmare to test on IE on mac. How is there not a simpler way?
I solved by adding a port forwarding in Virtualbox settings under network. Host IP set 127.0.0.1 port : 8080 Guest ip : Give any IP for the website ( say 10.0.2.5) port : 8080 Now from guest machine access http://10.0.2.5:8080 using IE
In virtual Box as said upper, you can add this line hosts file
10.0.2.2 outer
but to save it, if you don't have administrators right in your VM just move hosts file to desktop, then edit it to add the line 10.0....outer, save the file, and move to its original place.
check if you can hit your parent machine with: ipconfig
(get your ip address)
ping <ip>
or telnet <ip> <port>
If you cannot get to the port, try adding a new inbound rule in your parent firewall allowing local ports.
I was then able to access http://<ip>:<port>
In Virtual Box
- Set your network to Bridge networking
- Go to Advanced set Promiscuous Mode: Allow All
Now the tricky bit is your localhost, if you are running from Node.js set the IP address to 0.0.0.0, then lookup your own IP address, for example cmd:ipconfig --> 10.0.1.3
Type that address in with the port number. And it will work.
General steps:
- A common network, (add host-only or bridge NIC)
- configure preferred service to listen on appropriate interface (interface connected to shared NIC)
- Use IP:Port to reach targeted service, use an IP that belong to shared network.
Not being able to re-direct requests to localhost in the VM to the host's localhost is now baked in to Windows (https://tools.ietf.org/html/rfc6761#section-6.3), including the VM's available at https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
For security reassons Microsoft now prevents host file entries for overriding the address of localhost to anything other than the loopback address ::1. So adding a line the VM's host file such as
10.0.2.2 localhost
will be ignored.
There are two ways (that I know of) to override this:
1) use NETSH to portproxy to the host
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8000 connectaddress=10.0.2.2 connectport=8000
(where 10.0.2.2 is the default gateway on the VM and 8000 is the port you want to resolve to on the host.)
2) Setup IIS to perform Application Request Routing and then rewrite requests for localhost:port to the hostIP:port
On Windows with a virtual Windows 7 the only thing that worked for me was using NAT and port-forwarding (couldn't get bridged connection running). I found a tutorial here: http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (scroll down to the part with "Forwarding Ports to a Virtual Machine").
With this changes I could reach the xampp website with "http://192.168.xx.x:8888/mywebsite" in internet explorer 10 on my virtual machine.
I found the IP in XAMPP Control Panel > Netstat ("System").
If you use Virtual Box you can connect Mac OSX (and I think Linux) to your virtual windows machine using one line of code --> I suggest stopping the box before running this in terminal.
VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on
I will note that this is from the Dinghy docs, which I am running, but its a virtual box command so it shouldn't actually care what you use as long as its Virtual Box
I need to run on localhost, not some weird IP.
1) From your Mac terminal, do iconfig -a
to find your local IP address. It's probably the last one.
en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV> ether 38:c9:86:32:0e:69 inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect (1000baseT <full-duplex,flow-control>) status: active
e.g. 10.1.5.60
2) boot up your windows image. start > type cmd
to get a terminal
3) notepad c:\windows\system32\drivers\etc\hosts
4) add the following line 10.1.5.60 localhost
5) open IE, and the following url should hit the server running on your mac: http://localhost:3000/
Get the IP for the machine running Apache (inet addr: in ifconfig
) and enter that in the virtual box browser address bar.
Actually, user477494's answer is in principle correct.
I've applied the same logic in other environments (OS X host - virtual Windows XP) and that does the trick. I did have to cycle the host LAMP stack to get the IP address and Apache port to resolve, but once I'd figured that out, I was laughing.
참고URL : https://stackoverflow.com/questions/1261975/addressing-localhost-from-a-virtualbox-virtual-machine
'Program Tip' 카테고리의 다른 글
Visual Studio에서 코드 서식을 어떻게 자동으로 지정합니까? (0) | 2020.09.29 |
---|---|
Javascript call () 및 apply () 대 bind ()? (0) | 2020.09.29 |
bash 쉘 스크립트에서 모든 인수 전파 (0) | 2020.09.29 |
특정 파일 / 폴더를 제외한 tar 디렉토리에 대한 쉘 명령 (0) | 2020.09.29 |
jar- 파일을 실행할 수 없습니다 :“no main manifest attribute” (0) | 2020.09.28 |