- 前言
- windows防火墙的查看
- 粗略查看
- 更详细的显示
- 防火墙提示
- 防火墙规则的添加方式
- shell命令的方式
- 在nsis下添加
- 代码添加方式
前言
在windows编写网络应用,第一次启动的时候总是会弹出防火墙的警告。有什么办法去掉这个呢?
这里不介绍防火墙相关方面的知识。如果你想知道,请咨询公司的网络管理员,他会给你推荐相关的目录。主要是防火墙规则制定,端口过滤、应用限制啥的。
windows防火墙的查看
防火墙规则对一般用户而言存在于两个地方
win10系统下,控制面板->Windows Defender防火墙
粗略查看
这里可以看到你所有的允许通过防火墙的应用。
更详细的显示
这里可以看到更加详细的信息。
防火墙提示
当第一次启动需要联网的应用时,一般会弹出防火墙提示
防火墙规则的添加方式
shell命令的方式
在管理员的权限的控制台下,执行命令
netsh advfirewall firewall add rule name="lebo_robin" dir=in program="C:\Users\robin\Downloads\happycast\happycast_temp\happycastpc.exe" action=allow
netsh advfirewall firewall add rule name="lebo_robin" dir=out program="C:\Users\robin\Downloads\happycast\happycast_temp\happycastpc.exe" action=allow
netsh advfirewall firewall delete rule name="lebo_robin"
在nsis下添加
ExecDos::exec 'netsh advfirewall firewall add rule name="AirLink_robin" dir=in program="$INSTDIR\${PRODUCT_NAME}.exe" action=allow'
ExecDos::exec 'netsh advfirewall firewall add rule name="AirLink_robin" dir=out program="$INSTDIR\${PRODUCT_NAME}.exe" action=allow'
ExecDos::exec 'netsh advfirewall firewall delete rule name="AirLink_robin"'
注意:
1,这里是ExecDos::exec开头,这里使用了ExecDos插件,这个插件有x64、x86和ansi、unicode共四个版本,要跟你自己的系统相匹配。
2,安装包默认自带了“需要管理员权限”的属性。因此不需要添加,
代码添加方式
添加方式:
搜索关键字 “Windows Firewall with Advanced Security”,进入到微软msdn页面。
然后点击相应的链接找到了。
优点:没觉得有什么特殊的优点。
缺点:必须要在编译选项那里,将“UAC执行级别”设定为管理员权限,但是这样有个问题,每次程序启动,都会弹出一个权限提示框(挺烦人的)。