反向代理在 NAT 下访问具有动态 IP 的设备

网络工程 代理
2022-02-20 18:06:01

我想在我的笔记本电脑上共享(公开)一些 HTTP 服务,以便从 Internet 访问它。笔记本电脑可以通过不同的提供商连接到互联网,例如通过公共 Wi-Fi 或 4G,所以我不能确定我的笔记本电脑可以接受传入的 TCP 连接。

我正在考虑使用静态 IP 地址设置一些小型反向代理(例如使用 AWS EC2 t2.nano 或 t2.micro),并将我的笔记本电脑连接到该代理。然后代理会将来自客户端的所有传入请求重定向到我的笔记本电脑:

1 - connect laptop to proxy
                 example.com
+--------+        +-------+
| laptop | -----> | proxy |
+--------+        +-------+

2 - all requests from clients will be redirected
 to connected laptop
                 example.com
+--------+        +-------+        +--------+
| laptop | <----- | proxy | <----- | client |
+--------+        +-------+        +--------+

我不确定它是否会被调用,但这样做是一种已知的做法吗?如果是,是否存在代理服务器和连接工具等软件?

1个回答

如果要根据应用层信息选择目标,则仅需要反向代理。例如,您可以使用反向代理通过单个(公共)TCP 端口访问多个 HTTP 服务器;然后代理根据“主机”标签转发到实际服务器。当然,您可以使用反向 NAT 从 Internet 访问代理。

在您的情况下,您只需要目标 NAT 即端口映射即反向 NAT。如果路由器的公共 IP 发生更改,您可以使用动态 DNS 服务,该服务会在每次 IP 更改时更新。

或者,您可以从具有静态 IP 的公共服务器的目标 NAT 到当前公共路由器的 IP(也需要源 NAT 才能使回复向后路由),然后再次从路由器的 IP 到实际服务器的私有 IP 的目标 NAT . 为此,您还可以使用类似于 DNAT 和 SNAT 组合的代理。