How do I change the default HTTP or HTTPS port ? #
To change the HTTP or HTTPS port used by the server you must edit the configuration file and restart the server. The configuration file is named configuration.xml. It is located in the installation directory. Open it with your favorite editor and modify the field httpPort (or httpsPort). If you set a port < 1024 on unix you will need to start the server as root otherwise you will get a permission error on startup.
How is security handled ? #
You can connect to BubbleUPnP Server using either HTTP or HTTPS. HTTP/HTTPS requests from outside the LAN (Internet) are authenticated using Digest Authentication.
Note that for technical reasons, media stream requests are neither authenticated nor use HTTPS. That’s why even if you connect through HTTPS, the HTTP port must still be available.
However, the HTTP stream URLs are constructed in a way that they cannot be “guessed” or “forged”. They can only be obtained by browsing the server, whose access is always authenticated.
Why the HTTPS connection test fails ? #
If the HTTPS connection test fails while the HTTP test is successful on the Status page:
- on your Router make sure that port 58051 is redirected to port 58051 on the target machine running the server
- if using the OpenJDK JRE, try using an Oracle JRE instead
How can I connect through a VPN ? #
Connecting through a VPN is not really necessary in most cases, as connecting through HTTPS over the Internet is more flexible.
If you want to connect through a VPN you can still do it, with the following limitations due to UPnP device discovery not being available on VPNs:
- the connecting client will only be able to play media to itself (the local renderer in Android BubbleUPnP)
- in Android BubbleUPnP, UPnP Tethering will be inoperant
To connect to a VPN in either Android BubbleUPnP or foobar2000, simply connect to BubbleUPnP Server using its LAN ip address instead of its public IP address, the same as if you were connecting to it on a LAN only.
Why am I hearing gaps when streaming audio on my Android device ? #
This is the symptom of the network bandwidth being insufficient, especially over a mobile connection. Try lowering the max bitrate setting in the Remote Network settings.
How can I replace bundled ffmpeg binaries ? #
This is not necessary but if you wish to use different ffmpeg binaries, do not replace the binaries in the installation directory (where
BubbleUPnPServer.jar is located) but instead (since 0.9-update39) create a directory named
custom_ffmpeg in the installation directory and place ffmpeg/ffprobe binaries there. On Linux / macOS, make sure the binaries are executable (
chmod +x ffmpeg ffprobe).
If you just want to use your Linux distro ffmpeg/ffprobe binaries, simply delete bundled ffmpeg/ffprobe binaries in the installation directory.
Whenever you change binaries, restart BubbleUPnP Server to make the change active.
Why BubbleUPnP Server does not start (cannot access web configuration) ? #
A number of issues may prevent BubbleUPnP Server to start, which manifests in the inability to connect to the web configuration interface. Most of these issues are network related.
First, make sure the version of Java is 8 or higher. BubbleUPnP Server will not work with older versions.
You can find the execution log file named
BubbleUPnPServer.log.0 in the installation directory.
You can check this file for startup error messages:
org.teleal.cling.transport.spi.InitializationException: Could not discover any bindable network interfaces and/or addresses
On startup, usable network interfaces are enumerated. This error happens if none is found. A network interface is usable if:
- it is up (connected)
- it has at least one assigned ip address
- it is not a VMWare or Parallels virtual interface
- it is not a PPP interface
- it is not a loopback interface
Furthermore, at least one network interface must have an IPv4 address that is neither a loopback address (127.0.0.1) nor a link-local address (169.254.xxx.xxx).
MultiException[java.net.BindException: Address already in use, java.net.BindException: Address already in use]
The port (58050 by default) used by BubbleUPnP Server is currently used by another application (or BubbleUPnP Server is already running). You can check which ports are used with the netstat command. Configure a different port or kill the application using the current port.
org.teleal.cling.transport.spi.InitializationException: Could not initialize MulticastReceiverImpl: java.net.BindException: Address already in use
Some other program is bound to SSDP port 1900. You can check which ports are used with the netstat command.
org.teleal.cling.transport.spi.InitializationException: Could not initialize StreamServerImpl: java.net.SocketException: Permission denied: listen
Check that your firewall or other security software is not blocking Java
MultiException[java.net.BindException: Permission denied, java.net.BindException: Permission denied]
If you set a HTTP port < 1024, make sure you are running BubbleUPnP Server as root (on unix).
java.lang.RuntimeException: java.io.IOException: No route to host at org.fourthline.cling.transport.impl.DatagramIOImpl.send(SourceFile:159)
If you get this error on MacOS X and you are using a software called “Peer Guardian”, go into Peer Guardian’s settings and select the “Disable Filters” option.
Could not initialize StreamServerImpl: java.io.IOException: Unable to establish loopback connection
It seems this error is related to the Comodo firewall. Try disabling Comodo or adding a rule to allow
java.io.IOException: Cannot run program “netstat”: error=2, No such file or directory
On non-Windows machines, the
netstat command must be available and in the
[info] vmarg.3=-Djava.class.path=C:\Program Files (x86)\BubbleUPnP Server\BubbleUPnPServerLauncher.jar [info] Main Class: com/bubblesoft/bubbleupnpserver/server/Main Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object
This error may happen only on Windows when running BubbleUPnP Server as a service, if the Java JRE is not correclty installed or incomplete. Generally, reinstalling the latest version or the JRE (x86 or x64 depending on the Windows installer used) fixes it.
I/O exception (java.net.SocketException) caught when processing request: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.DefaultSSLContextImpl)
This error may happen in the log and will cause the HTTPS connectivity test to fail.