我成功地利用了
http.ListenAndServe(":80", mux)
Run Code Online (Sandbox Code Playgroud)
在Go中托管我的Web服务.但它似乎只适用于localhost.
http.ListenAndServe("192.168.1.83:80", mux)
Run Code Online (Sandbox Code Playgroud)
这适用于此地址上的特定连接,但有没有办法使它适用于服务器上的任何IP地址?
编辑:
我用不同的端口(在这种情况下是8080)检查了它,然后使用":8080"按照记录的方式工作.即使在同一台机器上进行测试,这意味着它实际上只能侦听localhost,但端口80似乎有些特别之处.
为避免疑问,我正在使用Windows,所有测试都在同一台物理计算机上完成.我还检查了使用管理员权限运行,它没有任何区别.
http.ListenAndServe(":80", mux)是正确的地址.net/http使用net包.引用自net.Listen():
如果省略host,如":8080",则Listen会侦听所有可用接口,而不仅仅是具有给定主机地址的接口.有关地址语法的详细信息,请参阅拨号.
知道端口80受限制或可能被许多系统上的防火墙阻止.在unix系统上,1024以下的端口通常需要特殊权限.例如,测试8080端口,因为这种方式并不特殊.