如何从virtualbox获取传入的ip地址

Modified on: Sat, 12 Oct 2019 22:40:02 +0800

我在VB下设置了一个http服务器(apache),并使用VB中的可用工具从主机转发端口。我的VB网络与主机NAT连接。

但是,在执行此操作时,http的访问日志仅显示每个连接的相同IP地址。 (来自10.x.x.x,即主机IP地址)。

有没有看到真正的IP地址?
我试图在主机上设置iptables日志,但它没有显示数据(只有src,dest.ttl ..你知道..)

作者:iKid

最佳答案

您的虚拟机在您的设置中位于NAT之后,您实际上是通过端口转发访问网络服务器,因此您无法仅使用虚拟机来显示客户端的IP。您可以做的一件事是在您的主机上设置一些轻量级的Web服务器(如nginx或lighttpd),它将在您的网络上侦听80端口,同时以反向代理模式工作到您的转发端口,这样您的VM就像在此设置中的后端一样工作。要获取客户端IP地址,此Web服务器应传递一些其他变量,如X-Real-IPHostX-Forwarded-For(这里是假设您的VM将其80端口转发到本地8080,示例虚拟主机为nginx:

server {
    listen 80;
    server_name example.com;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_arrd;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
    }
}
作者:jollyroger

相关问答

添加新评论