![wrt54g端口地址转换](https://linux22.com/image/503833/wrt54g%E7%AB%AF%E5%8F%A3%E5%9C%B0%E5%9D%80%E8%BD%AC%E6%8D%A2.png)
我有 1 台服务器已经占用了端口 80(一个实时站点),还有另一台运行 wordpress mu 的服务器只能在端口 80 上运行。
有没有办法让我的路由器将端口 81 转换为看起来像是端口 80 以进行 wordpress 安装?
答案1
设置端口转发应该很简单。您使用的是原装固件还是其他固件,例如 ddwrt?您可能遇到的问题是 wordpressmu 安装可能会输出绝对 URL。如果是这样,它们将不包含正确的端口。
您可以设置一个 HTTP 代理,将端口 80 转发到该代理。然后可以配置该代理以根据主机名将请求转发到正确的内部主机。如果您现有的网站已经在运行 apache,您甚至可以在那里设置一个额外的虚拟主机并启用代理。
答案2
假设请求是通过路由器从外部发来的,您可以将其设置为将外部端口 81 转发到内部服务器上的 IP 和端口 80。
检查防火墙设置并添加端口转发器。
它的设置如下:
应用程序和游戏 > 端口范围转发
来自手册:
要转发端口,请在每行输入所需条件的信息。
应用在此字段中,输入您希望为应用程序指定的名称。每个名称最多可包含 12 个字符。
开始/结束
这是端口范围。在“开始”列中输入端口范围的起始数字, 在“结束”列中
输入端口范围的结束数字。协议 选择此应用程序使用的协议:TCP、UDP 或两者。
IP地址对于每个应用程序,输入运行特定应用程序的 PC 的 IP 地址
。使能够选择启用以为相关应用程序启用端口转发。
答案3
到目前为止提到的方法的问题在于,解决方案要么比它需要的更复杂(代理、多个端口转发设置),要么给客户端带来负担(备用端口)。为什么不在端口 80 上运行两个站点并使用主机标头来区分两者?这样,您可以在防火墙上设置一个端口转发规则(端口 80),允许您在内部运行多个独特的网站,并允许您的网站访问者像连接任何其他网站一样进行连接,而无需在浏览器中指定端口号。我通过这种方式在我的家庭服务器上运行了 6 个独特的网站。
除非我误解了你的问题,否则这应该有效。
答案4
我能够使用 IIS 中的反向代理来克服这个问题,它的工作方式类似于 mod_proxy,并使用 HOSTS 文件将 / 后面的所有内容转换为内部站点,并将域映射到内部 IP。虽然很麻烦,但确实有效。