我有一个运行在 KVM 上的 ubuntu 18.04 上的 apache 网络服务器 这个 KVM 在 Linux Mint 20.1 主机操作系统上运行
网络是使用 KVM 中的网桥设置的
<network connections="1">
<name>host-bridge</name>
<uuid>some-uuid</uuid>
<forward mode="bridge"/>
<bridge name="br0"/>
</network>
我有防火墙规则将流量从真实网络传递到网桥
sudo iptables -I INPUT 1 -i lo -j ACCEPT
#Pass to KVM Bridge
sudo iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
sudo iptables -A FORWARD -i br0 -o virbr0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i virbr0 -o br0 -j ACCEPT
sudo iptables -I FORWARD -i br0 -o br0 -j ACCEPT
这一切都在工作,我正在将流量传送到主机并路由到 kvm 机器,外部 ips 可以连接,内部也可以
不幸的是,我也有一些自定义的 html,可以根据引用者是在本地局域网还是远程 ip 上通过 php 改变行为
自从从 VmWare 迁移到 KVM 后,现在一切都源自主机 ip 地址,并且此逻辑不起作用
有没有办法维护请求 IP 地址,以便我可以保持相同的行为?
我用 php 检查 ips
function getUserIpAddress()
{
$ip = getenv('HTTP_CLIENT_IP')?:
getenv('HTTP_X_FORWARDED_FOR')?:
getenv('HTTP_X_FORWARDED')?:
getenv('HTTP_FORWARDED_FOR')?:
getenv('HTTP_FORWARDED')?:
getenv('REMOTE_ADDR');
return $ip;
}
我已经尝试输出以上所有内容,它们都显示为主机 linux mint 机器本地局域网 IP