排版过的文章,在我另外一个博客上,这里不再重新排版,如有不便,还望见谅:http://caok1231.com/blog/2013/09/01/ubuntu-network-configure/
最近经手的一台服务器主板换了,导致了一些连接网络的问题,把相应的处理总结一下,以便下次再遇到时能不用在纠结那么久。
问题描述:
无法上网,ping 127.0.0.1能通,但局域网无法ping通。
安装网卡驱动
刚开始认为是更换主板后网卡未能识别,需要安装相应的网卡驱动,于是就朝这方面去努力。
1.识别当前的网卡
lspci #查看网卡类型
从中我发现该服务器的网卡为Broadcom NetExtreme II 5722,当然如果你知道你服务器类型的话也可以直接上官网查询,顺带把相应的网卡驱动给下载了。
2.rpm转换为deb
找到网卡驱动后,发现只提供了rpm的安装,所以可以通过alien转换为deb的包,这个过程中遇到了一些麻烦,服务器是64位的,而自己的电脑是32位的,弄得只能在vps上去处理。
uname -m # 查看系统位数
sudo alien xxxx.deb # 将rpm转换为deb
scp xxx.rpm yourname@192.168.xxx.xxx:~/ # 上传文件到服务器
scp yourname@192.168.xxx.xxx:~/xxx.deb . # 从服务器下载文件到本地
3.通过U盘拷贝文件到服务器
由于没有网络,只能通过u盘拷贝驱动程序到服务器
a.首先识别磁盘设备
sudo fdisk -l
查出我们的U盘为/dev/sdb1
b.挂载
id yourname #查当用户的uid和pid
mkdir usb #设置将挂载的哪个文件夹
sudo mount /dev/sdb1 ~/usb -o uid=1000,gid=1000 #将U盘挂载到~/usb这个文件夹中
如果挂载时不指定uid和gid,访问U盘时,U盘中文件的权限不对应,会出现一些不必要的问题
c.安装
sudo dpkg -i xxx.deb
3.重启网络
sudo /etc/init.d/networking restart
真正的问题
至此原本以为问题解决了,但现实是残酷的,ifconfig时仍只有一个lo,通过ifconfig -a我发现还有个没有激活的网络连接居然叫”eth1”,但我在/etc/network/interface中配置的明明是”eth0”,那是不是name和mac地址没对应上造成的呢?于是我把 /etc/network/interface 和 /etc/udev/rules.d/70-persistent-net.rules 修改的一致,都改为”eth1”,重启网络后发现ok了,于是关机睡觉。
第二天再次开机时,发现 ifconfig -a 中原本的 “eth1” 又变成了 “eth0”,擦。。。哥怒了。。。
仔细在网上找了下,发现原来是:尽管我们更换了主板(或网卡),但是原先的网卡信息依旧会存储下来
我用 dmesg 查询开机过程的讯息,看有没有跟网卡相关的,结果发现原来是 udev 服务在开机过程中把其名称给换了:”eth1” —> “eth0”
知道问题后,就好解决了,方法有两种:
1.删除/etc/udev/rules.d/70-persistent-net.rules
2.在/etc/network/interfaces的配置里同时补上”eth0”和”eth1”的
重启发现一切ok
排版过的文章,在我另外一个博客上,这里不再重新排版,如有不便,还望见谅:http://caok1231.com/blog/2013/09/01/ubuntu-network-configure/