Linux【7】-网络管理-3-1-防火墙与端口(iptables和firewalld,netstat)
Centos查看端口占用情况命令,比如查看80端口占用情况使用如下命令:
lsof -i tcp:80
netstat -nupl (UDP类型的端口)
netstat -ntpl (TCP类型的端口)
一、firewalld ( Cetos7 的版本一般用firewalld )
1.1 firewalld状态
获取 firewalld 状态
firewall-cmd --state
此举返回 firewalld 的状态,没有任何输出。可以使用以下方式获得状态输出:
firewall-cmd --state && echo "Running" || echo "Not running"
查看防火墙状态
systemctl status firewalld.service
启动|关闭|重新启动 防火墙
systemctl start firewalld.service
systemctl stop firewalld.service
systemctl restart firewalld.service
开机自动启动
关闭开机自启动
systemctl disable firewalld.service
开启开机启动:
systemctl enable firewalld.service
1.2 端口的管理
1.开放端口
#portmap:111 #nfsd:2049 #rquotad:875 #mountd:892 #lockd:32803/tcp 32769 /udp
firewall-cmd --zone=public --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp --add-port=2049/udp--add-port=875/tcp --add-port=875/udp --add-port=892/tcp --add-port=892/udp--add-port=32803/tcp --add-port=32769/udp --permanent
2.关闭端口
如果哪天要移除的话:
firewall-cmd --zone=public --remove-port=111/tcp--remove-port=111/udp --remove-port=2049/tcp --remove-port=2049/udp --remove-port=875/tcp--remove-port=875/udp --remove-port=892/tcp --remove-port=892/udp --remove-port=32803/tcp--remove-port=32769/udp --permanent
在不改变状态的条件下重新加载防火墙:
firewall-cmd --reload
3. 查看端口是否开放
查询端口号80 是否开启:
firewall-cmd --query-port=80/tcp
列出全部启用的区域的特性
firewall-cmd --list-all-zones
二、iptables
centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的。所以你只要停止firewalld服务即可:
systemctl stop firewalld.service && systemctl disable firewalld.service
systemctl start firewalld.service && systemctl enable firewalld.service
如果想要改用iptables的话,则需要安装
yum install iptables-services
systemctl stop iptables && systemctl disable iptables
systemctl start iptables && systemctl enable iptables
关闭iptables服务
/etc/init.d/iptables stop
services iptables stop
2.1 开启端口(以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 重启防火墙,修改完成
2.2 关闭端口
方法一:
/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 重启防火墙,修改完成
2.3 查看端口状态
/etc/init.d/iptables status
有时启动应用时会发现端口已经被占用,或者是感觉有些端口自己没有使用却发现是打开的。这时我们希望知道是哪个应用/进程在使用该端口。
四、案例
4.1 检查端口被哪个进程占用
netstat -lnp|grep 88 #88请换为你的apache需要的端口,如:80
lsof -i:80
netstat -anp|grep 80
查看都有哪些应用在使用网络:
netstat -lantp | grep -i stab | awk -F/ '{print $2 $3}' | sort | uniq
4.2 查看进程的详细信息
ps 1777 # 1777代表进程编号
4.3 杀掉进程,重新启动apache
kill -9 1777 #杀掉编号为1777的进程(请根据实际情况输入)
service httpd start #启动apache
参考资料
这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn