centos 7
firewalled
- 开关防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
systemctl enable firewalld.service #设置firewall开机启动
systemctl restart firewalld.service #firewall重启
systemctl start firewalld.service #firewall启动
- 开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
复制代码
- 重启防火墙
firewall-cmd --reload - 常用命令介绍
firewall-cmd --state ##查看防火墙状态,是否是running
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones ##列出支持的zone
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
iptables -L -n ##查看规则,这个命令是和iptables的相同的
man firewall-cmd ##查看帮助
CentOS 7.0默认使用的是firewall作为防火墙,使用iptables必须重新设置一下
直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
复制代码
设置 iptables service
yum -y install iptables-services
如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
最后重启系统使设置生效即可。
centos 6.x
- Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令:
lsof -i tcp:80
- 列出所有端口
netstat -ntlp
开启端口(以80端口为例)
- 方法一:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 写入修改
/etc/init.d/iptables save 保存修改
service iptables restart 重启防火墙,修改生效
复制代码
- 方法二:
vi /etc/sysconfig/iptables 打开配置文件加入如下语句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 重启防火墙,修改完成
复制代码
关闭端口
- 方法一:
/sbin/iptables -I INPUT -p tcp --dport 80 -j DROP 写入修改
/etc/init.d/iptables save 保存修改
service iptables restart 重启防火墙,修改生效
复制代码
- 方法二
vi /etc/sysconfig/iptables 打开配置文件加入如下语句
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j DROP 重启防火墙,修改完成
复制代码
查看 防火墙 端口状态
/etc/init.d/iptables status
复制代码
有时启动应用时会发现端口已经被占用,或者是感觉有些端口自己没有使用却发现是打开的。这时我们希望知道是哪个应用/进程在使用该端口。 CentOS下可以用netstat或者lsof查看,Windows下也可以用netstat查看,不过参数会不同
- Linux:
netstat -nap #会列出所有正在使用的端口及关联的进程/应用 lsof -i :portnumber #portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用
检查端口被哪个进程占用
netstat -lnp|grep 88 #88请换为你的apache需要的端口,如:80
复制代码
结果: nginx pid 473 占用 采用 kill -9 473 可杀死进程
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 473/nginx
unix 2 [ ACC ] STREAM LISTENING 322345929 480/php-fpm /tmp/php-cgi.sock
复制代码
- windows
netstat -nao #会列出端口关联的的进程号,可以通过任务管理器查看是哪个任务 最后一列为程序PID,再通过tasklist命令:tasklist | findstr 2724 再通过任务管理结束掉这个程序就可以了