首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从QEMU客户端到外部URL?

如何从QEMU客户端到外部URL?
EN

Unix & Linux用户
提问于 2018-10-05 12:32:59
回答 1查看 1.5K关注 0票数 2

网络运行良好,因为我可以在QEMU内部完成以下工作:

代码语言:javascript
复制
wget example.com

但如果我这么做了

代码语言:javascript
复制
ping example.com

它只显示初始标题并挂起:

代码语言:javascript
复制
PING example.com (93.184.216.34): 56 data bytes

我知道ping需要一些额外的权限才能运行,如在:https://stackoverflow.com/questions/37512291/how-is-ping-for-non-root-user-implemented-on-linux-distros中提到的

我在https://wiki.qemu.org/Documentation/Networking#Enabling_ping_在……里面_这个_guest.2C_在……上面_Linux_主机的主机上尝试了这个程序:

代码语言:javascript
复制
sudo groupadd unpriv_ping
sudo usermod --append --groups unpriv_ping "$(id -nu)"
GROUP_ID="$(getent group unpriv_ping | cut -f 3 -d :)"
printf "net.ipv4.ping_group_range = ${GROUP_ID} ${GROUP_ID}\n" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

然后我又登录了一次,但没什么用。

也没有:

代码语言:javascript
复制
setcap cap_net_raw+eip qemu-system-x86_64

我完整的QEMU命令行是:

代码语言:javascript
复制
x86_64-softmmu/qemu-system-x86_64 \
  -device \
  rtl8139,netdev=net0 \
  -gdb \   
  tcp::45457 \                                                                                                               
  -kernel \   
  /home/ciro/bak/git/linux-kernel-module-cheat/out/linux/default/x86_64/arch/x86/boot/bzImage \
  -m \                                                                                                                                           
  256M \
  -monitor \                                                        
  telnet::45454,server,nowait \
  -netdev \
  user,hostfwd=tcp::45455-:45455,hostfwd=tcp::45456-:22,id=net0 \         
  -no-reboot \
  -smp \
  1 \
  -trace \        
  enable=pr_manager_run,file=/home/ciro/bak/git/linux-kernel-module-cheat/out/run/qemu/x86_64/0/trace.bin \                                         
  -virtfs \                                                                                                                                            
  local,path=/home/ciro/bak/git/linux-kernel-module-cheat/data/9p,mount_tag=host_data,security_model=mapped,id=host_data \
  -virtfs \                                      
  local,path=/home/ciro/bak/git/linux-kernel-module-cheat/out,mount_tag=host_out,security_model=mapped,id=host_out \
  -virtfs \                                                                      
  local,path=/home/ciro/bak/git/linux-kernel-module-cheat/rootfs_overlay,mount_tag=host_rootfs_overlay,security_model=mapped,id=host_rootfs_overlay \
  -serial \                                                                    
  mon:stdio \                                                                    
  -M \                                                                           
  pc \                                          
  -device \                                              
  edu \                              
  -append \                                                                                                                      
  'root=/dev/vda nopat console_msg_format=syslog nokaslr norandmaps panic=-1 printk.devkmsg=on printk.time=y console=ttyS0' \
  -nographic \                                                                
  -drive \                                                                                      
  file=/home/ciro/bak/git/linux-kernel-module-cheat/out/buildroot/build/default/x86_64/images/rootfs.ext2.qcow2,format=qcow2,if=virtio,snapshot \
; 

在Ubuntu18.04主机上使用以下图像进行测试:

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-10-08 23:40:15

完成主机设置后,重新启动计算机,而不只是登录和进入,然后ping才能工作。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/473448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档