每台计算机主机连入internet都必须给主机设定以个合法的IP地址。这些IP参数大概包括IP地址、子网掩码、网关、路由、DNS等。在Linux中,大多数命令配置网络配置都是临时生效,想要网络服务永久有效就必须写入配置文件中,所以有时候更改配置重启主机是为了让内核重读配置文件到内核中,因为配置文件属于用户空间的文件。大多数网络配置都是临时生效。下面我们来了解一些关于Linux中的常用的网络配置命令和配置文件。
IP的相关参数包括
IP/Netmask主要用于确定自身所处的网络,以及对方主机是否与本主机同在一个网络当中。
Gateway(网关)主要用于与外部Internet通信传输口。
Route:(路由)建立网络层通信条目,分为三种类型
(1)、网络路由:目标是一个网络
(2)、主机路由:目标是一个主机
(3)、默认路由:目标是所有非本地网络。
注意:下一跳地址必须是同一网段的地址中。
DNS服务器是用于域名解析。它的数据库中是域名对应的IP地址,来增强网络的通用性。Linux默认有三个
(1)、主DNS服务器
(2)、备用DNS服务器
(3)、第三备用服务器
网络配置方式分为静态指定(静态IP)和动态指定(DHCP服务器分配)。
静态配置地址的方法有以下几种
ifcfg: ifconfig, route, netstat
ip: object {link, addr, route}, ss,
system-config-network-tui(setup)
配置文件
CentOS 7:网络配置工具
nmcli, nmtui, nm-connection-editor
ifcfg命令家族:ifocnfig,route,netstat
ifconfig命令:
ifconfig [interface]
# ifconfig -a:显示所有接口,包括inactive状态的接口
ifconfig interface [iftype] options | address …
#ifconfig IFACE IP/MASK [up]
#ifconfig IFACE IP netmask NETMASK
option
[-]promisc #混杂模式
注意:立即送往内核中的TCP/IP协议栈,并生效。
管理IPv6地址
add addr/prefixlen
del addr/refixlen
ifconfig eth0 10.1.36.6/16 down
ifconfig eth0 192.168.100.1 netmask 255.255.255.0 (netmask是关键字,必须完整格式。立即生效)
ifconfig eth1 promisc #开启混杂模式
ifconfig eth1 -promisc #关闭混杂模式
[root@clod ~]#ifconfig eth0 192.168.100.123/24 #配置IP地址 [root@clod ~]#ifconfig eth0 192.168.100.123 netmask 255.255.255.0 #配置IP地址 都可以
[root@clod ~]#ifconfig eth0 down #断开网卡连接 (相当于拔网线,IP地址只能本机使用) [root@clod ~]#ifconfig eth0 up #启用连接网卡连接 (相当于拔网线,IP地址只能本机使用)
[root@clod ~]#ifconfig eth0 down #怒拔网线 [root@clod ~]#ifconfig eth0 #查看信息,显示未RUNNING eth0 Link encap:Ethernet HWaddr 00:0C:29:00:07:39 inet addr:10.1.36.6 Bcast:10.1.255.255 Mask:255.255.0.0 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:2406 errors:0 dropped:0 overruns:0 frame:0 TX packets:121 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:144360 (140.9 KiB) TX bytes:8098 (7.9 KiB)
[root@clod ~]#ifconfig eth1 #显示单个网卡信息 eth1 Link encap:Ethernet HWaddr 00:0C:29:00:07:43 inet addr:192.168.200.6 Bcast:192.168.200.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe00:743/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6915 errors:0 dropped:0 overruns:0 frame:0 TX packets:4745 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:586838 (573.0 KiB) TX bytes:574276 (560.8 KiB)
[root@clod ~]#ifconfig -a #显示所有网卡接口信息 eth0 Link encap:Ethernet HWaddr 00:0C:29:00:07:39 inet addr:10.1.36.6 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::20c:29ff:fe00:739/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2210 errors:0 dropped:0 overruns:0 frame:0 TX packets:93 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:132600 (129.4 KiB) TX bytes:5906 (5.7 KiB) eth1 Link encap:Ethernet HWaddr 00:0C:29:00:07:43 inet addr:192.168.200.6 Bcast:192.168.200.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe00:743/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:6698 errors:0 dropped:0 overruns:0 frame:0 TX packets:4613 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:568471 (555.1 KiB) TX bytes:557962 (544.8 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:63 errors:0 dropped:0 overruns:0 frame:0 TX packets:63 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5888 (5.7 KiB) TX bytes:5888 (5.7 KiB)
[root@clod ~]#ifdown eth0 #禁用接口 [root@clod ~]#ifconfig eth0 #查看禁用接口 eth0 Link encap:Ethernet HWaddr 00:0C:29:00:07:39 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:2214 errors:0 dropped:0 overruns:0 frame:0 TX packets:93 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:132840 (129.7 KiB) TX bytes:5906 (5.7 KiB)
fiup/ifdown
ifup - bring a network interface up #启用接口 (相当于直接禁用TCP/IP协议,无IP地址) ifdown - take a network interface down #禁用接口 (相当于直接禁用TCP/IP协议,无IP地址)
SYNOPSIS
ifup IFACE [boot]
ifdown IFACE
[root@clod ~]#ifdown eth0 [root@clod ~]#ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:00:07:39 BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:2406 errors:0 dropped:0 overruns:0 frame:0 TX packets:111 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:144360 (140.9 KiB) TX bytes:7370 (7.1 KiB)
截取的一段网卡信息来做详细解析
eno16777736: flags=4163<UP(开启状态),BROADCAST(支持广播功能),RUNNING(运行当中),MULTICAST(支持组播/多播功能>mtu 1500(最大传输单元) inet 10.1.36.7 netmask 255.255.0.0 broadcast 10.1.255.255 inet6 fe80::20c:29ff:fe97:7e0f prefixlen 64 scopeid 0x20<link> ether(硬件地址) 00:0c:29:97:7e:0f txqueuelen(传输队列长度) 1000 (Ethernet) RX packets(接收到的报文数量) 422649 bytes 39102077 (37.2 MiB) RX errors(!!接收时的错误个数!!) 0 dropped 475(!!丢包的数量!!) overruns 0(溢出) frame 0 TX packets(传出的报文数量) 13518 bytes 1015076 (991.2 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
route命令:路由查看及管理
路由条目类型:
主机路由:目标地址为单个ip;
网络路由:目标地址为IP网络
默认路由:目标为任意主机,0.0.0.0/0.0.0.0
查看:route -n :以数字格式查看ip地址,不反解
[root@clod ~]#route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
添加:
route add [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]
-net 指定网段
-host:指定主机
target:目标主机
netmask:子网掩码
gw Gw:网关
dev:设备
if:接口
route add -net 10.0.0.0/8 gw 192.168.10.1 dev eth1(可写可不写)
route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.10.1
route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1
route add defaults gw 192.168.10.1 效果同上
删除:
route del [-net|-host] target [gw Gw] [netmask Nm]
示例: route del -net 10.0.0.0/8 [gw 192.168.10.1]#删除指定网关
route del default :删除默认网关
netstat命令
Print network connections, routing tables, interface statis-tics, masquerade connections, and multicast memberships
显示网络连接,路由表,接口统计数据、伪装链接和多播成员关系!
显示路由表 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(Final State Machine)
-u:#UDP协议相关的链接
-w:#raw socket相关的链接
-l:#处于监听状态的链接
-a:#所有状态
-p:#显示相关进程及PID
常用组合:
-tan, -uan, -tnl, -unl, -tunlp
传输层协议:
tcp:面向连接的协议;通信开始之前,要建立一个虚链路,通信完成后还要拆除连接
udp:无连接的协议;直接发送数据报文
ip: object {link, addr, route}, ss
ip – show / manipulate routing, devices, policy routing and tunnels
ip命令 :查看及管理 路由、设备、策略路由以及隧道
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns | neigh | } #常用OBJECT
注意:OBJECT大多可以简写,如果不知道格式也可以用tab键补全命令!!
注意:OBJECT可简写,各OBJECT有
常用的有
ip link:
ip link show-display device attrubutes:查看二层链路信息
ip link help #显示简要使用帮助
ip link :network device configuration #网络设备配置
ip link set -change device attributes #设置设备属性
dev NAME(default):指明要管理的设备,dev关键字可省略
up和down #启用和禁用
multicast on/off :启用或禁用多播功能
name NAME:重命名
mtu NUMBER:设置MTC的大小,默认为1500
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间
例句:
ip link set dev eth1 ip/down 开启关闭eth1网卡
ip link set eth1 multicast off/on:多播
ip link set DEVICE name eno000011 :改名要down了再改
ip netns add mynaet (CentOS 7 用)
ip link set eno3355985 netns mynet(show eno3)将不可见了
ip netns exec mynet ip link show:查看mynet信息!!!
ip netns del mynet:删除netns, eno将重现了
ip netns:ip -manage network namespaces:
ip netns list:列出所有的netns
ip netns add NAME:创建指定的netns
ip netns del NAME:删除指定的netns
ip netns exec NAME COMMAND:在指定的netns中运行命令
ip addr -protocol address management.#ip网络层管理
ip addr add -add new protocol address #增加新的协议
ip addr add IFADDR dev IFACE #新增一个备用地址
[label] NAME:为额外添加的地址指明接口别名;
有别名 ifconfig 就能显示得到
[broadcast] ADDRESS:广播地址;会根据IP和NETMASJ自动计算得到
[scope SCOPE_VALIE]:
global:全局可用;
link:接口可用
host:仅主机可用;
例句:
ip addr add 192.168.10.100/24 dev eth1
ip addr show eth1
ip addr list eth1
ip addr add 10.0.0.100/8 deb eth1
ip addr add 10.1.1.10/8 dev eth1 label eth1:0
ip addr add 10.0.10.100/8 dev eth1 #加ip
ip addr add 10.0.20.100/8 dev eth1 #加ip
ip address delete -delete protocol address 删除
ip ddr delete IFADDR dev IFACE
例
ip addr del 10.0.10.100/8 dev eth1
ip addr show/list -look at protocol address 显示网卡接口信息
[IFACE]:仅显示指定接口的地址 dev可加可不加
ip address flush-flush protocol address 清空所有ip地址
ip addr flush dev eth1 #清空eth1 的所有ip地址
ip route -routing table management #路由表管理
ip route add -add new route : #新增路由
ip route change – change route #更改路由
ip route replace – change or add new one #从置路由
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 #新增路由
ip route add 192.168.1.0/24 via 10.0.0.1 dev eth1 src 10.0.20.100#新增路由
ip route add default via 172.16.0.1 dev eth1 #默认路由
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 list 查看路由信息
ip route delete – delete route #删除路由条目
ip route del TYPE PREFIX
示例
ip route delete 192.168.1.0/24
ip route show – list routes #查看路由
TYPE PREFIX
例句
ip route show
ip route show src 172.16.100.6
ip route show 192.168.200.0/24
ip route get -get single route #获取路由信息
ip route get TYPE PRIFIX
例句
ip route get 192.168.0.0/24
ip route flush – flush routing tables #清空路由表
示例
ip route flush
ip route flush 10/8
ip route flush 169.254/16 : 169开头子码为16的删除
ip route flush 192.
ss命令 跟netstat用法一直,就不多做介绍了
– another utility to investigate sockets
ss [options] [FILTER]
选项:
-t: TCP协议的相关连接
-u: UDP相关的链接
-w:raw socket相关的链接
-l:监听状态的链接
-a:所有状态的链接
-n:数字格式
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
FILTER:=[state TCP-STAT] [EX[RESSION]
TCP的常见状态:
TCP FSM:
LISTEN:监听
ESTABLISEHD:建立的连接
FIN_WAIT_1:
FIN_WAIT_2:
SYN_SENT:
SYN_RECV:
CLOSED:
EXPRESSION
dport=目标端口
sport=源端口
示例:'(dport=:22 or sport=:22)'
ss -tan '( dport = :22 or sport = :22 )' 过滤tcp 源端口目标端口为22的
ss -tan state ESTABLISHED
ss -o state established '( dport = :ssh or sport = :ssh )' 显示所有已建立的ssh连接
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
原创文章,作者:ladsdm,如若转载,请注明出处:http://www.178linux.com/47382