托管站点使用xampp服务器从本地网络无端口转发

时间:2013-08-20 15:38:44

标签: apache http networking xampp

我想让我的网站在全球范围内可用。我使用xampp服务器进行托管。我无法访问任何类型的服务器和调制解调器。情况如下所示:

我的站点服务器具有由wifi路由器分配的本地IP,并且它运行Windows 8。

请记住,我无法访问任何类型的服务器和调制解调器,因此无法进行端口转发(超出我的范围)。

7 个答案:

答案 0 :(得分:3)

它实际上很难,但并非不可能。

一种方法,我会这样做:

  1. 我会在互联网上托管一个页面。

  2. 然后接受请求并将其存储在数据库中。

  3. 我的一个程序将始终从我的电脑上运行。

  4. 然后检查请求并将请求卷曲到localhost。为此,您可以使用Node.js(使用GET方法从数据库获取数据并将其卷曲到localhost)。

  5. 这是我能想到的最好的。我正在努力,当代码准备就绪时,我将把它作为开源并通知你:)

    但是,这很困难,因为你需要让用户的请求睡2秒然后转移它。 它很慢,但可能适合你。

      

    缺点:

         
        
    • 程序会很慢,内存使用会更多。

    •   
    • 多次破裂可能会发生。

    •   
    • 高带宽浪费

    •   
    • 如果没有加密,可以使用MIM(中间人)。

    •   
         

    优势:

         
        
    • 间接托管方式

    •   
    • 无需担心代码丢失。

    •   

    我期待着更好的选择,我想再次提出这个问题。

答案 1 :(得分:2)

如果无法在LAN中打开必要的端口,则需要访问外部服务器。但是,外部服务器不需要托管任何代码,例如

  1. 使用亚马逊的free tier创建基于Linux的ec2实例。
  2. 安装程序包以将远程重定向到本地端口:

    一个。使用socat:

    1. 使用您的发行包管理器

    2. 安装socat
    3. 通过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"

    4. 湾使用网络服务器和反向代理:

      1. 安装apache或nginx以及任何所需的反向代理模块,并将VirtualHost配置为代理对本地端口的请求,例如: :8080 - > 127.0.0.1:42500

      2. 通过SSH连接:ssh -N -R 42500:127.0.0.1:80 -o ServerAliveInterval=60 ubuntu@xxx.xxx.xxx.xxx

    5. 您的机器现在可通过ec2实例http://xxx.xxx.xxx.xxx:8080/访问。

    6. 我在调试Web服务回调时偶尔会使用这种技术。


      2014年2月17日更新

      如果您是Windows用户,则需要安装第三方工具以支持ssh。选项包括:

      如果您不熟悉* nix工具,那么PuTTY是最简单的选择。要在PuTTY中配置远程端口转发,请展开以下设置:Connection -> SSH -> Tunnels。根据前面描述的方案,将Source port填充为42500,将Desination填充为127.0.0.1:80并勾选Remote选项。 (您可能还需要在Connection -> SSH -> Auth选项卡中添加PuTTY兼容私钥的路径,具体取决于您的服务器配置。

      PuTTY remote port forwarding

      要测试您是否已成功转发端口,请在服务器上执行命令netstat -lnt。您将看到类似于的输出:

      tcp     0    0    127.0.0.1:42500    0.0.0.0:*    LISTEN
      

      最后,您可以使用curl http://127.0.0.1:42500进行测试。您将在端口80上看到自己的计算机Web根目录的输出。

答案 2 :(得分:1)

如果您没有公共IP地址且无法使用端口转发,则无法托管该站点

答案 3 :(得分:1)

正如人们所说,你需要一个公共IP地址。但是,即使您这样做,也不应将xampp用作公共服务器,因为它是为开发而设计的,因此禁用了某些安全设置。

我建议购买一些共享的虚拟主机,并上传到它。 (如果你谷歌'共享网络托管',你可以获得便宜的托管服务,加上免费的.tk域名可用:http://www.dot.tk/

答案 4 :(得分:1)

贵公司是否有任何VPN网络? 如果确实如此并且您可以访问vpn网络,则可以将服务器包含到vpn网络中,并且您的guest虚拟机只需要登录到您公司的VPN网络,然后就像在本地网络中一样访问您的站点而不使用端口转发。由于您的数据非常机密,我认为使用vpn还有助于提高数据的安全性。

如果我错了,请纠正我。

谢谢。

答案 5 :(得分:1)

让我们把它分成几步。

  1. 要在本地托管您的网站,您需要一个静态的IP,以便这样做 用户可以专门访问它。
  2. 您需要一个域名才能将其转换为用户友好名称。
  3. 必须提供24x7互联网连接!你在你的图中添加了一个Wifi路由器,今天的大多数路由器都能够进行端口转发。
  4. 我将在你的场景中做的是:

    1. 我将安装WAMP,而不是使用XAMP,因为我对它更熟悉并且易于配置。(完全是个人喜好)
    2. 然后我会将我的服务器设置为“ONLINE”。(Google如何在线设置WAMP服务器)
    3. 将路由器设置中的端口“80”转发到我的本地计算机IP地址。(主要是标记为“虚拟服务器”,“防火墙”,“端口转发”等设置中的路由器到路由器)< / p>

      假设您有一个本地IP“192.168.1.3”和全局/路由器IP“254.232.123.232”,那么您将所有向路由器完成的HTTP请求重定向到您的本地IP。

      [[[[254.232.123.232]]]] - +:80 + - ---------&gt; 192.168.1.3

    4. 现在这很好,但是你需要解决路由器的动态IP问题。但是不要担心,多亏一些免费网站会很容易!

    5. 转到no-ip.org - &gt;设置帐户 - &gt;并创建一个条目,现在只是一个子域来测试一切是否正常工作。(子域名如mysite.no-ip.org,稍后购买一个真实的域名)
    6. 在那里输入您的IP地址(路由器IP)并下载其应用程序,如果您的本地IP发生变化,该应用程序将自动更新其服务器。
    7. 等一会儿,瞧!您的网站已上线。

答案 6 :(得分:1)

没有端口转发,您无法提出要求。