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

iKi*_*Kid 5 iptables virtualbox ip-address

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

但是,这样做时,http 的访问日志仅显示每个连接的相同 IP 地址。(来自 10.xxx 这是主机 IP 地址)。

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

jol*_*ger 3

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

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;
    }
}
Run Code Online (Sandbox Code Playgroud)