Files
AItst/AIMonitor/centos_network_solutions.md
2026-02-08 14:33:45 +08:00

526 lines
9.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

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.

# CentOS昇腾服务器网络解决方案
## 📋 问题概述
昇腾服务器部署过程中遇到无网络连接的情况,本文档提供多种网络解决方案,包括离线安装、网络配置和故障排除方法。
## 🔧 网络问题诊断
### 1. 检查网络状态
```bash
# 检查网络接口
ip addr show
# 或使用旧命令
ifconfig -a
# 检查路由表
ip route show
# 或使用旧命令
route -n
# 检查DNS解析
nslookup baidu.com
# 或使用
dig baidu.com
# 检查防火墙状态
systemctl status firewalld
iptables -L
# 检查网络管理服务
systemctl status NetworkManager
systemctl status network
```
### 2. 常见网络问题
#### 问题一:网络接口未启用
```bash
# 启用网络接口
sudo ip link set eth0 up
# 或使用旧命令
sudo ifup eth0
# 检查接口状态
ip link show eth0
```
#### 问题二DHCP未获取到IP
```bash
# 手动请求DHCP
sudo dhclient eth0
# 检查获取到的IP
ip addr show eth0
```
#### 问题三静态IP配置错误
```bash
# 查看当前配置
cat /etc/sysconfig/network-scripts/ifcfg-eth0
# 临时配置IP
sudo ip addr add 192.168.1.100/24 dev eth0
sudo ip route add default via 192.168.1.1
```
## 🌐 网络配置解决方案
### 方案一:配置有线网络
#### 1. 使用NetworkManager推荐
```bash
# 检查NetworkManager状态
systemctl status NetworkManager
# 启动NetworkManager
sudo systemctl enable NetworkManager
sudo systemctl start NetworkManager
# 查看可用连接
nmcli connection show
# 创建新的有线连接
sudo nmcli connection add type ethernet ifname eth0 con-name "Wired-Connection"
sudo nmcli connection modify "Wired-Connection" ipv4.method auto
sudo nmcli connection up "Wired-Connection"
# 或配置静态IP
sudo nmcli connection modify "Wired-Connection" ipv4.method manual \
ipv4.addresses 192.168.1.100/24 \
ipv4.gateway 192.168.1.1 \
ipv4.dns "8.8.8.8,114.114.114.114"
```
#### 2. 传统网络配置文件方式
```bash
# 编辑网络配置文件
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
# 配置内容:
BOOTPROTO=static # 或 dhcp
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=114.114.114.114
# 重启网络服务
sudo systemctl restart network
# 或
sudo service network restart
```
### 方案二:配置无线网络
#### 1. 使用nmcli配置WiFi
```bash
# 扫描WiFi网络
nmcli dev wifi list
# 连接到WiFi
sudo nmcli dev wifi connect "WiFi名称" password "密码"
# 设置自动连接
sudo nmcli connection modify "WiFi名称" connection.autoconnect yes
```
#### 2. 配置文件方式
```bash
# 创建WiFi配置文件
sudo vi /etc/sysconfig/network-scripts/ifcfg-wlan0
# 配置内容:
ESSID="WiFi名称"
MODE=Managed
KEY_MGMT=WPA-PSK
TYPE=Wireless
BOOTPROTO=dhcp
DEFROUTE=yes
ONBOOT=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
# 添加密码到配置文件
wpa_passphrase "WiFi名称" "密码" >> /etc/wpa_supplicant/wpa_supplicant.conf
# 启用无线接口
sudo ifup wlan0
```
### 方案三:手机热点共享
#### 1. USB网络共享
```bash
# 插入手机USB数据线
# 启用USB网络共享
# 检查新网络接口
ip addr show
# 通常会出现usb0或rndis0接口
# 配置USB网络
sudo dhclient usb0
# 或
sudo dhclient rndis0
# 验证网络连接
ping 8.8.8.8
```
#### 2. 蓝牙网络共享
```bash
# 启用蓝牙服务
sudo systemctl enable bluetooth
sudo systemctl start bluetooth
# 配置蓝牙网络
sudo hciconfig hci0 up
# 使用蓝牙管理工具配置网络共享
```
## 📦 离线安装解决方案
### 方案一:准备离线安装包
#### 1. 在有网络机器上下载依赖包
```bash
# 创建下载目录
mkdir aimonitor_offline
cd aimonitor_offline
# 下载Python包
pip download -r /path/to/AIMonitor/requirements.txt \
-d packages/ \
--platform linux_x86_64 \
--only-binary=:all:
# 下载系统依赖包Ubuntu示例
apt download python3-dev python3-pip gcc g++ make cmake
apt download libglib2.0-0 libsm6 libxext6 libxrender-dev
# 下载昇腾驱动和工具包
wget https://ascend-repo.huawei.com/Atlas%20200I%20DK/Ascend-hdk-23.0.0-run.tar
wget https://ascend-repo.huawei.com/CANN%205.0.2/Ascend-cann-toolkit-5.0.2.run
```
#### 2. 创建离线安装脚本
```bash
#!/bin/bash
# offline_install.sh
echo "=== AI监控系统离线安装 ==="
# 安装系统依赖
echo "安装系统依赖..."
sudo rpm -ivh *.rpm 2>/dev/null || sudo dpkg -i *.deb 2>/dev/null
# 安装Python包
echo "安装Python依赖..."
pip install packages/*.whl --no-index --find-links=packages/
# 安装昇腾驱动
echo "安装昇腾驱动..."
sudo bash Ascend-hdk-*.run --silent
# 安装CANN工具包
echo "安装CANN工具包..."
sudo bash Ascend-cann-toolkit-*.run --silent
echo "安装完成!"
```
### 方案二:使用本地源
#### 1. 创建本地YUM源
```bash
# 挂载CentOS ISO
sudo mount /dev/cdrom /mnt
# 创建本地源配置
sudo vi /etc/yum.repos.d/local.repo
# 配置内容:
[local]
name=Local Repository
baseurl=file:///mnt
enabled=1
gpgcheck=0
# 更新YUM缓存
sudo yum clean all
sudo yum makecache
```
#### 2. 创建本地APT源
```bash
# 创建本地源目录
sudo mkdir -p /opt/local-repo
# 复制deb包到本地源目录
sudo cp *.deb /opt/local-repo/
# 创建包索引
cd /opt/local-repo
sudo dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
# 配置APT源
echo "deb [trusted=yes] file:///opt/local-repo ./" > /tmp/local.list
sudo cp /tmp/local.list /etc/apt/sources.list.d/local.list
# 更新APT缓存
sudo apt-get update
```
## 🔌 物理连接检查
### 1. 网线连接检查
```bash
# 检查网卡状态
ethtool eth0
# 查看网卡信息
sudo mii-tool eth0
# 检查网线是否插好
dmesg | grep eth0
```
### 2. 驱动检查
```bash
# 查看已加载的网卡驱动
lsmod | grep -e "e1000" -e "r8169" -e "atl1"
# 查看PCI设备
lspci | grep -i ethernet
# 查看USB网络设备
lsusb | grep -i ethernet
```
### 3. BIOS/UEFI设置
```bash
# 检查BIOS中的网络设置
# - 确保网卡未被禁用
# - 检查Wake-On-LAN设置
# - 确认PXE启动选项
```
## 🛠️ 网络故障排除
### 1. 常见错误及解决方案
#### 错误一Network is unreachable
```bash
# 检查路由表
ip route show
# 添加默认路由
sudo ip route add default via 192.168.1.1
# 检查网关连通性
ping -c 4 192.168.1.1
```
#### 错误二Name or service not known
```bash
# 检查DNS配置
cat /etc/resolv.conf
# 手动配置DNS
sudo vi /etc/resolv.conf
# 添加DNS服务器
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 114.114.114.114
# 重启网络服务
sudo systemctl restart NetworkManager
```
#### 错误三Connection refused
```bash
# 检查防火墙状态
sudo systemctl status firewalld
# 临时关闭防火墙测试
sudo systemctl stop firewalld
# 添加防火墙规则
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload
```
### 2. 高级网络诊断
```bash
# 使用netstat检查端口
sudo netstat -tulpn
# 使用ss命令现代替代netstat
sudo ss -tulpn
# 检查网络连通性
traceroute 8.8.8.8
mtr 8.8.8.8
# 检查DNS解析
dig +trace google.com
```
## 🌍 代理配置方案
### 1. HTTP/HTTPS代理
```bash
# 设置环境变量
export http_proxy="http://proxy-server:port"
export https_proxy="http://proxy-server:port"
export no_proxy="localhost,127.0.0.1,192.168.1.0/24"
# 永久配置
echo 'export http_proxy="http://proxy-server:port"' >> ~/.bashrc
echo 'export https_proxy="http://proxy-server:port"' >> ~/.bashrc
```
### 2. YUM代理配置
```bash
# 编辑YUM配置
sudo vi /etc/yum.conf
# 添加代理配置:
proxy=http://proxy-server:port
proxy_username=username
proxy_password=password
```
### 3. APT代理配置
```bash
# 创建APT代理配置
sudo vi /etc/apt/apt.conf
# 添加代理配置:
Acquire::http::proxy "http://proxy-server:port";
Acquire::https::proxy "http://proxy-server:port";
Acquire::ftp::proxy "http://proxy-server:port";
```
## 📋 网络检查清单
### 自动化检查脚本
```bash
#!/bin/bash
# network_check.sh
echo "=== 网络状态检查 ==="
# 1. 检查网络接口
echo "1. 网络接口状态:"
ip addr show | grep -E "^[0-9]+:"
# 2. 检查路由表
echo "2. 路由表:"
ip route show
# 3. 检查DNS
echo "3. DNS配置"
cat /etc/resolv.conf
# 4. 检查外网连通性
echo "4. 外网连通性:"
if ping -c 3 8.8.8.8 >/dev/null 2>&1; then
echo " ✓ 外网连通正常"
else
echo " ✗ 外网不通"
fi
# 5. 检查DNS解析
echo "5. DNS解析"
if nslookup baidu.com >/dev/null 2>&1; then
echo " ✓ DNS解析正常"
else
echo " ✗ DNS解析失败"
fi
# 6. 检查防火墙
echo "6. 防火墙状态:"
systemctl is-active firewalld
echo "=== 检查完成 ==="
```
### 网络修复一键脚本
```bash
#!/bin/bash
# fix_network.sh
echo "=== 网络修复脚本 ==="
# 重置网络配置
sudo systemctl stop NetworkManager
sudo systemctl stop network
# 重置网络接口
sudo ip link set eth0 down
sudo ip link set eth0 up
# 清除旧的IP配置
sudo ip addr flush dev eth0
# 重新获取DHCP
sudo dhclient eth0
# 重启网络服务
sudo systemctl start NetworkManager
# 测试网络
if ping -c 3 8.8.8.8 >/dev/null 2>&1; then
echo "✓ 网络修复成功"
else
echo "✗ 网络修复失败,请手动配置"
fi
```
## 🎯 推荐解决方案
### 立即可用方案
1. **使用USB手机热点**:最简单快速的网络解决方案
2. **静态IP配置**:如果知道网络参数,直接配置
3. **离线安装包**:准备完整离线安装包
### 长期解决方案
1. **配置有线网络**:稳定可靠的生产环境方案
2. **设置网络代理**:企业环境的标准方案
3. **部署本地源**:内网环境的最佳实践
---
**文档版本**: v1.0
**适用系统**: CentOS 7/8, Ubuntu 18.04/20.04
**硬件平台**: 昇腾Atlas系列服务器