My Setup

  • Desktop PC with Manjaro & Win 11 dual boot (grub2 boot loader)
  • Synology NAS DS218+
  • Digital Ocean VPS

Motivation

  • The GPU on my home desktop PC is an RTX 2070s. I am currently working on some ML-related projects, and unfortunately this is the best GPU I have access to at the moment.
  • My laptop is a Surface Book 2, which has many compatibility and hardware driver issues when running linux systems (at least it was like this when I tried last time).
  • Sometimes I just forget to push my commits / upload my files. RIP

Steps

connect to home linux system

I don't want to pay for the public IP provided by ISP, so I use frp to expose my linux system to my VPS. My VPS runs frps (frp server), and my linux system runs frpc (frp client).

The frp server and frp client communicates through a specific port. In the client config file (frpc.ini), the client can define multiple services it wants to expose. It may map multiple local services running on different local ports (for example, SSH on local port 22 and HTTP on local port 80) to different server ports. After both frps and frpc are started, I can connect to different exposed servcies on my home linux system by connecting to their corresponding server ports.

Note: The VPS firewall must allow traffic on all of the server ports used. For detailed configuartion, reference frp README.

wake home pc using synology NAS

I sometimes forget to boot my PC before I leave home, and I do not want my PC to be up and running whenever I am not home. As a solution, I enabled Wake-On-LAN feature on my PC (BIOS and system settings) and use my NAS to trigger the wake whenever I need my PC.

Synology NAS runs a specialized linux system that does not provide a terminal application. Luckily, it does support docker and each docker image can be accessed through a terminal. I created a docker image and simply run ether-wake -i eth0 <my PC's ethernet MAC> to wake my desktop PC.

Synology provides a quickconnect service that allows external connection to home NAS's management portal, authenticated using a registered quickconnect account that linked to the home NAS. I can simply login to quickconnect, start the docker image and run the script to wake my PC. For NAS that does not have a service like quickconnect, a seperate frp can be used to expose the NAS to the web server.

Note: Grub should be configured so that there is a timeout and the default action after timeout is to boot the linux system.


Last modification:December 10, 2022
If you think my article is useful to you, please feel free to appreciate