How do I setup my Node.js server so clients can connect? - node.js

My little node.js server works fine, but only the host machine is able to connect with it. When i try to connect with other clients (which are connected to the same router as the host), I don't get a response. The server is listening at port 3000 (also tried 80, no difference), I tried setting the host ip to the network ip of the host computer, 127.0.0.1 and left it empty, but nothing worked.
How do i configure my server so that clients other than the host may connect?

Set the listen IP to 0.0.0.0. This listens on every interface.
Turn off your firewall to check that it is not the issue. When you turn it back on, allow port 3000 TCP incoming and outgoing.

127.0.0.1 is your local IP
if you are using wamp or mamp share your server on ip.
Next go on google check for whatsmyip. Give your ip adress to who you want to share your file.
Or if you consider to upload on server
except node_modules you have to upload the necessary files and folders. In server try npm install.
Make sure you have package.json
If you are new to Nodejs. Try Heroku
https://scotch.io/tutorials/how-to-deploy-a-node-js-app-to-heroku

Related

Why doesn't my Node.js express Server work on other devices?

I have started my Node.js express server running on port 3000 and it works on my local computer the server is running on. Then I have forwarded the port 3000 to the IPv4 adress of my computer in my router but I still cannot connect to the server on other devices.
HAs it something to do with the protocol? Do you know why it doesn't work.
To connect to a server on your own local LAN, you need the following things:
The local IP address of the server. It would typically be something like 192.168.1.x, but in some cases it might be of the form 10.0.0.x.
You need to make sure the computer the server itself is on does not have any local firewall that is blocking incoming http connections. On Windows 10, there is a local firewall that by default blocks incoming http requests so you would have to enable incoming http requests on the desired port in that firewall configuration.
You can then connect to that server from somewhere else on your local network with a URL of the form http://192.168.1.x:3000/ where the 192.168.1.x is the actual local IP address of your server computer and the 3000 is the port the server is running on.
You need to make sure your other devices are actually ON your local network. For example, if it's a phone, you need to make sure it's actually connected to your local network via WiFi and not connected to the visitor's connection that can only reach the internet, not your local network.
You do not need to do any port forwarding in your router. That's something that would be done when connecting to your server from outside your network (like from the internet). I that case, you'd have to connect to your public IP address and have that safely port forwarded to your server. But, since you said you're trying to connect to the server from within your LAN, you don't need any port forwarding on your external firewall.

how to view my website from anywhere which is running in my laptop at home.?

Things I did so far.
my website is running on port 80.
had opened my port 80 with the help of VPN book. confirmed with canyouseeme.org.
Created an account in noip.com. Created a hostname.
using the AsusZenfone3 mobile phone and airtel 4g mobile data. getting internet to my laptop via Hotspot/Tethering using wifi from phone and laptop.
had downloaded DUC from noip and it is running fine.
had configured a device in noip.com for my host like below,
- hostname
router brand as Asus(I don't use any router/ I don't know what router is used)
-software/device as HTTP
Is there any computer running on your network? Yes
downloaded Duc
port 80 check success
my host has been successfully configured.
I also added rules to my firewall to enable TCP and UDP 80 port access.
But still, I am not able to access my website.
I tried calling my website from the proxy server, I get an empty result from the server.
Cannot say for certain, but it sounds like you opened port 80 on your router but likely did not forward that port to an address on your local LAN.
Somewhere in your router config you should be able to find a port forward option. So any traffic received on that port would need to be forwarded to the local IP of the computer running the webserver.
Problem
Your port is not forwarded through your gateway connection.
Solution
Fwd Port Forwarding app for Android phone

Can ping a local server IP but can't browse a site into the server

I have a server connected to the network with the ip 192.168.xxx.xxx. I can ping the ip but when i try to access from the browser to the server's localhost, obviusly with the IP, i can't.
What is wrong??
UPDATE!!
There was a network error... not configuration!! Thanks for help! Problem solved!
Check if the port you are trying to connect is open. If it is not, you have to bring up the port first, Example: if you are trying to run an app from tomcat, start tomcat first,
There are multiple reasons why this would happen:
The server is not set up to receive incoming connections. Check your firewall settings
The server isn't publicly visible (Meaning the server will appear to a ping, but all the ports are closed
The server isn't able to make outbound connections, again, check the firewall.
To test ports, either port forward, or put the server in to a DMZ (All ports are open)
Manually attempt a file transfer or another service by using ftp <IP of server>:<port number eg 21) or an SSH tunnel. If the FTP passes, then the HTTP port of the server may be down (port 80/8080).
Verify the router interconnecting your PC and the server isn't restricting local peer crosstalk.

Port forward not working to set a local web server

I have just created a simple web server using node server and it's running fine. I can access it from the same PC by going to address http://127.0.0.1:1337.
Now I want to access that web server from my WAN IP. I got my my using whatismyip and got something like 110.36.xxx.xxx.
When I tried http://110.36.xxx.xxx:1337, I got:
Firefox can't establish a connection to the server at 110.36.xxx.xxx:1337.
Here is the screenshot how I created the port forwarding in my router:
What's wrong here?
Localhost is only accessible from the same pc. You have to launch your webserver either on address 0.0.0.0 (it will be available on all network interfaces) or 192.186.0.5 so that it is accessible from your wan interface

Port Forwarding on website

I'm noob in this field, so please help me understand this:
I have my web application launched on port 8080. I thought that if i forward port 8080 and enter from web browser: myexternalipadress:8080/Index.html it should open my website. please tell me why i'm wrong
Ahh, hosting a website from your house is a fun thing indeed. In my experience, here is how I approach trouble shooting.
1.Making sure your server is configured properly.
Launch the server application
If your client and server are the same machine, make sure you can reach the server on localhost
Access the server from a different computer on your LAN, use your servers lan ip. 192.168.?.?:8080
If you can't get to it from another machine on your LAN, you may have firewall issues on the server
2.Making sure your network is configured properly
This is where port forwarding comes into play. Figure out the LAN ip of the server and log into the router.
Tell your router to forward the port (8080 in this case) to the server LAN ip address.
Test it by telling your friend to access your server on (WAN_IP:8080 in web browser)

Resources