Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker 防火墙和容器发布端口_Docker_Firewalld - Fatal编程技术网

Docker 防火墙和容器发布端口

Docker 防火墙和容器发布端口,docker,firewalld,Docker,Firewalld,在我的RHEL8主机的KVM客户机上(其KVM客户机运行CentOS7),我希望firewalld在默认情况下阻止外部访问由运行nginx的Docker容器发布到的临时端口。令我惊讶的是,访问没有被阻止 同样,主机(myhost)正在运行RHEL8,并且它有一个运行CentOS7的KVM来宾(myguest) myguest上的firewalld配置是标准配置,没有什么特别之处: [root@myguest ~]# firewall-cmd --list-all public (active)

在我的RHEL8主机的KVM客户机上(其KVM客户机运行CentOS7),我希望firewalld在默认情况下阻止外部访问由运行nginx的Docker容器发布到的临时端口。令我惊讶的是,访问没有被阻止

同样,主机(myhost)正在运行RHEL8,并且它有一个运行CentOS7的KVM来宾(myguest)

myguest上的firewalld配置是标准配置,没有什么特别之处:

[root@myguest ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources:
  services: http https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
以下是属于firewalld公共区域的eth0和eth1接口:

[root@myguest ~]# ip a s dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:96:9c:fc brd ff:ff:ff:ff:ff:ff
    inet 192.168.100.111/24 brd 192.168.100.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe96:9cfc/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
[root@myguest ~]# ip a s dev eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 52:54:00:66:6c:a1 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.111/24 brd 192.168.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::5054:ff:fe66:6ca1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
请注意,在之前的firewall cmd输出中,我不允许通过这个临时TCP端口49154(或任何其他临时端口)进行访问。所以,我希望除非我这样做,否则nginx的外部访问将被阻止。但令我惊讶的是,从运行Windows的家庭网络中的另一台主机上,我可以访问它:

C:\Users\me>curl http://myguest:49154
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
.
.etc etc
那么,firewalld似乎没有阻塞tcp6套接字?我很困惑

这显然不是生产问题,也不是失眠问题。我只是想弄明白。谢谢

C:\Users\me>curl http://myguest:49154
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
.
.etc etc
[root@myguest ~]# netstat -tlpan | grep 49154
tcp6       0      0 :::49154                :::*                    LISTEN      23231/docker-proxy