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 gdb gcc g++ libreadline-dev 

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

二、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:  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:  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:  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

桥接硬件网卡只需要一个网口就能实现内部互联及万维网互联,但在公司内网络需要验证才能上网,且WIFI网卡经常DHCP获取不了ip。所以暂时使用如下笨办法,如果有大神直到更好的方法,感谢能分享下。

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

ubuntu 22.04 server版 虚拟机环境搭建_第1张图片

ubuntu 22.04 server版 虚拟机环境搭建_第2张图片

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

ubuntu 22.04 server版 虚拟机环境搭建_第3张图片

ubuntu 22.04 server版 虚拟机环境搭建_第4张图片

 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

六、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上配置远端配置如下,根据交叉编译工具链路径而定。但不做如下配置也可跳转

ubuntu 22.04 server版 虚拟机环境搭建_第5张图片

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命令一路按回车,生成的文件路径日志里有显示,如
ubuntu 22.04 server版 虚拟机环境搭建_第6张图片

 ubuntu 22.04 server版 虚拟机环境搭建_第7张图片

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 

时区

东8区

timedatectl set-timezone Asia/Shanghai

date -R

你可能感兴趣的:(ubuntu,linux,服务器)