I want to access to all kind of webpages without restriction from work, so I thought I could set up a vnc server on my raspberry pi, forward 80 port to 5900 port (for example) on my router and try to access to my raspi from work using a client like RealVNC. Now the question would be, Is this going to work? If not, what would be the correct solution?
Start with this video overview: Raspberry Pi - How to put your Pi Online
Use the TightVNC Server as it is widely supported and compatible with the Raspberry Pi. Here's a tutorial on how to setup a Tight VNC server on the Raspberry Pi: Raspberry Pi - Installing VNC server
Setup Dynamic DNS on your Raspberry Pi. This will give you one address to point your VNC viewer at that will stay the same. With out it your address may change every now and then at the ISP's discretion.
Setup TightVNC Viewer on your work computer and point it to your new dynamic address and your TightVNC servers port. Then connect.
Related
Is there a way to reach the raspberry Pi, since the ip is dynamically assigned to each device.
I have to use the API that the raspberry Pi is serving.
You have to know its IP to access, for example, via SSH. To connect to your Pi via SSH, you will need to enable SSH first. So, you will have to connect the Pi to a monitor first to enable it.
To find out its IP, you can do a LAN neighbours scan in your network. You can use a mobile app like Wifi Analyzer or you can use a windows program like GlassWire.
I created a web server on my Raspberry pi using Apache2 and Wordpress. At the beggining I used a local network (IP is 192.168.1.103) and then used a Huawei dongle to connect to the internet. When the dongle is connected, web browser unable to load localhost. When dongle is used it shows that:
"The website at https://192.168.1.103/ seems to be unavailable"
How do I correct this error?
The IP address you're using to connect to the site is a local network address.
When the device is using a mobile data dongle it's no longer connected to your local network so the local IP no longer works.
You could find out your IP address when the dongle is connected however that's impractical. There's a good chance each time you reconnect the IP address will change. Your server needs to have a static IP address.
You cannot directly access a device on a Local network/LAN from the outside/WAN. Notice you are trying to connect to your localhost so you need to be directly connected to the device in question or through a medium which intenrally connects the devices together, such as a router/wifi hub.
When we break your steps down; you are trying to connect to a localhost/device on your LAN but you are connecting via dongle which is actually connecting via outside/WAN connection. This means your GET request for the localhost URL is going to the ISP/dongle providers server first then trying to get back into your LAN - this is not possible, hence the error.
Fix: Connect to device directly or via a medium such as a router (through ethernet or wi-fi).
Additionally: if you wish to type in a url instead of an IP then this will need to be resolved. This is done by manually typing in an entry in your hosts file (in the Raspberry Pi) and inputting the resoloution info i.e www.yourwebsitename.co.uk and local IP i.e. 127.0.0.1.
Your webserver (i.e. Apache) may need to be restarted for changes to take effect. If site is not loading correctly then it could be that your web browser is displaying a cached image in which case simply clear cache in your web broswer and reopen.
In order to get some home automation software to work, I need to have public access to my Raspberry Pi 3. However, I currently reside in an on-campus dorm and as a result am on the college's network and do not have the ability to port forward.
I have a router that connects to the school network via Ethernet and then broadcasts its own network, however, this is still a part of the school's network and I can't port forward this.
I've looked into ways to get around this such as Page Kite, using some form of reverse SSH or HTTPS tunneling, but due to lack of support on Raspberry Pi or daunting setup I'm not really sure what to do. I do have an old HP laptop on Windows 7 that I could use as some sort of slave or server if that would help.
All help is very much appreciated. This has been a major roadblock in me finishing this project.
You don't say what kind of public access you're expecting, but without access to the main router you just need to signup for a dynamic DNS service with a client-based updating tool. All the most known ones (DynDNS Dynu, no-ip) all offer that option as far as I know.
The theory is that you keep the service updated anytime your internal WAN IP changes and they keep your hand-picked url updated with that IP. Then you can access your Pi with that IP thru a web browser or whatever service/port you've setup.
Here's a good starting article - with links to Dynu downloads for Linux that should work for you.
http://www.howtogeek.com/66438/how-to-easily-access-your-home-network-from-anywhere-with-ddns/
And an article from noip.com site on installing their Linux update client
https://www.noip.com/support/knowledgebase/installing-the-linux-dynamic-update-client/
I have Raspberry Pi and a mobile app developed in ionic.It has to communicate over SocketIO and normal HTTP request. I can communicate if i know IP address and port no. But what if I'm using it over internet and my raspberry pi's IP address is changing dynamically due to DHCP. How do i connect to my raspberry Pi device. Is their a way to connect if I know MAC address of Rasspberry PI.
Short Answer: no
Slightly Longer:
MAC is only useful at Layer 2. So the minute you have a router between you and the device, you will no longer be able to see the MAC. If you control the Layer 2 network you can statically assign a DHCP address, or you can look at the logs and see what IP it was assigned, but if the device is connecting to networks you don't control and its address is changing, you will need a way for the Raspberry Pi to register where it currently lives. There are a variety of ways to do this, such as dynamic dns registration, or you could have it phone home to some sort of locator service that your app could then query, etc... But without extra software you are probably out of luck.
You should use a dynamic IP service like www.noip.com. They provide a free linux and/or windows client.
That way, when your public IP changes, you will still be able to connect.
This is my application setup.
I have written an application (in Qt ) which will run on a linux computer (Ubuntu). The application accepts requests from web app and sends them to a serial device that is connected to the computer. Also application will send back the response to web app as well. This linux computer is connected to internet via wifi router.
Now my question is, Is there a way (other than port forwarding in wifi router) that I can achieve this functionality. Using port forwarding I can ask the router to forward the requests coming for a particular port to my computer at a particular port and my application would be listening for that. But for that I would have to configure the router and I don't want to do that. Is there a way I can do that automatically?
Thanks,
DPatel
Your issue is traversing non-routable NAT addresses.
UPNP is an option: http://en.wikipedia.org/wiki/Universal_Plug_and_Play
It will automatically configure port forwarding.
There is a library out there called STUNT for this as well:
http://nutss.gforge.cis.cornell.edu/stunt.php