I would expect a headless Linux MC Client to wake a MC Server, if the MC Client is started or restated when you need to use it. The Client would need to be connecting to the Server library by default. But if the MC Client was already running but hadn't been used for a while and the MC Server had gone to sleep "underneath" it, then the MC Client will not wake the MC Server. This is something that JRiver needs to work on. (i.e. A Client which is already running should check if the Server is awake or asleep and should wake a sleeping MC Server is necessary.)
I don't know how you would get a headless Linux MC Client to wake a sleeping server at the moment, other than rebooting the Client. But your JRemote method is a good workaround if the Client reboot doesn't work.
As for waking a MC Server from outside your LAN, effectively Wake On WAN, the biggest issue is whether your Modem/Router will pass a Magic Packet from the WAN to the LAN, and if it will send that Magic Packet out on the broadcast address for your LAN. I tried to get this working recently using Wireshark to watch for Magic Packets, and using my mobile phone via the mobile network so that it was outside my LAN, and I found that my router simply will not pass the Magic Packet. So my MC Server stays on all the time if I want to access it from outside my LAN. I was using Gizmo, but the issue will be the same with JRemote.