您的位置:首页 > 理论基础 > 计算机网络

Linux网络属性配置

2016-03-24 10:20 585 查看
linux 如何连网,且与其他网络的主机怎样通信?

解决方案一:ip命令:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns }

改变设备接口的属性 ip link set dev NAME (default)
注:指明要管理的设备,dev关键字可省略;
up和down:
multicast on或multicast off:启用或禁用多播功能;
name NAME:重命名接口
tu NUMBER:设置MTU的大小,默认为1500;
netns NAME:ns为namespace,用于将接口移动到指定的网络名称空间;






显示设备的属性 ip link show 可以指定显示某个设备的属性






管理网络名称空间 ip netns list:列出所有的netns

ip netns add NAME:创建指定的netns
ip netns del NAME:删除指定的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令

增加ip地址 ip addr add IFADDR dev IFACE

[label NAME]:为额外添加的地址指明接口别名;
[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
[scope SCOPE_VALUE]:global:全局可用;link:接口可用;

删除ip地址 ip addr delete IFADDR dev IFACE



显示接口的ip地址 ip addr list [IFACE]:显示接口的地址;



清除接口的所有ip地址 ip addr flush dev IFACE

为主机新增路由条目 ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]

示例:# ip route add 192.168.0.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100

# ip route add default via GW



为主机删除路由条目 ip route del TYPE PRIFIX

示例:# ip route delete 192.168.1.0/24

显示网络接口的路由条目 ip route show
清空本机网络接口的路由条目 ip route flush

ip route get TYPE PRIFIX

示例:ip route get 192.168.0.0/24

注:以上均是命令行下配置,能够马上生效。重启后会失效。





解决方案:更改配置文件
配置文件:
改ip的配置文件:IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE 注:IFACE:接口名称
ifcfg-IFACE配置文件参数
DEVICE:此配置文件对应的设备的名称;
ONBOOT:在系统引导过程中,是否激活此接口;
UUID:此设备的惟一标识;
IPV6INIT:是否初始化IPv6;
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
TYPE:接口类型,常见的有Ethernet, Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
IPADDR: IP地址;
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
GATEWAY:默认网关;
USERCTL:是否允许普通用户控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向;默认为允许;
HWADDR:设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制接口; 一般都禁用掉

改路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE
支持两种配置方式,但不可混用;
(1) 每行一个路由条目:
TARGET via GW
例如:172.18.0.0/16 via 0.0.0.0
(2) 每三行一个路由条目:
ADDRESS0=172.18.0.0
NETMASK0=255.255.0.0
GATEWAY0=0.0.0.0
图形化界面更改:
(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
注:以上更改以后,都要重启一下网络服务network
CentOS 6: service SERVICE {start|stop|restart|status}
CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]

网络属性查看类命令介绍:

ss命令:ss [options] [ FILTER ]
选项:
-t:TCP协议的相关连接
-u:UDP相关的连接
-w:raw socket相关的连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
常用组合:-tan, -uan, -tnl, -unl, -tunlp

非常好用的“过滤器”FILTER := [ state TCP-STATE ] [ EXPRESSION ]

TCP的常见状态STATE:
LISTEN:监听
ESTABLISEHD:建立的连接
FIN_WAIT_1:
FIN_WAIT_2:
SYN_SENT:
SYN_RECV:
CLOSED:
~]# ss -tan state ESTABLISHED





EXPRESSION:
dport = 目标端口
sport = 源端口
示例:'( dport = :22 or sport = :22)'
~]# ss -tan '( dport = :22 or sport = :22 )'






给接口配置多个地址:
ip addr之外,ifconfig或配置文件都可以;

(1) ifconfig IFACE_LABEL IPADDR/NETMASK

IFACE_LABEL: eth0:0, eth0:1, ...

(2) 为别名添加配置文件;
DEVICE=IFACE_LABEL
BOOTPROTO:网上别名不支持动态获取地址;
static, none

nmcli命令:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }

device - show and manage network interfaces
COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }

connection - start, stop, and manage network connections
COMMAND := { show | up | down | add | edit | modify | delete | reload | load }
modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>

如何修改IP地址等属性:
# nmcli conn modify IFACE [+|-]setting.property value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
manual
课外作业:nmap, ncat, tcpdump命令;

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
知识拓展
ifcfg命令家族: ifconfig, route, netstat

ifconfig命令:接口及地址查看和管理
ifconfig [INTERFACE]
# ifconfig -a:显示所有接口,包括inactive状态的接口;

ifconfig interface [aftype] options | address ...
# ifconfig IFACE IP/MASK [up|down]
# ifconfig IFACE IP netmask NETMASK
options:
[-]promisc 混杂模式

管理IPv6地址:
add addr/prefixlen
del addr/prefixlen

route命令:路由查看及管理

路由条目类型:
主机路由:目标地址为单个IP;
网络路由:目标地址为IP网络;
默认路由:目标为任意网络,0.0.0.0/0.0.0.0

查看:
# route -n
添加:
route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If]

示例: route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1
route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1
route add default gw 192.168.10.1

删除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
示例: route del -net 10.0.0.0/8 gw 192.168.10.1
route del default

netstat命令:

显示路由表:netstat -rn
-r:显示内核路由表
-n:数字格式

显示网络连接:
netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t:TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine);
-u:UDP相关的连接
-w:raw socket相关的连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示IP和Port;
-e:扩展格式
-p:显示相关的进程及PID;

常用组合:
-tan, -uan, -tnl, -unl, -tunlp

传输层协议:
tcp:面向连接的协议;通信开始之前,要建立一个虚链路;通信完成后还要拆除连接;
udp:无连接的协议;直接发送数据报文;

显示接口的统计数据:
所有接口:netstat -i
指定接口:netstat -I<IFace>

ifup/ifdown命令:
注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;

配置主机名:
查看:hostname
配置:hostname HOSTNAME 当前系统有效,重启后无效;

hostnamectl命令(CentOS 7):
hostnamectl status:显示当前主机名信息;
hostnamectl set-hostname:设定主机名,永久有效;

配置文件:/etc/sysconfig/network
HOSTNAME=<HOSTNAME>

注意:此方法的设置不会立即生效; 但以后会一直有效;

配置DNS服务器指向:

配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP

如何测试(host/nslookup/dig):
# dig -t A FQDN
FQDN --> IP

# dig -x IP
IP --> FQDN

本文出自 “学而思” 博客,请务必保留此出处http://xwj4611.blog.51cto.com/7126230/1754591
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: