如果你的朋友试图通过互联网连接你,答案是否定的,你不能只需给他你的IP地址,并让他能够连接。
原因是因为NAT, or Network Address Translation。大多数计算机不直接连接到互联网,而是先通过路由器。路由器为您的计算机提供本地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)),像这样打开网络可能很危险。此外,企业网络往往比家庭网络复杂得多,因此设置这个问题是一个很大的麻烦。
如果你们都在同一个本地网络上,例如连接到同一所大学或工作网络,则应该能够连接到本地配置给出的IP(如ifconfig),而不是来自Google的IP 。
解决方法是,如果您只是与朋友一起测试,则使用VPN, or Virtual Private Network。免费解决方案可从LogMeIn called Hamachi获得。你和你的朋友都需要下载和安装这个应用程序。你应该创建一个私人网络,让其他人加入。确保您的回显服务器正在侦听0.0.0.0,这意味着在所有IP地址上。然后客户端应该能够通过服务器的Hamachi IP连接到服务器。
即使无法控制自己的网络配置,VPN解决方案也应该可以正常工作。这比设置端口转发更安全,因为只有您的VPN中的用户才能访问您的端口。
最后一个注意事项,请确保您的本地防火墙已禁用,或至少允许您的应用程序和端口8888通过。
它本地工作(在本地主机上)?它在本地工作(您家/办公室的机器)吗?你给你的朋友发了什么IP地址?所有这些问题的关键在于你可能在防火墙后面,并且必须将他从外部转发到你的机器 - IOW,在上面的第二个“本地”实例中运行一切之后,你就可以找出防火墙,等人 – KevinDTimm
嘿,对不起,我完全忘记提到这一点。是的,当我在本地运行并在端口8888上telnet到127.0.0.1时它工作。 我尝试完全禁用Windows防火墙和Avast 10分钟,而我的朋友尝试连接并且仍然失败。 但是,你建议我正在尝试做什么应该能够工作? (是的,我知道这是一种不好的做法,禁用防火墙,而不是设置例外,但在现阶段调试比较容易) – user1079404
'你给你的朋友发了什么IP地址?'(我最感兴趣的是前两组数字 - 192.168.xxx.yyy,172.16.xxx.yyy,10.xxx.yyy.zzz,64.38.xxx.yyy - 例如) – KevinDTimm