我正在使用 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
請幫助任何人。我試圖讓工作成為真正重要的事情,但這是一個非常愚蠢的情況,我只在網路中感到震驚。
幫助大家。
謝謝菲斯塔。
答案1
實際上是防火牆本身阻塞了。
雖然我確實在 INPUT 鏈中添加了 TCP 連接埠 80 的規則,但仍然由於 CentOS 7 中 iptables 的廣泛預設配置,某些其他鏈的某些規則阻止了從虛擬機器到外部的流量。
我剛剛嘗試停止防火牆,它現在可以工作了。