Accessing Ras Pi 3 phpmyadmin on windows machine - windows

I've got an Arduino hooked up to a Raspberry Pi 3 via USB and feeding some analog data to a database I created.
I've set up a database on my Raspberry Pi 3 (have everything set up phpMyAdmin and MySQL). I'm feeding data into it and it works. I want to access the database through my Windows machine, though. I have Apache, phpMyAdmin, and MySQL all installed.
I'm pretty sure I've edited/copied all files correctly and I can get to localhost/phpmyadmin on my windows machine.
I'm just not sure what I need to do to get to my Pi's database from there. Working with Wifi currently. I don't necessarily have access to a router since I'm working of my apartment building's wifi. I have VPN installed on Pi but haven't really configured it yet if that's the route I need to take.
Any help appreciated

Since the database exists on your Raspberry Pi, you don't need to have MySQL installed on your Windows machine. You generally only need one MySQL server which can be accessed by many clients. In this case, since you want to use phpMyAdmin to access the data, you have the option of installing phpMyAdmin on your Windows machine or the Raspberry Pi. I highly recommend putting it on the Pi, because it simplifies the connection process to have it on the same machine that MySQL is using.
You'll need some supporting software to get phpMyAdmin running; a web server and the PHP interpreter. These are all easily available on the Raspberry Pi (depending on your operating system, of course; I use Raspbian and there are packages distributed for each). Then you'd use the web browser on your Windows machine to access the web server on the Pi (likely through the IP address; you'll have to query your Pi to figure out what the address is, perhaps with ip addr at the command prompt).
You can certainly use phpMyAdmin installed on your Windows machine instead, but then need to ensure that the MySQL daemon is listening for network connections and that you have a user permitted to connect from an external network connection (I'm seeing that many packages are restricting both of these, as a security precaution, in their distributions now). It's easy to enable yourself, but easier to just connect from a local PHP instance.
Unless your machines are on two different networks or you wish to connect to your home network from an outside connection on the Internet, you shouldn't need the VPN for this project. Your wifi is likely supplied by a router that's giving you a local address and will allow you to connect to other machines on your local network segment, so once you find the IP address you should be able to connect directly.

Related

Can you have a single domain across 2 servers within Hyper-V Manager?

I am running a Hyper-V lab for a client to test the functionality of a Powershell script and due to memory constraints, I would like to move my file and database VM servers off of my main desktop PC to my laptop. I set up Hyper-V on the laptop, and successfully exported/imported the VM's into the other Hyper-V server. I can boot them, all the configuration and files are intact however, I am predictably having trouble reconnecting to the domain they were a part of prior to the move. I understand I need an External virtual switch to handle that communication, as internal and private will not reach outside of the Hyper-V server they reside in. Obviously I would prefer to not use an external, but this is strictly to continue testing. I've trouble-shooted entering different DNS server values from the client machine's IPv4 properties and changing the virtual switch to External for the existing Hyper-V server, and re-register the DNS records on the DC. All result in the same error when I try to connect to the domain: "(error code 0x0000232B RCODE_NAME_ERROR) The query was for the SRV record for _ldap._tcp.dc."... "The DNS SRV records required to locate a AD DC for the domain are not registered in DNS".
In summary, I want to move a VM from the first server listed to the second, and then re-connect to the domain they were part of previously. Both machines are just running Windows 10, not Windows Servers, if that matters. Another note, I can do remote sessions from the desktop to the laptop just fine which would lead to believe this is not related to a firewall. Thanks!
The best it to set up a VLAN. If you can't do that, change the network class of your AD lab machine (192.168.55.x ?) to another in order to avoid conflicts.
Your DNS server has to be AD to make your machines connecting to it.
And last but not least, if you're on 2 different hyperV servers, you have to use external switch in hyperV:
https://redmondmag.com/articles/2018/05/04/hyper-v-private-networks.aspx

IoT management page with P2P connection

I'm really looking for advice and a starting point more than anything. So I'll try my best to explain my end goals and the challenge. I want to set up a local WiFi connection (P2P) between a Rpi3 (or any embedded system really, running linux) and a laptop. The Pi should be the server and laptop the client. The raspberry PI is going to be reading samples over USB from an SDR. I want the laptop to be able to connect to the network the pi throws up, and be able open a browser and view the results. I'm guessing what i need to read up on is ports/sockets and web programming in general. The cheepy IoT sensors and light bulbs seem to be able to do this (opening network and forwarding data) relatively easily but i cannot find any information online to aid in my quest. All the Best and thanks in advance.
Since the embedded system will be running Linux, you can do something along the following lines:
setup the wifi as an Access Point (example). Also setup DHCP Server (example), so the wifi will assign an IP address to connecting laptop.
Install a webserver (e.g. Apache).
Create the webpage/ web application you need to "serve" the data. Install this into Apache.
Ask follow-up questions if you like.

Thin client vs. PC for RDP-only connection

Context : I'm switching my whole desktop environment, and after many thoughts, I'm going with a Virtual Machine hosted on a Google Cloud (Win Server 2016)
The server is a "Single User" machine, that will receive an RDP connection. The terminal must allow :
Dual Monitor
Port forwarding (USB, Local Printer)
What would be the best option :
Buying a refurbished PC, and use Native Remote Desktop
A proper thin client that supports RDP
Raspberry Pi 3 (Linux with a RDP session)
I'm looking for the best performance for general work (no 3d, Cad, ect.)
I used for this purpose a raspberry pi with Raspbian. For the remote sessions I use Vinagre.
It works very well and it's cheap.
But I am not sure about multimonitor and port forwarding...

Is there a way to remote debug on a different subnet in Visual Studio?

I have a client who is remote. I need to debug some weird problem that none of my other clients are having. Before I try and set up a conference with this client, I would like to know if there is some way of remotely debugging our application.
I see that there are remote debugging tools available for Visual Studio, but from what I've read, I need to be on the same subnet. As the person is remote, this is not a possibility. Also, as I'd like to keep our connection secure, I would need to connect up some sort of encrypted tunnel (this is where I'm a little fuzzy as my networking skills are mostly theoretical).
As I understand it, an encrypted tunnel is a bridge to another (different) subnet. This is to ensure that those computers on the other side won't interfere with the local subnet computers.
So, because the client's computer is on a different subnet, I think that this is not possible. Or is it? Should there not be a way of making the client's computer show up as a virtual computer on my subnet, by forwarding packets from one subnet to another? I would think that this is theoretically possible, but I'm not exactly sure how I would go about this.
Also, at the moment, my current way that we connect to clients is through GoToMeeting, but I don't think that it supports tunneling. If not, then I may need some way of generating a tunnel, so I was also thinking of maybe using some SSH programme like PuTTY.
As I have said before, my knowledge of networking is quite theoretical, so if the tools that I am suggesting are not the correct ones, please correct me. (I'm a programmer, damm it! Not a network engineer!)
Both computers are Windows boxes. Windows 10 (client) and Windows 8.1 (development).
If you can connect to an ssh server in the remote network, you can (subject to configuration on the server) create a tunnel such that you connect to a socket on your local pic and the connection appears from the server to an endpoint on the remote network.
You'll want to investigate the -L command of OpenSSH, which combined with the PuTTY docs, should help explain what's required.
By default, the endpoint would be a port on the ssh server, but it could be a port on a different host that the remote server can connect to.
I'm not familiar with the current state of Windows SSH servers, but even if there isn't a system server to hand, you should be able to have on run 'on demand' - if you run it on a non-privileged port and by the user you want to connect in as, it shouldn't even need Admin privileges.
I'm not familiar with GoToMeeting, but the one thing with SSH tunnelling it that IT depts should be familiar with SSH. If trying that, focus on getting a working connection in, then setting up the tunnel, then connecting through it as separate steps.
Once you have an SSH connection, then it doesn't need to do something itself, and you can then investigate connecting while specifying the port forwarding, but will will need to get the basic connection working correctly first.

How do I determine the identity of a Windows machine?

I have a program consisting of a server and a client processes. Both run on Windows systems - Windows 2000 or later versions. The two processes can run on the same machine or on two different machines.
How can the client determine if it is run on the same machine as the server? If the server is not running the client can't work anyway and doesn't care where the server possibly is - so this case is out of the question. I've heard that each Windows machine has an UUID - can I obtain it and use for that purpose?
Windows networking requires computer names to be unique, so calling the GetComputerName api and having the client and server swap names (and compare the received name to the name they see) should suffice. If the client and server can start up independently of one another then you'll need some sort of protocol for this process. It seems logical for the client to initiate the exchange, and the server to only send its name when it has received a name from a client. The client can then abort the connection if it sees the same name.
I believe most virtual machine systems will allow the virtual machine to have its own name, so it should still be possible for you to test on virtual machines. However I don't have extensive experience of all the virtualisation technologies out there, so can't say for sure.
Previous question about generating a unique machine id that might help.
Link to previous answer which mentions MachineGUID
It is straightforward to add an API to the server that reports its machine name. The environment variable is COMPUTERNAME. The client could check that, right?
Do you need to deal with any of these cases?
The client is running, but the server is not responding, and you want to know whether the unresponsive server is on a remote machine.
The client and the server are running in two distinct virtual machines on the same host machine, and you want to report that as "running on the same machine."
The client is running in a virtual machine hosted by the same machine as the server is running on, and you want to report that as "running on the same machine."
The client and the server are running on uncoordinated networks and both might have been assigned the same name.
The server is possibly hostile, and will attempt to deceive the client.
The network card will have a unique MAC. If both server and client report the same MAC then they are using the same network card. If both client and server are running in different virtual machines but using the same network card, do you consider them running on the same machine or different machines?
how about trying to establish a loopback tcp connection? or maybe checking for some lock file created by the server in a predefined folder...
I don't know exactly how, but there's for sure something equivalent in Win32 to the /proc filesystem in Unix (I think there are free replacements for the windows taskmanager, maybe you could look at their sources) where you could search for your server process.

Resources