服务器防火墙相关命令
一、防火墙状态管理
查看防火墙状态
(1)Linux系统(以CentOS为例)
systemctl status firewalld
此命令用于检查firewalld服务的状态,显示其是否正在运行。
(2)Windows系统
Get-NetFirewallProfile -Profile Domain,Public,Private | Select-Object Name,Enabled
此PowerShell命令可以查看域、公用和专用配置文件中的防火墙状态。
启动防火墙
(1)Linux系统(以CentOS为例)
systemctl start firewalld
此命令用于启动firewalld服务,使防火墙开始运行。
(2)Windows系统
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
此命令启用所有配置文件(域、公用、专用)中的防火墙。
关闭防火墙
(1)Linux系统(以CentOS为例)
systemctl stop firewalld
此命令用于停止firewalld服务,关闭防火墙。
(2)Windows系统
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
此命令禁用所有配置文件中的防火墙。
重启防火墙
(1)Linux系统(以CentOS为例)
systemctl restart firewalld
此命令用于重启firewalld服务,使所有更改生效。
(2)Windows系统
Restart-NetAdapter -Name "YourNetworkAdapterName"
此命令重启指定的网络适配器,从而刷新防火墙设置。
重新加载防火墙配置
(1)Linux系统(以CentOS为例)
firewall-cmd --reload
此命令在不中断现有连接的情况下重新加载防火墙配置。
(2)Windows系统
Restart-Service -DisplayName "Windows Firewall"
此命令重启Windows防火墙服务,使更改的配置生效。
二、端口管理
按端口查询开放状态
(1)Linux系统(以CentOS为例)
firewall-cmd --zone=public --query-port=80/tcp
此命令查询TCP协议的80端口是否开放。
(2)Windows系统
Test-NetFirewallPort -Port 80 -Protocol TCP
此命令测试TCP协议的80端口是否开放。
永久开放指定端口
(1)Linux系统(以CentOS为例)
firewall-cmd --permanent --zone=public --add-port=80/tcp firewall-cmd --reload
此命令将TCP协议的80端口永久添加到防火墙规则中并重新加载配置。
(2)Windows系统
New-NetFirewallRule -DisplayName "Allow HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
此命令创建一个新规则,允许TCP协议的80端口入站。
移除已开放的指定端口
(1)Linux系统(以CentOS为例)
firewall-cmd --permanent --zone=public --remove-port=80/tcp firewall-cmd --reload
此命令从防火墙规则中移除TCP协议的80端口并重新加载配置。
(2)Windows系统
Remove-NetFirewallRule -DisplayName "Allow HTTP"
此命令删除名为“Allow HTTP”的规则。
三、服务管理
按服务查询开放状态
(1)Linux系统(以CentOS为例)
firewall-cmd --zone=public --query-service=http
此命令查询HTTP服务是否开放。
(2)Windows系统
Get-NetFirewallServiceFilter | Where-Object {$_.DisplayName -eq "HTTP"}
此命令查询HTTP服务是否在防火墙规则中。
永久开放指定服务
(1)Linux系统(以CentOS为例)
firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --reload
此命令将HTTP服务永久添加到防火墙规则中并重新加载配置。
(2)Windows系统
New-NetFirewallRule -DisplayName "Allow HTTP Service" -Direction Inbound -Service Any -Action Allow
此命令创建一个新规则,允许任何服务的HTTP流量入站。
移除已开放的指定服务
(1)Linux系统(以CentOS为例)
firewall-cmd --permanent --zone=public --remove-service=http firewall-cmd --reload
此命令从防火墙规则中移除HTTP服务并重新加载配置。
(2)Windows系统
Remove-NetFirewallRule -DisplayName "Allow HTTP Service"
此命令删除名为“Allow HTTP Service”的规则。
四、端口转发与伪装IP
查看所有端口转发规则
(1)Linux系统(以CentOS为例)
firewall-cmd --zone=public --list-forward-ports
此命令列出所有端口转发规则。
(2)Windows系统
Get-NetFirewallPortMapping | Format-Table -AutoSize
此命令列出所有端口映射规则。
添加端口转发规则
(1)Linux系统(以CentOS为例)
firewall-cmd --permanent --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 firewall-cmd --reload
此命令将80端口的流量转发到8080端口并重新加载配置。
(2)Windows系统
New-NetNatStaticMapping -LocalPort 80 -Protocol TCP -ExternalIPAddress "192.168.0.12" -InternalIPAddress "127.0.0.1" -InternalPort 8080 -NatName "MyNAT"
此命令将本地80端口的流量转发到外部IP地址192.168.0.12上的8080端口。
移除端口转发规则
(1)Linux系统(以CentOS为例)
firewall-cmd --permanent --zone=public --remove-forward-port=port=80:proto=tcp:toport=8080 firewall-cmd --reload
此命令移除80端口到8080端口的转发规则并重新加载配置。
(2)Windows系统
Remove-NetNatStaticMapping -NatName "MyNAT" -Confirm:$false
此命令删除名为“MyNAT”的NAT规则。
五、扩展功能与区域管理
查看默认区域
firewall-cmd --get-default-zone
此命令显示当前使用的默认区域。
设置开机自启
systemctl enable firewalld
此命令设置防火墙开机自启。
按区域查询开放端口列表和服务列表
firewall-cmd --zone=public --list-all
此命令列出公共区域的所有开放端口和服务。
六、FAQ相关问题解答
如何修改防火墙规则而不中断现有连接?
回答:使用firewall-cmd --reload
命令可以在不中断现有连接的情况下重新加载防火墙配置,这个命令适用于Linux系统,特别是使用firewalld的情况,对于Windows系统,可以通过重启防火墙服务来实现,但需要注意这可能会导致短暂的连接中断,建议在进行此类操作前通知用户可能的影响。
以上内容就是解答有关“服务器防火墙相关命令”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复