A-A+

linux网络基础和相关设置命令详解

2016年02月18日 站长资讯 暂无评论

学习linux,网络基础尤为关键,这是架设服务器的根基,没有网络,就没有服务。

简单介绍下网络常用的命令
ifconfig:传统的配置网络接口的命令
route:主要是配置路由功能
ip:集成了网络接口和路由配置,建议使用这个命令
hostname:设置主机名
ping:测试网络的连通性
host:dns信息查询
nslookup:dns解析查询
tcpdump:抓包工具,类似wireshark
netstat:查看网络连接状态
ss:查看网络连接状态,推荐使用

ip路由

网络属于内核的功能,网卡信息内核识别的。

网卡命名
网卡在centos6命名规则的配置文件:
/etc/udev/rules.d/70-persistent-net.rules7
可以在这里修改网卡的名字:
clip_image002

ip地址的分类和设置模式:

私有地址:
A类10.0.0.0/8
B类172.16.0.0/16-172.31.0.0/16
C类 192.168.0.0/24-192.168.255.0/24
A类: 255.0.0.0, 8:
0 000 0001 - 0 111 1111
127个A类,127用于回环,1-126
2^7-1个A类
容纳多少个主机:2^24-2
主机位全0:网络地址
主机位全1:广播地址
B类:255.255.0.0, 16
10 00 0000- 10 11 1111
128-191
129.1.0.0.
130.1.0.0
64个B类,2^14个B类网
容纳多少个主机:2^16-2
C类:255.255.255.0, 24
110 0 0000 - 110 1 1111
192-223
32个C类, 2^21个C类网
容纳多个少个主机:2^8-2
D类:
1110 0000 - 1110 1111
224-239
E类:
240-255 用于科学实验

169.254.0.0
上面这个是当dhcp没有生效之后会自动随机获取的地址,是ICANN组织预留的,和本地私有Ip地址一样(windows)

网络服务脚本:
Usage: /etc/init.d/network {start|stop|status|restart|reload|force-reload}

网络配置文件:
网络功能配置文件:
/etc/sysconfig/network
NETWORKING=yes #是否开启网络功能
HOSTNAME=localhost.localdomain #主机名

网卡配置文件:
/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME
DEVICE=: 关联的设备名称,要与文件名的后半部“INTERFACE_NAME”保持一致;
BOOTPROTO={static|none|dhcp|bootp}: 引导协议;要使用静态地址,使用static或none;dhcp表示使用DHCP服务器获取地址;
IPADDR=: IP地址
NETMASK=:子网掩码
GATEWAY=:设定默认网关;
ONBOOT=:开机时是否自动激活此网络接口;
HWADDR=: 硬件地址,要与硬件中的地址保持一致;可省;
USERCTL={yes|no}: 是否允许普通用户控制此接口;
PEERDNS={yes|no}: 是否在BOOTPROTO为dhcp时接受由DHCP服务器指定的DNS地址;
DNS1= : dns服务器地址,也可以配置在这里
DNS2=

域名配置文件:
/etc/resolv.conf
nameserver DNS_IP_1
nameserver DNS_IP_2
例子:
[root@localhost ~]# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 114.114.114.114
路由配置文件:
/etc/sysconfig/network-scripts/route-ethX
默认是没有的,需要手动新建文件
注意:1 .对应的网络nexthop一定要是这个ethX对应接口IP的网络,不然无法生效
2.由于默认网关是当配置ip的时候则会生效,假如2个接口,两个网关,建议
route add default gw nexthop #来手动指定
或者是一个接口不要设置网关即可
添加格式一:
DEST via NEXTHOP

例子
[root@localhost network-scripts]# vi route-eth0
default via 192.168.80.2
192.168.10.0/24 via 172.16.0.1

添加格式二:
ADDRESS0=
NETMASK0=
GATEWAY0=
例子:
[root@localhost network-scripts]# vi route-eth0
ADDRESS0=192.168.20.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.80.100
1.1 ifconfig

ifconfig
ifconfig命令
功能:配置网络接口ip,mtu等相关网卡信息
语法:
ifconfig [ethX]
ifconfig ethX IP/MASK [up|down]
配置的ip地址立即生效,但是重启则失效
192.168.1.1/24
192.168.1.1/255.255.255.0
常用的选项
--a: 显示所有接口的配置住处
默认是up的网络接口
设置虚拟辅助网卡:
ifconfig eth0:1 192.168.1.1/24 up
删除虚拟辅助网卡
ifconfig eth0:1 down

例子:
1.显示开启的网卡up
ifconfig
2.显示所有的网卡
ifconfig –a
3显示特定的网卡
ifconfig eth0
4.设置网卡ip地址
ifconfig eth0 192.168.1.1/24 up
ifconfig eth0 192.168.1.10/255.255.255.0 up
1.2 route

route
route命令
功能:配置和查看路由(临时生效)
语法:
查看路由 route –n
添加路由 route add {-host|-net} DEST gw NEXT-HOP [dev ethX]
删除路由 route del {-host|-net} DEST
其中default == 0.0.0.0/0

例子:
1.查看路由
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.80.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth1
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
2.添加主机路由
[root@localhost ~]# route add -host 192.168.10.8 gw 172.16.0.1
3.添加网络路由
[root@localhost ~]# route add -net 192.168.100.0/24 gw 172.16.0.1 dev eth1
4.添加默认路由
[root@localhost ~]# route add default gw 192.168.80.2

5.删除主机路由,网络路由和默认路由
[root@localhost ~]# route del default
[root@localhost ~]# route del -host 192.168.10.8
[root@localhost ~]# route del -net 192.168.100.0
[root@localhost ~]# route del -net 192.168.100.0/24

1.3 ip

ip命令
功能:集成ifconfig和route的功能
语法:
ip [ OPTIONS ] OBJECT { COMMAND | help }
常用object:
link:网络接口属性
addr:协议地址
route:路由
link
show
ip [–s]link show [dev] #显示接口统计信息
set
ip link set dev [up|down] #启动关闭接口
ip link set dev mtu length #设置接口IP的mtu大小,以太网要小于1500
ip link set dev name devname #设置dev的名字
注意:修改网卡名字,需要先关闭网卡,修改完成,重启
addr

add
ip addr add ADDRESS dev DEV
broadcast {地址|+} #+是有系统根据这个设置自行计算,如果不指定,则广播地址为全0
label name 设备设置一个别名,例如eth0:0
scope :
global:允许所有的连接
site:只允许ipv6,来自本机的连接
link :只允许本设备的自我连接
host:只允许本机内部连接
默认是这个globe,通过ip addr show
ip addr add 172.16.0.1/16 dev eth2 broadcast 172.16.255.255
ip addr add 172.16.0.2/16 broadcast 172.16.255.255 dev eth2 label eth2:1# secondary地址
del
ip addr del ADDRESS dev DEV
broadcast {地址|+} #+是有系统根据这个设置自行计算
label name 设备设置一个别名,例如eth0:0
scope :
global:允许所有的连接
site:只允许ipv6,来自本机的连接
link :只允许本设备的自我连接
host:只允许本机内部连接
默认是这个global 肯定使用global
删除地址只要能唯一指定该地址即可,不需要写出全命令
ip addr del 172.16.0.2/16 dev eth2
ip addr del 172.16.0.2/16 broadcast 172.16.255.255 dev eth2 label eth2:1
show
ip addr show dev DEV
利用这个就可以查询到一个网卡的辅助ip了ip addr show dev eth0
或者是这个ifconfig可以查询到
ip addr show
ip addr show eth0
flush 删除
ip addr flush dev DEV to PREFIX
ip addr flush dev eth0 to 10.28.28/24 即删除了
route

show
ip route show|list
add
ip addr add DEST via NEXTHOP dev DEV
ip route add 192.168.10.0/24 via 192.168.80.8 dev eth0
ip route add default via 192.168.80.2
注意:这个下一跳一定要和这个出接口是同个网段的,默认路由不用指定出接口
del
ip addr del DEST
ip route del 192.168.10.0/24
ip route del default
replace
ip addr replace DEST via NEXTHOP dev DEV
ip route replace 192.168.10.0/24 via 192.168.80.80 dev eth0

常用的选项
-s :统计更多输出数据 == ifconfig eth0
例子: http://www.luyouqiwang.com/dz
link的设置
1.设置接口的mtu值为1480
[root@fireward ~]# ip link set dev1 mtu 1488
2.显示接口的信息
[root@fireward ~]# ip link show eth1
3: eth1: mtu 1488 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:3e:58:cd brd ff:ff:ff:ff:ff:ff
3.修改eth1的名字为mydev,并修改mtu为1500
[root@fireward ~]# ip link set dev eth1 down
[root@fireward ~]# ip link set eth1 name mydev
[root@fireward ~]# ip link show mydev
3: mydev: mtu 1488 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:3e:58:cd brd ff:ff:ff:ff:ff:ff
[root@fireward ~]# ip link set mydev mtu 1500
注意:修改了网卡名字之后,通过服务service network restart重启对其无效,可以手动重启。

标签:

给我留言