I have a google VM. I got public as well for the same (using which I am RDP'ing to that VM). But when I am trying to access any webservice hosted in VM from outside world using ip:port, it is not connecting to that webservice.
To be more precise :
I have hosted a sample webservice using nodejs on port 8080.
I have tried accessing http://:8080 . No luck. But it is working with localhost:8080 inside VM.
I have googled about external ip etc, but all went out of my head. Can any one please help me how to resolve this issue ? do I need to make any config changes etc? if yes, could you please provide me the required steps.
Update :
I have created fire wall rule saying : port : allow all, target tags : all instances, IP : 0.0.0.,0/0 . even then it is not working.
OS : windows 10
As I understand, the GCP firewall rules are applicable on the network level. You might need to configure the virtual machine specific firewall rules (according to the OS you are using). For example, in CenOS you may need to use firewall-cmd commands to configure the internal firewall.
Finally solved this. All the time I was thinking to enable port in networks for google cloud, but the problem is at my windows firewall. once I disabled it, I could access my webserver from outside environment.
Related
I have been trying to setup Docker in Windows Server 2016 in an AWS instance to run an IIS program.
From this question,
Cannot access an IIS container from browser - Docker, IIS has been setup inside a container and it is accessible from the host without port mapping.
However, if I want to allow other users from the Internet/Intranet to access the website, after Google-ing it, I guess we do need port mapping...
The error I have encountered in port mapping is given in the above question so... I guess using nat is not the correct option. Therefore, my team and I tried to create another network (custom/bridge) following instructions from
https://docs.docker.com/v17.09/engine/userguide/networking/#user-defined-networks
However, we cannot create a network as follows:
; Googled answer:
https://github.com/docker/for-win/issues/1960
My team guessed maybe its because AWS blocked that option, if anyone can confirm me, please do.
Another thing that I notice is: when we create an ECS instance in AWS,
So... only default = NAT network mode is accepted in Windows server?
Our objective: put the container hosted IIS application to Internet/Intranet in Windows Server 2016...
If anyone has any suggestion/advice, please tell me, many thanks.
I red lot of post about this question without find the good answer. The situation is simple, I have a server (Go) running on Ubuntu 14.04 (VMware Workstation 12.1.0 Pro). It listens on the 8001/8002 ports. From the host of the VM (Windows 10), I can access it from the host (Windows 10) but from my Xamarin Application or the others computers, I can't access this server.
I tried lot of things such as port transfer, edit of the NAT propreties (of the VM) and edit of the vmnetnnat.conf file as well. I tested about bridge connection but I didn't find the way to make it works with this way. etc
I also did transfer port from my internet box to get the access by IP instead of private network address (192.168.XXX.XXX) but it didn't works too.
If anyone can help, thank !
By default your Workstation configures your VM in either NAT or Host-only or event in Custom network configuration what means your host computer (you Windows 10) is the only endpoint which can access this box without any additional configuration in your router.
I would suggest you the easiest way is to use "Bridge" configuration what you mentioned below by getting (perhaps DCHP) IP schema from your parent router (the one gives your Windows 10). Thus your VM will be available across your "Home network", Once done, check your ICMP (pings) from Windows 10 to your VM, make sure you can see it.
Second point is that your 8001/8002 ports might be closed by firewall (iptables) in your ubuntu / Windows 10. You probably want to check your both firewalls as your traffic is being routes by "Virtual router" of Workstation.
My computer is connected to our college's local network. I am able to access my django server in the same network from another computer. When I try to do the same from an outside internet connection, I get an " Webpage not found error" . I used the ip given by Whatsmyip.com to access it from outside. Also, I started the server using the command : python manage.py runserver 0:8000
Use something like:
LocalTunnel http://localtunnel.me/
Ngrok https://ngrok.com/
These create a tunnel to your localhost. You cannot host from a common IP shared by an internal network. Read more about localhost here: http://en.wikipedia.org/wiki/Localhost
Please note that the tools above allow you to share a link to your site and is mostly meant for development and testing. If you really want to host a Django server, either do it on an external server or contact your infrastructure team in college to see if they even allow such a thing.
For external hosting, Heroku (https://www.heroku.com) can be a good option with a reasonable free plan.
This depends on your college network. Often, computers in local networkds are behind a NAT (one single external ip for several clients). At this point, the request cannot be routed from out- to inside. Maybe a college technician can help you to route your page.
I think it's first important to note that manage.py runserver is for local development. It is not meant to be used for deployment.
If you want to access your website from "outside", you should consider deploying it. You can then read more about this here : https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/
Also, like stated in other answers, depending on how is configured your college network, it may not be possible to access your development server from outside, because :
It probably has NAT rules for local networks
There are probably port restrictions and a firewall for outside access (usually college networks are very restrictive from inside AND from outside)
Win7 PC running Rails in an Ubuntu VM via VMWare Player. I'm working on a site and would like to show it to a friend who's outside my network.
I found this blog post, which got me very close: http://blog.fardad.com/2012/06/vmware-player-and-custom-nat-port-map.html
OK, so I have the VM that is using NAT. As I understand it, that means that the VM will appear to have the same IP address as the parent machine to outside traffic.
I went into NAT settings and added port forwarding:
Host Port: 8200 Type: UDP Virtual IP Address: 192.168.198.184:3000
OK so my understanding is that I should now be able to go to 192.168.1.1xx:8200 (the IP of my 'real' PC) and access the webserver running in the VM. But when I go to that address, I don't get anything. I can ping 192.168.198.184 (the VM) from the PC.
What I want to be able to do is go into my router and set up a port that will eventually forward into the VM.
It seems like I'm missing something very small but I don't know what that is. Help, please.
If anyone is curious how to get the Virtual Network Editor:
go to the vmware-directory and run in elevated cmd.exe-box
rundll32.exe vmnetui.dll VMNetUI_ShowStandalone
http://communities.vmware.com/message/2155960#2155960
Find the vmnetnat.conf file, usually located in
C:\ProgramData\VMware\vmnetnat.conf
or
C:\Users\Application Data\VMware\vmnetnat.conf
Edit vmnetnat, add similar line in the [incomingtcp] section
8200=192.168.198.184:3000
Restart VMware NAT Service.
Try using Bridged network option in vmware player instead of NAT. It replicates your physical network.
You can use an http proxy to do that, by doing that you don't need to expose your entire private network, check out this blog post for more information how to access docker containers from external devices
I have made a simple Jetty server using this tutorial here, http://www.seas.upenn.edu/~cis550/jetty.html
Now that I have the initial steps completed, I can succesfully connect to my server by entering localhost:8080/hello or 127.0.0.1:8080/hello in my browser. Everything is going great up until this point. The servlet is working properly.
I am now interested in connecting to the server using "Machine B". I want to build a server that can be connected by any browser, anywhere.
My IP is XX.173.XXX.216, parts hidden for obvious privacy reasons. On my "Machine B" I try and enter XX.173.XXX.216:8080/hello into the browser URL. The website cannot be found. From experience I questioned my port mapping and opened my 8080 port.
After a few google searches and a while of reading, I give up. Does anyone know a possible solution to my problem? Are there any further steps I need to do in the setup of the Jetty server to make it accessible from external machines?
It is usually not hard getting from the inside of a firewall and out. It is much trickier to get from the outside and in (just have a look at the hoops Skype jumps through to be able to get two computers each behind a firewall to talk to each other directly).
First of all you need to ensure that Jetty listens to the right network devices.
Identify the IP-number of the computer running Jetty (not 127.0.0.1) and see if you can connect to "http://that-ip-number:8080" from the machine itself. If this doesn't work, fix your jetty configuration. Then put another computer on the same network and connect to "http://that-ip-number:8080" too. This MUST work before you go any further. If this doesn't work, fix your firewall configuration on the computer running Jetty.
When the above works,then you can start thinking about exposing the port through your router. The router most likely has a web interface where you can configure this, but the easiest way to do that is to use a uPNP tool (if your router supports that) which can redirect an external port to a specific host and port on your internal network. I use "Port Map" under OS X which has a very simple interface.
Good luck