大家好,我们又见面了啊~本文《golang Http 服务器 http.ListenAndServe 仅适用于本地主机?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后
大家好,我们又见面了啊~本文《golang Http 服务器 http.ListenAndServe 仅适用于本地主机?》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~
问题内容我使用 golang 在 Azure linux vm 中实现了 http 服务器。下面是简单的 golang 服务器代码,监听端口 30175。并且该端口上没有防火墙。
package main
import (
"fmt"
"log"
"net/http"
)
func handler(w http.responsewriter, r *http.request) {
fmt.fprintf(w, "hi there, i love %s!", r.url.path[1:])
}
func main() {
http.handlefunc("/", handler)
log.fatal(http.listenandserve(":30175", nil))
}
sudo netstat -tlnp 的结果是:
active internet connections (only servers)
proto recv-q send-q local address foreign address state pid/program name
tcp 0 0 0.0.0.0:21 0.0.0.0:* listen 1605/vsftpd
tcp 0 0 127.0.0.1:3350 0.0.0.0:* listen 1873/xrdp-sesman
tcp 0 0 0.0.0.0:22 0.0.0.0:* listen 1697/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* listen 1379/cupsd
tcp 0 0 127.0.0.1:6010 0.0.0.0:* listen 4879/8
tcp 0 0 127.0.0.1:6011 0.0.0.0:* listen 15507/9
tcp 0 0 0.0.0.0:3389 0.0.0.0:* listen 1859/xrdp
tcp 0 0 0.0.0.0:8000 0.0.0.0:* listen 2112/python
tcp6 0 0 :::22 :::* listen 1697/sshd
tcp6 0 0 ::1:631 :::* listen 1379/cupsd
tcp6 0 0 ::1:6010 :::* listen 4879/8
tcp6 0 0 ::1:6011 :::* listen 15507/9
tcp6 0 0 :::30175 :::* listen 46595/httphandler
我只能在本地主机中获得响应,但无法从远程服务器获得响应:
curl localhost:30175
hi there, i love !
curl serveripaddress:30175
not working
这是由于 linux 监听规则造成的。 我的规则中有一条拒绝所有规则。
# listen rules
sudo iptables -L INPUT --line-numbers
sudo iptables -D INPUT 8
您的问题是您的服务器正在侦听 tcp6 堆栈。尝试显式使用带有“0.0.0.0:6789”的 tcp,而不仅仅是端口“:6789”
以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持编程网!更多关于Golang的相关知识,也可关注编程网公众号。
--结束END--
本文标题: golang http 服务器 http.ListenAndServe 仅适用于本地主机?
本文链接: https://www.lsjlt.com/news/596800.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-05
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0