I have followed the main tutorials to set up a motion activated raspi camera. I can get it to stream locally. On my pi's IPadress on port 8080 like so, IPADDRESS:8080
It only works on my local network. I also tried setting up a dynamic dns service, which I can now also view my feed at username.dnsdynamic.com:8080, but it STILL does not work outside my local network.
I have searched through tons of tutorials but there are zoo many and none of them have worked for me so far.
I am utterly confused with networking stuff. I am pretty tech savvy, but I am at a loss. Any help would be greatly appreciated!
If you are connecting the pi to a router you will have configure port forwarding on your router so that requests from outside your local network gets forwarded to the pi.
You will at least need to forward the HTTP traffic from some port on your routers internet facing interface to the correct port (8080) and ip address for your pi. If the camera stream uses another port you will have set up port forwarding for that port as well.
Related
I'm trying to host a bottle server on my raspberry pi (4, zero w or zero 2 with newest pi os) to supply some configuration for a project.
The raspberry pi itself will not have internet access but will be its own wifi accespoint.
i set it up in the way the docs describe (search for "Setting up a Routed Wireless Access Point")
I have skipped the "Enable Routing and IP Masquerading" step because i don't need traffic to be rerouted to another network
The tutorial works fine and i'm able to connect to the hotspot. I'm also able to run the bottle server example and connect to it locally.
However, i'm not able to connect to it from a device that is connected to the hotspot. i'm getting an ERR_CONNECTION_REFUSED(when supplying the ip of the raspberry and port of the bottle server to the browser)
I don't really know where to start looking
Is there a firewall setting i missed?
Should i have done the "Enable Routing and IP Masquerading" step?
Is there something entirely different i need to look at?
Can someone point me in the right direction?
Try starting bottle on the 0.0.0.0 interface rather than localhost. That makes it listen for incoming connections on all interfaces, whereas if you start on localhost it only listens for connections from the local host.
I am working on IOT project in which I have to change some variables(fans speed, lights, etc). So just as a starter, I created a node.js server and tried to send requests to the server through a local network using local IP as
http://localhost:7000/users=mandar?lights=OFF
or
http://192.168.43.248:7000/users=mandar?lights=OFF
and it works fine.
Now I want to do the same over the internet. So I got Computer's IP address from https://www.google.co.in/search?q=myip and tried to send a request to the following URL:
http://(IP_address):7000/users=mandar?lights=OFF
This time it keeps on loading and finally shows this site can't be loaded.
So what is the right way to connect to the server through the internet?
Thank you.
You have to do port forwarding.
The IP address you get from the google search is the out-facing IP address of your router. However, your router knows your computer by your local IP address (i.e. 192.168.x.y).
You have to configure your router to send packets coming from internet destined to port 7000(or any other port) to your computer's port 7000.
Check your router's documentation on port forwarding. Likely there is a settings page on the web interface of your router that you can do the desired port forwarding. After configuring the router, there are several tools online to test if the port forwarding is actually working. I suggest you use one of those tools to verify the configuration before testing with your project.
You also might want to check if your router has a firewall. You can add an exception to the firewall such that a specific port number is reachable from the internet.
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
I'm currently working on a project where I use a raspberry pi as a server for a home automation server. It works fine on my local network but if I want to use it from an external computer I need to forward the used port on my router.
I'm trying to find a way to make http(s) gets to the server without having to forward the port on the router. I want this because if I would install the system at someone's place (a customer maybe in the future) I don't want to have to access their router.
I've tried using SSL and https but I ran into the same problem.
Is there any way this is possible or is it a lost case?
PS I can't use port 80 since it is already in use.
Thanks in advance
There are two ways to get to the result you want:
Port forwarding, which you've dismissed
Giving the raspberry pi it's own public IP address (which requires a public IP address and access to the router to configure the traffic routing, which you've dismissed).
So let's go back to port forwards.
Most consumer routers these days support NAT traversal via uPNP.
You can use the nat-pmp module to reqest the the router forward a port for you, without having to have direct access to the router.
I setup Apache server on my Raspberry Pi.
In LAN it is working fine.
But when I tried to open it with my public IP it simply gets Timed Out.
I opened a Port : 2323
Checked on canyouseeme.org
Means I have configured port forwarding correctly...?
Now I am trying to open this page with url: 122.175.144.237:2323 it shows Time Out Error.
I have 2 devices
Binatone ADSL2/2+ Modem+router
Tenda N3 Wirless N150 WiFi Router
and my Raspberry Pi is connect with WIFI with static IP 192.168.192.99
I searched for this problem but till now not found any appropriate solution.
Is there any problem in configuration of Apache? or I missed some configuration. or it is because of apache restricting to open page with public IP or not allowing to open over internet.
Is there any way..?
Even if the port is open on the external interface of your router, that doesn't necessarily imply that port forwarding is setup correctly, just that the router isn't flat-out rejecting that traffic. Also, as you have a second wireless router in your network (that is probably itself running NAT), you must also have port forwarding setup on that as well.
Apache must also be configured to answer for the virtual host it is being addressed as. It should answer on it's IP with a default page, but without knowing specifics I couldn't rule it out.
That should get you started, but at this point you still need to narrow the problem down quite a bit before proceeding.