所以基本上我的电脑是NAT背后的。
我有3个IP地址,
1.我的ISP公共地址。 (27.106.96.113)
当我谷歌搜索“我的IP"”时,这个地址已经显示出来了
2.我的ISP给我的私人地址。 (172.16.91.141)
该地址已在我的路由器中显示为我的公共地址。
3.我的实际私人地址。 (192.168.0.100)
我的电脑通过我的路由器(192.168.0.1)通过DHCP为我的电脑设置了这个IP地址
我可以使用此(192.168.0.100)地址在本地访问我的电脑。
我可以通过这个(172.16.91.141)地址访问我的ISP网络内的人(我拥有相同ISP的人)。
但是我无法使用此地址(27.106.96.113)访问全球PC
我知道这种情况正在发生,因为我的ISP具有NAT配置,因此我的全局IP无用。
现在由于我的ISP的NAT,我无法在全球范围内托管Apache(for php)Java Servlet Page和我的Counter-Strike 1.6游戏服务器。
我试图找到解决办法,但失败了。
我有我的免费php主机(让我们说my.hosting.com),这是全球可访问的。
所以我想如果我在我的PHP网站主机上使用套接字编程并从我的PC连接到PHP网站主机(这是全球可访问的)那么我有一个通过PHP网络主机和我的PC的隧道。
然后我将所有互联网流量从我的PHP网站主机重定向到我的PC。
所以,如果我将我的所有互联网流量从(my.hosting.com:80)重定向到(192.168.0.100:8080),那么我可以通过连接到我的PHP网络主机连接到我的服务器。
现在我是PHP的新手,从未尝试过socket编程
这只是我的想法,如果我误解PHP套接字编程的概念,这可能听起来很愚蠢
因此,我非常需要你们的帮助,以便在全球范围内成功连接我的电脑。
非常感谢您阅读本文,请帮助我解决问题。
谢谢。
答案 0 :(得分:1)
因此,根据您尝试实现的目标来判断,最好的办法是让您的ISP在备用TCP端口上创建一个NAT(如果他们会让您)NAT到您的网关172.16.91.141的特定流量,然后你需要在你的路由器上创建一个NAT规则到NAT流量(说它是来自你的ISP路由器的#80;'并转换)然后你可以将它转换回' 80'。
WAN-> ISP路由器(27.106.96.113 - 8080至8080) - >您的路由器(172.16.91.141 8080至80) - >您的Web服务器(http://192.168.0.100:80)
您的IP地址看起来是静态的,因为它们只有254个地址块,所以您不必担心它会在很多天内发生变化:
https://wq.apnic.net/whois-search/static/search.html?query=27.106.96.113
答案 1 :(得分:0)
在火焰之前:这实际上并不是上述问题的直接答案,但它可以解决OP问题。
您是否听说过动态DNS https://en.wikipedia.org/wiki/Dynamic_DNS。有许多dyndns提供商(也是免费的),许多互联网路由器本身通过向提供商提供公共IP来支持它。
您将获得一个域名,而不是IP,您可以使用u0815.ddnsprovider.foo通过路由器端口转发机制来访问您的PC。