我对服务器领域几乎是个新手。除了apachectl -k start
在 localhost 中运行并看到“它工作正常!”之外,我对如何设置服务器一无所知。我尝试过“端口转发”,并尝试在 no-ip.com 中运行某些功能,但过了一段时间,我完全不知道自己在做什么。如果这意味着什么,我通过 no ip 尝试的过程是:
- 通过我的路由器转发笔记本电脑上的 http 端口(这看起来是这样的
- 运行 Apache
- 运行 noip 客户端
- 在 noip 上创建主机(设置 DNS 主机(A)以及它检测到的任何 IP 地址)
- 访问由no-ip创建的域。
最终发生的事情是,当我尝试访问该域名(顺便说一下,是 swarajd.no-ip.org)时,它超时了。我意识到我做错了什么,但我不知道该怎么做才能纠正这个错误。
我希望能够通过我的 verizon actiontec MI424WR 路由器,在运行 openSUSE 的笔记本电脑上使用简单的域名(例如 swarage.somewebsite.info 或类似的)设置一个简单的 Web 服务器。
(注意:该问题是从 stack overflow 交叉发布的,因为那里的版主建议在这里提出这个问题)。
答案1
要启动并运行服务器,请遵循以下步骤:
首先启动并运行 apache,然后确定将 html 文件放在哪里。(您似乎已经有了这个)。在 ubuntu 上安装 apache 后,index.html 应该位于 /var/www 中(对于 SUSE 可能类似)。
在 index.html 中输入 POTATO 后,您应该能够在 Web 浏览器中写入 localhost,并且应该会显示 POTATO。成功了吗?那么您的服务器已在运行!
现在,如果您在同一网络中抓住另一台计算机,您应该能够在网络浏览器中输入您的笔记本电脑的 IP 并看到 POTATO。
您可以在连接信息中查找计算机的 IP(我不知道在 SUSE 中如何操作,但在我的 ubuntu 上很容易,只需单击 wifi 图标,然后单击连接信息)。您还可以打开控制台并输入 ifconfig。ethx 是电缆接口,wlanx 是 wifi 接口。地址应类似于 192.168.1.40。将该地址复制并粘贴到另一台计算机的浏览器中。显示 potato?那么一切就都好了!
正如我读到的Opensuse 的 apache 安装 wiki,opensuse 上的防火墙默认阻止所有到端口 80 的流量,因此您必须解锁它。
因此,如果您需要允许访问以便可以从 LAN 内访问 Web 服务器,我们需要微调防火墙配置。以下步骤需要以 root 用户身份执行。提供的配置称为 apache2 和 apache2-ssl。可以通过 YaST 启用它们,方法是将它们添加到 /etc/sysconfig/SuSEfirewall2 中的 FW_CONFIGURATIONS_EXT
# sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2
# sysconf_addword /etc/sysconfig/SuSEfirewall2 FW_CONFIGURATIONS_EXT apache2-ssl
# rcSuSEfirewall2 restart
现在,问题的关键是 NAT。互联网最初设计为世界上的每台计算机都有自己独特的 IP,每个 IP 都有不同的端口,可供机器中运行的不同程序使用。但是,互联网服务提供商开始用尽分配给机器的 IP,他们没有迁移到 ipv6,而是创建了令人厌恶的“解决方案”,即 NAT,其中您只能获得一个 IP 供路由器在家中共享。它的工作原理是将接收到路由器某些端口的数据包重定向到网络中的计算机,将接收到路由器其他端口的数据包重定向到网络中的其他计算机。
因此,此时剩下要做的就是告诉路由器,所有进入路由器 80 端口的数据包都应重定向到笔记本电脑的 80 端口。否则路由器就不知道如何处理它们。
现在,通过在手机上使用数据连接输入路由器的 IP 地址来检查这是否有效。最简单的方法是问谷歌“我的 IP 是什么?”它显示 POTATO 了吗?太棒了!
现在,您无需让别人输入该 IP,只需注册域名即可获取该 IP。但请注意;如果您拥有的是动态 IP 而非静态 IP,则意味着每次重置路由器时您的 IP 都会发生变化!!