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