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

494 lines
13 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# **1. 虚拟机VMware的网络配置**
虚拟机的网络适配器的模式有两种:
- 桥接模式使得虚拟机跟物理机一样各自拥有独立的IP地址
- NAT模式使得虚拟机直接共享物理机的IP自己本身没有独立的IP地址
![](images/WEBRESOURCE20612257d0f44ea29703856c822950d0stickPicture.png)
虚拟机VMware的网卡配置
以上两种模式都可以联网区别就是虚拟机要不要一个独立的IP。对于桥接模式需要注意必须要仔细选择桥接的物理网卡否则会出现无法联网的情形。
![](images/WEBRESOURCE2c13345c757849d5b3a82210fcd089c7image.png)
虚拟网卡的桥接配置
## **1.1 桥接模式(推荐使用)**
所谓桥接,是指虚拟网卡通过物理机的某一个网络接口,直接连接到路由器去获取 
例如:
- 通过桥接到 WiFi 来联网。
- 通过桥接到 以太网 来连接开发板
如下图所示,在 
![](images/WEBRESOURCE8b51f56eeb0d4ef082b3ff4e3e984124image.png)
![](images/WEBRESOURCE2ae66303bd38437f983a465df3546099截图.png)
选择具体所需的桥接网卡
![](images/WEBRESOURCEd1d54f0ee77146aab54b2abc96a7431aimage.png)
**重置**
有时,如果网络参数经过多次配置导致无法再正确联网,可以通过点击下图中下方图表 
![](images/WEBRESOURCEbb1d9b96ef1b391490c612421995ab0bimage.png)
## **1.2 NAT模式**
如果虚拟机不需要单独的IP地址那么可以通过 
![](images/WEBRESOURCEf78ab8a91b4a4da49ff5b944228cb9b4截图.png)
选择具体所需的桥接网卡
此时的虚拟网卡 
## **1.3 仅主机模式**
有时限于外部网络的局限性在Ubuntu无需联外网而需与宿主机Windows通信时将 VMware 虚拟网卡配置为
![](images/WEBRESOURCE20309143f783406082fa8227ceb332c0截图.png)
仅主机模式
在此模式中,虚拟网卡 
![](images/WEBRESOURCEc1d22d25f7ac4510a6dedc0c74470887截图.png)
VMnet1虚拟路由
从上图可以看到,
![](images/WEBRESOURCE64396f9c2d5b447b853171ffb6f109e3截图.png)
VMnet1虚拟路由
有了各自的 
[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0)
# **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)](https://config.net.cn/tools/Dns.html)
## **2.1 经典Linux网络配置**
**Ubuntu24.04配置流程详见本教程第4节**
在 
1. 设置固定IP
```bash
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
```bash
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**
以上示例以虚拟网卡 
```bash
安装ifconfig
sudo apt install net-tools
```
![](images/WEBRESOURCE14dab69c4073430899e03a2f5e57c167截图.png)
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外网测试网络是否通畅
![](images/WEBRESOURCE8d9bc18de10e43f6b7100034df6b7547截图.png)
二、执行 
```
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地址 
![](images/WEBRESOURCE2eb363b22579436daf6c442f8d55bb99截图.png)
宿主机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的网络配置化中查看
![](images/WEBRESOURCEb0ee65d865824f49bc07757db8bf7bd7截图.png)
[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0)宿主机windows的DNS配置[](http://vm.yueqian.com.cn:8886/previewCourses.html?courseId=1331899420259463169&courseName=Linux%E5%9F%BA%E7%A1%80#0)
## **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
![](images/WEBRESOURCEc3da925d41ce4533a2ea08f06e79c028localFile.png)
 若系统没有启动SSH服务则需要安装ssh服务
sudo   apt  install   ssh -y
(2) 查看自己Ubuntu的IP
![](images/WEBRESOURCEf40b82d71f114aeba01e4f33e6783646localFile.png)
(3) 打开一个终端
使用vscode中终端的ssh指令来登录Ubuntu
ssh [user@ip](http://user@ip)
user :用户名
ip:ubuntu的IP
输入指令ssh  自己的用户名称@自己Ubuntu系统的IP地址
![](images/WEBRESOURCE330065e5264d47359c951ddbba7ef933localFile.png)
![](images/WEBRESOURCEdcccbf9b8b9041f4b0578904d4d8954e截图.png)
1. 文件传输
下载文件:
scp <用户名>@<ssh服务器地址>:<文件> <本地文件路径>
```shell
scp root@192.168.13.233:text /opt #从远程主机192.168.13.233的root用户下载text文件到本地的/opt目录中
```
文件夹:
scp -r <用户名>@<ssh服务器地址>:<文件> <本地文件路径>
```shell
scp -r root@192.168.13.233:text /opt #从远程主机192.168.13.233的root用户下载text文件夹到本地的/opt目录中
```
上传:
scp <本地文件名> <用户名>@<ssh服务器地址>:<上传保存路径>
```shell
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-->网络共享中心
![](images/WEBRESOURCE3335ce1a4ffb4bc3946161785318809dimage.png)
![](images/WEBRESOURCEf78b324209b34c8f982b7b3067bd9f5dimage.png)
**注意离开教室后使用有线网络是要将IPv4设置为自动获取方可上网**
UbuntuIP地址固定。虚拟机的网络设置要修改为桥接
设置-->网络-->设置-->IPv4-->手动
![](images/WEBRESOURCE5195ae1087314f47af67c62f9d954ac5image.png)
DNS推荐使用192.168.2.1
![](images/WEBRESOURCEece907cd362d4acaaca0307d0628fb21image.png)
重启网络链接不上外网则将DNS改为192.168.2.1