如何在安装过程中打开防火墙端口?

Posted

技术标签:

【中文标题】如何在安装过程中打开防火墙端口?【英文标题】:Howto open firewall ports during installation? 【发布时间】:2012-08-16 14:13:20 【问题描述】:

如何在安装过程中使用 install4j 打开 Windows 防火墙端口? 我为 c# 找到了这个解决方案,但我无法将其移植到 install4j 自定义代码:http://www.codeproject.com/Articles/14906/Open-Windows-Firewall-During-Installation 也许有人有想法或替代解决方案?

【问题讨论】:

Windows 防火墙操作计划用于 install4j 6,目前此功能不可用。 听到 Ingo 真是太棒了! Install4j 6 还没有 ;-( 【参考方案1】:

问这个问题已经有一段时间了,但这是我使用 install4j 5.1/6.1 的方法

对于每个防火墙规则,我都使用了“运行可执行文件或批处理文件”操作,并带有以下参数:

可执行文件:$installer:sys.system32Dir\netsh.exe

工作目录:$installer:sys.system32Dir

参数:取决于我想使用netsh 语法创建的规则。

例如:advfirewall; firewall; add; rule; name=$compiler:sys.shortName UDP IN; dir=in; action=allow; service=$compiler:sys.shortName; localip=any; remoteip=any; localport=any; remoteport=any; protocol=udp; interfacetype=any; security=notrequired; edge=no; profile=any; enable=yes

或者,从编辑对话框中:

advfirewall
firewall
add
rule
name=$compiler:sys.shortName UDP IN
dir=in
action=allow
service=$compiler:sys.shortName
localip=any
remoteip=any
localport=any
remoteport=any
protocol=udp
interfacetype=any
security=notrequired
edge=no
profile=any
enable=yes

忠告:

netsh 对它接收的参数很挑剔。更糟糕的是,当它无法解析您的输入时,它往往会打印出非常无用和误导性的消息。所以请注意以下几点:

    将每个 netsh 命令作为单独的参数传递。在属性表中使用分号分隔它们。在以换行符分隔的编辑对话框中。 不要在参数中使用引号。如果 Microsoft 文档告诉您指定这样的规则名称:name="rule name",则仅在命令行中执行此操作。从 install4j 开始,参数应该是 name=rule name 不带引号。 确保您的论点不包含任何不应包含的内容,例如在不属于它们的地方出现空白。 netsh 不喜欢这样。

【讨论】:

谢谢,我找到了一个类似的解决方案,我刚刚创建了一个“firewall.cmd”,规则是让它在安装过程中从 install4j 运行。【参考方案2】:

Thx,我找到了一个类似的解决方案,我刚刚创建了一个“firewall.cmd”,规则让它在安装期间从 install4j 运行。 “firewall.cmd”的内容:

netsh.exe advfirewall firewall delete rule name="QOMET-IN"
netsh.exe advfirewall firewall delete rule name="QOMET-OUT"
netsh.exe advfirewall firewall add rule name="QOMET-IN" protocol=TCP dir=in localport=3050,29418-29430,14416 security=notrequired action=allow profile=any enable=yes
netsh.exe advfirewall firewall add rule name="QOMET-OUT" protocol=TCP dir=out remoteport=3050,29418-29430,14416,20,21,25,587,80 security=notrequired action=allow profile=any enable=yes

【讨论】:

以上是关于如何在安装过程中打开防火墙端口?的主要内容,如果未能解决你的问题,请参考以下文章

svn在服务器配置安装过程中的问题

Win7 设置防火墙开放特定端口

Linux:rinetd的安装部署以及端口转发

Vue本地项目过程随笔(4) 部署到服务器

阿里云ECS服务器Docker安装Tomcat过程记录

NFS服务器的安装与配置