I haven't found a question fitting the exact parameters of my situation (please excuse me if I have missed it).
For the last year remote work has been nothing but a blessing, it's the perfect set-up for me and my productivity has skyrocketed. The one blemish I'm still facing is when it comes to accessing work apps and machines (via ssh) for which a connection to the work network is required.
For that I use my work laptop and assorted VPN connection (using F5 Big IP) while most of my dev work/meetings/emailing/etc takes place on my comfortable personal desktop. Working on the work laptop is a miserable affair, it has a tiny, low-res, TNT, 12" panel while my personal PC has two 27" displays.
I would very much like, on the personal PC, to be able to use a dedicated browser plugged into an ssh tunnel running on the laptop to access work-network only apps and to ssh into work machines.
Both machines are running Windows 10, which is fine for my personal PC as all my dev work takes place through WSL2/Docker but is really painful on the work laptop because it's a pre-WSL2 version.
Both PCs use my home wifi connection, through which the work laptop connects to the VPN.
I'm wondering how to go about achieving that ssh tunnel to the work laptop since, once connected to the work VPN, the laptop isn't visible anymore on the local network.
I've been thinking of trying to hook them up via ethernet and use that second connection as the support for the ssh access but I'm not sure that'd work or how to go about it.
Any help would be much appreciated, thank you for taking the time to read this.
Setup a Reverse SSH Tunnel
In short you connect from your laptop to your Windows10 Box using ssh.. (You will need to run sshd on Windows 10) either via Windows or via cygwin or a virtual machine. Once you have that working you can use the OpenSSH "Reverse tunnel" feature which binds a port on your Windows Box and when your connect to it that opens a connection to your Laptop.
This example uses port 22 but you could use any TCP based port. (e.g. 3389 is RDP)
Let's assume that Destination's IP is 192.168.20.55 Laptop that you want to access).
You want to access from Windows10 desktop with IP 138.47.99.99.
Destination (192.168.20.55) <- |NAT| <- Source (138.47.99.99)
SSH from the destination to the source (with public IP) using the command below:
ssh -R 19999:localhost:22 sourceuser#138.47.99.99
port 19999 can be any unused port.
Now you can SSH from source to destination through SSH tunneling:
ssh localhost -p 19999
3rd party servers can also access 192.168.20.55 through Destination (138.47.99.99).
Destination (192.168.20.55) <- |NAT| <- Source (138.47.99.99) <- Bob's server
I have a real IP. Or so I think, basically how I tested this is under windows in cmd I pinged my IP address and I got packages back, so that must mean it's real. However when I start my xampp and go to my IP address in the browser I get
Unable to connect
Firefox can't establish a connection to the server
I tried looking up other questions but they didn't help cause all answers I found were suggesting LAN connection. Can you please explain to me any extra steps I need to take or link an answer that does that. Thanks!
The only way to access your localhost from other computers is over a Local Area Network (LAN); whether wired or wireless, there has to be a physical connection between the computers.
Once the computers are connected, you can access your localhost from the browser with the name of the computer on other computers:
http ://your-computer/path/to/files/
It also works on the same computer, so you can test it there.
You can find the name of your computer by going to the "Network" section in Windows Explorer.
EDIT:
If you want to access a localhost from a computer that is on another network, you have to create a web server; more or less what you would be paying for from a hosting company. Here is how you would do it:
http://arstechnica.com/gadgets/2012/11/how-to-set-up-a-safe-and-secure-web-server/
My goal is to have two laptops in a network. One is acting as a server, serving webpages to the other. The catch here is that neither is connected to the outside internet.
What I have done so far is setup WAMP on the server laptop, and it successfully serves web pages on localhost. Now I want to access these pages on the other laptop.
To do this, I had the server create an ad-hoc network and connected the other laptop to it, but I'm stuck - and I'm worried I'm not on the right track. I followed this tutorial but in the end I figured out that just explained how to spoof a text URL as an IP address, and not really what I was looking for.
So I guess I have two questions:
Is my method the best way to do this (with ad-hoc networks)? Is there some way to connect a laptop to a wireless router and have the laptop act as a server to another laptop?
If my WAMP and ad-hoc network should work, how do I connect other laptops to my server through the ad-hoc network?
Thanks!
I would suggest the first option: get a wifi router. Then you can assign static IP adresses from the routers private network or use DHCP server on the router. Hopefully you will have an option to reserve IP adresses on DHCP server so you dont have to check every time what IP adress the laptop acting as a server got. You use this address to access your web server. Also, you can use this router later as a gateway to the internet if you want.
In ad hoc mode you will probably get an address from 169.254.0.0/16 link-local scope, and you can check it by running ipconfig as #Robadob already suggested.
On your hosting laptop open cmd and call ipconfig look for the internal IP address on the network interface your hosting the ad-hoc network.
Enter that IP address into the browser on your client laptops web browser instead of localhost.
If that doesn't work, try other ip addresses listed by ipconfig (incase you used the wrong) and then check the properties of your ad-hoc network, windows firewall and any other firewall software to disable anything that might be blocking it.
An ad-hoc network is suitable option for what your doing, most people would probably use a switch or router though, however that requires hardware you probably don't have.
I have Windows 8 installed inside of an emulator, and the new WP8 SDK installed on it. My problem is that the emulator can't connect to the internet. I don't have any proxy, and even disabled the firewall. It still doesn't seem to work though. When I look at the Network Connections sections I can see the new connections the hyper-v manager created for the emulator, and also the automatic bridge created, but even there the network status is "No Internet Connection".
Are there some properties I can manually change in Hyper-V or for the network to make everything work?
Update: I've done everything suggested including create my own switch and delete all others. It still doesn't work however. It doesn't work on cable and not on wifi. Maybe I'm missing something with how to set this up?
Also the WP emulator keeps offering me to connect to the internet every time. It always erases all of the definitions I've set up, replacing it with it's own definitions.
I think I've finally found the answer, but you're probably not going to like it. It would appear that the phone emulator requires you to have a second network adapter to dedicate to this purpose. Personally, I run Windows 8 in VMWare, and so a second network adapter is free for me.
Anyway, after you get the second network adapter that you can dedicate for the phone emulator(must have internet)
Start from scratch. Go to the Hyper-V manager and delete the emulator along with all of the virtual switches
Start the emulator from Visual Studio; this will recreate it with all default settings(select yes you want to configure it to connect to the internet)
Shut it down
Now, go back to the Hyper-V manager
Delete the snapshot that was just created for the emulator. This will prevent your changes from disappearing
Find the virtual switch for your second network adapter in the Network Adapter settings(under control panel)
Disable TCP/IPv4, 6 and all other services. This prevents your host machine from trying to use the connection. While you're there, get the MAC(Physical) address of this adapter
Find the virtual-switch for your second network adapter under the Hyper-V settings for the emulator
Change the MAC type to static and paste in the MAC address of the adapter
Enable MAC spoofing (not sure if required, but just in case)
Then, find your virtual switch under "Virtual Switch Manager".
Ensure "Allow management operating system to share this network adapter" is unchecked and that all extensions are disabled
Click OK and then start the emulator from Visual Studio!
Basically, it appears that for some odd reason it won't properly work unless the phone has the same MAC address as the network adapter. However, we can't just set it to use the same MAC address because address conflicts are very very bad. So, we need a second adapter that we can dedicate to the Phone emulator. The reason we disable TCP/IP on this adapter is so our host machine doesn't use it and cause these conflicts.
Other things to try:
The emulator keeps randomly breaking for me. I'll list a few other things I messed with this last time that got it to work(not sure if related, so only try these if the steps above aren't working
"Reordering" of network adapters for the emulator so that the external virtual switch is at the top (make sure to copy over the MAC address for the internal adapter)
Removing unrelated network adapters
Restarting your machine after recongiguring virtual switches
Praying to your local Microsoft evangilist
Seriously. Everytime I stop phone work for a while and come back, the emulator is always magically broken without me changing anything. No idea how to get it to work "permanently".
I had the same issue as well. However as someone else pointed out on the official forums it didn't work if you had a static IP for your PC set up in your router. Removing it and let the DHCP assign my PC an IP solved the issue for me.
Source
Here's what worked for me:
Go into the internal network connection created by hyper-v in network connections on the host computer. Go to TCP/IP V4 and go to advanced. Change the metric from automatic to 10.
Go to the external network connection, do the same but set the metric to 1.
Volia, internet in the emulator.
I tried following steps , Not sure if it will work for you
1> Delete All emulators in Hyper-v
2> Remove all virtual switches from virtual switch manager
3> Go to Network connections in control panel and manually disable (right click and click disable) all the connection except the one which provides internet.
4> Start the emulator from Visual studio
Something else that seems to also cause an issue is Fiddler.
I had Fiddler open and running (as I was monitoring other HTTP requests), and it was stopping the emulator from connecting.
As soon as I closed Fiddler, the emulator starting connecting perfectly.
Start Hyper-V Manager
Open Virtual Switch Manager
Remove the Windows Phone Emulator Internal Switch from the list and apply changes
After installing Windows Phone Emulator on my Yoga laptop, I immediately had the following problems:
emulator apps cannot reach the internet
host computer internet connection is terribly slow and almost unusable
I was discouraged and thought I would have to do some drastic and desperate acts to fix things, but got lucky with the following steps which completely solved my problems (for now). The steps are verbose (intended for the readers' benefit), but are actually very simple in practice.
....0: Unplugged ethernet cable (to remove it from the equation) but stayed connected to WiFi. Problems still remain but at least there is less complexity now.
....1: In Control Panel / Network Connections / Change Adapter Settings, deleted Network Bridge (required for Step 2 to work).
....2: Opened Hyper-V Manager, right-clicked on the emulator VM item and selected Virtual Switch Manager. Selected "Windows Phone Emulator Internal Switch" and changed the radio button from Internal to External (this was only possible after deleting the Network Bridge (Step 1)).
At this point, the emulator can now connect to the internet (and Control Panel shows WPEIS finally 'has internet access'); however deployment of WP build binary from VS to emulator fails - it just hangs when I try to build-and-deploy from Visual Studio (so a new problem has surfaced (temporarily)).
....3: Returned to HyperV Manager, went back to Emulator VM's Virtual Switch Manager and reverted Windows Phone Emulator Internal Switch from External back to Internal.
I can now successfully build-and-deploy WP build from Visual Studio to emulator. And emulator retains its networking ability. Also the host machine's network connection also returned to healthy.
I hope this helps someone. Good luck!
I went through many of the suggested solutions, also with no luck. What finally worked for me was to fix a vmware warning about guest OS trying to set promiscuous mode for ethernet adapter (http://kb.vmware.com/kb/287).
Try this solution, it works for me (no need of DHCP)
Step 1 - using Hyper-V start the server, once started u can see the two new network adapters added in the (network sharing) page.
Step 2 - go to your visual studio IDE where your application runs, using Emulator run your application, once started try to open IE, it will not connect to internet.
Step 3 - now again come back to network sharing page right click on external adapter which was created newly select properties, hit on sharing tab, now check the two options to have tick mark if not tick that two options and click on OK.
Step 4 - internal adapter which was created newly will be changing the domain name from Unidentified network to your shared Domain name, once changed try to access the IE again in emulator which runs already. now i hope the internet connection works.
Thanks,
Baskar
After spending about 3 days on this i finally got it working. (on Windows 8 using WiFi)
Start Fresh, Remove HyperV, Restart, Install Hyper V, Restart
Open your VS solution and run the emulator.
When prompted for letting the emulator access the internet say yes.
Let the emulator and your project fully load
Shut down the emulator and VS
Open Network and Sharing Centre
Click change Adapter Settings (on the left hand side)
You should have some new adapter created by HyperV, they should be called "vEthernet(...)"
The ones you are interested in are the vEthernet( Virtual Switch) and vEthernet (Internal Ethernet Port Windows Phone Emulator Internal Switch)
Open the properties on your vEthernet( Virtual Switch) and navigate to the sharing tab.
Choose Allow other Network users to connect and choose the vEthernet (Internal Ethernet Port Windows Phone Emulator Internal Switch) as the adapter
Ok the changes, and then open the properties on vEthernet (Internal Ethernet Port Windows Phone Emulator Internal Switch)
Disable Internet Protocol Version 6 and double click on Internet Protocol Version 4
Use the following IP address: 169.254.169.177 Subnet mask:255.255.0.0
Click advanced, under the IP settings tab, assign an interface metric: 1
Open VS and re run your project under and emulator, wait a few minutes for it to load.
Try and open IE within the emulator and confirm you have internet access.
Good luck
After 3 days we have finally solved it. We had to make ip address dynamic. After making it dynamic emulator could reach internet. We didn't have to change anything else.
Good article: http://blogs.msdn.com/b/wsdevsol/archive/2013/10/01/why-can-t-the-windows-phone-emulator-go-online.aspx
I had DHCP reservation on my router, like #robertftw said. I configured a static IP for vEthernet (Internal Ethernet Port Windows Phone Emulator Internal Switch) adapter and everything works.
Disabling the Wifi, and Virtual Wifi inside "Network Connections" worked for me.
My Windows Phone emulator had been assigned an IP address by DHCP on a different Subnet to the one I am using.
Manually assigning an IP address on the same subnet as my PC to the vEthernet port created by Hyper-V resolved this issue.
Here i the scenario:
I am using MacbookPro as host
Using VBox for creating / using VM's
Using ubuntu as VM , with the installed software which needs access to my work (over VPN, of course)
Have VPN Connectivity from Mac, and able to ssh to hosts # work
I am unable to access the same hosts when logged in to the VM on my Mac.
The company network is 10.x.x. (as the case with most companies)
I am using comcast at home, which defaults to a 192.168.x.x type of address
When using the same setup # work, i am able to have access to work computers , but not when i am at home. Any clues to what i need to do to get access from within a VM?.
Thanks,
Since the VM instance is an entirely separate system I don't think you are going to be able to do this, as the Mac has no knowledge of the VPN that you are connected to.
You might ask this over on SuperUser.com as well, it might get more answers.