宿主机和虚拟机可以ping通telnet不通问题排查

本文探讨了Windows 10宿主机无法连接到Ubuntu 20虚拟机上运行的数据库,通过Wireshark分析发现是由于宿主机防火墙策略导致的Destination Unreachable(主机管理员禁止)。文章指导如何关闭宿主机iptables防火墙以解决问题,并解释了iptables命令的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

宿主机win10,虚拟机ubuntu20,可以互相ping通,在虚拟机起了一个数据库进程,端口号26257,从宿主机无法访问,telnet不通
wireshark抓包分析后,发现错误提示信息:Destination unreachable (Host administratively prohibited)
推断是防火墙问题。宿主机防火墙已经关闭,虚拟机需要关闭防火墙。

解决办法

关闭防火墙。

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F

iptables 命令

-N, --new-chain chain:新建一个自定义的规则链;

-X, --delete-chain [chain]:删除用户自定义的引用计数为0的空链;

-F, --flush [chain]:清空指定的规则链上的规则;

-E, --rename-chain old-chain new-chain:重命名链;

-Z, --zero [chain [rulenum]]:置零计数器;

-P, --policy chain target, 设置链路的默认策略

<think>好的,用户现在遇到了安装的虚拟机无法访问本地部署机器网络的问题。我需要先理解用户的具体情况,然后分析可能的原因,并给出解决方案。 首先,用户之前的问题是关于VirtualBox安装CentOS后找虚拟机,现在新的问题是网络不通。可能用户在成功创建虚拟机后,遇到了网络配置的问题,导致无法访问本地网络或其他机器。 接下来,我需要考虑常见的网络不通的原因。VirtualBox提供了多种网络模式,比如NAT、桥接、Host-Only等。用户可能选择了默认的NAT模式,这会导致虚拟机可以访问外网,但无法被宿主机或本地网络中的其他机器访问。这时候需要确认网络适配器的设置是否正确。 另一个可能性是防火墙的问题。CentOS 7默认启用了firewalld,可能会阻止内部或外部的连接请求。用户可能需要检查防火墙规则,或者暂时关闭防火墙来测试是否是防火墙导致的问题。 还有可能是IP地址配置的问题。如果使用桥接模式,虚拟机需要宿主机在同一网段,并且获取到正确的IP地址。用户可能需要检查虚拟机的IP配置,确认是否获得了有效的IP,并且网关DNS设置正确。 另外,虚拟机的网络服务是否正常运行也是一个因素。比如网络接口是否启用,NetworkManager服务是否运行,或者是否配置了静态IP导致冲突。 用户可能尝试过一些基本操作,比如ping宿主机或外部IP,但发现不通。这时候需要分步骤排查:首先检查虚拟机内部网络是否正常,能否ping自己的网关;然后检查宿主机能否ping虚拟机;接着检查本地网络的其他机器能否访问虚拟机。 此外,VirtualBox的Host-Only网络或桥接模式的具体配置也可能影响连性。例如,桥接模式需要选择正确的物理网卡,特别是当宿主机有多个网络接口时(比如有线网卡无线网卡)。 还有可能用户在使用NAT网络时,没有配置端口转发规则,导致外部无法访问虚拟机的服务。如果用户需要从宿主机访问虚拟机的某些端口,可能需要设置端口转发。 最后,可能需要检查宿主机的防火墙或安全软件是否阻止了与虚拟机信,尤其是在Windows系统上,防火墙设置可能会影响桥接或Host-Only网络的连性。 综上所述,我需要将这些可能的原因逐一列出,并提供对应的解决步骤,帮助用户逐步排查问题。同时,提醒用户根据实际使用的网络模式进行调整,并注意同网络模式的应用场景。</think>当VirtualBox虚拟机无法与宿主机或本地网络信时,常与网络模式配置、防火墙规则或IP地址设置相关。以下是常见原因及解决方案: --- ### **一、检查VirtualBox网络模式** VirtualBox提供多种网络模式,同模式直接影响虚拟机宿主机信能力: #### 1. **NAT模式(默认)** - **现象**:虚拟机可访问外网,但宿主机局域网无法访问虚拟机。 - **解决**: - **方法1**:改用 **桥接模式** 或 **Host-Only模式**(见下文)。 - **方法2**:在NAT模式下配置 **端口转发**: 1. 打开虚拟机设置 → **网络 → 高级 → 端口转发**。 2. 添加规则(例如将宿主机的`8080`端口映射到虚拟机的`80`端口)。 ```plaintext 规则示例: 名称: HTTP 协议: TCP 主机IP: 空(表示所有接口) 主机端口: 8080 子系统IP: 空 子系统端口: 80 ``` --- #### 2. **桥接模式(推荐)** - **特点**:虚拟机会获得与宿主机同一网段的独立IP,可直接与局域网信。 - **配置步骤**: 1. 虚拟机设置 → **网络 → 连接方式 → 桥接网卡**。 2. **界面名称**:选择宿主机的物理网卡(如`Wi-Fi`或`以太网适配器`)。 3. 启动虚拟机,检查是否获取到局域网IP: ```bash # CentOS 7查看IP ip addr # 或 nmcli device show ``` - **验证**: - 宿主机`ping 虚拟机IP` - 虚拟机`ping 宿主机IP` --- #### 3. **Host-Only模式** - **特点**:虚拟机宿主机过私有网络信,但无法访问外网。 - **配置步骤**: 1. 虚拟机设置 → **网络 → 连接方式 → Host-Only网络**。 2. 宿主机虚拟机需配置同一网段IP(如`192.168.56.x`)。 - **验证**: - 宿主机虚拟机互相`ping`测试。 --- ### **二、检查防火墙规则** #### 1. **虚拟机防火墙(CentOS 7)** - **现象**:宿主机能`ping`虚拟机,但无法访问服务(如SSH、HTTP)。 - **解决**: - 临时关闭防火墙(测试用): ```bash systemctl stop firewalld ``` - 永久放行端口(例如SSH): ```bash firewall-cmd --permanent --add-service=ssh firewall-cmd --reload ``` #### 2. **宿主机防火墙** - **Windows**:检查防火墙是否阻止VirtualBox相关程序(如`VirtualBoxVM.exe`)。 - **Linux/macOS**:检查`iptables`或`ufw`规则是否拦截流量。 --- ### **三、检查IP地址配置** #### 1. **虚拟机IP是否正确** - 运行 `ip addr` 或 `ifconfig`,确认网卡已分配IP。 - 若使用桥接模式,确保IP与宿主机在同一子网(例如宿主机IP为`192.168.1.10`,虚拟机应为`192.168.1.x`)。 #### 2. **网关与DNS设置** - 检查 `/etc/sysconfig/network-scripts/ifcfg-*` 文件(CentOS 7): ```ini BOOTPROTO=dhcp # 动态获取IP # 或手动配置静态IP BOOTPROTO=static IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 ``` --- ### **四、其他可能原因** #### 1. **VirtualBox网络服务异常** - 重启VirtualBox相关服务(Windows): - 任务管理器 → 服务 → 重启 `VirtualBox Host-Only Network`。 #### 2. **网卡驱动问题** - 更新VirtualBox增强功能(需安装`VirtualBox Guest Additions`): ```bash # CentOS 7 yum install kernel-devel gcc -y mount /dev/cdrom /mnt /mnt/VBoxLinuxAdditions.run ``` #### 3. **路由表冲突** - 检查虚拟机路由表: ```bash route -n # 确保默认网关指向正确地址 ``` --- ### **五、快速验证流程** 1. **虚拟机内部网络测试**: ```bash ping 127.0.0.1 # 检查本地环回 ping 虚拟机自身IP # 检查网卡是否正常 ping 宿主机IP # 测试与宿主机ping 8.8.8.8 # 测试外网连性(仅NAT/桥接模式) ``` 2. **宿主机测试**: ```bash ping 虚拟机IP telnet 虚拟机IP 22 # 测试SSH端口(需虚拟机开放端口) ``` --- ### **附:同网络模式对比** | 模式 | 虚拟机宿主机 | 宿主机虚拟机 | 虚拟机→局域网 | 局域网→虚拟机 | 外网访问 | |---------------|--------------|--------------|--------------|--------------|----------| | **NAT** | ✔️(需端口转发)| ❌ | ❌ | ❌ | ✔️ | | **桥接** | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | | **Host-Only** | ✔️ | ✔️ | ❌ | ❌ | ❌ | --- 过以上步骤,可定位并解决大部分网络不通问题。如果仍无法解决,请提供以下信息: - VirtualBox版本及宿主机操作系统(如Windows 11、macOS 14等)。 - 虚拟机网络模式及IP配置截图。 - `ping`测试结果及防火墙规则。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值