tcp端口

防火墙iptables

半腔热情 提交于 2019-11-30 23:09:46
防火墙iptables iptables是开源的基于数据包过滤的防火墙工具。 iptables应用场景 1、主机防火墙(filter表的INPUT链)。 2、局域网共享上网(nat表的POSTROUTING链)。NAT功能。 3、端口及IP映射(nat表的PREROUTING链),硬防的NAT功能。 4、IP一对一映射。 iptables工作流程 iptables是采用数据包过滤机制工作的,所以它会对请求的数据包的包头数据进行分析,并根据我们预先设定的规则进行匹配来决定是否可以进入主机。 1.防火墙是一层层过滤的。实际是按照配置规则的顺序从上到下,从前到后进行过滤的。 2.如果匹配上了规则,即明确表明是阻止还是通过,此时数据包就不在向下匹配新规则了。 3.如果所有规则中没有明确表明是阻止还是通过这个数据包,也就是没有匹配上规则,向下进行匹配,直到匹配默认规则得到明确的阻止还是通过。 4.防火墙的默认规则是对应链的所有的规则执行完以后才会执行的(最后执行的规则)。 iptables四表五链 Filter NAT iptables工作原理图 iptables环境安装 [root@lb01 ~]# yum -y install iptables-services [root@lb01 ~]# systemctl start iptables.service [root@lb01 ~]#

TCP 连接的状态

不问归期 提交于 2019-11-30 15:45:27
我们通过了解各个 TCP 状态,可以排除和定位网络或系统故障。 建立连接 TCP/IP 协议中, TCP 协议提供可靠的连接服务,采用三次握手建立一个连接 第一次握手:建立连接时,客户端发送 SYN 包到服务器,并进入 SYN_SENT 状态,等待服务器确认 第二次握手:服务器收到 SYN 包,必须确认客户端的 SYN ,同时自己也发送一个 SYN 包,即 SYN + ACK ,此时服务器进入 SYN_RECV 状态 第三次握手:客户端收到服务器发送的 SYN+ACK 包,向服务器发送确认 ACK ,此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手 关闭连接 由于 TCP 连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个 FIN 来终止这个方向的连接。收到一个 FIN 只意味着这一方向没有数据流动,一个 TCP 连接在收到一个 FIN 后仍能发送数据。首先进行关闭的一房将执行主动关闭,而另一方执行被动关闭。 TCP 的连接断开需要发送四个包,因此称为四次握手。客户端或服务器均可主动发起,在 socket 编程中,任何一方执行 close() 操作即可产生。 客户端发送一个 FIN ,用来关闭客户端到服务端的数据传送,此时进入 FIN_WAIT1 状态 服务器收到这个 FIN ,它发送一个 ACK

TCP 连接的状态

蓝咒 提交于 2019-11-30 15:45:26
我们通过了解各个 TCP 状态,可以排除和定位网络或系统故障。 建立连接 TCP/IP 协议中, TCP 协议提供可靠的连接服务,采用三次握手建立一个连接 第一次握手:建立连接时,客户端发送 SYN 包到服务器,并进入 SYN_SENT 状态,等待服务器确认 第二次握手:服务器收到 SYN 包,必须确认客户端的 SYN ,同时自己也发送一个 SYN 包,即 SYN + ACK ,此时服务器进入 SYN_RECV 状态 第三次握手:客户端收到服务器发送的 SYN+ACK 包,向服务器发送确认 ACK ,此包发送完毕,客户端和服务器进入 ESTABLISHED 状态,完成三次握手 关闭连接 由于 TCP 连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个 FIN 来终止这个方向的连接。收到一个 FIN 只意味着这一方向没有数据流动,一个 TCP 连接在收到一个 FIN 后仍能发送数据。首先进行关闭的一房将执行主动关闭,而另一方执行被动关闭。 TCP 的连接断开需要发送四个包,因此称为四次握手。客户端或服务器均可主动发起,在 socket 编程中,任何一方执行 close() 操作即可产生。 客户端发送一个 FIN ,用来关闭客户端到服务端的数据传送,此时进入 FIN_WAIT1 状态 服务器收到这个 FIN ,它发送一个 ACK

端口简介

守給你的承諾、 提交于 2019-11-30 14:56:21
目录 端口的概念 端口的基本分组 周知端口(Well Known Ports): 注册端口: 动态和/或私有端口: 为什么要使用端口 首先说明本文只是讲解了端口的基础知识,并基于一些网络资料、书籍和个人的理解进行编写,如有错误,欢迎留言(虽然是写给自己看的,但是放到网络上,觉得应该是要对读者负责任的) ​ 端口是port的译文,可以认为是计算机通信的接口。可以分为物理端口和逻辑端口,文章中我们主要讲解逻辑端口 物理端口指的是实际意义上的端口,比如usb接口、vga接口、交换机、路由器等设备接口 逻辑端口主要讲的是用于tcp/ip通信的端口,作为通信协议中的一种软件的抽象概念,可以简单理解为是用编程语言虚拟出来的通信地址。教材上说:“计算机之间的通信实际上是两个计算机进程之间的通信”。但是现实中进程必须要绑定一个端口之后才能进行数据的发送和接受,因此我们可以这样理解:计算机之间的的通信实际上是两个端口间的数据流动。为了说明方便,剩余文章中的端口都是指逻辑端口 端口的概念 ​ 端口作为tcp/ip协议的虚拟概念主要用于计算机之间的通信,每个协议的端口总共有65536个,取2的16次方,按照习惯从零开始,所以最大的端口号是65535,我们通常使用五元组(源ip地址、源端口号、目标ip地址、目标端口号、协议号)来确定唯一的会话,五元组相较四元组多了一个协议号

TCP/UDP常见端口

情到浓时终转凉″ 提交于 2019-11-30 13:20:04
著名端口 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 daytime 给请求主机发送日期和时间 17 qotd 给连接了的主机发送每日格言 18 msp 消息发送协议 19 chargen 字符生成服务;发送无止境的字符流 20 ftp-data FTP 数据端口 21 ftp 文件传输协议(FTP)端口;有时被文件服务协议(FSP)使用 22 ssh 安全 Shell(SSH)服务 23 telnet Telnet 服务 25 smtp 简单邮件传输协议(SMTP) 37 time 时间协议 39 rlp 资源定位协议 42 nameserver 互联网名称服务 43 nicname WHOIS 目录服务 49 tacacs 用于基于 TCP/IP 验证和访问的终端访问控制器访问控制系统 50 re-mail-ck 远程邮件检查协议 53 domain 域名服务(如 BIND) 63 whois++ WHOIS++,被扩展了的 WHOIS 服务 67 bootps 引导协议(BOOTP)服务;还被动态主机配置协议(DHCP)服务使用 68 bootpc Bootstrap(BOOTP)客户;还被动态主机配置协议(DHCP

WireShark抓包分析

…衆ロ難τιáo~ 提交于 2019-11-30 12:17:35
简述:本文介绍了抓包数据含义,有TCP报文、Http报文、DNS报文。如有错误,欢迎指正。 1、TCP报文 TCP:(TCP是面向连接的通信协议,通过三次握手建立连接,通讯完成时要拆除连接,由于TCP 是面向连接的所以只能用于点对点的通讯)源IP地址:发送包的IP地址;目的IP地址:接收包的IP地址;源端口:源系统上的连接的端口;目的端口:目的系统上的连接的端口。 TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN,ACK。这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established状态,完成三次握手。 1> 封包详细信息 A. 第一行,帧Frame 36838 指的是要发送的数据块,其中,所抓帧的序号为36838,捕获字节数等于传送字节数:70字节; B. 第二行,以太网

Linux测试UDP 和 TCP 端口

天大地大妈咪最大 提交于 2019-11-30 11:50:18
怎样检测TCP/UDP端口的连通性 1 TCP端口的连通性 TC端口的连通性,一般通过telnet检测: TCP协议是面向连接的,可以直接通过telnet命令连接 telnet host - ip port 2 UDP端口的连通性 因为公司网络防火墙一般对端口会有一些限制,通过公司网络访问外部服务器特定端口时,需要检测与目标服务器特定端口的连通性; 若无法连通,在确认目标服务器相关端口打开时,则很有可能是被公司网络(中间网络)屏蔽了。对于TCP端口,如上一般用telnet检测。 对于UDP端口,一般稍微复杂点: 因为UDP协议是无连接的,不需要握手建立连接,数据发送后,server端也不会返回确认信息。 一般可以使用netcat检测,这个命令被誉为是网络中的“瑞士军刀”,功能非常强大,测试udp只是其中的一个功能变通。 UDP端口连通性测试: 在目标机器监听UDP端口port1, 在客户端机器向目标机器port1端口发送UDP数据报,看能否发送成功。发送成功,则表示可连通。 例如: a机器上运行: nc -ul 1080 或:netcat -ul -p 1080 #使用udp模式监听1080 端口 b机器上运行: nc -u x.x.x.x 1080 或:netcat -u x.x.x.x 1080 #使用udp模式向该ip的1080端口发送信息。 效果如图,在任意一边输入内容

socket、端口、进程的关系

烂漫一生 提交于 2019-11-30 10:55:41
本文属网络编程部分。 socket的引入是为了解决不同计算机间进程间通信的问题。 端口是TCP/IP协议中的概念,描述的是TCP协议上的对应的应用,可以理解为基于TCP的系统服务,或者说系统进程!如下图,FTP就需要占用特定的TCP端口。 TCP 而 socket 呢,是网络编程中的概念,对TCP/IP协议进行了抽象和实现,并为应用层提供接口。这里的应用A,可以是FTP应用,它属于用户进程,通过socket与内核中的网络协议栈进行交互。 socket socket 是核心,是枢纽,是进程与网络建立关系的必经之路! 1.内核是如何将数据包转发至 socket 的呢? 网络数据首先到达网卡,然后进入内核,由网络协议栈去处理,那么内核是如何进行数据分发的呢?它怎么知道该如何把数据交给特定的用户进程呢? 这时,就需要 socket 发挥作用了! socket 中存储了特定的四元组: 源ip+port,目的ip+port; 1> bind 到特定 ip 和 port 的socket 对应 [src ip, src port) <=> (*, *)] ; 2> connect 到特定目的ip+port 的 socket 对应 [src ip, src port) <=> (dst ip, dst port)]; 3> accept 返回了的 socket 对应 [src ip, src

nmap

前提是你 提交于 2019-11-30 09:49:59
nmap nmap [ <Scan Type> ...] [ <Options> ] { <target specification> } 版本:nmap-7.70-1.x86_64.rpm 命令行格式: https://svn.nmap.org/nmap/docs/nmap.usage.txt (总是最新) 目标格式 nmap命令行中中除了选项或选项参数其余均为目标主机格式。 TARGET SPECIFICATION: Can pass hostnames, IP addresses, networks, etc. Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254 -iL <inputfilename>: Input from list of hosts/networks -iR <num hosts>: Choose random targets --exclude <host1[,host2][,host3],...>: Exclude hosts/networks --excludefile <exclude_file>: Exclude list from file 当扫描目标是hostname时nmap会通过DNS解析地址。如果不特别指出--resolve

Docker容器内部端口映射到外部宿主机端口

久未见 提交于 2019-11-30 09:42:18
Docker允许通过外部访问容器或者容器之间互联的方式来提供网络服务。 容器启动之后,容器中可以运行一些网络应用,通过-p或-P参数来指定端口映射。 注意: 宿主机的一个端口只能映射到容器内部的某一个端口上,比如:8080->80之后,就不能8080->81 容器内部的某个端口可以被宿主机的多个端口映射,比如:8080->80,8090->80,8099->80 1)启动容器时,选择一个端口映射到容器内部开放端口上 -p 小写p表示docker会选择一个具体的宿主机端口映射到容器内部开放的网络端口上。 -P 大写P表示docker会随机选择一个宿主机端口映射到容器内部开放的网络端口上。 1 2 3 4 5 6 7 8 9 10 11 12 13 比如: [root@docker- test ~] # docker run -ti -d --name my-nginx -p 8088:80 docker.io/nginx 2218c7d88ccc917fd0aa0ec24e6d81667eb588f491d3730deb09289dcf6b8125 [root@docker- test ~] # docker run -ti -d --name my-nginx2 -P docker.io/nginx