如果您的朋友试图通过 Internet 连接到您,答案是否定的,您不能简单地给他您的 IP 地址并让他能够连接。
原因是由于NAT,或网络地址转换。大多数计算机没有直接连接到互联网,而是先通过路由器。路由器为您的计算机提供本地 IP 地址,通常以 192.168 或 10 开头。当您在互联网上询问服务您的 IP 是什么时,它会向您报告路由器的面向互联网的地址,而不是您正在浏览的机器.
IP seen from upstream
YOU 10.x.x.x
|
Router 81.157.x.x
|
Internet
这意味着当有人尝试使用您的外部 IP 地址连接到您的 telnet 服务器时,请求会到达您的路由器,而您的路由器不知道如何处理它。然后连接被拒绝。
Internet -> 81.157.x.x:8888 -> Router -> ?
解决这个问题的方法是调用端口转发。这是路由器上的一个配置选项,它将对给定端口的请求转发到本地网络上的 IP 地址。您可以通过在您自己的机器上本地检查网络配置来找到该地址。不要使用在线网站,因为这会给你路由器的公共 IP 地址:
Internet -> 81.157.x.x:8888 -> Router -> 10.x.x.x:8888 -> You
请注意,如果您无法控制您的网络,例如您在学校或工作,您需要网络管理员来执行此操作。除非它是为了真正重要的事情,否则他们可能不想设置它。如果您允许访问敏感端口(例如 ssh(22)),像这样打开网络可能会很危险。此外,企业网络通常比家庭网络复杂得多,因此设置起来很麻烦。
如果你们都在同一个本地网络上,比如连接到同一个大学或工作网络,你应该能够连接到本地配置(例如 ifconfig)给出的 IP,而不是谷歌的 IP。
如果您只是和朋友一起测试,一个变通方法是使用VPN 或虚拟专用网络。LogMeIn 提供了一个名为 Hamachi的免费解决方案。您和您的朋友都需要下载并安装此应用程序。您应该创建一个专用网络,并让其他人加入。确保您的 echo 服务器正在侦听 0.0.0.0,这意味着在所有 IP 地址上。然后客户端应该能够通过服务器的 Hamachi IP 连接到服务器。
即使您无法控制自己的网络配置,VPN 解决方案也应该可以工作。它比设置端口转发更安全,因为只有您 VPN 中的人才能访问您的端口。
最后一点,请确保您的本地防火墙已禁用,或者至少允许您的应用程序和端口 8888 通过。