在具有連接埠轉送的 Oracle VM Virtualbox 中執行 Web 伺服器時出現問題

在具有連接埠轉送的 Oracle VM Virtualbox 中執行 Web 伺服器時出現問題

我正在使用 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 的廣泛預設配置,某些其他鏈的某些規則阻止了從虛擬機器到外部的流量。

我剛剛嘗試停止防火牆,它現在可以工作了。

相關內容