我可以使用 /etc/hosts 映射 IP 地址和端口吗?

我可以使用 /etc/hosts 映射 IP 地址和端口吗?

我可以将 IP 地址和端口映射到域名吗?

例如,我想映射127.0.0.1:8000testdev.com

我的/etc/hosts文件有

127.0.0.1  localhost
127.0.0.1:8000 testdev.com

这样当我点击 时testdev.com,它指的是127.0.0.1:8000。我尝试了上面的方法,但没有用。还有其他方法可以实现这一点吗?

答案1

我可以使用 /etc/hosts 映射 IP 地址和端口吗

不。

/etc/hosts文件是您系统域名解析器的一部分(它将检查此文件,然后检查 DNS)。

解析器的工作是将文本域名转换为IP地址,而不是IP地址+端口。

一些应用程序(例如 Minecraft)支持检查 DNS 服务器的 SRV 记录并可以使用其中的端口号,但同样,这取决于程序的行为,无法从您的/etc/hosts文件中完成。


我想将 127.0.0.1:8000 映射到 testdev.com

什么@Giacomo1968 在评论中说道说的就是你需要做的。

答案2

这个解决方案对我的 nginx 有用
如果你正在使用 nginx,你可以使用 Nginx 作为反向代理,并执行以下操作

例子

server {
  listen       testdev.com:80;
  server_name  testdev.com;
  location / {
    proxy_pass http://127.0.0.1:8000;
  }
}


有关上述方法的更多信息,请查看这里
对于窗口用户
我从 stackoverflow 找到了这个解决方案这里

答案3

正如 Lawrence 所说,这是不可能的,/etc/hosts但你可以设置反向代理,以便使用nginx或实现它apache。我过去遇到过同样的问题,所以我制作了这个工具来使用语法来实现这一点/etc/hostshttps://github.com/cristianoliveira/ergo

答案4

对我有用的解决方案apache是首先修改我的apache配置,如下所示:

Web 服务器配置

<VirtualHost *:80>
    ServerName testdev.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/testdev.com/public

    <Directory /var/www/testdev.com/public>
        AllowOverride All
        Options Indexes FollowSymLinks
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

apache修改任何配置文件后,不要忘记重新启动。请注意ServerName,指令已设置为您要使用的域名,并且设置VirtualHost *:80为 80。这会将来自浏览器的所有访问端口 80 上的域名的请求定向到此虚拟主机配置。

现在您必须修改您的 hosts 文件,如下所示:

Hosts 文件

127.0.0.1   localhost
127.0.0.1   testdev.com

现在转到你的浏览器并输入testdev.com以下内容将直接引导你到你的网络应用程序

相关内容