Linux网络配置大全
- Linux网络配置
- 一.网络地址配置
- 网络地址查看–ifconfig
- 使用网络配置命令
- 设置网络接口参数-ifconfig
- 禁用(临时)或者重新激活网卡
- 设置虚拟网络接口
- 修改网络配置文件
- 网络接口配置文件
- IP命令详解
- OPTIONS选项
- OBJECT对象
- ip link
- 二、获取和修改主机名hostname
- 查看主机名
- 临时修改主机名
- 永久修改主机名
- 三、Route命令
- 观察路由表信息
- 输出详解
- 添加路由
- 删除路由
- 添加、删除默认网关记录
- 四、netstat命令
- 命令介绍
- 命令选项
- 五、获取socket统计信息-ss
- 语法
- 选项
- 六、测试网络连接
- ping
- tcpping
- traceroute命令(路由跟踪)
- 七、域名解析-nslookup
- 主服务器配置文件
- 八、本地主机映射
- 配置映射关系
Linux网络配置
一.网络地址配置
网络地址查看–ifconfig
命令格式:ifconfig 或 ifconfig +网卡名
ifconfig [DEVICE] ##查看网络信息
第一部分的第一行显示网卡状态信息。
-
eth0表示第一块网卡。
-
UP代表网卡开启状态。
-
RUNNING代表网卡的网线被接上。
-
MULTICAST表示支持组播。
第二行显示网卡的网络信息。
-
inet(IP地址)
-
broadcast(广播地址)
-
netmask(掩码地址)
-
RX表示接收数据包的情况,TX表示发送数据包的情况。
-
lo表示主机的回环网卡,是一种特殊的网络接口,不与任何实际设备连接,而是完全由软件实现。与回环地址(127.0.0.0/8 或 ::1/128)不同,回环网卡对系统显示为一块硬件。任何发送到该网卡上的数据都将立刻被同一网卡接收到。
使用网络配置命令
在Linux主机中,手工修改网络配置有两种最基本的方法:
1 临时配置:使用命令调整网络参数
(1)简单、快速,可直接修改运行中的网络参数
(2)一般只适合在调试网络的过程中使用
(3) 系统重启以后,所做的修改将会失效
2 固定设置:通过配置文件修改网络参数
(1) 修改各项网络参数的配置文件
(2)适合对服务器设置固定参数时使用
(3) 需要重载网络服务或者重启以后才会生效
(4) 相对而言复杂一点,但相当于“永久配置”
设置网络接口参数-ifconfig
ifconfig DEVICE IP netmask NETMASK ##设置ip地址
ifconfig eth0 192.168.168.1/24
禁用(临时)或者重新激活网卡
ifconfig 网络接口 up
ifconfig 网络接口 down
设置虚拟网络接口
在对服务器进行调试的过程中,有时需临时在同一个网卡上使用一个新的IP地址,但又不能覆盖原有IP地址而导致服务程序不可用
相当于在一个网卡上配置多个IP地址
格式(示例): ifconfig 网络接口:序号 IP地址
ifconfig ens33:1 11.11.11.11
修改网络配置文件
网络接口配置文件
网络接口的配置文件默认位于目录“/etc/sysconfig/network-scripts/”中,文件名格式为“ifcfg-XXX”,其中“XXX”是网络接口的名称
“ifcfg-ens33”:是第一块以太网卡的配置文件
- TYPE:设置网卡类型,以上表示为以太网
- ONBOOT:设置网络接口是否在Linux系统启动时自动激活
- NETMASK:设置网络接口的子网掩码
- GATEMASK:设置网络接口的默认网关地址
- DNS:设置DNS服务器的IP地址
重启network网络服务
systemctl restart network
Ubuntu系统进行网络配置
/etc/network/interfaces
操纵步骤:
打开ubuntu的/etc/network/interfaces文件默认的内容如下:
auto lo
iface lo inet loopback
#动态获取的配置方法:
auto eth0
iface eth0 inet dhcp
#静态分配的配置方法:
auto eth0
iface eth0 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
IP命令详解
ip 是个命令, ip 命令的功能很多!基本上它整合了 ifconfig 与 route 这两个命令,不过 ip 的功能更强大。属于iproute2包的一个命令,功能很强大。
OPTIONS选项
-V:显示指令版本信息;
-s:-stats, -statistics输出更详细的信息;可以使用多个-s来显示更多的信息
-f:-family {inet, inet6, link} 强制使用指定的协议族;
-4:-family inet的简写,指定使用的网络层协议是IPv4协议;
-6:-family inet6的简写,指定使用的网络层协议是IPv6协议;
-0:shortcut for -family link.
-o:-oneline,输出信息每条记录输出一行,即使内容较多也不换行显示;
-r:-resolve,显示主机时,不使用IP地址,而使用主机的域名。
OBJECT对象
link :网卡信息
address:IP地址信息
neighbour:邻居表
route:路由表
rule:IP策略
maddress:多播地址
mourte:组播路由缓存条目
tunnel:IP隧道
查看网络接口信息:
ip addr show :显示所有网络接口的IP地址和相关信息。
ip link show :显示所有网络接口的状态信息。
配置网络接口:
ip addr add [ip/mask] dev [interface] :为指定网络接口添加IP地址
ip addr change [ip/mask] dev [interface] :为指定网络接口修改IP地址
ip addr del [ip/mask] dev [interface] :从指定网络接口删除IP地址
ip link set dev [interface] up/down :启用或禁用指定的网络接口
ip link
ip link set设备接口属性
- ip link set dev eth0 promisc on 开启混杂模式
- ip link set eth0 up 启用网卡
- ip link set eth0 mtu 1500 设置MTU值,即设置最大传输单元
- ip link set eth0 name vbird 设置网卡名,需要在网卡down的时候进行设置,意义不是很大
- ip link set eth0 address aa:aa:aa:aa:aa:aa 设置MAC地址
二、获取和修改主机名hostname
查看主机名
如果要查看主机名可以直接执行如下命令:
hostname
命令的语法如下:
hostname [选项] [参数]
该命令支持的选项有:
选项 | 说明 |
---|---|
-a | 显示主机别名 |
-d | 显示DNS域名 |
-f | 显示FQDN名称 |
-i | 显示主机的ip地址 |
-s | 显示短主机名称,在第一个点处截断 |
-y | 显示NIS域名 |
临时修改主机名
所谓的临时修改主机名,就是当前系统有效,重启系统后失效变回原主机名。命令格式如下:
# 语法
hostname 新主机名
# 示例,修改新主机名为 centos-7
hostname centos-7
永久修改主机名
命令修改:
systemctl set-hostname 主机名
文件修改:
如果是 CentOS 7 及以上(包括 7)的版本,则需要修改 /etc/hostname
文件。直接填入新主机名即可。
三、Route命令
观察路由表信息
route [-nee]
-n :不要使用通讯协定或主机名称,直接使用 IP 或 port number;
-ee :使用更详细的资讯来显示
输出详解
route命令输出的路由表字段含义如下:
Destination 目标网络或目标主机(本机的数据要发送的目的地:子网或主机),与Genmask组成一个网段。
Gateway 网关(如果是默认网关,网关的地址必须和自己的主机上的其中一块网卡在同一子网)即网关地址。如果没有就显示星号。
Genmask 网络掩码,如果目标网络的的子网掩码为255.255.255.255,说明目标是一台主机;如果子网掩码为’0.0.0.0’ 说明该路由是默认路由。
Flags(旗标)
代表的意义如下:
U (route is up):该路由是启动的;
H (target is a host):目标是一部主机 (IP) 而非网段;
G (use gateway):需要透过外部的主机 (gateway) 来转递封包(该行有gw);
R (reinstate route for dynamic routing):使用动态路由时,恢复路由资讯的旗标;
D (dynamically installed by daemon or redirect):已经由服务或转 port 功能设定为动态路由
M (modified from routing daemon or redirect):路由已经被修改;
! (reject route):这个路由将不会被接受(用来抵挡不安全的网域!)
A (installed by addrconf)
C (cache entry)
Metric 距离、跳数。暂无用。与目标的“距离”(通常以跳数计算)。它不被最近的内核使用,但可能需要路由守护进程。
**Ref ** 不用管,恒为0, 对这条路线的引用次数(Linux内核已不再使用)。
Use 该路由被使用的次数,可以粗略估计通向指定网络地址的网络流量。 路线查询次数。根据-F和-C的使用,这将是路由高速缓存丢失(-F)或命中(-C)。
Iface 接口,即eth0,eth1等网络接口名,为此路由发送数据包的接口。
添加路由
route add [-net|-host] [网域或主机] netmask [mask] [gw|dev]
route del [-net|-host] [网域或主机] netmask [mask] [gw|dev]
参数:
-net :表示后面接的路由为一个网域(网段)的路由;
-host :表示后面接的为连接到单部主机的路由;
netmask :掩码,决定了网域的大小(配合-net使用,构成一个网段);
gw :gateway 的简写,后续接的是 IP (必须和本机的其中一块网卡处于同一网段),与 dev 不同;
dev :如果只是要指定由哪一块网卡连线出去,则使用这个设定,后面接 eth0了,eth1 等
删除路由
格式:
route del -net {NETWORK-ADDRESS} netmask {NETMASK} reject
添加、删除默认网关记录
在同一个主机的路由表中只有一条默认网关记录,若同时存在多条默认网关记录,则可能导致该主机的网络连接出现故障。
添加删除默认网关记录时,与添加、删除静态路由记录的命令格式类型,但制定目标网段时,只需简单地使用“ default ”表示即可。
- 添加默认网关 route add default gw xxx.xx.x.xxx
- 删除默认网关 route del default gw xxx.xxx.x.xxx
四、netstat命令
命令介绍
netstat
命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat
是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
命令选项
- -a:查看所有连接
- -c:持续列出网络状态
- -e:显示网络其他相关信息
- -g:显示多重广播功能群组组员名单。
- -i:显示网络界面信息表单
- -l:显示监控中的服务器的SOCKET
- -n:直接打印连接的IP地址与端口信息
- -p:显示正在使用SOCKET的程序识别码和程序名称
- -r:显示路由信息
- -s:显示网络工作信息统计表
- -t:显示TCP传输协议的连线状况
- -u:显示UDP传输协议的连线状况
- -v:显示指令执行过程
- -w:显示RAW传输协议的连线状况
- -F:显示FIB
- -C:显示路由器配置的快取信息
- -A:列出该网络类型连线中的相关地址
- -N:显示网络硬件外围设备的符号连接名称
- -M:显示伪装的网络连线
①通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信
息
②配合管道符grep过滤出特定的记录
netstat -t | wc -l
统计系统中的TCP连接数
netstat -tln
查看系统中的TCP连接监听地址与端口信息
netstat -tlnp
查看系统中的TCP连接监听地址、端口以及进程等信息
netstat -tn | grep -v ESTABLISHED
查看系统中的非正常连接
五、获取socket统计信息-ss
语法
ss (选项)
选项
-h, --help 帮助信息
-V, --version 程序版本信息
-n, --numeric 不解析服务名称
-r, --resolve 解析主机名
-a, --all 显示所有套接字(sockets)
-l, --listening 显示监听状态的套接字(sockets)
-o, --options 显示计时器信息
-e, --extended 显示详细的套接字(sockets)信息
-m, --memory 显示套接字(socket)的内存使用情况
-p, --processes 显示使用套接字(socket)的进程
-i, --info 显示 TCP内部信息
-s, --summary 显示套接字(socket)使用概况
-4, --ipv4 仅显示IPv4的套接字(sockets)
-6, --ipv6 仅显示IPv6的套接字(sockets)
-0, --packet 显示 PACKET 套接字(socket)
-t, --tcp 仅显示 TCP套接字(sockets)
-u, --udp 仅显示 UCP套接字(sockets)
-d, --dccp 仅显示 DCCP套接字(sockets)
-w, --raw 仅显示 RAW套接字(sockets)
-x, --unix 仅显示 Unix套接字(sockets)
-f, --family=FAMILY 显示 FAMILY类型的套接字(sockets),FAMILY可选,支持 unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE 将原始TCP套接字(sockets)信息转储到文件
-F, --filter=FILE 从文件中都去过滤器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
六、测试网络连接
ping
linux下的ping和windows下的ping稍有区别,linux下ping不会自动终止,需要按ctrl+c终止或者用参数-c指定要求完成的回应次数。
1.命令格式:
ping [参数] [主机名或IP地址]
2.命令功能:
ping命令用于:确定网络和各外部主机的状态;跟踪和隔离硬件和软件问题;测试、评估和管理网络。如果主机正在运行并连在网上,它就对回送信号进行响应。每个回送信号请求包含一个网际协议(IP)和 ICMP 头,后面紧跟一个 tim 结构,以及来填写这个信息包的足够的字节。缺省情况是连续发送回送信号请求直到接收到中断信号(Ctrl-C)。
ping 命令每秒发送一个数据报并且为每个接收到的响应打印一行输出。ping 命令计算信号往返时间和(信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping 命令在程序超时或当接收到 SIGINT 信号时结束。Host 参数或者是一个有效的主机名或者是因特网地址。
3.命令参数:
-d 使用Socket的SO_DEBUG功能。
-f 极限检测。大量且快速地送网络封包给一台机器,看它的回应。
-n 只输出数值。
-q 不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。通常是查看本机的网络接口是否有问题。
-R 记录路由过程。
-v 详细显示指令的执行过程。
-c 数目:在发送指定数目的包后停止。
-i 秒数:设定间隔几秒送一个网络封包给一台机器,预设值是一秒送一次。
-I 网络界面:使用指定的网络界面送出数据包。
-l 前置载入:设置在送出要求信息之前,先行发出的数据包。
-p 范本样式:设置填满数据包的范本样式。
-s 字节数:指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
-t 存活数值:设置存活数值TTL的大小。
tcpping
tcpping [-d] [-c] [-C] [-w sec] [-q num] [-x count] ipaddress [port]
-d 在每个响应时间前,打印时间戳
-c 以列表形式显示
-C 输出类似于fping工具中-C选项的结果
-w 等待时间(默认 3)
-r 每N秒重试一次(默认 1)
-x 限定测试总时长 (默认 无限)
实例:测试服务器到大陆TCP是否畅通
在这里,我们要用到百度官网的IP:119.75.217.109 以及他的TCP端口:80
tcping 119.75.217.109 80
traceroute命令(路由跟踪)
命令格式
traceroute [参数] [主机]
命令参数:
-d 使⽤Socket层级的排错功能。
-f 设置第⼀个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g 设置来源路由网关,最多可设置8个。
-i 使⽤指定的⽹络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使⽤IP地址而非主机名称。
-p 设置UDP传输协议的通信端⼝。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显表示指令的执行过程。
-w 设置等待远端主机回报的时间。
-x 开启或关实例
例子4.1 : traceroute www.internationalsaimoe.com 结果:
说明:
记录按序列号从1开始,每个纪录就是⼀跳 ,每跳表示一个⽹关,看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个⽹关发送三个数据包后,网关响应后返回的时间;如果用 traceroute -q 4 www.58.com ,表示向每个⽹关发送4个数据包。闭数据包的正确性检验。
七、域名解析-nslookup
DNS英文全称Domain Name System,它是域名系统,在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,及正向解析与反向解析:
① 正向解析:将指定的域名解析为相应的IP地址
② 反向解析:将指定的IP地址解析为相对应的域名。
yum install -y bind-utils
nslookup 的查询在不指定参数的情况下,默认查询的类型为A。
nslookup internationalsaimoe.com
- 最上面的 Server 和 Address 是该词查询的 DNS 服务器。可以自己指定,也可以默认,之后会说到。
主服务器配置文件
配置文件:/etc/resolv.conf
①/etc/resolv.conf 文件记录了本机默认使用的DNS服务器的地址信息,对于该文件所做的修改将会立刻
生效。
②Linux系统中最多可以指定3个不同的DNS服务器(超过3个的会被忽略),有限使用第一个DNS服务
器。
③resolv.cong文件中的“searh localdomain”行用来设置默认的搜索域(域名后缀),例如:当访问主机
“localhost”时,就相当于访问“localhost.localdomain ”。
八、本地主机映射
保存主机名与ip地址的映射记录
映射文件路径:/etc/hosts
配置映射关系
编辑文件vim /etc/hosts
,在文件末尾添加映射关系,比如:192.168.171.72 dsports-asp
hosts文件和DNS服务器比较
①默认情况下,系统首先从hosts文件查找解析记录
②hosts文件只对当前主机有效
③hosts文件可减少DNS查询过程,从加快访问速度