` 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
- On this same computer, I have a Virtual Box machine running Windows XP [computer
- At home, I have a laptop computer, running Windows 7 Home Edition [computer
- 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
[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
[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
[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
[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
[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!!