邢栋博客

邢栋博客,Action博客,记录工作和生活中的点点滴滴

linux ip命令详解

ip命令详解

1.关于接口设备的相关设置 ip link ,与OSI七层协议的第二层数据链路层有关

ip [-s] link show //单纯的查看该设备的相关信息
ip link set [device] [动作与参数]
选项与参数
show:仅显示出这个设备的相关属性,-s会显示更多统计数据
set:可以设置项目,device指的是eth0、eth1等设备名称
动作与参数,如下
up|down:启动(up)或关闭(down)某个接口,其他参数默认使用的以太网
address:如果这个设备可以更改mac的话,用这个参数修改
name:给予这个设备一个特殊的名字
mtu:就是最大传输单元

范例一 显示本机所有接口的信息
ip link show
ip -s link show eth0

范例二 启动关闭与配置设备的相关信息
ip link set eth0 up //启动eth0这个设备
ip link set eth0 down //关闭eth0这个设备
ip link set eth0 mtu 1000 //更改mtu的值,达到1000 bytes

范例三 修改网卡的名称、mac等参数
ip link set eth0 down
ip link set eth0 name action
ip link show
ip link set eth0 address aa:aa:aa:aa:aa:aa


2.关于额外ip的相关设定 ip address,与OSI七层协议的第三层网络层有关
ip address show //查看ip参数
ip address [add|del] [IP参数] [dev 设备名] [相关参数]
选项参数
show:仅显示接口的ip信息
add|del 进行相关参数的增加(add)或删除(del)设置,主要有
IP参数:主要就是网络的设置,例如192.168.100.100/24之类的设置
dev:这个是ip参数所要设置的接口,例如 eth0 eth1等
broadcast:广播地址
label:设备的别名
scope:下面是这个选项的参数
global:允许所有来源的连接
site:仅支持IPV6,仅允许本主机的连接
link:仅允许本设备自我连接
host:仅允许本主机内部连接

范例一 显示出所有接口的IP参数
ip address show

范例二 添加一个接口,名称加设备eth0:action
ip address add 192.168.50.50/24 broadcast + dev eth0 label eth0:action

范例三 删除刚才的接口
ip address del 192.168.50.50/24 dev eth0


3.关于路由的相关设定 ip route
ip route show //单纯的显示出路由的设置
ip route [add|del] [IP或网络号] [via gateway] [dev 设备]
选项与参数
show:单纯的显示出路由表,也可以使用list
add|del:添加或删除路由
IP或网络:可使用192.168.50.50/24之类的网络或者单纯的IP地址
via:从哪个gateway出去,不一定需要
dev:由那个设备出去
mtu:可以额外的设置MTU的数值

范例一 显示出当前的路由信息
ip route show
范例二 添加路由,主要是本机可沟通的网络
ip route add 192.168.5.0/24 dev eth0
范例三 增加可以通过外部的路由,需通过router
ip route add 192.168.10.0/24 via 192.168.5.100 dev eth0
范例四 添加默认路由
ip route add default via 192.168.1.254 dev eth0
范例五 删除路由
ip route del 192.168.10.0/24
ip route del 192.168.5.0/24


linux route命令详解

route命令详解

route [-nee]
route add [-net][-host] [网络或主机] netmask [mask] [gw|dev]
route del [-net][-host] [网络或主机] netmask [mask] [gw|dev]

查看的参数
-n:不要使用通信协议或主机名,直接使用IP或port number
-ee:显示更详细的信息
增加add与删除del路由的相关参数
-net:表示后面接的路由为一个网络
-host:表示后面接的为连接到单部主机的路由
netmask:与网络相关,可以设置netmask决定网络的大小
gw:gateway的简写,后面接的是ip的数值,与dev不同
dev:如果只是要指定由那一块网卡连接出去,则使用这个设置,后面接eth0等

范例1:单纯的查看路由状态
route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.57.204.0    0.0.0.0         255.255.252.0   U     0      0        0 eth1
10.51.104.0     0.0.0.0         255.255.248.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1003   0        0 eth1
172.16.0.0      10.51.111.247   255.240.0.0     UG    0      0        0 eth0
100.64.0.0      10.51.111.247   255.192.0.0     UG    0      0        0 eth0
10.0.0.0        10.51.111.247   255.0.0.0       UG    0      0        0 eth0
0.0.0.0         123.57.207.247  0.0.0.0         UG    0      0        0 eth1

route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
123.57.204.0    *               255.255.252.0   U     0      0        0 eth1
10.51.104.0     *               255.255.248.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
link-local      *               255.255.0.0     U     1003   0        0 eth1
172.16.0.0      10.51.111.247   255.240.0.0     UG    0      0        0 eth0
100.64.0.0      10.51.111.247   255.192.0.0     UG    0      0        0 eth0
10.0.0.0        10.51.111.247   255.0.0.0       UG    0      0        0 eth0
default         123.57.207.247  0.0.0.0         UG    0      0        0 eth1


route -n和route输出结果不同,-n参数会显示出ip,而只使用route,显示的是"主机名",解析会有些慢,default=0.0.0.0/0.0.0.0

Destination、Genmask:这两个参数分别是network与netmask,
Gateway:该网络是通过那个gateway连接出去的,如果显示0.0.0.0表示该路由是直接由本级传送,也就是可以通过局域网的mac直接发送,如果显示ip的话,表示该路由需要经过路由器网关的帮忙才能够发送出去。
Flags:共有多个标志,代表的意义如下
U(route is up):该路由是启动的
H(target is a hot):目标是一台主机(ip)而非网络
G(use gateway):需要通过外部的主机来传递数据包
R(reinstate route for dynamic routing):使用动态路由时,恢复路由信息的标志
D(dynamically installed by daemon or redirect):动态路由
M(modified from routing daemon or redirect):
!(reject route):这个路由将不会被接受(用来阻止不安全的网络)

路由排列顺序,依序由小网络(Class C)逐渐到大网络,最后则是默认路由


范例二 路由的增加与删除
route del -net 169.254.0.0 netmask 255.255.0.0 dev eht0
删除168.254.0.0这个网络,删除的时候信息都要写入,netmask,dev等参数

route add -net 192.168.100.0 netmask 255.255.255.0 dev eth0
增加一条路由,这个路由的设置必须要能够与你的网络互通

route add default gw 192.168.1.250 
增加默认路由

一般一个新的主机环境
ifconfig eht0 192.168.1.100;route add default gw 192.1687.1.254


私房菜服务器架设篇之连接internet读书笔记

1.观察内核所捕捉到的网卡信息
dmesg |grep -in eth

查看相关的设备芯片数据
lspci |grep -i ethernet

2.观察网卡的模块

lsmod |grep 1000

modinfo e1000

3.编译网卡驱动程序

a.下载驱动程序
b.解压与编译
tar -zxvf e1000.tar.gz -C /usr/local/src
cd /usr/local/src/e1000/src
make install
c.模块的测试与处理
1.先删除已经加载在内存中的旧模块
rmmod e1000 
2.加载新模块
modprobe e1000
modinfo e1000
d.设置开机启动网卡模块
vim /etc/modprobe.d/ether.conf
alias eth0 e1000
alias eth1 e1000
sync;reboot

e.尝试配置ip
ifconfig eth0 192.168.1.1000

4.Linux网络相关配置文件
IP,Netmask,DHCP,Gateway等
/etc/sysconfig/network-scripts/ifcfg-eth0
主机名
/etc/sysconfig/network
DNS IP
/etc/resolv.conf
私有IP对应的主机名
/etc/hosts
其他
/etc/services  //这个文件记录构建在TCP/IP上面的各种协议,包括HTTP、FTP、SSH、Telnet等服务所定义的port number
/etc/protocols //这个文件是定义在IP数据包协议的相关数据,包括ICMP/TCP/UDP的数据包协议的定义等。
启动命令
/etc/init.d/network restart
ifup eth0(ifdown eth0) //关闭或者启动某个网络接口


composer安装
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php

php -r "unlink('composer-setup.php');"

加入局部命令
php composer-setup.php --install-dir=bin --filename=composer
加入全局命令(常用)
mv composer.phar /usr/local/bin/composer

brew link openssl
brew unlink openssl --force  && brew link openssl --force
brew安装mysql出现Error: Operation already in progress for mysql

mac环境下,我使用brew安装mysql,过程中,我终止安装,当在安装的时候出现Error: Operation already in progress for mysql

解决办法

执行jobs命令,查看后台运行的任务,执行kill %你的任务序号,如果 kill %2


phpize版本问题

我的php环境是5.5,升级5.6之后,编译扩展的时候 最后执行make install 后,扩展安装到了5.5下面

最后解决办法

/usr/local/bin/phpize --clean  //我的phpize的路径,最好在执行./configure --with-php-config=/usr/local/bin/php-config,也用绝对路径


LINUX之SUID/SGID/SBIT 权限设定笔记
SUID/SGID/SBIT 权限设定

4 为 SUID = u+s
2 为 SGID = g+s
1 为 SBIT = o+t

setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码.

当 s 这个标志出现在文件拥有者的 x 权限上时,如上 /usr/bin/passwd 这个文件的权限状态,此时就被称为 Set UID,简称为 SUID 的特殊权限。基本上SUID有这样的限制与功能:

SUID 权限仅对二进位程序(binary program)有效(不能够用在 shell script 上面)
运行者对於该程序需要具有 x 的可运行权限
本权限仅在运行该程序的过程中有效 (run-time)
运行者将具有该程序拥有者 (owner) 的权限


setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组. 

与 SUID 不同的是,SGID 可以针对文件或目录来配置!
如果是对文件来说, SGID 有如下的功能:
SGID 对二进位程序有用,程序运行者对於该程序来说,需具备 x 的权限
运行者在运行的过程中将会获得该程序群组的权限
如果针对的是目录,SGID 有如下的功能:

使用者若对於此目录具有 r 与 x 的权限时,该使用者能够进入此目录;
使用者在此目录下的有效群组(effective group)将会变成该目录的群组;



sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于该文件所属的组是否对该用户具有写权限. 
如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 
则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录具有写权限, 也不能删除该文件.

这个 Sticky Bit, SBIT 目前只针对目录有效作用是:

当使用者对於此目录具有 w, x 权限,亦即具有写入的权限时;
当使用者在该目录下创建文件或目录时,仅有自己与 root 才有权力删除该文件
换句话说:当甲这个使用者於 A 目录是具有群组或其他人的身份,并且拥有该目录 w 的权限, 这表示『甲使用者对该目录内任何人创建的目录或文件均可进行 "删除/更名/搬移" 等动作。』 不过,如果将 A 目录加上了 SBIT 的权限项目时, 则甲只能够针对自己创建的文件或目录进行删除/更名/移动等动作,而无法删除他人的文件。

优惠券
广告位-淘宝
最新微语