Firewalld에서 변경 사항을 적용하려면 시스템을 다시 시작해야 합니까?

Firewalld에서 변경 사항을 적용하려면 시스템을 다시 시작해야 합니까?

vagrantUbuntu 18.04.02 시스템 에서

root@ubuntu-bionic:~# ss -tulanp | grep -i 3306
root@ubuntu-bionic:~# docker run -d --rm -e "MYSQL_ROOT_PASSWORD=root" -p 3306:3306 -v mysql_volume:/var/lib/mysql --name test_mysql mysql:5.7
29401546117d55b5b8d122a225352a6534cf8a9bbb611a195adbbe3ff7341909
root@ubuntu-bionic:~# ss -tulanp | grep -i 3306
tcp   LISTEN  0       128                        *:3306                *:*       users:(("docker-proxy",pid=1986,fd=4)) 
root@ubuntu-bionic:~# firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 3306/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
root@ubuntu-bionic:~# hostname -I
10.0.2.15 192.168.33.10 172.17.0.1 

그런 다음 내 호스트에서:

/home/pkaramol/VirtualBox VMs
$ nc -zv -w 2 192.168.33.10 3306
Connection to 192.168.33.10 3306 port [tcp/mysql] succeeded!

3306이제 명시적으로 추가한 포트를 제거해 보겠습니다.

vagrant내 컴퓨터 로 돌아가서 :

root@ubuntu-bionic:~# firewall-cmd --remove-port=3306/tcp --zone=public --permanent
success
root@ubuntu-bionic:~# firewall-cmd --reload
success
root@ubuntu-bionic:~# firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

내 호스트로 돌아가기:

$ nc -zv -w 2 192.168.33.10 3306
Connection to 192.168.33.10 3306 port [tcp/mysql] succeeded!

다시 로드해도 새 상태가 즉시 적용되지 않는 이유는 무엇입니까?

컴퓨터를 다시 시작하면 문제가 사라집니다 vagrant. 이 경우에는 다음과 같은 메시지가 나타납니다.

$ nc -zv -w 2 192.168.33.10 3306
nc: connect to 192.168.33.10 port 3306 (tcp) failed: Connection refused

답변1

아직 그런 문제가 발생하지 않았습니다. 추측일 뿐이지 firewall-cmd --complete-reload만 커널 필터를 다시 로드하려고 시도하면(권장되지 않음) 모든 연결이 종료되면 어떻게 될까요?

관련 정보