我正在使用Go开发一个Rest API,但每次我尝试使用
go run main.go
Windows防火墙告诉我,它阻止了我的应用程序的某些功能。我想知道是否有一些方法使我的执行,而不必 * 接受 * 每次。
5f0d552i1#
变更
http.ListenAndServe(":3000", r)
到
http.ListenAndServe("127.0.0.1:3000", r)
ne5o7dgx2#
如果您调用go run main.go,则会发生以下情况:
但临时文件夹只用于一次执行。因此,下次通过go run运行程序时,将使用另一个文件夹。Windows防火墙总是为您提供服务器的路径,如果您每次都记得路径,您将看到总是有不同的路径。Windows防火墙已配置为记住每个程序的路径。因此,当路径更改时,您将始终需要确认允许 * 新 * 路径在该端口上运行。要解决这个问题,你应该编译你的服务器。只需运行go build并执行项目文件夹中的二进制文件。那你只能接受一次。
go run
go build
mum43rcc3#
你好,我遇到了同样的问题:试试这个:1.进入Windows Defender防火墙,在左侧菜单中您看到入站规则单击此处,然后在右侧菜单中您会看到新建规则...单击。1. 选择端口 * 从窗口打开->下一步选择TCP*,然后 * 定义您想要的端口 * 我选择8080再次点击下一步**,选择 * 允许连接下一步,检查所有下一步, 给予任何名称 * Goland或任何你想要的,并按完成。就是这样
hsvhsicv4#
这个工作对我来说
go build main.go && .\main.exe
并使用makefile运行
kmbjn2e35#
只需转到Windows防火墙通知设置:Control Panel -> Windows Defender Firewall -> Change notification settings取消选中Windows Defender Firewall阻止新应用时通知我选项,以防止其显示弹出窗口。
Control Panel -> Windows Defender Firewall -> Change notification settings
nxowjjhe6#
基于@apxp答案在windows cli中,这对我有效
Go build main.go && main.exe
deyfvvtc7#
我认为@apxp的回答是对情况的完整解释;问了这个问题后,我找到了一种运行应用程序方法:
go build -o ejecutable.exe ; if($?) { .\ejecutable.exe }
7cjasjjr8#
你可以使用CompileDaemon在文件更改时自动重新构建你的项目,因为它无论如何都会运行一个构建,你只需要接受一次。此外,您的项目将自动重新生成!安装:
go get https://github.com/githubnemo/CompileDaemon
示例用法:
# Assuming your project looks like and you're in your project working dir # hello/ # hello.go # Rebuild on .go file edits and run the hello command after CompileDaemon -command="./hello"
af7jpaap9#
WSL在VM下运行,所以必须执行ifconfig您将在(eth0:)inet x.x.x.x部分看到您的IP此x.x.x.x是您必须放入浏览器的IP。
9条答案
按热度按时间5f0d552i1#
变更
到
ne5o7dgx2#
如果您调用
go run main.go
,则会发生以下情况:但临时文件夹只用于一次执行。因此,下次通过
go run
运行程序时,将使用另一个文件夹。Windows防火墙总是为您提供服务器的路径,如果您每次都记得路径,您将看到总是有不同的路径。
Windows防火墙已配置为记住每个程序的路径。因此,当路径更改时,您将始终需要确认允许 * 新 * 路径在该端口上运行。
要解决这个问题,你应该编译你的服务器。只需运行
go build
并执行项目文件夹中的二进制文件。那你只能接受一次。mum43rcc3#
你好,我遇到了同样的问题:试试这个:
1.进入Windows Defender防火墙,在左侧菜单中您看到入站规则单击此处,然后在右侧菜单中您会看到新建规则...单击。
1. 选择端口 * 从窗口打开->下一步选择TCP*,然后 * 定义您想要的端口 * 我选择8080再次点击下一步**,选择 * 允许连接下一步,检查所有下一步, 给予任何名称 * Goland或任何你想要的,并按完成。就是这样
hsvhsicv4#
这个工作对我来说
并使用makefile运行
kmbjn2e35#
只需转到Windows防火墙通知设置:
Control Panel -> Windows Defender Firewall -> Change notification settings
取消选中Windows Defender Firewall阻止新应用时通知我选项,以防止其显示弹出窗口。
nxowjjhe6#
基于@apxp答案
在windows cli中,这对我有效
Go build main.go && main.exe
deyfvvtc7#
我认为@apxp的回答是对情况的完整解释;问了这个问题后,我找到了一种运行应用程序方法:
7cjasjjr8#
你可以使用CompileDaemon在文件更改时自动重新构建你的项目,因为它无论如何都会运行一个构建,你只需要接受一次。此外,您的项目将自动重新生成!
安装:
示例用法:
af7jpaap9#
WSL在VM下运行,所以必须执行ifconfig
您将在(eth0:)inet x.x.x.x部分看到您的IP
此x.x.x.x是您必须放入浏览器的IP。