Files
BlogPosts/YueQian/MarkdownNotes/CQ2605/01Linux基础/05_网络配置.md
2026-01-22 20:10:59 +08:00

13 KiB
Raw Blame History

1. 虚拟机VMware的网络配置

虚拟机的网络适配器的模式有两种:

  • 桥接模式使得虚拟机跟物理机一样各自拥有独立的IP地址

  • NAT模式使得虚拟机直接共享物理机的IP自己本身没有独立的IP地址

虚拟机VMware的网卡配置

以上两种模式都可以联网区别就是虚拟机要不要一个独立的IP。对于桥接模式需要注意必须要仔细选择桥接的物理网卡否则会出现无法联网的情形。

虚拟网卡的桥接配置

1.1 桥接模式(推荐使用)

所谓桥接,是指虚拟网卡通过物理机的某一个网络接口,直接连接到路由器去获取 

例如:

  • 通过桥接到 WiFi 来联网。

  • 通过桥接到 以太网 来连接开发板

如下图所示,在 

选择具体所需的桥接网卡

重置

有时,如果网络参数经过多次配置导致无法再正确联网,可以通过点击下图中下方图表 

1.2 NAT模式

如果虚拟机不需要单独的IP地址那么可以通过 

选择具体所需的桥接网卡

此时的虚拟网卡 

1.3 仅主机模式

有时限于外部网络的局限性在Ubuntu无需联外网而需与宿主机Windows通信时将 VMware 虚拟网卡配置为

仅主机模式

在此模式中,虚拟网卡 

VMnet1虚拟路由

从上图可以看到,

VMnet1虚拟路由

有了各自的 

2. Ubuntu网络配置

终端命令配置

给虚拟机 VMware 选择了某一种联网模式后一般还需要给客户机即Ubuntu主机配置好如下网络参数才能正常联网

  • 网卡名称

eth0 ens33 ens32

  • IP地址

在当前路由下所获得的主机IPIPv4 IPv6//192.168.2.x

  • 子网掩码

A类IP255.0.0.0 B类IP255.255.0.0 C类IP255.255.255.0 //现使用

  • 网关地址

当前路由的地址192.168.2.1

  • DNS域名解析服务

国内/国外公共DNS服务器地址(Ipv4/Ipv6)大全 (config.net.cn)

2.1 经典Linux网络配置

Ubuntu24.04配置流程详见本教程第4节

在 

  1. 设置固定IP
gec@ubuntu:~$ cat /etc/network/interfaces
  # interfaces(5) file used by ifup(8) and ifdown(8)
  auto lo
  iface lo inet loopback

  auto ens33
  iface ens33 inet static
  address 169.254.54.200 # IP地址根据具体的网络环境来写
  netmask 255.255.0.0    # 子网掩码
  gateway 169.254.54.1   # 网关地址
gec@ubuntu:~$
gec@ubuntu:~$
  1. 设置动态IP自动获取IP
gec@ubuntu:~$ cat /etc/network/interfaces
  # interfaces(5) file used by ifup(8) and ifdown(8)
  auto lo
  iface lo inet loopback

  auto ens33
  iface ens33 inet dhcp
gec@ubuntu:~$
gec@ubuntu:~$

注意1

一般而言只有在虚拟机设定为桥接模式下才需要配置Ubuntu的网络参数信息如果虚拟机设定的是NAT模式那么一般直接重启网络服务让其自动获取网络参数即可。

注意2

以上示例以虚拟网卡 

安装ifconfig
sudo  apt  install  net-tools

ifconfig命令查看当前活跃的网卡名称

重启网络服务

# Ubuntu-14.04以前的版本:
gec@ubuntu:~$ sudo /etc/init.d/networking force-reload
gec@ubuntu:~$ sudo /etc/init.d/networking restart

# Ubuntu-14.04以后的版本:
gec@ubuntu:~$ sudo service networking force-reload
gec@ubuntu:~$ sudo service networking restart

注意

在更新的Ubuntu-17.10以后的版本中网络配置用的是 netplan 命令而不是上述命令。

测试网络

有两个命令可以测试网络是否连通:

一、执行 

gec@ubuntu:~$ ping www.qq.com

ping外网测试网络是否通畅

二、执行 

gec@ubuntu:~$ host www.qq.com
www.qq.com is an alias for public-v6.sparta.mig.tencent-cloud.net.
public-v6.sparta.mig.tencent-cloud.net has address 14.18.175.154
public-v6.sparta.mig.tencent-cloud.net has address 113.96.232.215
public-v6.sparta.mig.tencent-cloud.net has IPv6 address 240e:ff:f101:10::15f
gec@ubuntu:~$ 

  • 注意:

  • host成功返回域名的IP地址代表当前网络是通的。

  • host成功返回域名的IP地址代表当前系统的DNS解析是正常的。

DNS配置

DNSDomain Name Server即域名服务器访问网址时必须通过 DNS 解析为对应的IP地址才能正常访问网站。在以上测试命令中如果ping成功但host不成功代表当前电脑的DNS配置有问题。

**配置 **

gec@ubuntu:~$ sudo cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver x.x.x.x
options edns0 trust-ad
gec@ubuntu:~$ 

具体域名服务器的IP地址 

宿主机windows的DNS配置

**重启 **

gec@ubuntu:~$ sudo service systemd-resolved restart

查看、启停网络接口

使用命令 

gec@ubuntu:~$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.103  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe80:949c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:80:94:9c  txqueuelen 1000  (Ethernet)
        RX packets 2020  bytes 266623 (266.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 8299  bytes 548748 (548.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 37191  bytes 2722682 (2.7 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 37191  bytes 2722682 (2.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

注意

  • lo是Linux系统的本地回环设备此设备需如上所示已启动方可连网。

  • 若某些网卡由于某些原因未启动,则可使用如下命令来解决:

  • 使用 ifconfig -a 来查看所有的网络接口

  • 使用 ifconfig 网卡名称 up 来启动指定的网卡。

启停指定的网络接口(网卡)

gec@ubuntu:~$ sudo ifconfig ens33 up   ==> 启用ens33
gec@ubuntu:~$ sudo ifconfig ens33 down ==> 停用ens33

在某些系统中,以上命令也可以用如下命令替代:

gec@ubuntu:~$ sudo ifup ens33          ==> 启用ens33
gec@ubuntu:~$ sudo ifdown ens33        ==> 停用ens33

临时指定的网口IP地址

与编辑 

gec@ubuntu:~$ sudo ifconfig ens33 192.168.1.103

指定默认网关

在某些情况下Ubuntu无法正确找到网关从而导致无法连网可以手动配置网关地址

gec@ubuntu:~$ sudo route add default gw 192.168.1.1

网关地址根据各个局域网的配置不同而有所改变不能照抄上述地址网关地址一般而言就是当前局域网的路由器的地址可以从宿主机windows的网络配置化中查看

宿主机windows的DNS配置

2.2 Netplan网络配置

在17.10之前的老版本Ubuntu中配置网络可能有多种手段可以直接使用systemd或者配置 

通过统一对 

自动获取IP

以下的配置信息展现了如何使用 

gec@ubuntu:~$ cat /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  ethernets:
      ens33:
          dhcp4: yes
          dhcp6: yes
gec@ubuntu:~$ 
gec@ubuntu:~$ 

说明:

  • renderer指定yaml文件针对配置的网络工具

  • ethernets配置以太网

  • ens33以太网口名称

  • dhcp4自动获取IPv4的网络地址

  • dhcp6自动获取IPv6的网络地址

注意:

  • 冒号后面必须有空格

  • 缩进的空格数必须一致

设定静态IP

gec@ubuntu:~$ cat /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
  ethernets:
      ens33:
          dhcp4: no
          addresses: [192.168.100.100/24]
          gateway4: 192.168.100.1
          nameservers:
              addresses: [202.96.134.133, 8.8.8.8]
gec@ubuntu:~$ 
gec@ubuntu:~$ 

说明:

  • [192.168.100.100/24] 中的24代表设定的IP地址的前24比特位为子网掩码也就是255.255.255.0

  • nameservers 代表 DNS 服务器

使能netplan

配置完 

gec@ubuntu:$ sudo netplan apply

3.ssh网络协议使用

SSHSecure Shell安全外壳协议是一种用于加密远程登录和网络服务的网络协议主要作用是在不安全的网络环境中为计算机之间的通信提供安全的加密通道避免数据传输被窃听或篡改。

在Ubuntu安装SSH服务

  1. 远程登录Ubuntu系统终端

ssh协议进行登录

(1) 配置Ubuntu支持ssh服务

① 检查系统是否启动ssh服务ps -e | grep ssh

② 若系统没有启动SSH服务则需要安装ssh服务

sudo   apt  install   ssh -y

(2) 查看自己Ubuntu的IP

(3) 打开一个终端

使用vscode中终端的ssh指令来登录Ubuntu

ssh user@ip

user :用户名

ip:ubuntu的IP

输入指令ssh  自己的用户名称@自己Ubuntu系统的IP地址

  1. 文件传输

下载文件:

scp <用户名>@<ssh服务器地址>:<文件> <本地文件路径>

scp  root@192.168.13.233:text  /opt   #从远程主机192.168.13.233的root用户下载text文件到本地的/opt目录中

文件夹:

scp -r <用户名>@<ssh服务器地址>:<文件> <本地文件路径>

scp -r root@192.168.13.233:text  /opt   #从远程主机192.168.13.233的root用户下载text文件夹到本地的/opt目录中

上传:

scp <本地文件名> <用户名>@<ssh服务器地址>:<上传保存路径>

scp text root@192.168.13.233:/opt   #将本地的text文件上传到远程主机192.168.13.233的root用户的/opt目录中

例子:

scp ts root@192.168.13.233:/ //将本地文件ts传输到目标192.168.13.233)的/ 目录下

4.图形化界面IP地址修改推荐

主机WindowsIP固定

打开控制面板-->网络和Internet-->网络共享中心

注意离开教室后使用有线网络是要将IPv4设置为自动获取方可上网

UbuntuIP地址固定。虚拟机的网络设置要修改为桥接

设置-->网络-->设置-->IPv4-->手动

DNS推荐使用192.168.2.1

重启网络链接不上外网则将DNS改为192.168.2.1