centos 使用方法(centos7安装第三方软件)

各位老铁们,大家好,今天由我来为大家分享centos 使用方法,以及centos7安装第三方软件的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

CentOS网络状态工具ss命令使用方法

ss命令用于显示socket状态.他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计.它比其他工具展示等多tcp和state信息.它是一个非常实用、快速、有效的跟踪IP连接和sockets的新工具.SS命令可以提供如下信息:

所有的TCP sockets

所有的UDP sockets

所有ssh/ftp/ttp/https持久连接

所有连接到Xserver的本地进程

使用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT)、地址、端口过滤

所有的state FIN-WAIT-1 tcpsocket连接以及更多

很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令.熟悉这个工具有助于您更好的发现与解决系统性能问题.本人强烈建议使用ss命令替代netstat部分命令,例如netsat-ant/lnt等.

展示他之前来做个对比,统计服务器并发连接数

netstat

# time netstat-ant| grep EST| wc-l

3100

real 0m12.960s

user 0m0.334s

sys 0m12.561s

# time ss-o state established| wc-l

3204

real 0m0.030s

user 0m0.005s

sys 0m0.026s

结果很明显ss统计并发连接数效率完败netstat,在ss能搞定的情况下,你还会在选择netstat吗,还在犹豫吗,看以下例子,或者跳转到帮助页面.

常用ss命令:

ss-l显示本地打开的所有端口

ss-pl显示每个进程具体打开的socket

ss-t-a显示所有tcp socket

ss-u-a显示所有的UDP Socekt

ss-o state established'( dport=:smtp or sport=:smtp)'显示所有已建立的SMTP连接

ss-o state established'( dport=:http or sport=:http)'显示所有已建立的HTTP连接

ss-x src/tmp/.X11-unix/*找出所有连接X服务器的进程

ss-s列出当前socket详细信息:

显示sockets简要信息

列出当前已经连接,关闭,等待的tcp连接

# ss-s

Total: 3519(kernel 3691)

TCP: 26557(estab 3163, closed 23182, orphaned 194, synrecv 0, timewait 23182/0), ports 1452

Transport Total IP IPv6

* 3691--

RAW 2 2 0

UDP 10 7 3

TCP 3375 3368 7

INET 3387 3377 10

FRAG 0 0 0

列出当前监听端口

# ss-l

Recv-Q Send-Q Local Address:Port Peer Address:Port

0 10:::5989:::*

0 5*:rsync*:*

0 128:::sunrpc:::*

0 128*:sunrpc*:*

0 511*:http*:*

0 128:::ssh:::*

0 128*:ssh*:*

0 128:::35766:::*

0 128 127.0.0.1:ipp*:*

0 128::1:ipp:::*

0 100::1:smtp:::*

0 100 127.0.0.1:smtp*:*

0 511*:https*:*

0 100:::1311:::*

0 5*:5666*:*

0 128*:3044*:*

ss列出每个进程名及其监听的端口

# ss-pl

ss列所有的tcp sockets

# ss-t-a

ss列出所有udp sockets

# ss-u-a

ss列出所有http连接中的连接

# ss-o state established'( dport=:http or sport=:http)'

以上包含对外提供的80,以及访问外部的80

用以上命令完美的替代netstat获取http并发连接数,监控中常用到

ss列出本地哪个进程连接到x server

# ss-x src/tmp/.X11-unix/*

ss列出处在FIN-WAIT-1状态的http、https连接

# ss-o state fin-wait-1'( sport=:http or sport=:https)'

ss常用的state状态:

established

syn-sent

syn-recv

fin-wait-1

fin-wait-2

time-wait

closed

close-wait

last-ack

listen

closing

all: All of the above states

connected: All the states except for listen and closed

synchronized: All the connected states except for syn-sent

bucket: Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.

big: Opposite to bucket state.

ss使用IP地址筛选

ss src ADDRESS_PATTERN

src:表示来源

ADDRESS_PATTERN:表示地址规则

如下:

ss src 120.33.31.1#列出来之20.33.31.1的连接

#列出来至120.33.31.1,80端口的连接

ss src 120.33.31.1:http

ss src 120.33.31.1:80

ss使用端口筛选

ss dport OP PORT

OP:是运算符

PORT:表示端口

dport:表示过滤目标端口、相反的有sport

OP运算符如下:

= or le:小于等于= or ge:大于等于

== or eq:等于

!= or ne:不等于端口

or lt:小于这个端口 or gt:大于端口

OP实例

ss sport=:http也可以是 ss sport=:80

ss dport=:http

ss dport \:1024

ss sport \:1024

ss sport \:32000

ss sport eq:22

ss dport!=:22

ss state connected sport=:http

ss \( sport=:http or sport=:https \)

ss-o state fin-wait-1 \( sport=:http or sport=:https \) dst 192.168.1/24

为什么ss比netstat快:

netstat是遍历/proc下面每个PID目录,ss直接读/proc/net下面的统计信息。所以ss执行的时候消耗资源以及消耗的时间都比netstat少很多

ss命令帮助

# ss-h

Usage: ss [ OPTIONS ]

ss [ OPTIONS ] [ FILTER ]

-h,--help this message

-V,--version output version information

-n,--numeric don't resolve service names

-r,--resolve resolve host names

-a,--all display all sockets

-l,--listening display listening sockets

-o,--options show timer information

-e,--extended show detailed socket information

-m,--memory show socket memory usage

-p,--processes show process using socket

-i,--info show internal TCP information

-s,--summary show socket usage summary

-4,--ipv4 display only IP version 4 sockets

-6,--ipv6 display only IP version 6 sockets

-0,--packet display PACKET sockets

-t,--tcp display only TCP sockets

-u,--udp display only UDP sockets

-d,--dccp display only DCCP sockets

-w,--raw display only RAW sockets

-x,--unix display only Unix domain sockets

-f,--family=FAMILY display sockets of type FAMILY

-A,--query=QUERY,--socket=QUERY

QUERY:={all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]

-D,--diag=FILE Dump raw information about TCP sockets to FILE

-F,--filter=FILE read filter information from FILE

FILTER:= [ state TCP-STATE ] [ EXPRESSION ]

centos下coreseek安装及使用方法

Coreseek中文全文检索引擎

Coreseek是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景,用户可以免费下载使用

一,coreseek简介

官方

Coreseek是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和信息处理领域,适用于行业/垂直搜索、论坛/站内搜索、数据库搜索、文档/文献检索、信息检索、数据挖掘等应用场景。商业使用(例如,嵌入到其他程序中)需要获得商业授权。

Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速、低空间占用、高相关度结果的中文全文搜索能力。CoreSeek可以非常容易的与SQL数据库和脚本语言集成。

在Sphinx发行版本中提供的原生搜索API支持PHP、Python、Perl、Rudy和Java。搜索API非常轻量化,可以在几个小时之内移植到新的语言上。第三方API接口和插件提供了对Perl、C#、Haskell、Ruby-on-Rails支持,以及对其他可能的语言或者框架的支持。

版本介绍

Coreseek 3.2稳定版

Coreseek 4.1测式版

Coreseek 5最新版

二,安装Coreseek

注:本文是以centos+mysql做为数据源支持为基础的coreseek安装教程.mysql安装略过.

1,下载coreseek 3.2稳定版,下载其他版本请去官网自行下载

cd/usr/local/src/

wget

tar xzvf coreseek-3.2.14.tar.gz

cd coreseek-3.2.14

安装coreseek之前需要先安装需要预装的软件:yum install make gcc g++ gcc-c++ libtool autoconf automake imake mysql-devel libxml2-devel expat-devel(注:这是centos 64位

其他系统请参考

2,安装mmseg

$ cd mmseg-3.2.14

$./bootstrap#输出的warning信息可以忽略,如果出现error则需要解决

$./configure--prefix=/usr/local/mmseg3

$ make make install

$ cd..

##如果提示libtool: unrecognized option `--tag=CC',请查看libtool问题解决方案

##安装完成后,mmseg使用的词典和配置文件,将自动安装到/usr/local/mmseg3/etc中

##中文分词测试,如果显示不正常,请检查当前环境下的locale和UTF-8中文字符显示设置

$/usr/local/mmseg3/bin/mmseg-d/usr/local/mmseg3/etc src/t1.txt

中文/x分/x词/x测试/x

中国人/x上海市/x

Word Splite took: 1 ms.

3,安装coreseek

$ cd csft-3.2.14

##执行configure,进行编译配置:

$ sh buildconf.sh

$./configure--prefix=/usr/local/coreseek--without-unixodbc--with-mmseg--with-mmseg-includes=/usr/local/mmseg3/include/mmseg/--with-mmseg-libs=/usr/local/mmseg3/lib/--with-mysql

如查提示找不到mysql includes file则使用下面的编译命令

./configure--prefix=/usr/local/coreseek--without-unixodbc--with-mmseg--with-mmseg-includes=/usr/local/mmseg3/include/mmseg/--with-mmseg-libs=/usr/local/mmseg3/lib/--with-mysql-includes=/alidata/server/mysql/include/--with-mysql-libs=/alidata/server/mysql/bin/

make make install

4,测式coreseek

cd../testpack

$/usr/local/coreseek/bin/indexer-c etc/csft.conf

##以下为正常情况下的提示信息:

Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]

Copyright(c) 2007-2010,

Beijing Choice Software Technologies Inc()

using config file'etc/csft.conf'...

total 0 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg

total 0 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg

##

##csft-4.0版显示:ERROR: nothing to do.

##

$/usr/local/coreseek/bin/indexer-c etc/csft.conf--all

##以下为正常索引全部数据时的提示信息:(csft-4.0版类似)

Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]

Copyright(c) 2007-2010,

Beijing Choice Software Technologies Inc()

using config file'etc/csft.conf'...

indexing index'xml'...

collected 3 docs, 0.0 MB

sorted 0.0 Mhits, 100.0% done

total 3 docs, 7585 bytes

total 0.075 sec, 101043 bytes/sec, 39.96 docs/sec

total 2 reads, 0.000 sec, 5.6 kb/call avg, 0.0 msec/call avg

total 7 writes, 0.000 sec, 3.9 kb/call avg, 0.0 msec/call avg

$/usr/local/coreseek/bin/indexer-c etc/csft.conf xml

##以下为正常索引指定数据时的提示信息:(csft-4.0版类似)

Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]

Copyright(c) 2007-2010,

Beijing Choice Software Technologies Inc()

using config file'etc/csft.conf'...

indexing index'xml'...

collected 3 docs, 0.0 MB

sorted 0.0 Mhits, 100.0% done

total 3 docs, 7585 bytes

total 0.069 sec, 109614 bytes/sec, 43.35 docs/sec

total 2 reads, 0.000 sec, 5.6 kb/call avg, 0.0 msec/call avg

total 7 writes, 0.000 sec, 3.9 kb/call avg, 0.0 msec/call avg

$/usr/local/coreseek/bin/search-c etc/csft.conf

##以下为正常测试搜索时的提示信息:(csft-4.0版类似)

Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]

Copyright(c) 2007-2010,

Beijing Choice Software Technologies Inc()

using config file'etc/csft.conf'...

index'xml': query'': returned 3 matches of 3 total in 0.093 sec

displaying matches:

1. document=1, weight=1, published=Thu Apr 1 22:20:07 2010, author_id=1

2. document=2, weight=1, published=Thu Apr 1 23:25:48 2010, author_id=1

3. document=3, weight=1, published=Thu Apr 1 12:01:00 2010, author_id=2

words:

$/usr/local/coreseek/bin/search-c etc/csft.conf-a Twittter和Opera都提供了搜索服务

##以下为正常测试搜索关键词时的提示信息:(csft-4.0版类似)

Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]

Copyright(c) 2007-2010,

Beijing Choice Software Technologies Inc()

using config file'etc/csft.conf'...

index'xml': query'Twittter和Opera都提供了搜索服务': returned 3 matches of 3 total in 0.038 sec

displaying matches:

1. document=3, weight=24, published=Thu Apr 1 12:01:00 2010, author_id=2

2. document=1, weight=4, published=Thu Apr 1 22:20:07 2010, author_id=1

3. document=2, weight=3, published=Thu Apr 1 23:25:48 2010, author_id=1

words:

1.'twittter': 1 documents, 3 hits

2.'和': 3 documents, 15 hits

3.'opera': 1 documents, 25 hits

4.'都': 2 documents, 4 hits

5.'提供': 0 documents, 0 hits

6.'了': 3 documents, 18 hits

7.'搜索': 2 documents, 5 hits

8.'服务': 1 documents, 1 hits

$/usr/local/coreseek/bin/searchd-c etc/csft.conf

##以下为正常开启搜索服务时的提示信息:(csft-4.0版类似)

Coreseek Fulltext 3.2 [ Sphinx 0.9.9-release(r2117)]

Copyright(c) 2007-2010,

Beijing Choice Software Technologies Inc()

using config file'etc/csft.conf'...

listening on all interfaces, port=9312

三,配置coreseek支持mysql数据源

1,配置csft_mysql.conf文件

复制mysql配置文件到coreseek安装目录etc/下(比如/usr/local/coreseek/etc/)

cp/usr/local/src/coreseek-3.2.14/testpack/etc/csft_mysql.conf/usr/local/coreseek/etc/

cd/usr/local/coreseek/etc/

vi csft_mysql.conf

下面加红部分是需要你自己配置的

官方参考文档:数据源配置:mysql数据源

其他数据源请参考官方

==============================================================

#源定义

sourcephperz

{

type= mysql

sql_host=localhost

sql_user=root

sql_pass=xxxx

sql_db=phperz

sql_port= 3306

sql_query_pre= SET NAMES utf8

sql_query=SELECT id,title,descs,status from article

#sql_query第一列id需为整数

#title、content作为字符串/文本字段,被全文索引

sql_attr_uint=status#从SQL读取到的值必须为整数

#sql_attr_timestamp= date_added#从SQL读取到的值必须为整数,作为时间属性

sql_query_info_pre= SET NAMES utf8#命令行查询时,设置正确的字符集

sql_query_info=SELECT* FROM article WHERE id=$id#命令行查询时,从数据库读取原始数据信息

}

#index定义

indexphperz

{

source=phperz#对应的source名称

path=/usr/local/coreseek/var/data/phperz#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

docinfo= extern

mlock= 0

morphology= none

min_word_len= 1

html_strip= 0

#中文分词配置,详情请查看:

charset_dictpath=/usr/local/mmseg3/etc/#BSD、Linux环境下设置,/符号结尾

#charset_dictpath= etc/#Windows环境下设置,/符号结尾,最好给出绝对路径,例如:C:/usr/local/coreseek/etc/...

charset_type= zh_cn.utf-8

}

#全局index定义

indexer

{

mem_limit= 128M

}

#searchd服务定义

searchd

{

listen= 9312

read_timeout= 5

max_children= 30

max_matches= 1000

seamless_rotate= 0

preopen_indexes= 0

unlink_old= 1

pid_file=/usr/local/coreseek/var/log/searchd_mysql.pid#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

log=/usr/local/coreseek/var/log/searchd_mysql.log#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

query_log=/usr/local/coreseek/var/log/query_mysql.log#请修改为实际使用的绝对路径,例如:/usr/local/coreseek/var/...

}

==============================================================

2,建立索引

路经部分需要改成你自己的地址

/usr/local/coreseek/bin/indexer-c/usr/local/coreseek/etc/csft_mysql.conf--all

可能出现的错误

ERROR: index'phperz': sql_connect: Can't connect to local MySQL server through socket'/var/lib/mysql/mysql.sock'(2)(DSN=mysql://root:***@localhost:3306/phperz).

这是因为mysql的sock文件路经不正确导致的.

确认一下你的mysql.sock路经,建立一个软连接,比如

ln-s/tmp/mysql.sock/var/lib/mysql/mysql.sock

四,coreseek+php使用方式

复制安装止录下的/usr/local/src/coreseek-3.2.14/testpack/api/sphinxapi.php文件到你的项目里

你的程序里include sphinxapi.php

php使用方法见/usr/local/src/coreseek-3.2.14/testpack/api/test.php

另附我的使用方法:

===============================================================

$wd= trim($_GET['wd']);

include_once(JF_PATH./config/sph_cfg.php);

include_once(JF_PATH./include/sphinxapi.php);

$cl= new SphinxClient();

$cl-SetServer(SPH_SERVER_HOST, SPH_SERVER_POST);

$cl-SetConnectTimeout(3);

$cl-SetArrayResult(true);

$cl-SetMatchMode(1);

$cl-SetFilter(status, array(1));

$cl-SetLimits(0, 10);

$res=$cl-Query($wd, phperz_www);

if($res['matches']){

$rownum=$res['total'];

foreach($res['matches'] as$k=$v){

$re=$this-db-get_one(select* from article where id=.$v['id']);

if(!empty($re)){

$list[]=$re;

}

}

}

print_r($list);

===============================================================

五,coreseek日常维护

启动

/usr/local/coreseek/bin/searchd-c/usr/local/coreseek/etc/csft_mysql.conf

停止

/usr/local/coreseek/bin/searchd-c/usr/local/coreseek/etc/csft_mysql.conf--stop

建立索引

/usr/local/coreseek/bin/indexer-c/usr/local/coreseek/etc/csft_mysql.conf--all

重建索引

/usr/local/coreseek/bin/indexer-c/usr/local/coreseek/etc/csft_mysql.conf--all--rotate

你需要把启动命令加到开机自启动里

把重建索引命令加到计划任务里每天执行

本文为phperz原创,转载请注明出处.

Centos系统 ip命令使用方法

[root@Linux~]# ip [option] [动作] [命令]

参数:

option:设定的参数,主要有:

-s:显示出该设备的统计数据(statistics),例如总接受封包数等;

动作:就是是可以针对哪些网络参数进行动作,包括有:

link:关于设备(device)的相关设定,包括 MTU, MAC地址等等

addr/address:关于额外的 IP设定,例如多 IP的实现等等;

route:与路由有关的相关设定

上面的语法我们可以知道, ip除了可以设定一些基本的网络参数之外,还能够进行额外的 IP设定,包括多 IP的实现,真是太完美了!下面我们就分三个部分(link, addr, route)来介绍这个 ip命令。

关于设备(device)的相关设定: ip link

ip link可以设定与设备(device)有关的相关设定,包括 MTU以及该网络设备的 MAC等等,当然也可以启动(up)或关闭(down)某个网络设备。整个语法是这样的:

[root@linux~]# ip [-s] link show==单纯的查阅该设备相关的信息

[root@linux~]# ip link set [device] [动作与参数]

参数:

show:仅显示出这个设备的相关内容,如果加上-s会显示更多统计数据;

set:可以开始设定项目, device指的是 eth0, eth1等等设备代号;

动作与参数:包括以下动作:

up|down:启动(up)或关闭(down)某个设备,其他参数使用预设的以太网参数;

address:如果这个设备可以更改 MAC,用这个参数修改;

name:给予这个设备一个特殊的名字;

mtu:设置最大传输单元。

范例一:显示出所有的设备信息

[root@linux~]# ip link show

1: lo: LOOPBACK,UP,10000 mtu 16436 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth0: BROADCAST,MULTICAST,UP,10000 mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

3: sit0: NOARP mtu 1480 qdisc noop

link/sit 0.0.0.0 brd 0.0.0.0

[root@linux~]# ip-s link show eth0

2: eth0: BROADCAST,MULTICAST,UP,10000 mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

RX: bytes packets errors dropped overrun mcast

484011792 2247372 0 0 0 0

TX: bytes packets errors dropped carrier collsns

2914104290 2867753 0 0 0 0

使用 ip link show可以显示出整个设备的硬件相关信息,如上所示,包括 MAC地址、MTU等等,比较有趣的应该是那个 sit0的设备了,那个 sit0的设备是将IPv4和 IPv6的封包进行转换,对于我们仅使用 IPv4的网络是没有作用的。 lo及 sit0都是主机内部自行设定的。而如果加上-s的参数后,则这个网卡的相关统计信息就会被列出来,包括接收(RX)及传送(TX)的封包数量等等,详细的内容与 ifconfig所输出的结果相同。

范例二:启动、关闭与设定设备的相关信息

[root@linux~]# ip link set eth0 up

#启动eth0这个设备;

[root@linux~]# ip link set eth0 down

#关闭eth0这个设备;

[root@linux~]# ip link set eth0 mtu 1000

#更改 MTU为1000 bytes,单位就是 bytes。

更新网卡的 MTU使用 ifconfig也可以实。如果是要更改『网卡代号、 MAC地址的信息』的话,那可就得使用 ip了,设定前需要先关闭该网卡,否则会不成功。如下所示:

范例三:修改网卡代号、MAC等参数

[root@linux~]# ip link set eth0 name vbird

SIOCSIFNAME: Device or resource busy

#因为该设备目前是启动的,所以不能这样做设定。你应该要这样做:

[root@linux~]# ip link set eth0 down==关闭设备

[root@linux~]# ip link set eth0 name vbird==重新设定

[root@linux~]# ip link show==查看信息

2. vbird: BROADCAST,MILTICASE mtu 900 qdisc pfifo_fast qlen 1000

link/ehter 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff

#呵呵,连网卡代号都可以改变!不过,玩玩后记得改回来啊!

#因为我们的 ifcfg-eth0还是使用原本的设备代号!避免有问题,要改回来

[root@linux~]# ip link set vbird name eth0==设备改回来

[root@linux~]# ip link set eth0 address aa:aa:aa:aa:aa:aa

[root@linux~]# ip link show eth0

#如果你的网卡支持MAC更改的话,

#那么上面这个命令就可以更改你的网卡MAC了!

#不过,还是那句老话,测试完之后请立刻改回来!

在这个设备的硬件相关信息设定,上面包括 MTU, MAC以及传输的模式等等,都可以在这里设定。有趣的是那个 address的项目,那个项目后面接的可是MAC地址而不是IP地址很容易搞错啊!切记切记!更多的硬件参数可以使用 man ip查阅一下与 ip link有关的设定。

关于额外的 IP相关设定: ip address

如果说 ip link是与 OSI七层模型的第二层数据链路层有关的话,那么 ip address(ip addr)就是与第三层网络层有关的了。主要是在设定与 IP有关的各项参数,包括 netmask, broadcast等等。

[root@linux~]# ip address show==查看IP参数

[root@linux~]# ip address [add|del] [IP参数] [dev?备名] [相关参数]

参数:

show:单纯的显示出设备的 IP信息;

add|del:进行相关参数的增加(add)或删除(del)设定,主要有:

IP参数:主要就是网域的设定,例如 192.168.100.100/24之类的设定;

dev:这个 IP参数所要设定的设备,例如 eth0, eth1等等;

相关参数:如下所示:

broadcast:设定广播位址,如果设定值是+表示让系统自动计算;

label:该设备的别名,例如eth0:0;

scope:这个设备的领域,通常是以下几个大类:

global:允许来自所有来源的连线;

site:仅支持IPv6,仅允许本主机的连接;

link:仅允许本设备自我连接;

host:仅允许本主机内部的连接;

所以当然是使用 global了。预设也是 global!

范例一:显示出所有设备的 IP参数:

[root@linux~]# ip address show

1: lo: LOOPBACK,UP,10000 mtu 16436 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

inet6::1/128 scope host

valid_lft forever preferred_lft forever

2: eth0: BROADCAST,MULTICAST,UP,10000 mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:50:fc:22:9a:cb brd ff:ff:ff:ff:ff:ff

inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0

inet6 fe80::250:fcff:fe22:9acb/64 scope link

valid_lft forever preferred_lft forever

3: sit0: NOARP mtu 1480 qdisc noop

link/sit 0.0.0.0 brd 0.0.0.0

下面我们进一步来新增虚拟的网络设备:

范例二:新增一个设备,名称假设为 eth0:vbird

[root@linux~]# ip address add 192.168.50.50/24 broadcast+/

dev eth0 label eth0:vbird

[root@linux~]# ip address show eth0

2: eth0: mtu 1500 qdisc pfifo_fast qlen 1000

link/ether 00:40:d0:13:c3:46 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0

inet 192.168.50.50/24 brd 192.168.50.255 scope global eth0:vbird

inet6 fe80::240:d0ff:fe13:c346/64 scope link

valid_lft forever preferred_lft forever

#看上面的输出多出了一行,增加了新的设备,名称是 eth0:vbird

#至于那个 broadcast+也可以写成 broadcast 192.168.50.255。

[root@linux~]# ifconfig

eth0:vbir Link encap:Ethernet HWaddr 00:40:D0:13:C3:46

inet addr:192.168.50.50 Bcast:192.168.50.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Interrupt:5 Base address:0x3e00

#如果使用 ifconfig就能够看到这个怪东西了!

范例三:将刚刚的设备删除

[root@linux~]# ip address del 192.168.50.50/24 dev eth0

#删除比较简单。

--------------------------------------------------------------------------------

关于路由的设定: ip route

这个项目就是路由的查看与设定。事实上ip route的功能几乎与 route这个命令一样,但是,它还可以进行额外的参数设置,例如 MTU的规划等等,相当的强悍啊!

[root@linux~]# ip route show==单纯的显示出路由的设定

[root@linux~]# ip route [add|del] [IP或网域] [via gateway] [dev设备]

参数:

show:单纯的显示出路由表,也可以使用 list;

add|del:增加(add)或删除(del)路由;

IP或网域:可使用 192.168.50.0/24之类的网域或者是单纯的 IP;

via:从那个 gateway出去,不一定需要;

dev:由那个设备连出去,需要;

mtu:可以额外的设定 MTU的数值;

范例一:显示出目前的路由资料

[root@linux~]# ip route show

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.2

169.254.0.0/16 dev eth1 scope link

default via 192.168.1.254 dev eth1

如上表所示,最简单的功能就是显示出目前的路由信息,其实跟 route这个命令相同。必须注意的几点:

proto:此路由的路由协定,主要有 redirect, kernel, boot, static, ra等,其中 kernel指的是直接由核心判断自动设定。

scope:路由的范围,主要是 link,是与本设备有关的直接连接。

再来看一下如何进行路由的增加与删除:

范例二:增加路由,主要是本机直接可沟通的网域

[root@linux~]# ip route add 192.168.5.0/24 dev eth0

#针对本机直接沟通的网域设定好路由,不需要透过外部的路由器

[root@linux~]# ip route show

192.168.5.0/24 dev eth0 scope link

....以下省略....

范例三:增加可以通往外部的路由,需透过 router;

[root@linux~]# ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0

[root@linux~]# ip route show

192.168.5.0/24 dev eth0 scope link

....其他省略....

192.168.10.0/24 via 192.168.5.100 dev eth0

#仔细,因为我有 192.168.5.0/24的路由存在(与我的网卡直接相关),

#所以才可以将 192.168.10.0/24的路由丢给 192.168.5.100

#那部主机来帮忙传递!与之前提到的 route命令是一样的限制!

范例四:增加预设路由

[root@linux~]# ip route add default via 192.168.1.2 dev eth0

#那个 192.168.1.2就是我的预设路由器(gateway);

#记住,只要一个预设路由就OK了;

范例五:删除路由

[root@linux~]# ip route del 192.168.10.0/24

[root@linux~]# ip route del 192.168.5.0/24

事实上,这个 ip的命令实在是太博大精深了!刚接触 Linux网络的朋友,可能会看到有点晕!您先会使用 ifconfig, ifup, ifdown与 route即可,等以后有经验了之后,再继续回来玩 ip这个好玩的命令吧!有兴趣的话,也可以自行参考 ethtool这个命令!

阅读剩余
THE END