linux虚拟机可以ping通,但是无法socket连接

Windows与Linux虚拟机间网络互通问题解决
这篇博客介绍了如何解决两台Windows主机上运行的Linux虚拟机之间ping不通和socket连接失败的问题。主要步骤包括关闭Windows和Linux的防火墙,清空iptables规则,并提到了CentOS7中可能需要管理firewalld服务。通过这些操作,可以消除网络连接障碍。

场景:两台windows各开一台Linux虚拟机,通过路由器组网,分配桥接地址。出现电脑之间ping不通,socket不通怎么办?
答案:
1 :关掉windows防火墙。任何阻止联网的行为统统取消。
2 : 关掉linux防火墙,对/etc/selinux/config文件做如下修改:
SELINUX为enalbed 改为disabled 在这里插入图片描述

3 以上还不够,新开机的虚拟机仍然connect error。尹胜雨大师的《网络编程》。

建议在终端命令行里敲一遍以下命令:
iptables –F
  iptables –X
  iptables –Z
  可以通过man iptables 命令查看其功能。反正然后就好使了。
  4 谢谢网上各位老师的无私分享。
  5.在centos7 里面,有新的防火墙管理命令 firewalld ,其实关闭防火墙就可以,这样防火墙就不会屏蔽任何的端口连接了。

ping 但 telnet 连接失败可能有以下原因及对应的解决办法: ### 防火墙相关问题 - **原因**:防火墙可能会阻止 telnet 连接的数据包过,即使允许了 ping 数据包。不同系统的防火墙设置都可能影响连接,如 Windows 防火墙、Linux 防火墙(如 iptables、ufw),以及云服务器的安全组规则等。对于轻量服务器,可能因错误配置安全组导致问题,因为轻量服务器不支持配置安全组,需在查看详情处添加新的防火墙规则[^2][^3][^4]。 - **解决办法**: - 临时关闭防火墙进行测试,例如在 Windows 系统中,可过“控制面板” - “系统和安全” - “Windows Defender 防火墙”,选择“启用或关闭 Windows Defender 防火墙”,并选择“关闭 Windows Defender 防火墙(不推荐)”;在 Linux 系统中,可使用命令关闭防火墙,如 `systemctl stop firewalld`(针对 CentOS 7 及以上的 firewalld 防火墙)或 `sudo ufw disable`(针对 Ubuntu 的 ufw 防火墙)。测试完成后记得重新开启防火墙。 - 若不想关闭防火墙,可添加允许规则。在 Windows 中,过“允许应用或功能过 Windows Defender 防火墙”添加 `telnet.exe` 并确保“公用”和“专用”的复选框都被选中;在 Linux 中,使用 `iptables` 或 `ufw` 命令开放相应端口,如 `ufw allow 80` 开放 80 端口(针对 Ubuntu),或使用 `iptables -A INPUT -p tcp --dport 80 -j ACCEPT` 开放 80 端口(针对 CentOS)。对于轻量服务器,需在查看详情处添加新的防火墙规则[^2][^3][^4]。 ### 服务未开启问题 - **原因**:目标服务器上的 telnet 服务可能未开启,导致无法建立连接。另外,客户端系统中 Telnet 客户端功能可能未正确安装或启用。 - **解决办法**: - 在目标服务器上开启 telnet 服务。不同系统开启方式不同,例如在 Windows 系统中,需在“控制面板” - “程序和功能” - “启用或关闭 Windows 功能”中勾选“Telnet 服务器”;在 Linux 系统中,需安装并启动 telnet 服务,如在 CentOS 中使用 `yum install telnet-server` 安装,然后使用 `systemctl start telnet.socket` 启动服务。 - 在客户端系统中确保 Telnet 客户端功能已正确安装和启用。若遇到问题,可尝试先取消勾选“Telnet 客户端”,确定后等待类似安装界面完成,再重新勾选并确定,等待服务安装完成[^2]。 ### 系统安全策略限制问题 - **原因**:Linux 系统中的 SELinux 可能会限制 telnet 连接,即使防火墙已正确配置且服务已开启。 - **解决办法**:编辑 `/etc/selinux/config` 文件,将 `SELINUX=enforcing` 改为 `SELINUX=disabled`,然后重启虚拟机,以禁用 SELinux[^2]。 ### 网络设备或路由问题 - **原因**:网络设备(如路由器、交换机等)的配置可能影响 telnet 连接。某些网络设备可能会对特定端口或协议进行过滤或限制。 - **解决办法**:检查网络设备的配置,确保没有对 telnet 连接进行不必要的限制。可以尝试重启网络设备,或者联系网络管理员进行进一步排查。 ### 目标服务器设置问题 - **原因**:目标服务器可能设置了拒绝直接 telnet 服务,或者对特定 IP 地址进行了访问限制。 - **解决办法**:检查目标服务器的配置,确保允许 telnet 连接。可以联系服务器管理员进行相关设置的调整。 ### 示例代码(以 Ubuntu 系统开放 80 端口为例) ```bash # 开放 80 端口 sudo ufw allow 80 # 重启 ufw 防火墙 sudo ufw reload ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangzhangkeji

谢谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值