我想让我的网站在全球范围内可用。我使用 xampp 服务器进行托管。我无法访问任何类型的服务器和调制解调器。情况如下图:
我的站点服务器具有由 wifi 路由器分配的本地 IP,它运行 Windows 8。
请记住,我无法访问任何类型的服务器和调制解调器,因此端口转发是不可能的(超出我的范围)。
我想让我的网站在全球范围内可用。我使用 xampp 服务器进行托管。我无法访问任何类型的服务器和调制解调器。情况如下图:
我的站点服务器具有由 wifi 路由器分配的本地 IP,它运行 Windows 8。
请记住,我无法访问任何类型的服务器和调制解调器,因此端口转发是不可能的(超出我的范围)。
它实际上很难,但并非不可能。
一种方法,我会解决这个问题:
我会在互联网上托管一个页面。
然后接受请求并将其存储在数据库中。
我的一个程序将始终在我的计算机上运行。
然后检查请求并将请求卷曲到本地主机。为此,您可以使用 Node.js(使用 GET 方法从数据库中获取数据并将其卷曲到 localhost)。
这是我能想到的最好的了。我正在努力,当代码准备好时,我会开源并通知你:)
但是,这仍然很困难,因为您需要将用户的请求休眠 2 秒,然后将其传输。它很慢,但可能对你有用。
缺点:
程序会很慢,内存使用会更多。
破坏可能会发生很多次。
高带宽浪费
如果不加密,MIM(中间人)可能是可能的。
优点:
间接托管方法
不必担心您的代码会丢失。
我期待一个更好的选择,我想再次保留这个问题。
如果您无法在 LAN 中打开必要的端口,您将需要访问外部服务器。但是,外部服务器不需要托管任何代码,例如
安装一个包以将远程重定向到本地端口:
一个。使用 socat:
socat
使用您的发行版包管理器安装
通过 SSH 连接:ssh -N -R 42500:127.0.0.1:80 -o ServerAliveInterval=60 ubuntu@xxx.xxx.xxx.xxx -N -R 8080:localhost:80 "socat TCP-LISTEN:8080,fork TCP:127.0.0.1:42500"
湾。使用网络服务器和反向代理:
安装 apache 或 nginx 以及任何所需的反向代理模块,并将您的 VirtualHost 配置为将请求代理到本地端口,例如:8080
->127.0.0.1:42500
通过 SSH 连接:ssh -N -R 42500:127.0.0.1:80 -o ServerAliveInterval=60 ubuntu@xxx.xxx.xxx.xxx
您的机器现在可以通过 ec2 实例访问http://xxx.xxx.xxx.xxx:8080/
。
在调试 Web 服务回调时,我偶尔会使用这种技术。
2014 年 2 月 17 日更新
如果您是 Windows 用户,则需要安装第三方工具来支持ssh
. 选项包括:
如果您不熟悉 *nix 工具,PuTTY 是最简单的选择。要在 PuTTY 中配置远程端口转发,请展开以下设置:Connection -> SSH -> Tunnels
. 鉴于前面描述的场景,填充Source port
为42500
, Desination
as127.0.0.1:80
并勾选Remote
选项。(您可能还需要在选项卡中添加与 PuTTY 兼容的私钥的路径,Connection -> SSH -> Auth
具体取决于您的服务器配置。
要测试您是否已成功转发端口,请netstat -lnt
在您的服务器上执行该命令。您将看到类似于以下内容的输出:
tcp 0 0 127.0.0.1:42500 0.0.0.0:* LISTEN
最后,您可以使用curl http://127.0.0.1:42500
. 您将看到您自己的机器 web 根在端口 80 上运行的输出。
贵公司有VPN网络吗?如果是这样并且您可以访问 vpn 网络,您可以将您的服务器包含在 vpn 网络中,您的访客只需登录到您公司的 vpn 网络,然后像在本地网络中一样访问您的站点,而无需使用端口转发。而且由于您的数据非常机密,我认为使用 vpn 也将有助于提高数据的安全性。
如果我错了,请纠正我。
谢谢你。
让我们把它分成几个步骤。
我将在您的场景中做的是:
将端口“80”从路由器设置转发到我的本地计算机 IP 地址。(通常它被标记为“虚拟服务器”、“防火墙”、“端口转发”等在设置中因路由器而异)
假设您有一个本地 IP“192.168.1.3”和全局/路由器 IP“254.232.123.232”,那么您会将向路由器发送的所有 HTTP 请求重定向到您的本地 IP。
[[[[254.232.123.232]]]] --+ :80 +-- --------->192.168.1.3
现在这很好,但是你需要解决路由器的动态 IP 问题。但是不用担心,这要感谢一些简单的免费网站!
正如人们所说,您需要一个公共 IP 地址。但是,即使您这样做了,也不应该将 xampp 用作公共服务器,因为它是为开发而设计的,因此禁用了一些安全设置。
我建议购买一些共享虚拟主机,并将其上传到该主机。(如果您搜索“共享网络托管”,您可以获得便宜的托管服务,并且可以使用免费的 .tk 域名:http: //www.dot.tk/)
如果没有端口转发,您的要求是不可能的。
如果您没有公共 IP 地址并且无法使用端口转发,则无法托管该站点