![为 Web 服务器设置端口转发](https://linux22.com/image/493209/%E4%B8%BA%20Web%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE%E7%AB%AF%E5%8F%A3%E8%BD%AC%E5%8F%91.png)
这可能属于超级用户,但我认为这个地方更合适。
我想在我的电脑上运行 Apache,并希望将其提供给外部世界以测试几件事。显然,我必须进入我的路由器(TP-LINK TD 8910G)的设置并将端口 80 转发到我的 PC 的 IP。到目前为止一切顺利。
问题是,由于路由器使用基于 Web 的界面,这有点愚蠢,它告诉我,由于我为此使用了端口 80,因此我应该通过端口 8080 访问其设置。也许它无法检测到来自 LAN 的请求,我不知道。关键是,现在两个端口都无法访问配置,我无法访问互联网。具体来说,尝试通过端口 80 访问任何内容(包括 192.168.1.1,路由器的设置)会出现空白页(也许如果我的计算机中运行服务器,我会得到一些东西,但我不想冒险尝试,我不得不重置路由器并恢复设置),端口 8080 在 Firefox 中出现“无法建立连接”错误(其他浏览器中也有类似错误)。
有没有办法配置路由器不重定向来自网络内部的请求?
我是这方面的新手,所以请尽量用简单的方式解释。如果这更适合超级用户,我很抱歉。
答案1
- 确保路由器的 Web 界面设置为不是监听外部接口。如果监听所有接口,这可能会把事情搞砸。
- 您应该将路由器设置为仅转发来自外部的接口。因此,源接口应该只是外部接口。
- 或者,将您的网络服务器设置为非军事区设备。这会将来自互联网的所有数据包转发到您服务器的所有端口。
- 或者,使用运行dd-wrt而是从 dd-wrt 进行配置,它非常强大。
答案2
在我做任何其他事情之前,我会检查我的 ISP 是否阻止了端口 80 - 很多 ISP 都这样做,如果您的 ISP 确实阻止了端口 80,那么您将无法再获得任何进一步的信息。
虽然常识是使用端口 8080 作为备用端口,但我不这样做 - 我使用随机端口(例如 9120)。让服务器监听端口 80,然后从所需端口转发到 80。
使用“外部”连接进行测试 - tor 有帮助 - 例如操作员因为它可以帮助您确保站点在局域网之外可访问。尝试两个端口 - domain.name:port/path/ 是您连接到非标准端口的方式。
答案3
任何调制解调器/路由器都应该能够转发端口 80,无论它在端口 80 上监听什么来管理路由器(其 Web 界面),但让您的路由器不响应外部(互联网)对端口 80 上的管理请求是明智之举。有些路由器允许您将其更改为随机端口,如 8181 等,但不是全部。检查您的路由器是否可以这样做。您的路由器告诉您的是,您当前已将其配置为通过端口 80 从互联网向您显示其管理界面,如果您想转发它,那么您应该将其管理界面更改为在端口 8080 上显示,或者更好的是,只需将其关闭,您仍然可以从网络内部进行管理。
转发端口意味着到达您的公共 IP(路由器上的互联网接口)的数据包将被传送到您正在设置的 Apache 盒,就这么简单。请求必须由外部发起,当然。在内部(访问它)无论如何都要为盒子指定地址,记住。再次,我建议将非标准端口从路由器转发到 Apache 盒的端口 80,这意味着在您的网络外部,您必须像这样访问它:myapacheserver.net:8283,如果您选择转发端口 8283。这是为了保护您免受数以百万计的僵尸网络和端口扫描器的侵害,它们将扫描您的 IP 以查找包括端口 80 互联网流量在内的常见服务。这只是一个好的做法,但可能不是你想要的。
答案4
在这种情况下,我认为是否能够区分来自无线接入点端口 80 的内部或外部的流量取决于您的无线 AP 的功能。正如您在问题中所说,Web UI 有点愚蠢,有时不会为我们提供所有定制的解决方案。
理论上,这显然可以通过简单地根据数据报的源IP地址来判断,并且一些比较先进或者自制的linux路由器可能支持这一点,但这种情况下你需要检查你使用的路由器的web界面是否提供这种配置。
如果没有,以下 2 个解决方法可能会有所帮助:
1. 选择将 Web 服务器映射到 80 以外的其他端口(前提是您不需要将服务器公开,否则您必须明确告诉他们您正在使用的端口)。2.
如果您不需要经常管理无线 AP,那么将它们映射到端口 80 并没有太大的麻烦。您可能应该仔细检查他们的用户手册,看看原始端口 80 流量被更改为哪个端口地址。如果这仍然不起作用,那么请考虑重置路由器。