Sharing files over internet for RPI - ftp

I am currently looking for someone to point me in the right direction. I need to connect to a Raspberry Pi over the internet so that I may add files to a specific folder from time to time.
I have installed tightVNC and I am able to log onto my Pi without a problem but I realized cannot share files between my PC and my Pi through TightVNC.
Since I am able to actually control my Pi remotely I first tried to used Google Drive on my Pi but that did not work through the browser same goes for my hotmail account or onedrive. I would like to set up a FTP server that would work over the internet but I am stuck and need a push in the right direction.

Here is a way to setup an FTP server just keep in mind that it will require additional ports allowed through firewall 21 for the FTP control channel and a few other depending on configuration for passive mode.
Basic instructions for FTP server for Raspberry PI can be found here: http://www.instructables.com/id/Raspberry-Pi-Web-Server/step9/Install-an-FTP-server/
Side note:
SFTP might be easier as it will just use the same port as SSH.
Instructions for SFTP here: https://www.raspberrypi.org/documentation/remote-access/ssh/sftp.md

Related

Accessing Vagrant box from external network

Before posting this, I've done some research and tried different solutions. The question is how to configure a system so that it would be possible to SSH into it's vagrant box from external/different network?
I have a Windows machine at home. I have installed Vagrant and now able to access the contents both via HTTP and SSH from any device connected to very same network.
What I want to do is to be able to get a laptop, go to a nice little café just across the river, sit down and work on my project which sits in that Vagrant box on my home desktop PC.
I am quite terrible in networking and not sure what is the solution. Do I need to make my home desktop a server? If so, which steps should I take? Do I need to do configure something in my router software? Or do I need to create some kind of VPN stuff where Vagrant thinks I am actually requesting it's contents from the same home network or perhaps I just better give up and setup a droplet in the DigitalOcean instead?
To moderators: please don't shut this question because the answer is an opinion based. I am happy to listen to these opinions and I want to know which steps to follow to achieve what I want.
Thanks
Why not just copy your Vagrantfile to the laptop and spin up an instance there? It would be much less work, faster, and importantly much safer than opening up your desktop computer to the world.
I think your own suggestion of a remote server is also a valid option, although not quite as simple as just using the laptop.

How to force windows 10 to refresh network location

I have a raspberry pi with Samba share and attached piDrive. I currently backup from windows to that networked drive (old address 192.168.1.117).
I've forced the pi to use eth0 only and assigned a static IP address.
After a samba restart and PC restart, the pi3 shows as a network device (\RASPBERRYPI3) however on clicking I get 'not found' and an 0x80070035 error.
If I manually add the new IP address to a mapped drive, it works fine (192.168.1.199) and I've successfully added it as a new drive. The issue is windows won't allow me to backup using the built in backup feature as it will only allow a network browseable location (the other computers on the network \raspberrypi3). Is there anyway I can force this to rescan for the new IP address or reset it in some way to allow access?
Many thanks,
Luke
The ONLY way I could do this after 6 hours of tinkering was to change the raspberry pi hostname. This was much easier than anything else, despite having to resolve a few issues on the pi side. I did try changing it initially (windows found and accessed no trouble) then changing it back, but again windows couldnt find it? Eventually I just opted for sticking with the changed name and resolved the Pi-side issues. Not ideal but it was the only thing that would work for me.

UIAutomation won't work in Windows Server (VPS) if I am not connected via RDP

I have script which uses mircrosoft's UIAutomation to automate an application. The script is inside a VPS running Windows Server 2012. The script works perfectly while I am connected to the VPS via Remote Desktop (RDP).
When I am not connected, the script seems to be stuck on SetFocus for a object... which leads me to believe that the script needs a Display/Screen/Session in order to work... but I am not sure if it is possible to do it while I am not connected to the VPS.
I can see 2 possible solutions here, either modify the script in someway to work in this environment or make the VPS have a virtual desktop while I am not connected (this solution might be more related to Server Fault rather than StackOverflow).
I am very confused, thanks for the help in advance :)
I managed to workaround the issue by actually connecting to the server to itself (to 127.0.0.1) via RDP so that it will always have an active RDP session for the automation script to run.
I am not happy with the results but it works... I cannot give clear instructions on how you would need to modify the settings in Windows to allow RDP connections from self, it was a one big trial and error process, I have to modify some policies in the Group Policy Editor and then some stuff that I don't remember.
There is another downside to this, a Windows server will allow 2 simultaneous connections to it but by using this method we are reserving a slot so only 1 connection at a given time is possible, something to be aware of.

Raspberry Pi: Remote desktop with tightvnc and mac

I am trying to setup tightvnc on my Raspberry Pi 2 (rp2), so I can remote in from my mac. I have done this before and it went smooth as butter. But this second setup has been a real challenge and i am not sure why. I used these steps: https://www.raspberrypi.org/documentation/remote-access/vnc/. The only thing I did wrong on this - I setup automatic start up before ever connecting to the vnc server or setting up the password, which makes me think might be the root of the problem.
When I try to connect to my rp2 via finder's connect to server feature, I get a message saying that I cannot connect and need to check the settings on the host. I can ssh into rp2, and i can see that indeed tightvnc is not running, but! .X0-lock and X0 in /tmp/ folder do exist. If I delete both of these and restart tightvnc and then connect to the rp2 from my mac I can see grey pixelated screen & mouse cursor. ???
I tried removing tightvnc, tried disabling autostart, but it always persists which is beyond me (i have used linux before for school and work, so I am not a complete noob, but not an expert either). I tried redoing the steps to correct the install, no luck.
Any ideas? Any thing I can take a look at? I might just wipe the whole raspberry instal.
Thanks!

Copy Files from Remote RDP to Local Machine [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 3 years ago.
Improve this question
Is there a way I can launch a RDP session to a remote Windows server, and perform a file transfer to the local computer? Versions of the remote Windows Server varies. Ranges anywhere from 2000 to 2008.
I've tried to look up solutions and it seems scattered everywhere. Some suggest using mstsc.exe, others suggest PowerShell / Java / ASP Net. I'm confused. Appreciate some guidance here.
Thanks!
Update Below: 17 Feb 2012
Thanks for all suggestions. Would like to add that the remote servers are securely locked down and I'm not allowed to install SSH servers, FTP servers, or shared drives. The only way for accessing the remote machine is through RDP, and these machines are also on separate VLANs to which only authorised users can use RDP to access these machines. I'm trying to create a script that can help authorised users to download the required files.
You can map a drive using remote desktop.
Options > Local Resources > More
Ctrl + C at the Remote Desktop, and Ctrl + V at local, if you not looking for any automated solution. (Please check RD Config to enable copy and paste)
Once you have mapped the drives you want using mstsc, you can use \\tsclient to access the file system of the local machine i.e the Terminal services client from which you have RDP'ed on to the remote box.
If all you are trying to do is copy file from a remote box, just do \\machine\c$\path etc or share the folder and do \\machine\share to get them. RDP is not necessary in this case.
Once you have mapped the needed drives as Andy says, you can execute remotely a LOCAL batch file every time you connect specifying it's local path (using \\tsclient\c to refer your local drive) in the Programs tab at RDP properties.
Remember to write cmd /c before that path.
The rdp connection will automatically close once the batch file ends, but you can add the pause command to the end to see what happened during execution.
Connecting this way, you can edit the batch file before connecting.
Make sure your remote Machine enabled PSRemoting by running the following command in PowerShell
Enable-PSRemoting –Force
From the client computer, run the following command to establish the connection.
net use "\\{RemoteIP}\c$" "{Password}" /USER:"{Username}" /persistent:no
Here after you can use Copy-Item, Delete-Item over the network.
Copy-Item [PACKAGEPATH]\* \\[COMPUTER]\c$\installers -recurse
In Client machine, Run->mstsc.exe-> Local Resources-> enable clipboard.
In remote machine-> windows run command (Windows Key + R).
Open cmd->(Taskkill.exe /im rdpclip.exe) type brackets command
You got "Success", then
Type same command prompt "rdpclip.exe"
Now copy and paste both, its working fine
You can copy and paste files over RDP, it works perfectly. See http://www.reddit.com/r/sysadmin/comments/1d6a1o/til_you_can_copy_and_paste_files_over_rdp/ for more info.
eug wrote what I thing is an extremely useful comment that seems to have overlooked by everyone:
You can very easily share a single folder by using subst to map it to a drive letter, and then selecting that drive in remote desktop.
Note that it's fairly easily to have problems with this method due to subst performing the mapping only for the user under which it is run.
So I recommend to run everything from a single command prompt:
Open a command prompt (Win+R -> cmd)
Type subst <lettertomap>: <pathtofolder>
Type mstsc (which launches Remote Desktop)
Keep in mind that the subst mappings are not persistent across reboots, of course, so this is mostly convenient for a one-time session of file transfer.
There are actually also other ways to do the mapping, see raymond.cc .
And yes, the mapping does seem to disallow access to the rest of the drive, although I wouldn't bet my life that it doesn't have chroot-like "vulnerabilities" (assuming it is supposed to be secure in the first place).
1) Install dropbox or equivalent cloud storage product and sync needed files that way between computers. Remember, you can allow only certain folders to be synced on specific devices (you don't have to sync the entire dropbox, just the folders you need)
2) If you are allowed to setup more than one user on the remote server, have a 2nd user and then have user2 session connect rdp session to user1. This will keep the user1's gui alive in the cloud without having to remain logged in to rdp locally.
This video should show you how to implement this 2 user setup on your server to hold an rdp session open. Note that this does 'permanently' use 1 rdp session until you decide to close it.
[markdown cannot embed video :( ]
Then use AmmyyAdmin AnyDesk on user1's desktop to connect and manipulate the desktop. This includes using AnyDesk's file manager's ability to browse any folder you need and copy. AnyDesk can be free if you connect via direct IP connection. Most vps servers have dedicated IP addresss or subdomain address so this should not be a problem. Good idea to password protect your AnyDesk login and which IDs have access to unattended remote connections. The AnyDesk file manager is a bit crude, but it works. Their big thing is simplicity and speed.
Note: Use portable mode only on the remote user's desktop; Do NOT fully install AnyDesk. Also, the CPU usage might increase to stream the desktop screen, somewhat related to the size of the RDP window. I am using 1280 x 2048 window with 4 cores and the CPU usage is 22-25% idle or moving things around. This might decrease if there is more video ram or graphics processor on the target server. But, if you only "browse files" (use only the file manager without streaming the desktop), CPU usage >0.3% idle and >1 avg% when transferring files (burst up to 5-6% when the file is finished uploading and the pieces are being finalized).
You'd have to write your own scripts (java, .net, c#/c++, AutoIT, etc) to launch AnyDesk locally and automate the connecting and downloading specific files.
This strategy is a bit more complex, but it should do the job. Not sure why microsoft rdp cannot have some simple, quick file manager like what ammyy admin AnyDesk has; oh well.
Add: Can also use AnyDesk or Teamviewer. Teamviewer became a lot more restrictive on what is considered to be "non commercial use", but Anydesk is secure, much smaller footprint, and if you can have a direct connection doesn't seem to care too much about usage. If you do need a license, it will be much lighter on the wallet.
AnyDesk works flawlessly without any installation required. In fact, if using in a server environment as I described above, no installation is recommended.
Edit: AmmyyAdmin is no longer recommended for several months now due to some security and technical concerns. Added AutoIT as a scripting capability to automate interaction with GUI/nearly any windows function.

Resources