526 lines
9.7 KiB
Markdown
526 lines
9.7 KiB
Markdown
# 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系列服务器 |