无法访问虚拟机中的服务器

gg297231604 2014-06-18 04:03:00
用socket写了个简单的服务器和客户端程序, 但在主机上运行客户端访问虚拟机上的服务器却失败, 返回TimeOut错误.
主机访问虚拟机上SSH 服务器之类的都可以.
虚拟机网络设置为桥接的.
用tcpdump获取信息如下:

14:01:56.489264 ARP, Request who-has localhost.localdomain tell 192.168.1.212, length 46
14:01:56.489314 ARP, Reply localhost.localdomain is-at 00:0c:29:b2:c9:8c (oui Unknown), length 28
14:01:56.489401 IP 192.168.1.212.53491 > localhost.localdomain.7879: Flags [S], seq 2890706265, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
14:01:56.489474 IP localhost.localdomain > 192.168.1.212: ICMP host localhost.localdomain unreachable - admin prohibited, length 60
14:01:59.489135 IP 192.168.1.212.53491 > localhost.localdomain.7879: Flags [S], seq 2890706265, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
14:01:59.489231 IP localhost.localdomain > 192.168.1.212: ICMP host localhost.localdomain unreachable - admin prohibited, length 60
14:02:01.504126 ARP, Request who-has 192.168.1.212 tell localhost.localdomain, length 28
14:02:01.504308 ARP, Reply 192.168.1.212 is-at 00:0b:2f:6a:1e:b4 (oui Unknown), length 46
14:02:05.489455 IP 192.168.1.212.53491 > localhost.localdomain.7879: Flags [S], seq 2890706265, win 8192, options [mss 1460,nop,nop,sackOK], length 0
14:02:05.489533 IP localhost.localdomain > 192.168.1.212: ICMP host localhost.localdomain unreachable - admin prohibited, length 56

192.168.1.212是主机IP.
看起来从虚拟机发出IP包无法到达主机, 请问是为什么?
...全文
239 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gg297231604 2014-06-19
  • 打赏
  • 举报
回复
找到原因了, 应该是被虚拟机的防火墙挡住了
gg297231604 2014-06-19
  • 打赏
  • 举报
回复
引用 1 楼 cxgsuda 的回复:
看了抓包,可以简单分析下(编号按照包的序号) 1~2. 主机arp 请求有应答,得到虚拟机mac地址 3. 主机client 封装数据包发往 虚拟机 4. 虚拟机ICMP 主机,但主机没有应答 ※ 7~8. 虚拟机arp请求有应答,得到主机mac地址 10. 虚拟机ICMP 主机,但主机没有应答 ※ 觉得※比较奇怪 虚拟机为什么主动发出ICMP请求呢? 楼主当时在虚拟机上ping 主机了吗? 如果楼主没有ping主机, 那么ICMP请求就是虚拟机server自动发出来的 那么导致client和server不能通信的原因可能就是 : 主机没有应答ICMP 我记得windows默认配置是不自动应答ICMP的,楼主需要设置一下让windows能自动应答ICMP
我也很疑惑为什么主机会发送ICMP, 使用系统的服务则没有这情况. 虚拟机ping主机也是没有问题的.
testoftesttest 2014-06-18
  • 打赏
  • 举报
回复
看了抓包,可以简单分析下(编号按照包的序号) 1~2. 主机arp 请求有应答,得到虚拟机mac地址 3. 主机client 封装数据包发往 虚拟机 4. 虚拟机ICMP 主机,但主机没有应答 ※ 7~8. 虚拟机arp请求有应答,得到主机mac地址 10. 虚拟机ICMP 主机,但主机没有应答 ※ 觉得※比较奇怪 虚拟机为什么主动发出ICMP请求呢? 楼主当时在虚拟机上ping 主机了吗? 如果楼主没有ping主机, 那么ICMP请求就是虚拟机server自动发出来的 那么导致client和server不能通信的原因可能就是 : 主机没有应答ICMP 我记得windows默认配置是不自动应答ICMP的,楼主需要设置一下让windows能自动应答ICMP

19,612

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧