首页 > 系统相关 >ubuntu使用-ubuntu23.10中使QEMU的虚拟机与外部网络通信

ubuntu使用-ubuntu23.10中使QEMU的虚拟机与外部网络通信

时间:2024-03-31 20:00:39浏览次数:34  
标签:do 虚拟机 brctl ssh ubuntu device ubuntu23.10 net

ubuntu使用-ubuntu23.10中使QEMU的虚拟机与外部网络通信

ubuntuqemu银河麒麟

参考了文档/网络/NATqemu aarch64虚拟机创建好后,使用NAT连接网络两个网页。

一、概述

要配置NAT网络,首先创建一个脚本/etc/qemu-ifup,这个脚本的作用是创建一个与任何物理端口都无关的网桥。给这个网桥配置一个静态IP地址,作为虚拟网络的网关。使用iptables创建一些规则来伪装从网桥到主机网络的流量。最后,在该桥接接口上运行dnsmasq来充当虚拟网络的DHCP和DNS服务器。

二、安装软件工具

sudo apt install bridge-utils iptables dnsmasq

三、编辑脚本

文档/网络/NAT中复制脚本内容,并保存为/etc/qemu-ifup。脚本内容如下:

#!/bin/sh
#
# Copyright IBM, Corp. 2010  
#
# Authors:
#  Anthony Liguori <aliguori@us.ibm.com>
#
# This work is licensed under the terms of the GNU GPL, version 2.  See
# the COPYING file in the top-level directory.

# Set to the name of your bridge
BRIDGE=br0

# Network information
NETWORK=192.168.53.0
NETMASK=255.255.255.0
GATEWAY=192.168.53.1
DHCPRANGE=192.168.53.2,192.168.53.254

# Optionally parameters to enable PXE support
TFTPROOT=
BOOTP=

do_brctl() {
    brctl "$@"
}

do_ifconfig() {
    ifconfig "$@"
}

do_dd() {
    dd "$@"
}

do_iptables_restore() {
    iptables-restore "$@"
}

do_dnsmasq() {
    dnsmasq "$@"
}

check_bridge() {
    if do_brctl show | grep "^$1" > /dev/null 2> /dev/null; then
	return 1
    else
	return 0
    fi
}

create_bridge() {
    do_brctl addbr "$1"
    do_brctl stp "$1" off
    do_brctl setfd "$1" 0
    do_ifconfig "$1" "$GATEWAY" netmask "$NETMASK" up
}

enable_ip_forward() {
    echo 1 | do_dd of=/proc/sys/net/ipv4/ip_forward > /dev/null
}

add_filter_rules() {
do_iptables_restore <<EOF
# Generated by iptables-save v1.3.6 on Fri Aug 24 15:20:25 2007
*nat
:PREROUTING ACCEPT [61:9671]
:POSTROUTING ACCEPT [121:7499]
:OUTPUT ACCEPT [132:8691]
-A POSTROUTING -s $NETWORK/$NETMASK -j MASQUERADE 
COMMIT
# Completed on Fri Aug 24 15:20:25 2007
# Generated by iptables-save v1.3.6 on Fri Aug 24 15:20:25 2007
*filter
:INPUT ACCEPT [1453:976046]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1605:194911]
-A INPUT -i $BRIDGE -p tcp -m tcp --dport 67 -j ACCEPT 
-A INPUT -i $BRIDGE -p udp -m udp --dport 67 -j ACCEPT 
-A INPUT -i $BRIDGE -p tcp -m tcp --dport 53 -j ACCEPT 
-A INPUT -i $BRIDGE -p udp -m udp --dport 53 -j ACCEPT 
-A FORWARD -i $1 -o $1 -j ACCEPT 
-A FORWARD -s $NETWORK/$NETMASK -i $BRIDGE -j ACCEPT 
-A FORWARD -d $NETWORK/$NETMASK -o $BRIDGE -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -o $BRIDGE -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -i $BRIDGE -j REJECT --reject-with icmp-port-unreachable 
COMMIT
# Completed on Fri Aug 24 15:20:25 2007
EOF
}

start_dnsmasq() {
    do_dnsmasq \
	--strict-order \
	--except-interface=lo \
	--interface=$BRIDGE \
	--listen-address=$GATEWAY \
	--bind-interfaces \
	--dhcp-range=$DHCPRANGE \
	--conf-file="" \
	--pid-file=/var/run/qemu-dnsmasq-$BRIDGE.pid \
	--dhcp-leasefile=/var/run/qemu-dnsmasq-$BRIDGE.leases \
	--dhcp-no-override \
	${TFTPROOT:+"--enable-tftp"} \
	${TFTPROOT:+"--tftp-root=$TFTPROOT"} \
	${BOOTP:+"--dhcp-boot=$BOOTP"}
}

setup_bridge_nat() {
    if check_bridge "$1" ; then
	create_bridge "$1"
	enable_ip_forward
	add_filter_rules "$1"
	start_dnsmasq "$1"
    fi
}

setup_bridge_vlan() {
    if check_bridge "$1" ; then
	create_bridge "$1"
	start_dnsmasq "$1"
    fi
}

setup_bridge_nat "$BRIDGE"

if test "$1" ; then
    do_ifconfig "$1" 0.0.0.0 up
    do_brctl addif "$BRIDGE" "$1"
fi

四、增加脚本运行权限

chomd 755 /etc/qemu-ifup

五、在虚拟机中登录百度

在虚拟机的存放位置,使用如下命令启动虚拟机。重点是增加了-net tap -net nic这两选项。

sudo qemu-system-aarch64 -m 4096 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios QEMU_EFI.fd -net nic,model=pcnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -device virtio-scsi-device -drive if=none,file=rootfs.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -net tap -net nic

启动后用网页登录百度,没有问题。
enter description here

六、在主机中ping虚拟机

在主机上修改上面所创建的脚本,把其中关于icmp的两行注释掉。然后重启虚拟机。就可以ping通了。
enter description here

七、在主机中使用ssh登录虚拟机

在虚拟机中使用如下命令安装并设置ssh服务。

sudo apt install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh

在主机上使用ssh命令远程登录,这里,银河麒麟的安全管家会提示有人用远程登录,问是否要放行,选择放行。就可以登录了。
enter description here
结束。

标签:do,虚拟机,brctl,ssh,ubuntu,device,ubuntu23.10,net
From: https://www.cnblogs.com/nangongergou/p/18107173

相关文章

  • 操作系统引导和虚拟机
    操作系统引导安装操作系统后:C盘(是这个磁盘的活动分区,安装了操作系统)主存主存由RAM和ROM组成,ROM(BIOS)包含:ROM引导程序,即自举程序断电后,RAM会消失,但是ROM不会整个开机过程:CPU通电,找到ROM执行引导程序,然后引导磁盘里的主引导记录(读入RAM),判断C盘位置,然后把C盘的引导记录......
  • ubuntu使用-ubuntu23.10中创建arm架构的银河麒麟操作系统v10
    ubuntu使用-ubuntu23.10中创建arm架构的银河麒麟操作系统v10ubuntuqemu银河麒麟arm安装qemu之后,从应用中或者使用virt-manager命令打开虚拟系统管理器。创建虚拟机,架构选择aarch64,机器类型不知道选什么,暂选的是virt,后面有问题的话再说。参考国产银河麒麟操作系统下载地址收集--......
  • ubuntu20.04 安装 cuda12.1
    1、thisisimportance.sudoapt-getinstalllibc-devlibc6-devsudoapt-getinstalllibc-devlibc6-devgccg++makesudoapt-getinstallinitramfs-tools   2sudovi/etc/modprobe.d/blacklist.conf blacklistnouveauoptionsnouveaumodeset=0 sudo......
  • 文件系统 FTP Ubuntu 安装入门介绍
    FTP环境:Ubuntu14.04blogzh_CNubuntu14.04Install全新安装:apt-getinstallvsftpd重新安装:apt-get--reinstallinstallvsftpd卸载并清除配置文件:apt-get--purgeremovevsftpdStart&Restart$servicevsftpdstart$servicevsftpdrestart注意......
  • 安装并使用 Ubuntu Server 的一些注意事项
    最近,刚安装UbuntuServer22.04.4LTS版本,遇到些问题,记录其解决方案以备忘。 1)断网安装UbuntuServer系统采用USB启动盘,安装UbuntuServer时,一定要断网,因为连接互联网,安装UbuntuServer系统时,会自动下载更新,等待时间很可能会比较长,而断网会秒级安装,之后根据提示,重启......
  • Java的心脏:深入解析Java虚拟机、进程与线程的精妙互动
    一、定义进程(Process)和线程(Thread)是操作系统中非常基础且重要的概念,它们对于理解程序的执行、资源分配和并发编程至关重要。我将从操作系统(OS)和Java编程语言的角度来详细解释这两个概念。从操作系统的角度进程:定义:进程是操作系统进行资源分配和调度的基本单位。它是一......
  • ubuntu编译与安装 OpenSSL-1.0.0
    apt-getpurgeopensslrm-rf/etc/ssl#删除配置文件编译与安装OpenSSLprefix是安装目录,openssldir是配置文件目录,另外建议安装两次,shared作用是生成动态连接库。(需要同时指定prefix与openssldir,否则可能会因为找不到文件而报错)wgetftp://ftp.openssl.org/source/op......
  • [linux] ubuntu 下安装qtcreate遇到“无法加载Qt平台插件‘xcb’问题”解决方案
    [linux]ubuntu下安装qtcreate遇到“无法加载Qt平台插件‘xcb’问题”解决方案以下是遇到的三种报错情况From6.5.0,xcb-cursor0orlibxcb-cursor0isneededtoloadtheQtxcbplatformplugin.CouldnotloadtheQtplatformplugin“xcb”in“”eventhough......
  • vmware(大数据)虚拟机网络配置(学不会打死我)
    什么是大数据?大数据是指规模庞大、复杂度高、变化速度快的数据集合,通常由传统数据库管理工具难以处理。这些数据通常具有三个主要特征:3V,即体量大(Volume)、多样化(Variety)、处理速度快(Velocity)。1.体量大(Volume):大数据的特点之一是数据量巨大,远远超过了传统数据库处理的能力范围......
  • const7虚拟机jupyternotebook打开页面是空白
    jupyterNoteBook网页空白各种解决方法(实在不行用pyCharm替代Chrome)_为什么jupyternotebook打开是空白页面-CSDN博客找了好久解决方案,安装好之后是可以打开home页面的但是没有任何显示,只有空白,改了很多配置文件但都是以失败告终,终于在这个博主这里解决了,采取的方法就是卸载jup......