It could be easiest to use the built-in methods, already available. If you both have X running, configure SSH on the i5 side. Make sure you have SSH configured with
X11Forward yes
You may need to open port 22 on the router that provides the network on the i5 side, so that the p4 side can connect. When the SSH server is accessible on the Internet, in short time it will get hammered with people attempting to brute-force their way into the machine; so, be sure to install and configure a method to prevent brute force attacks, like DenyHosts or fail2ban.
You may wish to look in your router to see which kind of dynamic DNS it might be able to use and then set up dynamic DNS so that the p4 side can SSH to you by name. (There is also software that could this, and we could devise some hackish methods too, below.) Otherwise, of course, the p4 side would need to know your current IP address.
For the p4 side to connect via SSH with X and compression:
ssh -X -C username@hostname-or-ip-address
For the p4 side to use X applications on the i5 side, just type a command.
xman
Then xman will run on the i5 side, but display on the p4 side.
Of course, a hopefully obvious requirement for the i5 side is that the i5 side needs to create a user account for the p4 user (adduser
).
Alternatively, there is something more like the VNC you mentioned, NX.
There is a commercial version that is free for Linux, from NoMachine,
and there is an open-source version, freenx. With NX, users connect via SSH, and the end user gets a display showing the whole desktop, like VNC or RDP.
Personally, I use NX from NoMachine. My ISP changes my IP address once weekly. I did not want to pay for dynamic DNS, and I did not want to set up dynamic DNS for myself. So, I devised a way to send myself my external IP address once daily (via a script run from cron). First I set up the system to send mail using ssmtp, software made just to send mail. Then I run the script once a day via cron (/etc/cron.daily/ip.sh
):
#!/usr/bin/env bash
IP_FILE=/tmp/external-ip-address
CURRENT_IP=$(lynx --dump http://checkip.dyndns.org/)
EMAIL_ADDR=me@mydomain.com
if [ -f $IP_FILE ]; then
KNOWN_IP=$(cat $IP_FILE)
else
KNOWN_IP=
fi
if [ "$CURRENT_IP" != "$KNOWN_IP" ]; then
echo $CURRENT_IP > $IP_FILE
mailx -s "External IP Address" $EMAIL_ADDR < $IP_FILE
fi
The script requires lynx
, bash
, and mailx
(heirloom-mailx
). Though it has nothing to do with crunching numbers, the remote user could also use sshfs
to mount the home directory on the i5 side. It is a very convenient way to use X to manage remote files.