我正在使用 Oracle VM VirtualBox 并在其上运行 CentOS 7 实例。我为这台机器设置了两个网络适配器。一种设置为 Host Only 模式,另一种设置为 NAT 模式。我能够通过 SSH 连接到虚拟机。现在我也在这个虚拟机上运行一个 Web 服务器,并希望以相同的方式访问它。但它不是这样工作的。我还尝试了其他规则 - 主机上的端口 3000,来宾上的端口 80。
主机上的端口 12000,访客上的端口 80。
主机上具有相同的 IP:主机上的 3000 以及来宾上的确切 IP:端口。
主机上没有 IP 和端口 3000,而来宾上有确切的 IP:端口。
它不起作用。我也能够从主机 ping 到虚拟机,反之亦然。我已经测试了 VM-Server 内的 Apache HTTPD 配置是否已启动。
我使用 Lynx 访问该网站,这也可以正常工作,但仅限于虚拟机内。不是来自机器或主机操作系统外部。
主机到访客 PING 输出 -
C:\Users\apandey>ping 192.168.56.101
Pinging 192.168.56.101 with 32 bytes of data:
Reply from 192.168.56.101: bytes=32 time<1ms TTL=64
Reply from 192.168.56.101: bytes=32 time<1ms TTL=64
Reply from 192.168.56.101: bytes=32 time=1ms TTL=64
Reply from 192.168.56.101: bytes=32 time<1ms TTL=64
Ping statistics for 192.168.56.101:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 1ms, Average = 0ms
访客网络连接 -
[root@phsita phsita_]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
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: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:35:35:5b brd ff:ff:ff:ff:ff:ff
inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic enp0s3
valid_lft 63341sec preferred_lft 63341sec
inet6 fe80::a49c:d796:6e85:93a3/64 scope link
valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:fa:0c:03 brd ff:ff:ff:ff:ff:ff
inet 192.168.56.101/24 brd 192.168.56.255 scope global enp0s8
valid_lft forever preferred_lft forever
inet6 fe80::552d:c3b3:245a:ca7d/64 scope link
valid_lft forever preferred_lft forever
从客人内部卷曲-
[root@phsita phsita_]# cat /var/www/html/index.html
It worked. This is a test page running on Apache HTTPD.
[root@phsita phsita_]# curl localhost
It worked. This is a test page running on Apache HTTPD.
这是 CentOS VM 的 iptables 配置 -
[root@phsita phsita_]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
INPUT_direct all -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES_SOURCE all -- 0.0.0.0/0 0.0.0.0/0
INPUT_ZONES all -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
FORWARD_direct all -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES_SOURCE all -- 0.0.0.0/0 0.0.0.0/0
FORWARD_IN_ZONES all -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES_SOURCE all -- 0.0.0.0/0 0.0.0.0/0
FORWARD_OUT_ZONES all -- 0.0.0.0/0 0.0.0.0/0
DROP all -- 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
OUTPUT_direct all -- 0.0.0.0/0 0.0.0.0/0
这是 CentOS VM 的 Netstat 输出 -
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5777/httpd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1059/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1379/master
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN 6702/nrpe
tcp 0 0 192.168.56.101:22 192.168.56.1:50997 ESTABLISHED 8059/sshd: root@not
tcp 0 36 192.168.56.101:22 192.168.56.1:50996 ESTABLISHED 8054/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 1059/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1379/master
tcp6 0 0 :::5666 :::* LISTEN 6702/nrpe
udp 0 0 127.0.0.1:323 0.0.0.0:* 619/chronyd
udp 768 0 10.0.2.15:42450 10.100.1.21:53 ESTABLISHED 9559/ping
udp 0 0 0.0.0.0:15961 0.0.0.0:* 8008/dhclient
udp 0 0 0.0.0.0:68 0.0.0.0:* 8008/dhclient
udp6 0 0 ::1:323 :::* 619/chronyd
udp6 0 0 :::9882 :::* 8008/dhclient
我的端口转发规则如下面所述-
Name Protocol Host IP Host Port Guest IP Guest Port
HTTPD TCP 50000 80
SSHD Rule TCP 2222 22
这是我的 Windows 主机的 Netstat 响应 -
C:\Windows\system32>netstat -antb | findstr 50000
TCP 0.0.0.0:50000 0.0.0.0:0 LISTENING
TCPDUMP 在从主机向访客 URL 发出请求时捕获数据包 -
[root@phsita phsita_]# tcpdump -v -i enp0s8 port 80
tcpdump: listening on enp0s8, link-type EN10MB (Ethernet), capture size 65535 bytes
17:08:00.255009 IP (tos 0x0, ttl 128, id 8851, offset 0, flags [DF], proto TCP (6), length 52)
82693-t430.corp.abc.com.58114 > phsita.http: Flags [S], cksum 0xca36 (correct), seq 2879587372, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:00.505569 IP (tos 0x0, ttl 128, id 8853, offset 0, flags [DF], proto TCP (6), length 52)
82693-t430.corp.abc.com.58115 > phsita.http: Flags [S], cksum 0xc579 (correct), seq 1429233499, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:03.254847 IP (tos 0x0, ttl 128, id 8855, offset 0, flags [DF], proto TCP (6), length 52)
82693-t430.corp.abc.com.58114 > phsita.http: Flags [S], cksum 0xca36 (correct), seq 2879587372, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:03.505192 IP (tos 0x0, ttl 128, id 8857, offset 0, flags [DF], proto TCP (6), length 52)
82693-t430.corp.abc.com.58115 > phsita.http: Flags [S], cksum 0xc579 (correct), seq 1429233499, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:09.255273 IP (tos 0x0, ttl 128, id 8859, offset 0, flags [DF], proto TCP (6), length 48)
82693-t430.corp.abc.com.58114 > phsita.http: Flags [S], cksum 0xde45 (correct), seq 2879587372, win 8192, options [mss 1460,nop,nop,sackOK], length 0
17:08:09.505718 IP (tos 0x0, ttl 128, id 8861, offset 0, flags [DF], proto TCP (6), length 48)
82693-t430.corp.abc.com.58115 > phsita.http: Flags [S], cksum 0xd988 (correct), seq 1429233499, win 8192, options [mss 1460,nop,nop,sackOK], length 0
17:08:21.507198 IP (tos 0x0, ttl 128, id 8863, offset 0, flags [DF], proto TCP (6), length 52)
82693-t430.corp.abc.com.58119 > phsita.http: Flags [S], cksum 0x9a4d (correct), seq 4194231732, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:24.507418 IP (tos 0x0, ttl 128, id 8865, offset 0, flags [DF], proto TCP (6), length 52)
82693-t430.corp.abc.com.58119 > phsita.http: Flags [S], cksum 0x9a4d (correct), seq 4194231732, win 8192, options [mss 1460,nop,wscale 8,nop,nop,sackOK], length 0
17:08:30.507292 IP (tos 0x0, ttl 128, id 8867, offset 0, flags [DF], proto TCP (6), length 48)
82693-t430.corp.abc.com.58119 > phsita.http: Flags [S], cksum 0xae5c (correct), seq 4194231732, win 8192, options [mss 1460,nop,nop,sackOK], length 0
请帮助任何人。我试图让工作成为真正重要的事情,但这是一个非常愚蠢的情况,我只在网络中感到震惊。
帮助大家。
谢谢 phsita。
答案1
实际上是防火墙本身阻塞了。
虽然我确实在 INPUT 链中添加了 TCP 端口 80 的规则,但仍然由于 CentOS 7 中 iptables 的广泛默认配置,某些其他链的某些规则阻止了从虚拟机到外部的流量。
我刚刚尝试停止防火墙,它现在可以工作了。