时间:2021-05-20
针对将特定端口加入到windows系统的防火墙中,使其允许或禁止通过防火墙。其大概思路是:
/// <summary> /// 添加防火墙例外端口 /// </summary> /// <param name="name">名称</param> /// <param name="port">端口</param> /// <param name="protocol">协议(TCP、UDP)</param> /// <param name="scope">范围类型</param> /// <param name="remoteAddresses">自定义范围时的IP地址范围</param> public static void AllowPortsUseFirewall(string name, int port, string protocol, NET_FW_SCOPE_ scope,string remoteAddresses) { //创建firewall管理类的实例: Type的GetTypeFromProgID是通过注册表信息项目创建实例类型 INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr")); //判断网络类型,是TCP还是UDP NET_FW_IP_PROTOCOL_ protocolType = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP; if (protocol.ToUpper() == "TCP") { protocolType = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP; } //查找以前是否有相同的规则创建,如果有则不再创建新的规则 foreach (INetFwOpenPort mPort in netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts) { if (mPort.Protocol == protocolType && mPort.Port == port) { return; } } //创建一个防火墙端口管理实例 INetFwOpenPort objPort = (INetFwOpenPort)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwOpenPort")); //设置端口实例名称 objPort.Name = name; //设置端口信息 objPort.Port = port; //端口管理的网络类型 objPort.Protocol = protocolType; /* * NET_FW_SCOPE_ALL 范围是所有地址。 * NET_FW_SCOPE_CUSTOM 自定义范围。 * NET_FW_SCOPE_LOCAL_SUBNET 范围是本地子网。 * NET_FW_SCOPE_MAX 使用仅用于测试。不意味着为应用程序实现。 */ //端口的范围,针对哪类或哪个IP地址 objPort.Scope = scope; //此处可以指定IP地址版本信息 //objPort.IpVersion = NET_FW_IP_VERSION_.NET_FW_IP_VERSION_V4; //自定义IP地址范围 if (objPort.Scope == NET_FW_SCOPE_.NET_FW_SCOPE_CUSTOM) { //这而需要移除多个地址之间的空白字符串,有空白字符串会出现设置异常 objPort.RemoteAddresses = remoteAddresses.Replace(" ", ""); ;//"192.168.1.10,192.168.1.12......."; } //是否启用规则 objPort.Enabled = true; //加入到本地防火墙管理规则中。 netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Add(objPort); }删除规则比较简单:创建防火墙实例,直接移除某种通信类型的端口就行。
/// <summary> /// 删除防火墙例外端口 /// </summary> /// <param name="port">端口</param> /// <param name="protocol">协议(TCP、UDP)</param>public static void DeletePortsUseFirewall(int port, string protocol){ //创建firewall管理类的实例: Type的GetTypeFromProgID是通过注册表信息项目创建实例类型 INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr")); //移除特定类型的通信方式的端口 if (protocol == "TCP") { netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Remove(port, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP); } else { netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Remove(port, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP); }}以上就是c# 防火墙添加/删除特定端口的示例的详细内容,更多关于c# 防火墙添加/删除端口的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
近来在复习防火墙管理工具iptables的基本使用方法,涉及到对端口添加或删除防火墙策略的内容,之前对ssh更改默认端口号及免密码登录的方法不熟悉,这次做一个基
如果从防火墙的软、硬件形式来分的话,防火墙可以分为软件防火墙和硬件防火墙以及芯片级防火墙。第一种:软件防火墙软件防火墙运行于特定的计算机上,它需要客户预先安装好
1.将应用添加到允许的应用列表中(风险较小)。 2.打开一个端口(风险较大)。 将应用添加到防火墙中允许的应用列表时(有时称为取消阻止)或打开防火墙端口时,
电脑防火墙分为安全软件的防火墙和系统自带的防火墙,用户在某些情况下希望关闭防火墙的功能,比如说有些特定软件的运行,玩游戏的时候等等,那么电脑的防火墙怎么关?本文
1、编辑防火墙配置:vi/etc/sysconfig/iptables防火墙增加新端口7022-AINPUT-mstate--stateNEW-mtcp-ptc