For the record, here's the configuration that finally worked for me.

My Environment:
    
- SqueezePlay machine: MacBook Pro, OSX El Capitan (10.11.6)
- LMS machine: MacMini, OSX El Capitan (10.11.2)
- LMS is configured on port 9500
  
Prerequisites:
    
- You need to have ssh installed and be able to ssh into the LMS
  machine from your SqueezePlay machine
- You need to have socat installed on both machines. I installed socat
  on OS X with Homebrew
  
SSH Configuration:
I prefer to put all my ssh options into the ssh config file
~/.ssh/config so I don't need to specify them on the command line. Here
is the entry for the ssh tunnel:

Code:
--------------------
    
  Host lms-tunnel
  Hostname xxx
  Port xxx
  User xxx
  ForwardX11 no
  RequestTTY no
  LocalForward 9500 localhost:9500
  LocalForward 3483 localhost:3483
  LocalForward 34831 localhost:34831
  
--------------------

Note 1: Customize the Hostname, Port & User "xxx" strings with your
specific values.
Note 2: Because my LMS is on port 9500, "9500” is used in the first
LocalForward statement. For vanilla LMS installations, use "9000" in
both places instead. 

Individual commands:
On SqueezePlay machine:

Code:
--------------------
    
  ssh -v lms-tunnel
  socat -v -t3600 -T3600 udp-listen:3483,reuseaddr,fork tcp:localhost:34831
  
--------------------

On LMS machine:

Code:
--------------------
    socat -v -t3600 -T3600 tcp-listen:34831,reuseaddr,fork 
udp-sendto:localhost:3483
--------------------

Note: the -v options on socat and ssh are optional. They just enable
verbose logging which helps troubleshooting if needed.

Putting it all together:
If you wish, you can streamline the execution of the above 3 commands as
follows:
First, modify the ssh configuration to be as follows:

Code:
--------------------
    
  Host lms-tunnel
  Hostname xxx
  Port xxx
  User xxx
  ForwardX11 no
  RequestTTY force
  LocalForward 9500 localhost:9500
  LocalForward 3483 localhost:3483
  LocalForward 34831 localhost:34831
  RemoteCommand /full/path/to/your/socat -t3600 -T3600 
tcp-listen:34831,reuseaddr,fork udp-sendto:localhost:3483
  
--------------------

Note: Replace “/full/path/to/your/socat” with the actual path of socat
on the LMS machine, eg “/usr/local/bin/socat” 

Now, to run all 3 commands together, copy/paste the following shell
statement into a Terminal window on the SqueezePlay machine:

Code:
--------------------
    
  killall socat && socat -t3600 -T3600 udp-listen:3483,reuseaddr,fork 
tcp:localhost:34831 & ssh lms-tunnel
  
--------------------

Note 1: Ensure SqueezePlay is not running prior to running this
command!
Note 2: The ssh command will run in the  foreground and block for the
duration you need the tunnel up. This makes it easy to break down (just
type Ctrl-C to kill it, and optionally “killall socat” to clean up the
socat which runs in the background).
Note 3: The -v options have been left out in this example.

Finally launch SqueezePlay. It should see the name of your remote LMS
and connect to it successfully. If you have LMS password protection
enabled SqueezePlay will prompt you to enter the credentials.

Enjoy using SqueezePlay to connect to your remote LMS via ssh & socat!


------------------------------------------------------------------------
nico's Profile: http://forums.slimdevices.com/member.php?userid=672
View this thread: http://forums.slimdevices.com/showthread.php?t=108734

_______________________________________________
Squeezecenter mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/squeezecenter

Reply via email to