How to share internet over VPN and inside a virtual machine (Windows)?
Posted
by
mountrix
on Server Fault
See other posts from Server Fault
or by mountrix
Published on 2012-08-23T23:35:42Z
Indexed on
2012/12/06
5:08 UTC
Read the original article
Hit count: 406
` My final goal is to have a virtual machine at work in which anything that happen inside (tcp, udp, ping, ...) will use the Internet connection of a computer at home. So, if inside this VM should I open an Internet browser to a site such as "show my IP", my home IP should be printed. I am also looking for a way to debug/develop a software inside this VM, but I would like to tunnel only the connections of this software, not the full graphical interface, this is why a Remote Desktop solution won't fit me.
The connection between the both computer should be secured somehow, like in a SSH tunnel. This ultimately should allow me to have a portable VM in which I can connect to whatever networks I have access at home, in a secure way.
This is my configuration:
- At work, I have a LAN-connected desktop computer, with Windows 7 Professional Edition as a host [computer
W
] - On this same computer, I have a Virtual Box machine running Windows XP [computer
V
] - At home, I have a laptop computer, running Windows 7 Home Edition [computer
H
] - This laptop is connected to a Livebox 2 broadband modem by Wifi.
What I am trying to do is to sit at work in front of the virtual machine [V]
, and connect to a webpage as if the request was issued from the laptop [H]
at home, and the data should be securely tunneled between the both. But if I am using internet directly inside [W]
, it should use the normal LAN interface at work.
To achieve my goal, I first try using VPN, than SSH tunneling, without success.
I first tried to install Teamviewer between
[W]
and[H]
. This is working fine, I can send files, share desktop, etc. Teamviewer has a VPN mode that creates a new VPN network interface with its own IP, both on computer[W]
and[H]
. This allowed me to connect[H]
as a network computer inside[W]
and I was able to share files, but not to share Internet.At this point, I tried to use from
[W]
the Internet as if I was at home. I setup a route (using route add from command line in[W]
) in order to instruct each packet going to a given website to pass by the new VPN interface on[W]
, with the hope it will be forwarded to[H]
, but the webpage was simply inaccessible.I then tried to setup a Windows VPN connection between
[W]
and[H]
, using the Windows 7 VPN feature.[H]
was the server and[W]
the client. But it failed: I got the "Unable to join a remote PC while trying to VPN" 720 Error when I was setting up the client on[W]
. I think the problem is the Livebox 2 that could blocks the packets. But I am not sure of this: 1) with Teamviewer it works fine, 2) Livebox 2 has a configuration page for port mapping that gives the proper configuration to map VPN ports as an example so I guess that it should allow it, 3) I opened the ports 1723 (TCP) and 500 (UDP) according to some forums.Virtual box has a network configuration parameter in which I can use the VPN network interface created by Teamviewer as a bridged connection. This is suppose to work in the sense that all packets issued by the virtual machine
[V]
is supposed to go directly to[H]
. But I had no internet connection inside[V]
. Using the NAT mode,[V]
has internet. For me this is the feature that I look for: filtering all connections from the virtual box application to the VPN network interface, and the remaining should use the normal LAN interface. Apart from the build-in feature of VBox, I even do not know if it is possible to route the packet from a given application to a given interface.Finally I tried also SSH tunneling, but this is not the solution I looked for. Using an external SSH server (Linux), I was able to create a localhost connection on
[W]
(or[V]
), using something like 'ssh -N -D server[H]
' in order to allow a web browser located in[W]
to connect to any website using the SOCKS 5 proxy created locally (SOCKS is a build-in feature of SSH).But repeating the same operation on windows, using a windows SSH server inside
[W]
(I tried freeSSHd), it failed: SFTP worked, but not the SOCKS tunneling, it was like the browser in[H]
did not find internet.Finally only Teamviewer looked able to create a VPN between
[W]
and[H]
, but I am not able to use it, as I want, I mean using the Internet connection of[H]
sitting in front of[W]
. I also tried to bridge the VPN interface and the wifi interface inside[H]
, but it blocked my laptop, and I tried also the Internet Connection Sharing, trying to share on[H]
the wifi connection over the VPN interface. This fails also, but it seems because Teamviewer actually use the wifi interface to be able to provide the VPN link, so I guess I am creating a recursive loop.
I do not know what to try next... Thank you for any advice!!
© Server Fault or respective owner