ubuntu 22.04 server版 虚拟机环境搭建

一、系统安装

        常规步骤

kernel编译环境(待补充)

sudo apt-get install -y libssl-dev libelf-dev openssl flex bison  libncurses-dev

个人常用环境:

软件:

sudo apt-get install -y libssl-dev openssl flex bison  libncurses-dev net-tools samba samba-common ssh make vim bear build-essential gdb gcc g++ libreadline-dev pciutils net-tools

源修改:

/etc/apt/sources.list

更新源:

sudo apt-get update

x86_64源(中科大源):

deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

aarch64源( 阿里源):

deb http://mirrors.aliyun.com/ubuntu-ports/ xenial main
deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial main
 
deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main
deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates main
 
deb http://mirrors.aliyun.com/ubuntu-ports/ xenial universe
deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial universe
deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates universe
deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-updates universe
 
deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-security main
deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu-ports/ xenial-security universe
deb-src http://mirrors.aliyun.com/ubuntu-ports/ xenial-security universe

aarch64源(从coolpi cm5中拷贝出):

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://ports.ubuntu.com/ubuntu-ports/ jammy universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy universe
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://ports.ubuntu.com/ubuntu-ports/ jammy multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-updates multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-backports main restricted universe multiverse

deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security universe
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security universe
deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security multiverse

其他源

清华源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

 阿里源

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

二、samba安装

        sudo apt-get install samba samba-common

嵌入式板子用如下配置/etc/samba/smb.conf

[cxh]
    comment = Shared Folder with username and password 
    path = /home/cxh/
    public = yes
    writable = yes
    valid users = cxh    #配置的Samba访问账号
    create mask = 777 
    directory mask = 777 
#    force user = nobody 
#    force group = nogroup 
    available = yes 
    browseable = yes

[root]
    comment = Shared Folder with username and password 
    path = /
    public = yes
    writable = yes
    valid users = root    #配置的Samba访问账号
    create mask = 777 
    directory mask = 777 
#    force user = nobody 
#    force group = nogroup 
    available = yes 
    browseable = yes

ubuntu 22.04 server可用如下配置/etc/samba/smb.conf

[global]
	workgroup = SAMBA
	security = user

	passdb backend = tdbsam

	printing = cups
	printcap name = cups
	load printers = yes
	cups options = raw

[homes]
	comment = Home Directories
	valid users = %S, %D%w%S
	browseable = No
	read only = No
	inherit acls = Yes

[printers]
	comment = All Printers
	path = /var/tmp
	printable = Yes
	create mask = 0600
	browseable = No

[print$]
	comment = Printer Drivers
	path = /var/lib/samba/drivers
	write list = @printadmin root
	force group = @printadmin
	create mask = 0664
	directory mask = 0775

[home]
	comment = User Directory
	path = /home/%U
	read only = No

重启samba

service smbd restart

添加用户,cxh为用户名,然后输入密码

cxh@cxhserver:~$ sudo smbpasswd -a cxh
New SMB password:
Retype new SMB password:
Added user cxh.

三、mirror

        https://mirrors.ustc.edu.cn/ubuntu

四、以太网

Ubuntu

不同版本的Ubuntu网络配置位置不同。

Ubuntu22.04 Server版修改的方法为修改/etc/netplan/00-installer-config.yaml文件

修改配置文件

/etc/netplan/00-installer-config.yaml文件内容修改如下:

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: no
      addresses:
        - 192.168.56.103/24
      routes:
        - to: default
          via: 192.168.56.1
  version: 2

应用配置文件

sudo netplan apply

重启网络服务

服务器版:sudo systemctl restart system-networkd

桌面版:sudo systemctl restart network-manager

验证IP地址

ip a

cxh@cxhserver:~$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
    link/ether 08:00:27:48:96:d4 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::a00:27ff:fe48:96d4/64 scope link
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 08:00:27:c4:8f:d7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.103/24 brd 192.168.56.255 scope global enp0s8
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fec4:8fd7/64 scope link
       valid_lft forever preferred_lft forever

VirtualBox

各种网络特点:

1.桥接,虚拟机和物理机一样暴露到网络,但在公司内网络需要验证才能上网,且WIFI网卡经常DHCP获取不了ip;

2.NAT,虚拟机可以访问主机,可以上外网,但主机无法访问虚拟机。可通过配置端口转发实现主机访问虚拟机,具体方法放在后面。

3. Host-Only,虚拟机只能和主机通信,无法上外网。

虚拟机与主机相互访问方法一(双网卡)

双个网卡,一个用来上外网,一个用来与主机内部互联,但同时打开时无法上外网,所以上外网时需要关闭内部互联的网口,关闭方法如图。

 Host-Only是只能与宿主机互联的网口,如果不希望ip变化,可以关闭DHCP后,配置Ubuntu为静态IP

虚拟机与主机相互访问方法二(NAT+端口转发) 

步骤

以上步骤只是配置的主机2222端口转发虚拟机22端口,即ssh使用的端口,配置后ssh访问127.0.0.1端口用2222便能访问到虚拟机的ssh了,还可以直接使用sftp访问虚拟机文件。

如果要转发其他端口用于其他程序,如samba端口等,需要转发更多的其他端口。

当然主机端口和转发的虚拟机端口可以相同,如127.0.0.1:22虚拟机ip:22

 VirtualBox共享方法

挂载命令:

sudo mount -t vboxsf share /mnt

将被挂载到/mnt目录

VMware

主机通过hostname来连接Ubuntu

使用DHCP方式时,主机可ping通VMware中的Ubuntu,但未能ping通VirtualBox中的Ubuntu。个人对以太网理解不深,未找到原因。

五、Ubuntu Server22.4网络配置

修改配置文件:vi /etc/netplan/00-installer-config.yaml

应用配置文件:sudo netplan apply

重启网络服务:sudo systemctl restart system-networkd 或

sudo systemctl restart network-manager(桌面版)

# This is the network config written by 'subiquity'
network:
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: no
      addresses:
        - 192.168.56.103/24
      routes:
        - to: default
          via: 192.168.56.1
  version: 2

CentOS 网络

修改/etc/sysconfig/network-scripts/vi ifcfg-xxx的ONBOOT为yes,然后重启网络 service network restart

 

六、make gcc

sudo apt install make gcc flex bison libncurses5-dev libssl-dev

安装其他版本的gcc

sudo apt install -y gcc-11 g++-11

切换默认gcc版本

如将gcc11添加软链。如果–install指令里的数越大,则优先级越高。

# sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 20 --slave /usr/bin/g++ g++ /usr/bin/g++-11
update-alternatives: using /usr/bin/gcc-11 to provide /usr/bin/gcc (gcc) in auto mode
# sudo update-alternatives --config gcc
There is 1 choice for the alternative gcc (providing /usr/bin/gcc).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/gcc-11   20        auto mode
  1            /usr/bin/gcc-11   20        manual mode

删除软链接:

sudo update-alternatives --remove gcc /usr/bin/gcc-11

七、vscode

1、远程代码跳转     

Linux安装如下

ubuntu安装bear

sudo apt-get install bear

centos安装bear,参考文章: Centos7 打造 C/C++ 开发环境_centos7 c语言开发环境_thewangcj的博客-CSDN博客

最新版本的 Bear 要求 C++17,而且还有类似 gRPC 的依赖,装起来太麻烦了,所以这里选择了老一点的 2.4.4 编译安装

pip install lit # Bear 依赖
git clone https://github.com/rizsotto/Bear.git
cd Bear
git checkout 2.4.4
cd ..
mkdir build
cd build
cmake ../Bear
make all
make check
sudo make install


       下载文件百度网盘 请输入提取码,提取码 dq2m。解压 unzip clangd-linux-13.0.0.zip,将bin和lib下的文件拷贝到默认环境路径/bin /lib。 

如果为交叉编译,需在要查看的代码的根目录创建.clangd文件,并加入如下内容:

CompileFlags:
  Add: --target=aarch64-none-linux-gnu
  Remove: -mabi=lp64

其中aarch64-none-linux-gnu为交叉编译工具链命令前缀,不同编译工具链不同。

在vscode上配置远端配置如下,根据交叉编译工具链路径而定。但不做如下配置也可跳转

vscode安装clangd

Linux下编译源码

命令为bear make或者bear -- make,根据所用系统而定

2、SSH

vscode安装ssh组件

配置免密登录

vscode比较傻逼,不像xshell、moba那样可记住密码,需单独处理免密过程。

在wondows中用ssh-keygen命令生成id_rsa.pub(全程回车),再将id_rsa.pub文件拷贝到待登录的Linux对应用户目录的.ssh目录下,并更名为authorized_keys。正常清空下一次登录需要输入密码,但第二次就不需要输入了。
ssh-keygen命令一路按回车,生成的文件路径日志里有显示,如

 

ssh root 无法登录问题

编辑远程登录root用户的配置文件

vim /etc/ssh/sshd_config

将PermitRootLogin改为:yes

Include /etc/ssh/sshd_config.d/*.conf

#Port 22
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

修改root密码,开启root用户

sudo passwd root 

重起ssh服务

service ssh restart 

开机自动启动ssh

sudo systemctl enable ssh 

时区

东8区

timedatectl set-timezone Asia/Shanghai

date -R

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值