Accessing RStudio Server on LAN

I have an embarassingly simple question about accessing open source RStudio Server from another computer on the same home LAN. I have successfully installed RStudio Server (open source edition) on a CentOS 9 machine I have physical access to. I want to be able to log in to RStudio Server from other computers on the same home LAN.

  • On the server machine, I can go to localhost:8787 and access RStudio Server
  • On the server, I use hostname -I to get the local network IP address 192.168.x.xxx
  • On the client machine (Windows, but it shouldn't matter, and I have tried several different machines) I am able to ping the server
  • On the server I am able to ping the client
  • On the client machine, I can use PUtty to SSH connect to the server .
  • On the client machine, I can use some-address:8787 to access other instances of RStudio Server, so I know it isn't a firewall or similar on the client.

But on the client I go to 192.168.x.xxx:8787 and I get "This site can't be reached".

On the server it seems to me that it is listening to all computers on the network on that port:

[...]$ sudo netstat -nlp | grep :8787
tcp        0      0 0.0.0.0:8787            0.0.0.0:*               LISTEN      1490/rserver

Almost certainly there is some basic networking step I have missed, but what is it?

One thing you can check is the firewall running on the Centos 9 machine. By default Centos 9 enables and starts firewalld. It allows all localhost access but only remote ssh access by default. You can check this by running the following command:

sudo systemctl status firewalld

You should get a status similiar to:

● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2024-02-15 19:23:43 CST; 1 weeks 2 days ago

If firewalld is enabled, you can check the firewall configuration by running:

sudo firewall-cmd --list-all

You should get something similar to the following (probably without http and https as services though) :

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services:  http https ssh
  ports: 8787/tcp
  protocols:
  forward: no
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

If you don't see ports: 8787/tcp you can add it with the following command:

sudo firewall-cmd --add-port=8787/tcp --permanent
sudo firewall-cmd --add-port=8787/tcp

The first make the rule permanent (beyond a reboot) and the second makes the rule active immediately.
You should then be able to connect to the port from a remote computer.

1 Like

Thank you, this is awesome, exactly what I needed. Works exactly as you described.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.

If you have a query related to it or one of the replies, start a new topic and refer back with a link.