[Android Software/Hacking General [Developers Only]] S0AndS0:
I've had good luck with the following app for viewing local and remote Linux GUI with VNC

https://play.google.com/store/apps/details?id=com.realvnc.viewer.android

And for XRDP I found the following app to be the best for my usages;

https://play.google.com/store/apps/details?id=org.toremote.rdpdemo

VNC must be enabled on your Linux side for the VNC app to connect to. This is a server client relationship and one you'll see again and again as you dive into Linux.

First start up the server on your Linux command line.

Then if connecting locally you can usually use the IP "127.0.0.1" or "localhost"

Or if connecting through wifi use the following command to grab your wlan0 IP address

ifconfig

_Or to just grab that IP and save to a variable; such as if you where writing a script for connections:

IP_inet_addr=`/sbin/ifconfig | grep -E 'inet addr' | grep -v '127.0.0.1' | awk '{gsub("addr:",""); print $2}'`

Or if connecting from across the internet you can find your device's external IP and save it to a variable with the following;

IP_exteral=`wget -q -O - checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'`

_Note though that many cellular service providers don't allow you to connect over 3G/4G so its kinda hit and miss here on XDA on if that is possible.

From there you just have to input the port that you are connecting to, usually VNC will be on 5801 or 5901, but this can be set by whatever server you are using manually so if you do so pick a higher number like 7831 because the ones lower than 2000 (for most of my devices) are already taken by Android and other services.

If you find that the IP address on your wifi network changed and you don't want to physically go over to it to check it you can save the following as a script and run it on your remote device under either Android or Linux terminals:

#!/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin ; export PATH
IP_inet_addr=`/sbin/ifconfig | grep -E 'inet addr' | grep -v '127.0.0.1' | awk '{gsub("addr:",""); print $2}'`
IP_Bcast_addr=`/sbin/ifconfig | grep -E 'Bcast' | grep -v '127.0.0.1' | awk '{gsub("Bcast:",""); print $3}'`
trimIP=`$IP_Bcast_addr | sed 's/...$//'`
trimRoute=`route -n | grep -E 'UG' | awk '{print $2}'`
IPmin=1
IPmax=254
customPinger=`for ip in $(seq $IPmin $IPmax) ;do (ping -c 1 -w 5 $trimIP$ip >/dev/null && echo "$trimIP$ip" &) ; done`
fLive_IPs=`$customPinger | grep -v '$trimRoute' | grep -v '$IP_inet_addr'`
fLive_IPs=`$customPinger | grep -v '$trimRoute' | grep -v '$IP_inet_addr'`
echo "$trimRoute : is your access point's IP address for your WiFi network"
echo "$IP_inet_addr : is your internet IP on your WiFi network"
echo "______"
echo "The IP addresses of other devices sharing the same WiFi network that can be connected to are bellow..."
echo "______"
echo "$fLive_IPs"
exit

Just save the above to a file called fWifi_IPs.sh and run to see the IP address that you can connect to. Note if running on Android terminal you'll likely need to modify the first two lines to point to busy box instead, but this works for me. Also most devices have an option for setting a "static IP" so it doesn't change on ya.

Back to VND vs RDP; I prefer RDP but have had issues with it not connecting on the first attempt, but it has low latency for mouse controls. VNC on the other hand can be frustrating when a connection dies and reconnecting throws errors and the mouse latency is palpable.

Sent from: SPH-D700 or myTouch3Gs or Sero 7 Pro

Linux Install guide for Android devices that I'm writing:

http://xdaforums.com/showthread.php?t=2240397

Or

https://docs.google.com/document/d/1ssVeIhdBuuy8CtpBP1lWgUkG6fR6oHxP20ToYPPw6zI/edit?usp=drive_web

And my script pack for installing; Java's JDK, node.js and more to your Linux OS

https://github.com/S0AndS0/Debian-Kit-Mods

Note: if you're new to Linux/scripting/command line; check readme file for instructions.