ubuntu网络连接失败 + mobaxterm拖拽文件出错等问题解决方法
网络连接问题,表现在不能通过源下载以及更新
终端问题显示【通过 ip a 命令获得】
keji@ubuntu:~/Desktop$ 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: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 00:0c:29:f3:c7:e2 brd ff:ff:ff:ff:ff:ff
altname enp2s1
3: lxcbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 00:16:3e:00:00:00 brd ff:ff:ff:ff:ff:ff
inet 10.0.3.1/24 brd 10.0.3.255 scope global lxcbr0
valid_lft forever preferred_lft forever
解决方法:
sudo ip link set ens33 up
然后再次运行:
ip a
看看 ens33
是否获取到了 IP 地址。
如果没有获取到 IP,使用 DHCP 自动获取 IP
sudo dhclient ens33
然后再次执行:
ip a
看看是否获得了 IPv4 地址(例如 inet 192.168.1.100
)。
ASSISTANT
你运行的命令 ip a
(即 ip addr show
)是用来查看当前系统中所有网络接口的状态和配置信息。
我们来逐行分析你的输出内容,并解释每个部分的含义:
📋 输出解析
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
- lo 是本地回环接口(loopback),用于本机测试。
- 它的 IP 地址是
127.0.0.1
(IPv4)和::1
(IPv6),始终存在且默认开启。 - ✅ 正常,无需处理。
2: ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 00:0c:29:f3:c7:e2 brd ff:ff:ff:ff:ff:ffaltname enp2s1
- ens33 是你的主要以太网卡(物理网卡),对应的是虚拟机中的网络接口。
- 状态是:
state DOWN
→ 表示这个网卡目前 没有启用。 qdisc noop
→ 表示没有数据包排队规则,也说明没有激活。- 🔴 问题所在!网卡未启动,导致无法联网。
3: lxcbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 00:16:3e:00:00:00 brd ff:ff:ff:ff:ff:ffinet 10.0.3.1/24 brd 10.0.3.255 scope global lxcbr0valid_lft forever preferred_lft forever
- lxcbr0 是 LXC/LXD 容器使用的桥接网络接口。
- 它有一个私有 IP:
10.0.3.1
,但状态是state DOWN
,说明容器网络也没有启用。 - ✅ 这个不是影响你上网的主要原因。
🔍 总结关键点:
接口名 | 类型 | 状态 | 是否启用 | 备注 |
---|---|---|---|---|
lo | 回环接口 | UP | ✅ 已启用 | 用于本机测试 |
ens33 | 物理网卡(主网卡) | DOWN | ❌ 未启用 | ⚠️ 导致无法联网 |
lxcbr0 | 容器桥接网卡 | DOWN | ❌ 未启用 | 可能不影响你当前需求 |
✅ 如何解决“ens33 未启用”的问题?
方法一:使用 ip
命令临时启用网卡
sudo ip link set ens33 up
然后再次运行:
ip a
看看 ens33
是否获取到了 IP 地址。
如果没有获取到 IP,你可以尝试 DHCP 获取地址:
sudo dhclient ens33
✅ 如何让 ens33
获取 IP?
方法一:使用 DHCP 自动获取 IP(推荐)
sudo dhclient ens33
然后再次执行:
ip a
看看是否获得了 IPv4 地址(例如 inet 192.168.1.100
)。
方法二:重启网络服务(Ubuntu 使用 systemd
)
sudo systemctl restart NetworkManager
或者如果你用的是传统网络管理方式:
sudo systemctl restart networking
方法三:设置静态 IP(适用于固定网络环境)
编辑网络配置文件(以 Ubuntu 20.04 为例):
sudo nano /etc/netplan/*.yaml
添加类似以下内容(根据你的网络环境调整):
network:version: 2renderer: networkdethernets:ens33:dhcp4: yes
保存后应用:
sudo netplan apply
📌 总结一句话:
你现在的问题是:主网卡
ens33
没有被启用(DOWN),所以系统无法联网。你需要手动启用它或通过 Netplan 设置网络连接。
不能拖拽文件问题
解决方法: cd到local目录下,然后再chmod 777 src
ASSISTANT
你运行的两个命令是:
cd /usr/local
chmod 777 src
我们来逐条解释它们的含义。
🧭 一、cd /usr/local
✅ 含义:
cd
是 change directory 的缩写,意思是切换当前所在的目录。- 这条命令的作用是:进入
/usr/local
目录。
📁 /usr/local
是什么?
- 它是一个标准的 Linux 目录,通常用于存放 用户自己安装的软件(区别于系统自带的
/usr
)。 - 比如你手动编译安装 Redis、Nginx 等程序时,通常会安装到
/usr/local/
下。
🔐 二、chmod 777 src
✅ 含义:
chmod
是 change mode 的缩写,用来修改文件或目录的权限。777
表示给这个文件或目录设置所有用户(所有者、组、其他)都拥有 读、写、执行 的权限。src
是一个目录(通常是/usr/local/src
),常用于存放源代码(source code)。
所以这条命令的意思是:
将
/usr/local/src
目录的权限设置为所有人都可以读、写、执行。
📋 权限说明:777
到底是什么意思?
Linux 文件权限分为三类用户:
类型 | 含义 |
---|---|
第1个数字 | 所有者(owner)权限 |
第2个数字 | 所属组(group)权限 |
第3个数字 | 其他用户(others)权限 |
每个数字代表不同的权限组合:
数字 | 权限 | 符号表示 |
---|---|---|
4 | 读(r) | r– |
2 | 写(w) | -w- |
1 | 执行(x) | –x |
0 | 无权限 | — |
因此:
7 = 4 + 2 + 1 → 读 + 写 + 执行
所以:
chmod 777 src
等价于:
给 所有用户(owner、group、others) 对
src
目录拥有 完全权限(读、写、执行)
⚠️ 注意事项
虽然 chmod 777
很方便,但不推荐在生产环境中使用,因为存在安全风险:
风险 | 描述 |
---|---|
🕵️♂️ 任意用户可写 | 可能被恶意用户写入危险文件 |
💥 任意用户可执行 | 可能被执行恶意脚本 |
🛑 不符合最小权限原则 | 应该只给需要的人最小权限 |
✅ 推荐替代方案:
如果你只是想让当前用户对 /usr/local/src
有写权限,可以这样做:
sudo chown -R $USER:$USER /usr/local/src
这样你就拥有了所有权,不需要开放 777
权限也能操作目录。
📌 总结一句话:
你运行的命令是:
cd /usr/local
:进入/usr/local
目录;chmod 777 src
:将src
目录的权限设为所有人可读、写、执行。虽然这能解决权限问题,但建议尽量避免使用
chmod 777
,而应使用更精细的权限管理方式。