在我的虚拟机上,我有一个 IP 为 192.168.22.10 的接口,然后我创建了 IP 为 192.168.22.11 的接口别名(子接口)。
每个 IP 将在端口 443 上托管一个虚拟主机,该虚拟主机会将流量发送到后端应用程序服务器(Apache 反向代理),现在,如果我尝试访问为 IP 192.168.22.10:443 配置的虚拟主机,我可以从外部访问它,但虚拟主机配置为 IP 192.168.22.11:443 我无法访问它。
运行 tcpdump 显示流量正在通过 192.168.22.10
IP地址
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:aa:36:1d brd ff:ff:ff:ff:ff:ff
inet 192.168.22.10/24 brd 192.168.22.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet 192.168.22.11/24 brd 192.168.22.255 scope global secondary noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:feaa:361d/64 scope link
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:12:25:ce brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:12:25:ce brd ff:ff:ff:ff:ff:ff
5: ens224: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:aa:d2:84 brd ff:ff:ff:ff:ff:ff
路线信息
路线-n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.22.254 0.0.0.0 UG 100 0 0 ens192
192.168.22.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
192.168.22.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
ip路由
default via 192.168.22.254 dev ens192 proto static metric 100
192.168.22.0/24 dev ens192 proto kernel scope link src 192.168.22.10 metric 100
192.168.22.0/24 dev ens192 proto kernel scope link src 192.168.22.11 metric 100
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1
我检查了 netstat,它显示端口 443 上有 192.168.22.11,因此我在 ssl.conf 文件中添加以下行
Listen 192.168.22.10:443 https
Listen 192.168.22.11:443 https
现在 netstat 显示
tcp 0 0 192.168.22.11:443 0.0.0.0:* LISTEN 117421/httpd
但流量仍然通过192.168.22.10
答案1
好吧,我没有得到任何帮助,但没有问题,我自己想出来了。为发现自己遇到同样问题的其他人发布答案。
问题与路由有关。
"ip route add 172.16.5.20 via 192.168.22.254 dev ens192 src 192.168.22.11"
它将在路由表中添加路由
│Kernel IP routing table
│Destination Gateway Genmask Flags Metric Ref Use Iface
│0.0.0.0 192.168.22.254 0.0.0.0 UG 100 0 0 ens192
│172.16.5.20 192.168.22.254 255.255.255.255 UGH 100 0 0 ens192
│192.168.22.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
│192.168.22.0 0.0.0.0 255.255.255.0 U 100 0 0 ens192
│192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
但它不会在重新启动或服务重新启动后持续存在
因此,在 /etc/sysconfig/network-scripts/ifcfg-inteface_name 中添加以下行
"172.16.5.20 via 192.168.22.254 dev ens192 src 192.168.22.11"
现在重新启动路径将持续存在
当然要进行适当的防火墙更改(Firewalld/Iptables)