ルータでFirewall-cmdを使用して一部のポートを開いた後、一部のポートでncatを実行することはできません。

ルータでFirewall-cmdを使用して一部のポートを開いた後、一部のポートでncatを実行することはできません。

Fedora 32サーバーでUDPとTCPのいくつかのポートを開きたいです。

まず、ルーターでそのファイルを開き、ルーターを再起動します。

ルータの設定

次に開きますfirewalld

sudo firewall-cmd --permanent --add-port=5000/tcp
sudo firewall-cmd --permanent --add-port=5000/udp
sudo firewall-cmd --permanent --add-port=2022/tcp
sudo firewall-cmd --permanent --add-port=2022/udp
sudo firewall-cmd --reload

ただし、nc別のコンピュータでそれを使用してサーバーにpingを実行すると、そのうちの1つだけが開かれます。つまり、TCP 2022です。

$ nc -z -v -u $FTDB 5000                                                                                                                                                   (base) 324ms
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Connected to XXXX
Ncat: Connection refused.
$ nc -z -v $FTDB 5000                                                                                                                                                      (base) 333ms
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Connection refused.
$ nc -z -v $FTDB 2022                                                                                                                                                      (base) 347ms
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Connected to XXXX
Ncat: 0 bytes sent, 0 bytes received in 0.34 seconds.
$ nc -z -v -u $FTDB 2022                                                                                                                                                        (base) 
Ncat: Version 7.80 ( https://nmap.org/ncat )
Ncat: Connected to XXXX
Ncat: Connection refused.

その他の情報:

firewall-cmd

sudo firewall-cmd --list-all                                                                                                                                     (base) 
FedoraWorkstation (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens5
  sources: 
  services: cockpit dhcpv6-client dns dns-over-tls docker-registry et https mdns mosh openvpn samba-client ssh
  ports: 1025-65535/udp 1025-65535/tcp 60000/udp 60001/udp 5000/udp 5000/tcp 2022/tcp 2022/udp 12345/udp 12345/tcp 12346/tcp 12346/udp 12347/tcp 12347/udp 9090/tcp 9090/udp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

ss:

ss -tulpn | grep '5000\|2022'                                                                                                                                    (base) 
tcp   LISTEN 0      32                             0.0.0.0:2022       0.0.0.0:*                                              
tcp   LISTEN 0      128                          127.0.0.1:5000       0.0.0.0:*    users:(("python",pid=3206,fd=65))         
tcp   LISTEN 0      32                                [::]:2022          [::]:*    

ifconfig:

ifconfig | grep -A 1 'ens5'                                                                                                                                      (base) 
ens5: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.101  netmask 255.255.255.0  broadcast 192.168.2.255

netstat:

netstat -lntu  | grep '5000\|2022'                                                                                                                               (base) 
tcp        0      0 0.0.0.0:2022            0.0.0.0:*               LISTEN     
tcp        0      0 127.0.0.1:5000          0.0.0.0:*               LISTEN     
tcp6       0      0 :::2022                 :::*                    LISTEN   

答え1

問題は、TCPサービスがサーバーのポート2022で実行されているが、5000で実行されているサービスは127.0.0.1にのみバインドされることです。この特定のサービスはFlaskソケットアプリケーションです。コードをに変更しましたsocketio.run(app, host="0.0.0.0", port=5000)

関連情報