Specifying port range for v4.6 with iptables CentOS 7

I modified the iptables rules as follows:

iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  anywhere             anywhere             multiport dports 39000:39009
ACCEPT     tcp  --  anywhere             anywhere             multiport dports 39000:39009
ACCEPT     udp  --  anywhere             anywhere             udp dpt:domain
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:domain
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootps
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:bootps

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             192.168.122.0/24     ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.122.0/24     anywhere            
ACCEPT     all  --  anywhere             anywhere            
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     udp  --  anywhere             anywhere             udp dpt:bootpc

The ports remain closed:

nc -zv localhost 39000
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection to ::1 failed: Connection refused.
Ncat: Trying next address...
Ncat: Connection refused.

firewalld is disabled. There clearly are available ports based on this netstat:

 netstat -tulpn|grep tcp
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      2035/rpcbind        
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      3788/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2793/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2780/cupsd          
tcp        0      0 0.0.0.0:35353           0.0.0.0:*               LISTEN      66074/mpirun.relion 
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      3240/master         
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      55712/sshd: user1 
tcp        0      0 0.0.0.0:46458           0.0.0.0:*               LISTEN      3399/rpc.statd      
tcp        0      0 127.0.0.1:6011          0.0.0.0:*               LISTEN      180269/sshd: user1 
tcp        0      0 127.0.0.1:6012          0.0.0.0:*               LISTEN      274800/sshd: user2
tcp        0      0 127.0.0.1:6013          0.0.0.0:*               LISTEN      119358/sshd: user3 
tcp        0      0 0.0.0.0:43517           0.0.0.0:*               LISTEN      -                   
tcp        0      0 127.0.0.1:6015          0.0.0.0:*               LISTEN      253249/sshd: user4 
tcp        0      0 0.0.0.0:1024            0.0.0.0:*               LISTEN      66091/relion_refine 
tcp        0      0 0.0.0.0:1025            0.0.0.0:*               LISTEN      66093/relion_refine 
tcp        0      0 0.0.0.0:1026            0.0.0.0:*               LISTEN      66092/relion_refine 
tcp        0      0 0.0.0.0:10050           0.0.0.0:*               LISTEN      2792/zabbix_agentd  
tcp        0      0 0.0.0.0:1027            0.0.0.0:*               LISTEN      66090/relion_refine 
tcp        0      0 0.0.0.0:1028            0.0.0.0:*               LISTEN      66094/relion_refine 
tcp        0      0 0.0.0.0:1029            0.0.0.0:*               LISTEN      66096/relion_refine 
tcp        0      0 0.0.0.0:1030            0.0.0.0:*               LISTEN      66098/relion_refine 
tcp        0      0 0.0.0.0:1031            0.0.0.0:*               LISTEN      66095/relion_refine 
tcp        0      0 0.0.0.0:1032            0.0.0.0:*               LISTEN      66097/relion_refine 
tcp        0      0 127.0.0.1:44202         0.0.0.0:*               LISTEN      66074/mpirun.relion 
tcp6       0      0 :::111                  :::*                    LISTEN      2035/rpcbind        
tcp6       0      0 :::22                   :::*                    LISTEN      2793/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      2780/cupsd          
tcp6       0      0 :::36056                :::*                    LISTEN      -                   
tcp6       0      0 ::1:25                  :::*                    LISTEN      3240/master         
tcp6       0      0 ::1:6010                :::*                    LISTEN      55712/sshd: user1 
tcp6       0      0 ::1:6011                :::*                    LISTEN      180269/sshd: user2 
tcp6       0      0 ::1:6012                :::*                    LISTEN      274800/sshd: user2 
tcp6       0      0 ::1:6013                :::*                    LISTEN      119358/sshd: user2 
tcp6       0      0 ::1:6015                :::*                    LISTEN      253249/sshd: user1 
tcp6       0      0 :::10050                :::*                    LISTEN      2792/zabbix_agentd  
tcp6       0      0 :::47816                :::*                    LISTEN      3399/rpc.statd

Am I missing something obvious here? Running the installer results in a 403 Forbidden error, as it can’t connect to port 39000. selinux is disabled.

Here is the full error:

Traceback (most recent call last):
  File "/home/exx/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/exx/cryosparc_master/deps/anaconda/envs/cryosparc_master_env/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/exx/cryosparc_master/cryosparc_compute/client.py", line 57, in <module>
    cli = CommandClient(host=host, port=int(port))
  File "/home/exx/cryosparc_master/cryosparc_compute/client.py", line 38, in __init__
    super().__init__(service, host, port, url, timeout, headers, cls=NumpyEncoder)
  File "/home/exx/cryosparc_master/cryosparc_tools/cryosparc/command.py", line 97, in __init__
    self._reload()  # attempt connection immediately to gather methods
  File "/home/exx/cryosparc_master/cryosparc_tools/cryosparc/command.py", line 135, in _reload
    system = self._get_callable("system.describe")()
  File "/home/exx/cryosparc_master/cryosparc_tools/cryosparc/command.py", line 108, in func
    raise CommandError(
cryosparc_tools.cryosparc.errors.CommandError: *** (http://cryo.ouruni.edu:39002, code 500) Encounted error from JSONRPC function "system.describe" with params ()

I see this error was mentioned in another thread.

Edit: I see it hanging here:

Starting CryoSPARC...

Starting CryoSPARC System master process...
CryoSPARC is not already running.
configuring database...
    configuration complete
database: started
database OK
command_core: started

Then:

$ cryosparcm status
----------------------------------------------------------------------------
CryoSPARC System master node installed at
/home/ouruser/cryosparc_master
Current cryoSPARC version: v4.6.0
----------------------------------------------------------------------------

CryoSPARC process status:

app                              STOPPED   Not started
app_api                          STOPPED   Not started
app_api_dev                      STOPPED   Not started
command_core                     RUNNING   pid 3330, uptime 1:37:17
command_rtp                      STOPPED   Not started
command_vis                      STOPPED   Not started
database                         RUNNING   pid 3218, uptime 1:37:21

----------------------------------------------------------------------------
An error ocurred while checking license status
Could not get license verification status. Are all CryoSPARC processes RUNNING?

If this process is still active, please can you run these commands on the master host and post their outputs

host $(hostname -f)
curl 127.0.0.1:39002
curl $(hostname -f):39002
cryosparcm log command_core | tail -n 20