六、配置网络
跨网络通信:路由
路由分类:
主机路由
网络路由
默认路由
优先级:精度越高,优先级越高
动态主机配置协议DHCP
基本网络配置
将Linux主机接入到网络,需要配置网络相关设置。
一般包括如下内容:
主机名
IP/mask
路由:默认网关
DNS服务器
主DNS服务器
次DNS服务器
第三DNS服务器
网络配置方式
静态指定:
ifcfg: ifconfig, route, netstat
ip: object {link, addr, route}, ss, tc
system-config-network-tui (setup)
配置文件
CentOS 7:新增工具: nmcli, nmtui
动态分配:
DHCP: Dynamic Host Configuration Protocol
配置网络接口
接口命名方式: CentOS 6:
以太网: eth[0,1,2,…]
ppp: ppp[0,1,2,…]
fconfig命令
ifconfig [interface]
# ifconfig -a
# ifconfig IFACE [up|down]
ifconfig interface [aftype] options | address …
# ifconfig IFACE IP/mask [up]
# ifconfig IFACE IP netmask MASK
注意:立即生效;
启用混杂模式: [-]promisc
route命令
路由管理命令
查看: route -n
添加: route add
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
目标: 192.168.1.3 网关: 172.16.0.1
# route add -host 192.168.1.3 gw 172.16.0.1 dev eth0
目标: 192.168.0.0 网关: 172.16.0.1
# route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1 dev eth0
# route add -net 192.168.0.0/24 gw 172.16.0.1 dev
默认路由,网关: 172.16.0.1
# route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.0.1
# route add default gw 172.16.0.1
删除: route del
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
目标: 192.168.1.3 网关: 172.16.0.1
# route del -host 192.168.1.3
目标: 192.168.0.0 网关: 172.16.0.1
# route del -net 192.168.0.0 netmask 255.255.255.0
配置动态路由
通过守护进程获取动态路由
安装quagga包,支持多种格式的RIP、 OSPF和BGP
命令vtysh配置
netstat命令
netstat – Print network connections, routing tables, interface,statistics, masquerade connections, and multicast memberships
显示网络连接:
netstat [–tcp|-t] [–udp|-u] [–raw|-w] [–listening|-l] [–all|-a] [–numeric|-n] [–extend|-e[–extend|-e]] [–program|-p]
-t: tcp协议相关
-u: udp协议相关
-w: raw socket相关
-l: 处于监听状态
-a: 所有状态
-n: 以数字显示IP和端口;
-e:扩展格式
-p: 显示相关进程及PID
常用组合:
-tan, -uan, -tnl, -unl
显示路由表:
netstat {–route|-r} [–numeric|-n]
-r: 显示内核路由表
-n: 数字格式
显示接口统计数据:
netstat {–interfaces|-I|-i} [iface] [–all|-a] [–extend|-e] [–program|-p] [–numeric|-n]
# netstat -i
# netstat -IIFACE
#ifconfig -s eno16777736
ip命令
配置Linux网络属性: ip命令
ip – show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route }
ip link – network device configuration
set dev IFACE
可设置属性:
up and down:激活或禁用指定接口
ifup/ifdown
show [dev IFACE]:指定接口
[up]:仅显示处于激活状态的接口
ip addr { add | del } IFADDR dev STRING
[label LABEL]:添加地址时指明网卡别名
[scope {global|link|host}]:指明作用域
global: 全局可用;
link: 仅链接可用;
host: 本机可用;
[broadcast ADDRESS]:指明广播地址
ip address show – look at protocol addresses
[dev DEVICE]
[label PATTERN]
[primary and secondary]
ip address flush – 使用格式同show
ip addr add 172.16.100.13/16 dev eth0 label eth0:0
ip addr del 172.16.100.13/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
ip route – routing table management
添加路由: ip route add
ip route add TARGET via GW dev IFACE src SOURCE_IP
TARGET:
主机路由: IP
网络路由: NETWORK/MASK
ip route add 192.168.0.0/24 via 172.16.0.1
ip route add 192.168.1.13 via 172.16.0.1
添加网关:
ip route add default via GW dev IFACE
ip route add default via 172.16.0.1
删除路由:
ip route delete
ip route del TARGET
显示路由: ip route show|list
清空路由表:
ip route flush [dev IFACE] [via PREFIX]
ip route flush dev eth0
ss命令
格式: ss [OPTION]… [FILTER]
netstat通过遍历proc来获取socket信息, ss使用netlink与内核tcp_diag模块通信获取socket信息。
选项:
-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x: unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP的常见状态:
tcp finite state machine:
LISTEN: 监听
ESTABLISHED:已建立的连接
FIN_WAIT_1
FIN_WAIT_2
SYN_SENT
SYN_RECV
CLOSED
EXPRESSION:
dport =
sport =
示例:’ ( dport = :ssh or sport = :ssh )’
常用组合:
-tan, -tanl, -tanlp, -uan
常见用法
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详细信息:
网络配置文件
IP、 MASK、 GW、 DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
路由相关的配置文件:/etc/sysconfig/network-scripts/route-IFACE
/etc/sysconfig/network-scripts/ifcfg-IFACE:说明参考/usr/share/doc/initscripts-9.49.30/sysconfig.txt
DEVICE:此配置文件应用到的设备
HWADDR:对应的设备的MAC地址
BOOTPROTO:激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
NM_CONTROLLED: NM是NetworkManager的简写,此网卡是否接受NM控制;建议CentOS6为“ no”
ONBOOT:在系统引导时是否激活此设备
TYPE:接口类型;常见有的Ethernet, Bridge
UUID:设备的惟一标识
IPADDR:指明IP地址
NETMASK:子网掩码
GATEWAY: 默认网关
DNS1:第一个DNS服务器指向
DNS2:第二个DNS服务器指向
USERCTL:普通用户是否可控制此设备
PEERDNS:如果BOOTPROTO的值为“ dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
本地解析器
解析器执行正向和逆向查询
/etc/hosts
本地主机名数据库和IP地址的映像
对小型独立网络有用
通常,在使用DNS前检查
getent hosts 查看/etc/hosts 内容
dns名字解析
/etc/resolv.conf
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
/etc/nsswitch.conf
与/etc/hosts相比优先于DNS
正解: FQDN–>IP
# dig -t A FQDN
# host -t A FQDN
反解: IP–>FQDN
# dig -x IP
# host -t PTR IP
网络配置文件
/etc/sysconfig/network-scripts/route-IFACE
注意:需service network restart 生效
两种风格:
(1) TARGET via GW
如:10.0.0.0/8 via 172.16.0.1
(2) 每三行定义一条路由
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
网卡别名
对虚拟主机有用
将多个IP地址绑定到一个NIC上
eth0:1
eth0:2
eth0:3
ifconfig命令:
ifconfig eth0:0 192.168.1.100/24 up
ifcofig rth0:0 down
ip命令:
ip addr add 172.16.1.2/16 dev eth0
ip addr add 172.16.1.1/16 dev eth0 label eth0:0
ip addr del 172.16.1.1/16 dev eth0 label eth0:0
ip addr flush dev eth0 label eth0:0
设备别名
为每个设备别名生成独立的接口配置文件
关闭NetworkManager服务
ifcfg-ethX:xxx
必须使用静态联网
DEVICE=eth0:0
IPADDR=10.10.10.10
NETMASK=255.0.0.0
ONPARENT=yes
注意: service network restart 生效
参考/usr/share/doc/initscripts-*/sysconfig.txt
网络配置
Linux网络属性配置的tui(text user interface):
system-config-network-tui
setup
注意:记得重启网络服务方能生效
配置当前主机的主机名:
hostname [HOSTNAME]
/etc/sysconfig/network
HOSTNAME=
网卡名称
网络接口识别并命名相关的udev配置文件:/etc/udev/rules.d/70-persistent-net.rules
查看网卡:
dmesg |grep -i eth
ethtool -i eth0
卸载网卡驱动:
modprobe -r e1000
rmmod e1000
装载网卡驱动:
modprobe e1000
原创文章,作者:DYW,如若转载,请注明出处:http://www.178linux.com/44993