首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >http.ListenAndServe只适用于本地主机?

http.ListenAndServe只适用于本地主机?
EN

Stack Overflow用户
提问于 2016-10-15 19:07:22
回答 2查看 13.6K关注 0票数 9

我已经成功地利用了

代码语言:javascript
运行
复制
http.ListenAndServe(":80", mux)

在Go中托管我的web服务。不过,它似乎只适用于本地主机。

代码语言:javascript
运行
复制
http.ListenAndServe("192.168.1.83:80", mux)

这适用于此地址上的特定连接,但是否有一种方法可以使其对服务器上的任何ip地址起作用?

编辑:

我使用不同的端口(在本例中为8080)检查它,然后使用":8080“作为文档。即使在同一台机器上进行测试,端口80似乎也有一些特殊之处,这意味着它实际上只在本地主机上侦听。

为了避免疑问,我使用的是Windows,所有测试都是在同一台物理机器上完成的。我还检查了使用管理权限运行,这并没有什么不同。

EN

回答 2

Stack Overflow用户

发布于 2016-10-15 19:20:07

http.ListenAndServe(":80", mux)是正确的地址。net/http使用net包。引用net.Listen()

如果省略了主机(如":8080“中的内容),则侦听所有可用接口,而不是只侦听具有给定主机地址的接口。有关地址语法的详细信息,请参阅拨号。

要知道端口80是受限制的,或者在许多系统上可能被防火墙阻塞。在unix系统上,低于1024的端口通常需要特殊的权限。例如,测试8080端口,因为这样做并不特殊。

票数 17
EN

Stack Overflow用户

发布于 2016-10-15 20:46:55

不,http.ListenAndServe适用于任何主机或端口,但是低于1024的端口需要根权限。您可以以普通用户的身份重定向端口80上的连接,方法是:

代码语言:javascript
运行
复制
sudo apt-get install iptables-persistent
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
sudo netfilter-persistent save
sudo netfilter-persistent reload
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40063120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档