防火墙块Go开发服务器

Lea*_*der 7 macos firewall go

我正在使用Beego框架在Go中开发API.当我保存我的一个文件时,由Beego框架重新启动Go开发服务器(像往常一样)并且所有内容都会更新.

当重建并重新启动二进制文件(Go服务器文件)时,我的Mac上出现的唯一问题是我的防火墙请求允许二进制文件接受传入网络连接的权限.

我做了一些关于签署二进制文件等的研究,但没有任何帮助,因为在我的一个文件中的每次更改之后重建了二进制文件(所以Go开发服务器重新启动)

有没有人知道一个解决方案忽略弹出窗口而不关闭我的防火墙?

dhr*_*r_p 16

根据您的情况,让您的go程序仅在localhost(127.0.0.1)上监听实际上可能更容易.这样程序就不需要请求防火墙遍历,也不会得到消息.

在Go中,它是这样的:

log.Fatal(http.ListenAndServe("127.0.0.1:8080", router))

代替:

log.Fatal(http.ListenAndServe(":8080", router))

然后,您可以添加类似build或env变量的内容,以在构建生产之前禁用localhost-only.

  • 你拯救了我的日子。 (3认同)

Int*_*net 3

如果您知道 Go 程序正在侦听哪个 TCP/IP 端口,则可以在防火墙中打开该端口。

就像是:

sudo ipfw add 8080 allow tcp from any to any dst-port 8080
Run Code Online (Sandbox Code Playgroud)

应该可以解决这个问题,但可能值得阅读一下 OSX 防火墙。这次讨论看起来很有希望。

编辑:从 OSX 10.8 开始,ipfw 已被弃用(但它仍然有效)。您现在应该使用pfctl。有一个用于配置它的 GUI,称为“IceFloor”

ipfw文档