Cisco 路由器可从互联网访问,外部端口被转发到不同的内部主机。从端口 上的外部连接1234
,它被转发到10.0.0.1
在端口 上运行应用程序的内部主机443
。整个过程可通过 访问互联网mydomain.com:1234
。
我需要:能够从内部端口访问此主机1234
,最好是在internal IP
主机的端口上,而不是在路由器的外部 (isp) ip 上。目前两者都不起作用。
(this works)
internet --> mydomain.com:1234 --> router --> host 10.0.0.1:443
(that does not works) hairpining?! no idea how to set it up
local --> mydomain.com:1234 --> router --> host 10.0.0.1:443
(is this possible some how???? preferred solution)
local --> 10.0.0.1:1234 --> router --> host 10.0.0.1:443
(works but its not really a solution)
local --> 10.0.0.1:443 --> router --> host 10.0.0.1:443
我在用着cisco isr ois xe 16.09
。
答案1
你的帖子中隐藏了多个问题,我会尽力回答所有问题。但首先看看当前的“解决方案”及其工作原理。
External host
试图达到mydomain.com:1234
。- 主机向DNS服务器询问的IP地址
mydomain.com
,DNS应答external IP address
路由器的IP地址。 - 主机发送数据到
external IP address:1234
,路由器接收并- 转发数据到主机
10.0.0.1:443
- 已使用 NAT(将 IP 地址从 更改
external IP
为local IP 10.0.0.1
) - 已使用端口转发(将端口
1234
改为443
)
- 转发数据到主机
您正在尝试实现 3 个不同的目标,让我们将它们分开:
连接自
local IP address
至local IP address
。由于它们都位于同一子网中的本地网络中,因此您可以使用如何检查,请求不会进入默认网关(到路由器)而不是直接联系主机。- 明确澄清:带口罩
255.255.255.0 (/24)
,您将无法从本地 IP 发送(例如10.0.0.100
)到本地 IP(10.0.0.1
)通过路由器除非您将任一主机移动到不同的 IP 范围/子网。
- 明确澄清:带口罩
转换
mydomain.com
为local IP address
本地主机。还有更多解决方案,其中之一是配置本地 DNS 服务器并创建type A
条目mydomain.com
->local IP
。如果您没有,您可以在主机(PC?)上编辑hosts 文件。最后一件事是将端口转换
1234
为443
。通常,您会在路由器上执行此操作(从不同子网访问时)。但是在这种情况下,您的源/目标都在同一个本地网络上,这对您没有帮助。有解决方法,例如在您的机器上使用代理应用程序。- 对于 Linux 机器,也有解决方法,您可以修改该机器的 IP 表:
iptables -t nat -A OUTPUT -p udp --dport 1234 -j DNAT --to-destination 10.0.0.1:443
- 对于 Linux 机器,也有解决方法,您可以修改该机器的 IP 表: