Linux连接internet前的注意事项

2019-01-23  本文已影响0人  epiiplus1equal0

如何确定网卡已经被Linux操作系统捕捉到(即发现网卡的存在并加载了相应的网卡驱动程序)?

而Linux主机的网络参数又该如何配置呢?

调制解调器(Modem): 一种计算机硬件, 可把计算机的数字信号翻译成可沿普通电话线传递的模拟信号, 而这些模拟信号又可以被电话线那头的另一个Modem所接收, 并翻译成计算机可懂得语言, 这一简单的过程完成两台计算机的通信

Linux的网卡

网卡(Network Interface card, NIC)的名称却是以网卡对应的内核模块来命名的, 而默认的名称是eth0

1. 关于内核模块

万一你的网卡芯片组开发商不愿意开放源代码的硬件驱动程序, 或者该网卡太新了, 使得linux内核来不及支持, 那么你需要通过以下方式让内核支持该网卡:

如果你的网卡是自行编译安装的, 那么每次安装其他版本的内核时, 你必须重新手动编译该模块, 因为
模块与内核是有关联性的!!!

2. 观察内核捕捉的网卡信息, 网卡模块

# 观察1685与1686两行, 可以发现这部主机的网卡使用的是e1000模块, 
# 而使用的芯片则是inter的网卡了
dmesg | grep -in eth
1685:e1000 0000:02:01.0: eth0: (PCI:66MHz:32-bit) 00:0c:29:4d:ee:5a
1686:e1000 0000:02:01.0: eth0: Intel(R) PRO/1000 Network Connection

#查询相关的设备数据芯片
lspci | grep -i ethernet
02:01.0 Ethernet controller: Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) (rev 01)

#观察网卡的模块
lsmod | head -1 ; lsmod | grep e1000
Module                  Size  Used by
e1000                 160643  0

#查看内核模块是否顺利加载
modinfo e1000
filename:       /lib/modules/2.6.32-504.el6.x86_64/kernel/drivers/net/e1000/e1000.ko 
# 重点!!! 特别需要注意内核版本, 因为不同内核版本使用的驱动程序是不一样的, 
# 所以更改内核后, 你自己编译的硬件驱动程序也需要重新编译
version:        7.3.21-k8-NAPI
license:        GPL
description:    Intel(R) PRO/1000 Network Driver

3. 编译网卡的驱动程序(Option)

在购买硬件时, 请先查阅是否支持linux的字样, 有些硬件厂商在推出新硬件时, 常常会漏掉该设备的linux驱动程序

由于编译需要编译程序以及内核相关信息, 因此需要安装Gcc, Make, Kernel-Header等软件才行, yum groupinstall Development Tools

tar -zxvf /root/e1000-8.0.30.tar.gz -C /usr/local/src
cd /usr/local/src/e1000-8.0.30
# 此时应该看到一个README的文件, 记得看一看, 这个文件内有很说明,包括如何编译, 以及这个模块支持的芯片组
cd src
make install #进行编译安装
# 这个模块会被编译完成且被安装到一下路径: /lib/modules/$(uname -r)/kernel/drivers/net/e1000/e1000.ko, 接下来我们需要重新加载该模块
#1. 先删除已经加载到内存中的模块
modprobe -r e1000
#2. 加载新模块, 并查阅有没有捕捉到正确版本
modprobe e1000
lsmod | grep e1000
modinfo e1000 # 查看version是否正确, version: 8.0.30-NAPI, 
# 这个模块会在下次内核更新后失效, 因为新内核会给一个新的驱动程序, 
# 就不是这个8.0.30的版本了
# 很简单, 在/etc/modprobe.d/目录下建立一个名为ether.conf的文件, 
# 内容将模块与网卡代号连接在一块即可
vim /etc/modprobe.d/ether.conf
alias eth0 e1000
alias eth0 e1000 #如果有两张网卡则写两个

sync ; reboot
ifconfig eth0 192.168.1.200
ifconfig eth0

4. linux网络相关的配置文件

所需网络参数 主要配置文件 重要参数
IP, NETWORK, DHCP, GATEWAY /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=网卡名<br />BOOTPROTO=协议<br />HWADDR=是否加入网卡的MAC地址<br />IPADDR=IP地址<br />NETMASK=子网掩码<br />ONBOOT=是否默认启动此接口<br />GATEWAY=网关<br />NM_CONTROLLED=额外的网管软件, 建议取消
主机名 /etc/sysconfig/network NETWORKING=要不要使用网络<br />NETWORKING_IPV6=要不要使用IPv6网络<br />HOSTNAME=主机名
DNS IP /etc/resolv.conf Name Server DNS的IP地址
私有 IP 对应主机名 /etc/hosts 私有IP 主机名 别名

5. 连接internet的设置方法

连上因特网的主要方法有: (1)学术网 (2)ADSL固接与拨号 (3)Cable Modem 等方式

修改的参数 配置文件与重要启动脚本 查看结果的指令
IP相关参数 /etc/sysconfig/network-scripts/ifcfg-eth0<br />/etc/init.d/network {restart|status|start|stop...} ifconfig (IP|Netmask)<br />route -n (gateway)
DNS /etc/resolv.conf dig www.baidu.com
主机名 /etc/sysconfig/network<br />/etc/hosts<br />
# 注意两个文件的主机名要对应!!! hostname<br />ping $(hostname)<br />reboot

系统有非常多的服务已经启动了, 这些服务如果需要主机名, 都是

去/etc/sysconfig/network中去读取的, 而配置文件修改后,

已启动的服务已经读取这个文件, 务必要重新启动才会使修改后的数据生效 |

6. 无线网络 (以笔记本电脑为例)

无线网络 (Wireless Local Area Network, WLAN)

7. 利用无线网卡开始连接

#1. 检查无线网卡设备
lsusb #网卡可能会被监测到, 但不一定被内核加载, 需要继续检查

#2. 查看模块与对应的网卡代号(modinfo与iwconfig)
iwconfig #要出现wlan0之类的网卡才是被捕捉到!
# 如果没有加在正确驱动, 需要安装下载的RPM驱动, 
# 先将USB拔出来, 再安装RPM文件
rpm -ivh kmod-rt3070sta* rt2870-firmware*
iwconfig
lo    no wireless extensions
eth0    no wireless extensions
ra0    Ralink STA

#3. 利用iwconfig侦测AP
ifconfig ra0 up
iwlist ra0 scan #使用iwlist命令来使用这个无线网卡搜寻
# 再接下来修改配置文件, 这部分很麻烦, 参考如下网页: https://wiki.archlinux.org/index.php/Rt2870
ifconfig ra0 down && modprobe -r rt3070sta
vim /etc/Wireless/RT2870STA/RT2870STA.dat
modprobe rt3070sta && ifconfig ra0 up
iwconfig ra0

#4. 设定网卡配置文件(ifcfg-ethn)
vim /etc/sysconfig/network-scripts/ifcfg-ra0

#5. 启动与查看
ifup ra0
      本文基于<鸟哥的Linux私房菜>, 归纳整理, 在此致谢鸟哥.
上一篇下一篇

猜你喜欢

热点阅读