为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3840284.html

Linux网络接口

Linux网络接口,包含了网卡的概念。

在Linux系统中,命名规律:

eth0为第一个接口(Ethernet Card),eth1为第二个。

lo为本地环回接口,它的IP地址固定为127.0.0.1,掩码8位。

ifconfig命令

ifconfig命令常用来显示系统中的网络接口(网卡)信息,也可以用来配置网络接口(configure a network interface),如激活、关闭、设置地址等。

基本格式:ifconfig [选项] [interface] [操作命令]

选项:

-a:显示所有网络接口信息,包含活动和非活动的。

-s:仅显示每个接口的摘要数据,是有关接口活动性的,每个接口显示一行信息。

-v:若某个网络接口出现错误,将返回错误信息,以帮助发现和处理故障。

例:ifconfig命令默认只显示当前激活的网络接口信息。

每个网络接口的具体信息如下:

第一行

eth0:网络接口。

link encap:网络类型。Ethernet表示以太网。

HWaddr:网卡物理地址。

第二行

Inet addr:IPv4地址。

Bcast:广播地址。

Mask:子网掩码。

第三行

Inet addr:IPv6地址。

Scope:作用范围类型。Link表示只对本网卡有效。

第四行

UP:表示网卡开启状态。

RUNNING:表示网卡的网线被接上。

MULTICAST:表示支持组播。

“MTU:1500”:表示最大传输单元1500字节。

第五行

RX packets:接收的数据包个数。

TX packets:传输的数据包个数。

第六行

collisions:表示发生冲突的次数。

txqueuelen:传输队列的的长度。

第七行

RX byte:表示接收的包的数量。

TX byte:表示传输的包的数量。

第八行

Interrupt:终端号。

Base address:内存基地址。

例:查看所有网卡信息,不论是否激活。

命令:ifconfig -a

例:指定查看某个网卡的信息。

命令:ifconfig eth1

例:为网卡分配ip

命令:ifconfig eth0 192.168.1.210

例:为网卡分配ip,同时配置子网掩码。

命令:ifconfig eth0 192.168.1.210 netmask 255.255.255.0

例:为网卡分配ip,同时配置子网掩码,同时设置网关,同事配置广播地址。

命令:ifconfig eth0 192.168.1.210 netmask 255.255.255.0 gw 192.168.1.1 broadcast 192.168.1.255

例:禁用指定的网络接口

命令:ifconfig eth0 down

等价于:ifdown eth0

例:启动指定的网络接口

命令:ifconfig eth0 up

等价于:ifup eth0

例:修改网卡MAC地址。

命令:ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx

注意:用ifconfig命令配置的网卡信息,在网络服务或系统重启后,配置就无效了。

通过配置文件配置网络信息

Linux网络配置文件位于 /etc/sysconfig/network-scripts 目录下。

如上图:ifcfg-eth0,ifcfg-eth1,ifcfg-lo分别表示eth0,eth1,lo的配置文件。

显示ifcfg-eth0文件的内容。

配置文件说明:

DEVICE=eth0    网卡接口名称,需要ifcfg-eth0相对应。

HWADDR=00:24:8C:79:1A:2B    MAC地址。

ONBOOT=yes    网络服务启动时,是否自动加载。

BOOTPROTO=static    启用地址协议,有none、static、dhcp、bootp。

IPADDR=192.168.1.153    ip地址。

NETMASK=255.255.255.0    子网掩码。

NETWORK=192.168.1.0    网段,该网段的第一个ip。

BROADCAST=192.168.1.255    广播地址。

GATEWAY=192.128.1.1    默认网关。

MTU=1500    最大传输单位的设置。

配置项说明:

DEVICE:关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致;

BOOTPROTO:引导协议;要使用静态地址,使用static或none;dhcp表示使用DHCP服务器获取地址;允许值为{static|none|dhcp|bootp}

IPADDR:IP地址

NETMASK:子网掩码

GATEWAY:设定默认网关;

ONBOOT:开机时是否自动激活此网络接口;

HWADDR:硬件地址,要与硬件中的地址保持一致;可省;

USERCTL:是否允许普通用户控制此接口;允许值为{yes|no}

PEERDNS:是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的DNS地址;允许值为{yes|no}

可以使用vi/vim或其他文本编辑器修改这些网络配置。

保存配置后,重启网络服务,配置才会生效。

命令:service network restart

例:配置DHCP。

只需要使BOOTPROTO配置为dhcp即可。

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=dhcp

例:配置虚拟网卡。

虚拟网卡可以为一块真实网卡配置多个IP参数,可同时和多个网络通信。

在 /etc/sysconfig/network-scripts目录下,创建ifcfg-eth0:0文件。

DEVICE=eth0:0

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.1.227

NETMASK=255.255.255.0

ONBOOT=yes

DNS配置

DNS服务器配置方法,即编辑配置文件 /etc/resolv.conf

DNS地址可以配置多个。全球所有的DNS服务器都是连接在一起的。DNS1中找不到域名,DNS2中必然也找不到。DNS2是在DNS1无法使用的情况下才使用的。

DNS服务器地址一般会配置2个。Linux服务器最多可以配置3个。

当时网卡使用DHCP时,该文件会被修改。若不希望修改,需要对该网卡配置文件设置PEERDNS=no 。

关于路由器与本机的DNS地址设置问题

路由器的DNS地址设置为IP1。本机的DNS为IP2。此时本机访问网络时用的资源时,用的DNS地址为本机设置值IP2。若本机使用了自动获取,才会采用路由器的配置IP1。

当本地没有DNS服务器时,可以使用本地的主机名映射配置

编辑配置文件/etc/hosts

以下是各列是:主机IP;主机名称;主机别名。

主机名称配置

配置主机名命令。该立即生效,但不是永久有效;

hostname HOSTNAME

永久生效的配置文件:/etc/sysconfig/network

该配置文件需要重启系统才会生效。想要立即生效,同时永久有效。需要使用hostname命令,也一并编辑network文件。

路由与网关设置

要将机器接入网络需要使用网关。

使用route命令设置网关。

route

add: 添加路由

-host: 主机路由

-net:网络路由

del:删除路由

-host

-net

例:添加路由,删除路由的使用示例

route add -net|-host DEST gw NEXTHOP

route add default gw NEXTHOP

route del -net 10.0.0.0/8

route del -net 0.0.0.0

route del default

所做出的改动重启网络服务或主机后失效;

route命令直接使用的话,可以查看本地路由表。

以数字方式显示各主机或端口等相关信息。

命令:route -n

route命令配置的信息将在重启网络服务和主机后失效。

路由的配置文件:/etc/sysconfig/network-scripts目录下的route-ethX文件,X表示数字,如route-eth0

添加格式一:

DEST via  NEXTHOP

添加格式二:

ADDRESS0=

NETMASK0=

GATEWAY0=

setup命令配置

以上配置均可以通过setup命令中设置

非常易用,不详述。使用setup工具设置的配置在保存后会直接生效。重启后也不会失效。

ping命令

ping命令的底层协议为IMCP协议。Linux的ping命令与Windows中的ping命令稍有不同。

命令格式:ping [选项] [主机名或IP地址]

命令选项:

-d:使用Socket的SO_DEBUG功能。

-f :极限检测。大量且快速地送网络封包给一台机器,看它的回应。

-n :只输出数值。

-q :不显示任何传送封包的信息,只显示最后的结果。

-r :忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。

-R :记录路由过程。

-v :详细显示指令的执行过程。

-c 数目:在发送指定数目的包后停止。

-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。

-I 网络界面:使用指定的网络界面送出数据包。

-l 前置载入:设置在送出要求信息之前,先行发出的数据包。

-p 范本样式:设置填满数据包的范本样式。

-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。

-t 存活数值:设置存活数值TTL的大小。

例:设置icmp包发射的次数。

命令:ping -c 3 192.168.1.100

例:设置ICMP包的大小。

命令:ping -s 60000 192.168.1.100

跨Linux系统的拷贝

不同的Linux之间copy文件常用有3种方法:

  • ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy。
  • samba服务,类似Windows文件copy 的方式来操作,比较简洁方便。
  • 利用scp命令来进行文件复制。

scp命令

scp即security copy,基于ssh协议。

需要注意的是,远程主机需要安装openssh-clients才可以接受scp的传输,否则会报错。可以使用"yum install openssh-clients"命令安装相应工具。

基本格式:

scp 远程用户@IP地址:文件的绝对路径 本地Linux系统路径

scp 本地Linux系统文件路径 远程用户@IP地址:文件的绝对路径

命令选项:

-1:强制scp命令使用协议ssh1。

-2 :强制scp命令使用协议ssh2。

-4 :强制scp命令只使用IPv4寻址。

-6 :强制scp命令只使用IPv6寻址。

-B :使用批处理模式(传输过程中不询问传输口令或短语)

-C :允许压缩。(将-C标志传递给ssh,从而打开压缩功能)

-p:保留原文件的修改时间,访问时间和访问权限。

-q :不显示传输进度条。

-r :递归复制整个目录。

-v :详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。

-c cipher :以cipher将数据传输进行加密,这个选项将直接传递给ssh。

-F ssh_config :指定一个替代的ssh配置文件,此参数直接传递给ssh。

-i identity_file :从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。

-l limit :限定用户所能使用的带宽,以Kbit/s为单位。

-o ssh_option :如果习惯于使用ssh_config(5)中的参数传递方式。

-P port :注意是大写的P, port是指定数据传输用到的端口号。

-S program :指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。

例:远程Linux的IP为203.171.236.52。现在要将本地机器的文拷贝到远程Linux的目录下。

命令:scp /home/tomcat/server.war root@203.171.236.52:/home/tomcat/

键入命令后,会要求输入203.171.236.52的root用户的密码。然后就开始远程拷贝数据。

使用wget命令进行下载

wget命令用于在命令行中下载,支持断点续传,非常稳定。wget命令支持HTTP,HTTPS和FTP协议,可以使用HTTP代理。wget命令也可以在用户退出系统的之后在后台执行。

命令格式:wget [选项] [URL地址]

具体选项请参看wget的帮助文档,这里不详述。

例:使用wget下载单个文件。下载的文件会保存在当前目录。

命令:wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip

说明:在下载的过程中会显示进度条,包含(下载完成百分比,已经下载的字节,当前下载速度,剩余下载时间)。

例:使用wget -O下载并以不同的文件名保存

命令:wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

说明:wget默认会以URL中最后一个符合”/”的后面的字符来命令下载的文件。

例:使用wget --limit -rate限速下载

命令:wget --limit-rate=300k http://www.minjieren.com/wordpress-3.1-zh_CN.zip

说明:wget命令默认会占用全部可能的宽带下载。

例:使用wget -c 断点续传

命令:wget -c http://www.minjieren.com/wordpress-3.1-zh_CN.zip

说明:下载大文件时由于网络等原因而导致下载中断,可以继续接着下载。继续中断的下载可以使用-c选项。

例:使用wget -b后台下载

命令:wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip

说明:使用参数-b进行后台下载。察看下载进度:tail -f wget-log

例:伪装代理名称下载

命令:wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.minjieren.com/wordpress-3.1-zh_CN.zip

说明:有些网站能通过根据判断代理名称不是浏览器而拒绝你的下载请求。不过你可以通过--user-agent参数伪装。

例:使用wget  --spider测试下载链接

命令:wget --spider URL

例:使用wget  --tries设置重试次数

命令:wget --tries=40 URL

说明:wget默认重试20次连接下载文件。

例:使用wget -i下载多个文件

命令:wget -i filelist.txt

说明:filelist是一份下载链接列表的文本文件。

例:使用wget 进行FTP下载

命令:wget --ftp-user=USERNAME --ftp-password=PASSWORD url

说明:在不需要用户名和密码的情况下可以直接使用wget进行匿名FTP下载。若需要用户名或密码则使用以上格式。

网络端口监控

netstat命令用于显示各种网络相关信息。如网络连接、运行端口和路由表等。

基本格式:netstat [选项]

命令选项:

-a或--all 显示所有连线中的Socket。

-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。

-c或--continuous 持续列出网络状态。

-C或--cache 显示路由器配置的快取信息。

-e或--extend 显示网络其他相关信息。

-F或--fib 显示FIB。

-g或--groups 显示多重广播功能群组组员名单。

-h或--help 在线帮助。

-i或--interfaces 显示网络界面信息表单。

-l或--listening 显示监控中的服务器的Socket。

-M或--masquerade 显示伪装的网络连线。

-n或--numeric 直接使用IP地址,而不通过域名服务器。

-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。

-o或--timers 显示计时器。

-p或--programs 显示正在使用Socket的程序识别码和程序名称。

-r或--route 显示Routing Table。

-s或--statistice 显示网络工作信息统计表。

-t或--tcp 显示TCP传输协议的连线状况。

-u或--udp 显示UDP传输协议的连线状况。

-v或--verbose 显示指令执行过程。

-V或--version 显示版本信息。

-w或--raw 显示RAW传输协议的连线状况。

-x或--unix 此参数的效果和指定”-A unix”参数相同。

--ip或--inet 此参数的效果和指定”-A inet”参数相同

例:列出所有端口

命令:netstat -a

......

说明:

输出结果可以分为两个部分:

Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

Proto表示使用的协议。

RefCnt表示连接到本套接口上的进程号。

Types显示套接口的类型。

State显示套接口当前的状态。

Path表示连接到套接口的其它进程使用的路径名。

State显示的三种状态:

ESTABLISHED:表示已建立的连接

LISTENING:表示监听连接请求的连接。

TIME_WAIT:表示连接已结束。这是一种处于连接完全关闭状态前的状态。

例:列出所有 tcp 端口

命令:netstat -at

例:列出所有 udp 端口

命令:netstat -au

例:只显示监听端口

命令:netstat -l

例:只列出所有监听 tcp 端口

命令:netstat -lt

例:只列出所有监听 udp 端口

命令:netstat -lu

例:只列出所有监听 UNIX 端口

命令:netstat -lx

例:显示所有端口的统计信息

命令:netstat -s

例:显示 TCP 或 UDP 端口的统计信息

命令:netstat -st

命令:netstat -su

例:在 netstat 输出中显示 PID 和进程名称

命令:netstat -p

说明:netstat -p 可以与选项开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。

例:在 netstat 输出tcp协议的 PID 和进程名称

命令:netstat -pt

例:使用数字表示主机,端口,用户名等详细。

命令:netstat -n

使用这种方式的命令执行速度会比较快。

若只是不想让这三个名称中的一个被显示,使用以下命令:

netsat -a --numeric-ports

netsat -a --numeric-hosts

netsat -a --numeric-users

例:持续输出 netstat 信息。netstat 将每隔一秒输出网络信息。

命令:netstat -c

例:显示系统不支持的地址族 (Address Families)

netstat --verbose

在输出的末尾,会有如下的信息:

例:显示核心路由信息

命令:netstat -r

例:找出程序运行的端口

命令:netstat -an | grep ':80'

例:显示网络接口列表

命令:netstat -i

显示详细信息,类似于ifconfig 使用命令:netstat -ie

参考资料:

http://codingstandards.iteye.com/blog/1130135/

http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.html

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/3840284.html

Linux网络基础的更多相关文章

  1. Linux网络基础配置

    这是看itercast视频的笔记 Linux网络基础配置 以太网连接 在Linux中,以太网接口被命令为:eth0, eth1等, 0,1代表网卡编号 通过lspci命令可以查看网上硬件信息(如果是u ...

  2. Linux网络服务01——Linux网络基础设置

    Linux网络服务01--Linux网络基础设置 一.查看及测试网络 1.使用ifconfig命令查看网络接口 (1)查看活动的网络接口 ifconfig命令 [root@crushlinux ~]# ...

  3. Linux网络基础-总

    目录 Linux网络基础 一.网卡和数据包的转发 1.收包流程 二.多网卡bonding 三.SR-IOV 四.DPDK 五.TUN/TAP 六.Linux bridge 和VLAN 七.TCP/IP ...

  4. linux网络基础设置 以及 软件安装

    ifconfig #查看所有已激活的网卡信息 临时配置 #yum install net-tools -y 默认ifconfig是没有安装的,可能需要安装 ifconfig eth0 #查看单独一块网 ...

  5. Linux高性能server编程——Linux网络基础API及应用

     Linux网络编程基础API 具体介绍了socket地址意义极其API,在介绍数据读写API部分引入一个有关带外数据发送和接收的程序,最后还介绍了其它一些辅助API. socket地址API 主 ...

  6. 【Linux网络基础】网络拓扑、OSI层次模型、TCP/IP协议簇

    一.前言 一个运维有时也要和网络打交道,所以具备最基本的网络知识,对一个运维人员来说是必要的.但,对于我们的工作来说这些并不是重点,因此,我不可能从最基础的网络知识开始讲起.本节内容更多是从一个梳理和 ...

  7. linux——网络基础

    装完linux系统要对网络(ip地址,子网掩码,网关,DNS)进行配置,才能连接网络 一,开启网卡eth0 CentOS显示没有网卡(eth0) 2.设置静态IP vim /etc/sysconfig ...

  8. 关于linux网络基础记录

    1.linux操作系统是一套非常稳定的操作系统,作用永不止于提供网络服务那么简单.(www.Mail.FTP.DNS.DHCP.NAT.Router) 2.对于一个服务器而言,“搭建容易维护难”:维护 ...

  9. linux网络基础-网卡bonding技术

    1.bondingbonding(绑定)是一种linux系统下的网卡绑定技术,可以把服务器上n个物理网卡在系统内部抽象(绑定)成一个逻辑上的网卡,实现本地网卡的冗余,带宽扩容和负载均衡.在应用部署中是 ...

随机推荐

  1. Android模拟器常用命令收录

    一.Linux命令 1.挂载/systme分区为读写状态 mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system 2.切换为Root用户 ...

  2. 使用SeaJS实现模块化JavaScript开发

    前言 SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等JavaScript框架不同,SeaJS不会扩展封 ...

  3. bzoj 1096: [ZJOI2007]仓库建设 斜率優化

    1096: [ZJOI2007]仓库建设 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2242  Solved: 925[Submit][Statu ...

  4. uva 11136 - Hoax or what

    用两个优先队列来实现,因为队列只能从一头出去: 所以维护一个数组,来标记这个队列的已经出列而另外一个队列没有出列的元素: 到时候再把他们删了就行: #include<cstdio> #in ...

  5. spring定时任务的配置使用

    spring的定时任务配置分为三个步骤: 1.定义任务 2.任务执行策略配置 3.启动任务 1.定义任务 <!--要定时执行的方法--> <bean id="testTas ...

  6. QT事件过滤器(QT事件处理的5个层次:自己覆盖或过滤,父窗口过滤,Application过滤与通知)

    Qt事件模型一个真正强大的特色是一个QObject 的实例能够管理另一个QObject 实例的事件. 让我们试着设想已经有了一个CustomerInfoDialog的小部件.CustomerInfoD ...

  7. Linux下修改MySQL编码的方法

    有时候因为编码需要修改mysql的编码,windows下修改有图文界面简单一些,linux大家就可以参考下面的方法   默认登录mysql之后可以通过SHOW VARIABLES语句查看系统变量及其值 ...

  8. linux下USB串口,minicom

    [一].驱动相关说明: 如果直接使用串口线,而没有用到USB转串口设备,就不需要安装驱动. 如果使用了USB转串口,一般情况下也不需要安装驱动了,目前linux系统已经包含了该驱动,可以自动识别,亦可 ...

  9. inuitcss

    inuitcssa powerful, scalable, Sass-based, BEM, OOCSS framework.

  10. JavaScript高级程序设计1.pdf

    第一遍通读的时候对JavaScript一点都不了解翻了一整本书仅仅是眼熟的几个名词,现在会写一些js效果了,对程序有一定的认知,又要在读一遍,再加深一些了解,当然以后还会有第三遍第四遍,等完全啃透了这 ...