不知道大家有没有遇到过我下面描述这样的问题。
以前我用的阿里云和腾讯云都有安全组管理。可以直接对端口管理开放还是拒绝。可是这几天我换成百度智能云轻量服务器后发现一个问题。就是没有安全组管理。默认全开放。这也没什么,可以用centos自带的Firewall对端口进行管理。把简单的命令列一下
启动防火墙命令:
systemctl start firewalld
关闭防火墙命令:
systemctl stop firewalld
重启防火墙命令:
systemctl restart firewalld
设置防火墙开机启动:
systemctl enable firewalld
设置防火墙开机不启动:
systemctl disable firewalld
查看防火墙状态命令:
systemctl status firewalld
开放端口:
firewall-cmd --zone=public --add-port=22/tcp --permanent
其中:【22/tcp】 为 端口号/协议;
最后的【--permanent】标识永久生效。如果不加,则重启后失效。
关闭端口:
firewall-cmd --zone=public --remove-port=6379/tcp
查询有哪些端口是开启的:
firewall-cmd --list-port
加载配置文件:
firewall-cmd --reload
重新加载后不是永久生效的将不再生效。
本来这些基本命令就可以控制外网端口的开放、阻止。
主要是不想elecv2P暴露在公网
用后发现问题了,当docker容器只有elecv2p的时候完全没问题,命令都能控制。陆续添加青龙容器后发现,防火墙命令不能控制端口了。对docker容器内端口完全失效。
原来docker绕过Firewall防火墙,直接对iptables这个下手了
下面是解决方案
修改/usr/lib/systemd/system/docker.service配置
vi /usr/lib/systemd/system/docker.service
#找到 ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2375 -H unix://var/run/docker.sock
在中间添加 --iptables=false 看好添加的位置
修改之后 :
ExecStart=/usr/bin/dockerd --iptables=false -H tcp://127.0.0.1:2375 -H unix://var/run/docker.sock
$:wq 保存退
systemctl daemon-reload
systemctl restart docker
把docker网卡加入trust区域
firewall-cmd --permanent --zone=trusted --change-interface=docker0
问题解决了,可以用Firewall命令完美控制端口了。
前来顶贴!
真棒,感谢分享!