I just installed TLJH on a server and everything seems to be working when I’m on the same network, or if I VPN into our network. However, as soon as I am on an external network (and disconnected from VPN), I can still access jupyter hub and the UI loads ok, but the kernel will not connect. I’m guessing this is a network/firewall issue, but I’m not sure. Can anyone help/point me in the right direction here? I’d like this server to be setup so any of our users can access it externally without a VPN.
I have ports 80, 443, 8000, 8001, 8888, and various others open. Are there any required ports that I’m missing?
Can you show us your web browser console logs from when a kernel tries to connect? One possibility is you’ve got a proxy or firewall that’s blocking websockets.
Thanks for the quick reply! Looks like you’re correct about it being a websocket issue. This is the error in my browser when the Kernel is not connecting:
WebSocket connection to 'ws://MyIP/user/MyLab/api/kernels/1bbd5c94-2657-428d-a859-5777fe170817/channels?session_id=b6991fae-c82c-4cbf-ab10-2ddab25f7d71' failed:
_createSocket @ jlab_core.ee83cc2a05.....
I don’t have much experience with websockets or what the underlying problem here is. We are behind a firewall, so is this something I need to ask our IT folks to look at? or is there a config in my server that needs to be changed?
Since JupyterHub works inside your VPN we can be fairly confident it’s correctly configured. Talk to your IT/network administrators about allowing websockets to be allowed through any firewalls or proxies they’re running.