美文网首页
Linux连接internet前的注意事项

Linux连接internet前的注意事项

作者: epiiplus1equal0 | 来源:发表于2019-01-23 23:05 被阅读0次

    如何确定网卡已经被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

    • 1.取得官网的驱动程序

      去网卡对应的官网下载驱动, 例如下载的文件名为"e1000-8.0.30.tar.gz", 放于/root/目录下

    • 2.解压与编译

    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, 接下来我们需要重新加载该模块
    
    • 3.模块的测试与处理

      由于这个新模块已经被加载了, 我们需要删除旧模块, 才能重新加载这个模块

    #1. 先删除已经加载到内存中的模块
    modprobe -r e1000
    #2. 加载新模块, 并查阅有没有捕捉到正确版本
    modprobe e1000
    lsmod | grep e1000
    modinfo e1000 # 查看version是否正确, version: 8.0.30-NAPI, 
    # 这个模块会在下次内核更新后失效, 因为新内核会给一个新的驱动程序, 
    # 就不是这个8.0.30的版本了
    
    • 4.设定开机自动启动的网卡模块(Option)

      如果内核还是捕捉不到网卡, 就需要自己处理一下模块的关系了

    # 很简单, 在/etc/modprobe.d/目录下建立一个名为ether.conf的文件, 
    # 内容将模块与网卡代号连接在一块即可
    vim /etc/modprobe.d/ether.conf
    alias eth0 e1000
    alias eth0 e1000 #如果有两张网卡则写两个
    
    sync ; reboot
    
    • 5.尝试配置IP
    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 主机名 别名
    • /etc/services

      记录构建在TCP/IP上的各种协议, 服务对应的port number, 如果你想要自定义一个新的协议与端口的对应, 就要修改此文件

    • /etc/protocols

      定义IP数据包协议的相关数据, 包括ICMP/TCP/UDP的数据包协议的定义等

    5. 连接internet的设置方法

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

    • 1.手动配置固定IP参数

      只要记住下面这个表格内的重要文件和指令, 以后在修改网络参数的时候, 就不会出错了

    修改的参数 配置文件与重要启动脚本 查看结果的指令
    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中去读取的, 而配置文件修改后,

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

    • 2.自动取得IP参数的方法(DHCP: Dynamic Host Configuration Protocol, 动态主机配置协议)

      适合的连接方式主要有以下这些:

      Cable Modem: 使用有线电视网络实现网络连接

      ADSL多IP的DHCP方式: 很多ISP都推出一种项目, 让ADSL用户以DHCP的方式来自动取得IP, 不需要拨号

      IP路由器或NAT搭建DHCP服务时: 当你的主机位于IP路由器的后端, 或你的LAN当中有NAT主机且NAT主机搭建了DHCP服务时, 那取得IP的方法就是这样

    • 3.ADSL拨号上网(适用ADSL拨号以及光纤接入)

      可以使用rp-pppoe这套软件, rp-pppoe使用的是Point to Point(ppp) over Ethernet的点对点协议所产生的网络接口, 因此当顺利拨号成功之后, 会多产生一个网络接口ppp0

      mount /dev/cdrom /mnt
      cd /mnt/Packages
      rpm -ivh rp-pppoe* ppp*
      rpm -q rp-pppoe
      

      ppp0是构建在以太网卡上的, 必须要有以太网卡, 且即使拨号成功, 也不可将eth0关闭, 因此拨号成功后会有如下接口:

      • lo

      • eth0

      • ppp0

        这三个接口在使用上完全独立, 互不干扰

      千万不要定义GATEWAY, 因为ppp0拨号成功后, ISP会主动给予ppp0接口一个可以连上Internet的Default Gateway, 如果你又定义另一个, 两个网关可能造成网络不通

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

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

    • 1.无线网络所需要的硬件: AP, 无线网卡

      无线网络中, 需要一个接收信号的设备: AP (无线接入点 Wireless Access Point), 另一个设备当然是无线网卡了

      其实AP本身就是个无线路由器, 本身有两个接口, 一个与外部的IP沟通, 另一个则作为LAN内部其他主机的GATEWAY

      那么其他主机上只要安装了无线网卡, 并顺利连上AP后, 就可以通过AP来连上internet了

    • 2.关于AP的设置: 网络安全方面

      如果AP不设置若讷河连接限制, 那任何拥有无线网卡的主机都可以通过这个AP连上你的LAN, 无线网络的安全性一定是具有很大漏洞的!!!

      限制: 1.指定可以访问AP的网卡卡号(MAC) 2.设置AP连接加密机制与密钥

    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私房菜>, 归纳整理, 在此致谢鸟哥.

    相关文章

      网友评论

          本文标题:Linux连接internet前的注意事项

          本文链接:https://www.haomeiwen.com/subject/zarejqtx.html