大家好,又见面了,我是你们的朋友全栈君。
文章目录 - Linux_day06-07
- Linux的网络相关
- 一.设置主机名
- 二.chkconfig服务配置(仅了解)
- 三.ntp服务
- 四.防火墙服务——软件防火墙
- 五.网络相关的一些命令
- 1. ifconfig
- 2. netstat
- 3. ping
- 4. telnet——用于测试端口连通性
- telnet与ssh的区别
- 5. curl——网页查看
- 一.设置主机名
- 二.chkconfig服务配置(仅了解)
- 三.ntp服务
- 四.防火墙服务——软件防火墙
- 五.网络相关的一些命令
- 1. ifconfig
- 2. netstat
- 3. ping
- 4. telnet——用于测试端口连通性
- telnet与ssh的区别
- 5. curl——网页查看
Linux_day06-07
Linux的网络相关
一.设置主机名
- 临时设置:#hostname 新主机名(切换用户生效,重启还原)
- 永久设置:修改配置文件/etc/hostname,用vim修改(重启生效)
修改后的主机名可能ping不通,此时需要修改/etc/hosts配置文件,将新名字只指向本机(设置FQDN),新起一行,写上本机ip和名称
回顾:
#hostname——查询完整的主机名
#hostname -f ——查询全限定域名FQDN
不设置FQDN会如何
- 很多开源服务器软件(如Apache)会无法启动
- 修改后的名字,方便记忆,可以一看到就对这台主机的作用有一个初步判断
- 如果不设置,会影响本地的域名解析(本地访问)
二.chkconfig服务配置(仅了解)
安全辅助工具,提供开机启动项的管理服务
1.查看开机启动服务
#chkconfig –list(该指令在CentOS 7已不再常用)
其中0-6表示各个启动级别
比如network服务在3级别为开,则表示其在3启动级别下默认开机启动
CentOS 7 中常用指令是:systemctl list -units –type =service –all
2.删除服务
#chkconfig –del
3.添加开机启动服务
#chkconfig –add 服务名
(并不是所用的软件都有服务名,必须保证正常运行的服务才可以添加)
4.设置服务在某个级别下开机启动
#chkconfig –level 数字数字数字 服务名 on/off
eg.设置httpd服务在3,5级别开机启动
#chkconfig –level 35 httpd on
eg.设置httpd服务在5级别时开机不启动
#chkconfig –level 5 httpd off
三.ntp服务
作用:主要是时用于对计算机的时间同步管理操作,时间对服务器来说很重要,一般很多网站都需要读取服务器时间来记录相关信息,如果时间不准,则可能造成很大影响。
同步服务器时间的方式:
- 1.一次性手动同步(从别的服务器同步)
#ntpdate 时间服务器的域名或者ip地址
(ip地址查看可以访问 全球可用的NTP服务器列表与解析服务 )
eg.选择一个阿里云的服务器地址来同步 120.25.108.11
- 2.通过时间同步服务自动同步
服务名:ntpd
启动服务:#service ntpd start 或者 # /etc/init.d/ntpd start
设置ntpd开机自动启动:#chkconfig –level 35 ntpd on
补充概念:时间服务器上游
四.防火墙服务——软件防火墙
防火墙:防范网络攻击,选择性让请求通过,从而保证网络安全
(防水墙:bbs论坛,防灌水)
- 软件防火墙
- 硬件防火墙
在CentOS 7 中防火墙名称:firewalld(从前是iptables)
- 查看防火墙状态 #systemctl status firewalld
- 临时关闭firewall #systemctl stop firewalld
- 禁止firewall开机自动启动 systemctl disabled firewalld
- 设置firewall开机自动启动 systemctl enable firewalld
开启防火墙后,对指定端口进行操作
- 添加端口 firewall-cmd –zone=public –add-port=端口号/tcp –permanent
- 防火墙重新载入 firewall-cmd –reload
- 查看端口 firewall-cmd –zone=public –query-port=端口号/tcp
- 删除端口 firewall-cmd –zone=public –remove-port=端口号/tcp –permanent
五.网络相关的一些命令
1. ifconfig
作用:获取网络接口配置信息 (if是指interface)
网卡字段简单说明
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
- UP:表示“接口已启用”。
- BROADCAST :表示“主机支持广播”
- RUNNING:表示“接口在工作中”
- MULTICAST:表示“主机支持多播”
- MTU:1500(最大传输单元):1500字节
inet 192.168.1.135 netmask 255.255.255.0 broadcast 192.168.1.255
- inet :IP地址
- netmask :掩码
- broadcast :广播地址
网卡的IPv6地址 inet6 fe80::2aa:bbff:fecc:ddee prefixlen 64 scopeid 0x20
连接类型: Ethernet (以太网) HWaddr (硬件mac地址)
// txqueuelen (网卡设置的传送队列长度) ether 00:aa:bb:cc:dd:ee txqueuelen 1000 (Ethernet)
RX packets 2825 bytes 218511 (213.3 KiB) RX errors 0 dropped 0 overruns 0 frame 0 // packets 接收时,正确的数据包数。 // bytes 接收的数据量。 // errors 接收时,产生错误的数据包数。 // dropped 接收时,丢弃的数据包数。 // overruns 接收时,由于速度过快而丢失的数据包数。 // frame 接收时,发生frame错误而丢失的数据包数。
TX packets 1077 bytes 145236 (141.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
packets 发送时,正确的数据包数。 bytes 发送的数据量。 errors 发送时,产生错误的数据包数。 dropped 发送时,丢弃的数据包数。 overruns 发送时,由于速度过快而丢失的数据包数。 carrier 发送时,发生carrier错误而丢失的数据包数。 collisions 冲突信息包的数目。
虚拟网卡:
主要是建立远程计算机间的局域网。虚拟网卡链接技术就是VPN。比如说可以和别的地方的几台机子,通过建立虚拟HUB 实现VPN client的链接,这样就算是在这几台远程计算机间建立的局域网,也能和你的机子一起实现局域网的功能。”
2. netstat
作用: 查看路由表,实际的网络连接以及每一个网络接口设备的状态信息
语法:# netstat [选项]
参数:
-a或–all :显示所有连线中的Socket;
-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;
-c或–continuous:持续列出网络状态;
-C或–cache:显示路由器配置的快取信息;
-e或–extend:显示网络其他相关信息;
-F或–fib:显示FIB;
-g或–groups:显示多重广播功能群组组员名单;
-i或–interfaces:显示网络界面信息表单;
-l或–listening:显示监控中的服务器的Socket;
-M或–masquerade:显示伪装的网络连线;
-n或–numeric:直接使用ip地址,而不通过域名服务器(numerical数值的);
-N或–netlink或–symbolic:显示网络硬件外围设备的符号连接名称;
-o或–timers:显示计时器;
-p或–programs:显示正在使用Socket的程序识别码和程序名称;
-r或–route:显示Routing Table;
-s或–statistice:显示网络工作信息统计表;
-t或–tcp :显示TCP传输协议的连线状况;
-u或–udp :显示UDP传输协议的连线状况;
-v或–verbose:显示指令执行过程;
-V或–version:显示版本信息;
-w或–raw:显示RAW传输协议的连线状况;
-x或–unix:此参数的效果和指定”-A unix”参数相同;
–ip或–inet:此参数的效果和指定”-A inet”参数相同。
常用指令:
netstat -a # 列出所有端口
netstat -at # 列出所有TCP端口
netstat -au # 列出所有UDP端口
netstat -ax # 列出所有unix端口
netstat -s # 显示所有端口的统计信息
netstat -st # 显示所有TCP的统计信息
netstat -su # 显示所有UDP的统计信息
netstat -atnlp # 直接使用ip地址列出所有处理监听状态的TCP端口,且加上程序名
字段说明
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
- Proto:协议名(tcp协议还是udp协议);
- recv-Q:网络接收队列
表示收到的数据已经在本地接收缓冲,有多少没有被进程取走,如果接收队列Recv-Q一直处于阻塞状态,可能是遭受了拒绝服务 denial-of-service 攻击;
- send-Q:网路发送队列
对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
如果发送队列Send-Q不能很快的清零,可能是有应用向外发送数据包过快,或者是对方接收数据包不够快;
这两个值通常应该为0,如果不为0可能是有问题的。
packets在两个队列里都不应该有堆积状态,可接受短暂的非0情况。
- Local Address
1.Local Address 部分的0.0.0.0:873表示监听服务器上所有ip地址的所有(0.0.0.0表示本地所有ip),比如你的服务器是有172.172.230.210和172.172.230.11两个ip地址,那么0.0.0.0:873此时表示监听以下三个地址的873端口
172.172.230.210
172.172.230.211
127.0.0.1 (回环地址)
2.如果为127.0.0.1:25这个表示监听本机的loopback地址的25端口
(如果某个服务只监听了回环地址,那么只能在本机进行访问,无法通过tcp/ip 协议进行远程访问)
3.如果为192.168.1.81:2288这是因为我们在启动的时候指定了192.168.1.81:2288参数,如果不指定的话,会默认监听0.0.0.0:2288
- Foreign Address
显示与本机端口通信的外部socket
显示规则与Local Address相同
- State
显示11种链路状态,或者UNKNOWN
(这些状态是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的。)
下来补一下这块的计算机网络知识
- LISTEN : 监听来自远方TCP端口的连接请求 The socket is listening for incoming connections .
- SYN_SENT:发送连接请求SYN后等待匹配的连接请求 The socket is actively attempting to establish aconnection .
- SYN_RECV:在收到和发送一个连接请求后等待对方确认 A connection request has been received from the network.
- ESTABLISHED:已经建立了链接,数据可以传送给用户 The socket has an established connection .
- FIN_WAIT1:主动关闭(activeclose)端应用程序调用close,于是其TCP发出FIN请求主动关闭连接,之后进入FIN_WAIT1状态 The socket is closed, and the connection is shutting down.
- CLOSE_WAIT:被动关闭(passiveclose)端TCP接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序),并进入CLOSE_WAIT. 等待从本地用户发来的连接中断请求 The remote end has shut down, waiting for the socketto close.
- FIN_WAIT2:主动关闭端接到ACK后,就进入了FIN-WAIT-2,从远程TCP等待连接中断请求 Connection is closed, and the socket is waiting for a shutdownfrom the remote end.
- LAST_ACK:被动关闭端一段时间后,接收到文件结束符的应用程序将调用CLOSE关闭连接。这导致它的TCP也发送一个 FIN,等待对方的ACK.就进入了LAST-ACK,等待原来发向远程TCP的连接中断请求的确认. The remote end has shut down, and the socket is closed. Waiting foracknowledgement.
- TIME_WAIT:在主动关闭端接收到FIN后,TCP 就发送ACK包,并进入TIME-WAIT状态。等待足够的时间以确保远程TCP接收到连接中断请求的确认 The socket is waiting after close to handle packets still in the network.
- CLOSING:比较少见,等待远程TCP对连接中断的确认 Both sockets are shut down but we still don’t have all our datasent.
- CLOSED:被动关闭端在接受到ACK包后,就进入了closed的状态,表示没有任何连接状态 The socket is not being used.
- UNKNOWN:未知的Socket状态 The state of the socket is unknown.
notes:
- SYN: (同步序列编号,SynchronizeSequence Numbers)该标志仅在三次握手建立TCP连接时有效。表示一个新的TCP连接请求。
- ACK: (确认编号,AcknowledgementNumber)是对TCP请求的确认标志,同时提示对端系统已经成功接收所有数据。
- FIN: (结束标志,Finish)用来结束一个TCP回话.但对应端口仍处于开放状态,准备接收后续数据。
这一部分摘自