如何将我的服务从本地主机转发到互联网?

如何将我的服务从本地主机转发到互联网?

我已经创建了我的个人 tcp 服务,该44444服务通过 telnet 作为通信协议在端口上运行。该服务本身只是用 C 编写的一个简单的猜谜游戏。我正在 Fedora Linux 上工作并使用xinetd守护进程来处理 telnet 请求。

脚步:我已经在里面定义了我的服务/etc/services并在里面创建了服务的配置/etc/xinetd.d,还必须打开端口iptables -A INPUT -p tcp --dport 44444 -j ACCEPT,最后必须重新启动xinetd自己。

从客户的角度来看,它的工作原理如下:

[root@localhost]# telnet localhost 44444
Trying ::1...
Connected to localhost.
Escape character is '^]'.

Guess the number between 1 and 100
Your guess: 50
Higher than 50!
Your guess: 75
Congrats, you found the number! Took you 2 tries
Bye bye

Connection closed by foreign host.

问题:我想让互联网上的其他人使用我的 IP 临时访问我的服务。他们应该能够写出我的示例 IPtelnet 55.66.77.88 44444在哪里。55.66.77.88

问题:我该如何允许?如何将我的本地主机/端口 44444 转发到互联网?

我对网络词汇还不熟悉,所以不太清楚如何用谷歌搜索我的问题。如果您有任何建议,请告诉我。请不要告诉我使用 ssh 而不是 telnet,因为我只是在试验,这与此无关。

答案1

我假设您的服务运行在一台通过家用路由器上的 NAT(网络地址转换)连接到互联网的 PC 上。在这种情况下,您必须告诉路由器转发端口(有专门用于此的整个域真是可笑)。实际过程通常非常简单。Telnet 使用 TCP 进行通信,因此您需要在路由器上定义一个转发端口,将 TCP 流量定向到 PC 上的端口 44444。实际实现因路由器及其 UI 而异,但关键元素就在那里:PC IP 地址、PC 监听端口、要转发的路由器外部端口(值得注意的是,您可以选择任何外部端口进行转发 - 端口转发将地址:端口<->地址:端口)。

根据您的路由器,您可能会需要专门允许此类流量通过防火墙。同样,这将取决于实施。

另请注意,从本地网络内部测试此设置可能会或可能不会正常工作取决于你的路由器是否支持发夹形(要求路由器将流量从前门发出,右转回来并通过不同的端口重新进入)。如果没有,您将需要从非本地站点(可能是云 VM)进行测试。

最后,尽管这个例子不太可能直接给你看(除非你使用的是 Cisco ASA),但是 IOS 命令应该是这样的:

ip nat inside source static tcp 192.168.0.101 44444 55.66.77.88 44444 extendable

相关内容