使用 hosts 文件,我无法执行这样的操作:
127.0.0.1:8080 testing
因此我必须写
127.0.0.1 testing
http://testing:8080
为了做同样的事情。
问题是我需要能够访问 IP 而无需输入任何端口。我有什么办法可以做到这一点吗?
答案1
您可以设置一个反向代理在端口 80 提供服务,并将所有请求转发到 8080。
Apache 是可以为您完成此操作的 Web 服务器之一。有一个基本的反向代理示例在 mod_proxy 文档中。
答案2
hosts 文件仅将主机名与 IP 地址绑定。
默认情况下,HTTP 通过端口 80 运行。因此,通过将主机名绑定到 127.0.0.1,然后在浏览器中点击主机名(通过 HTTP),就暗示了端口 80。
您需要设置一个代理服务器,监听端口 80,并将请求转发到端口 8080。您的 Web 服务器仍然必须在端口 8080 上运行
答案3
hosts 文件的作用是将名称与 IP 关联起来。
您想要执行的是防火墙任务。
或者您将应用程序配置为在 80 而不是 8080 上运行。
使用 iptables,您可以执行以下操作:
iptables -t nat -I PREROUTING -p tcp -i eth0 -d 127.0.0.1 --dport 8080 -j DNAT --to-destination 127.0.0.1:80
答案4
您需要额外的权限才能监听 1000 以下的端口,这可能就是您监听端口 8080 而不是端口 80 的原因。您可以使用 Apache、Squid、Varnish 或其他各种代理来设置反向代理。
或者,您可以让软件提升权限并传递正确的参数,让它监听端口 80。这个软件是什么?我们可能能够帮助您让它监听端口 80。