所以我确实用go
编写了这段代码:
// firstserver - my first server
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", Handler)
err := http.ListenAndServe(":80", nil)
if err != nil {
log.Fatal(err)
}
}
// Handler - a handler function for a normal enter
func Handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "You're connected")
}
现在,当我转到我的浏览器并输入localhost:80
(或只是localhost
)时,页面会加载,我会看到消息You're connected
。现在我也想尝试从其他设备连接。所以我带了另一台笔记本电脑。我检查了我的适配器地址192.168.0.15
。所以当我在另一台笔记本电脑上输入192.168.0.15:80
时,它再次起作用,很酷!
Primarly我正在尝试做一些简单的服务器,当我在大学时,在我的手机上使用它,检查时间表,有一些笔记等。我拿了我的智能手机,我从我的WiFi断开,切换到我的智能手机互联网又笨拙地输入了192.168.0.15:80
。我知道它不起作用,因为它不是我的外部IP。它没有。
所以我查看了我的ISP提供商给我的IP地址,它看起来像这样:88.156.xxx.xx
。现在在我的手机上输入了88.156.xxx.xx:80
但它没有用。我试图在网上搜索SO和其他资源,了解如何从局域网外部远程连接到我的服务器。我没有找到答案。有没有办法做到这一点,我不知道,支付各种事情,或类似的事情?
PS我住在租来的房间里,不仅我在家里,所以我没有办法配置路由器(手动或通过网络)
答案 0 :(得分:1)
您可以采用的一种方法是将其部署在具有公共IP(https://aws.amazon.com/free/)的AWS免费套餐实例上。
完成旋转EC2实例(https://aws.amazon.com/free/)后,将Web服务器的二进制文件复制到该实例chrome.devtools.network.onRequestFinished.addListener(onRequestFinished);
您需要确保该实例上的安全组允许从该端口上的Internet(0.0.0.0/0)进行入口
要访问它: 使用EC2实例的公共IP或公共DNS以及服务器的端口号(在您的情况下为80)