'Can not connect with a simple http server(tcp connection) on oracle compute instance(oci), ssh connection works well

I am using oracle cloud to create a http server for learning , so I am new on this. Thank you for your any help!

Instance information

Image: Canonical-Ubuntu-20.04-2022.02.15-0
Shape: VM.Standard.E2.1.Micro

Have added ingress rule on subnet(7500 port): Picture of subnet

Source      IP Protocol Source Port Range Destination Port Range  Allows 
0.0.0.0/0   TCP         All                7500                   TCP traffic for ports: 7500

Using python to create a http server:

python3 -m http.server 7500 &

It was showing:

ubuntu@tcp-server:~$ Serving HTTP on 0.0.0.0 port 7500 (http://0.0.0.0:7500/) ...  

Calling lsof -i returns

COMMAND    PID            USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python3   1806            root    3u  IPv4  33281      0t0  TCP *:7500 (LISTEN)

Allowed 7500 port on ufw:

ufw Status: active

To                          Action        From
                  
7500                       ALLOW       Anywhere                  
7500 (v6)                  ALLOW       Anywhere (v6)  

But I can not visit public_Ip_address:7500.

Using telnet:

sudo telnet 152.69.123.118 7500

Returns:

Trying 152.69.123.118...  

and does not connect

Thank you in advance!



Solution 1:[1]

The reason is from iptables setting:

sudo nano /etc/iptables/rules.v4

add this sentence: -A INPUT -p tcp -m state --state NEW -m tcp --dport 7500 -j ACCEPT

then:

sudo su

iptables-restore < /etc/iptables/rules.v4

Done!

ubuntu image from oci has been modified by oracle, the default setting has limitted ports accepted. Therefor we have to open the port manually.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Hakunann