linux的端口学习(一)
1.端口是什么?
1.1 是英文port的意译,可认为是设备与外界通讯交流的出口。
1.2 端口可分为虚拟端口和物理端口。
1.2.1 虚拟端口:指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。
1.2.2 物理端口:又称为接口,是可见端口,计算机背板的RJ45网口,交换机路由器集线器等RJ45端口。电话使用RJ11插口也属于物理端口的范畴。
2.我们常说的端口:
2.1 指的是:特指TCP/IP协议中的端口,是逻辑意义上的端口。
2.2 协议端口(protocol port,即我们常说的端口)。
2.3 端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。
2.4 如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536(即:2^16)个之多!
3.端口在入侵中的作用(黑客常用的)
3.1 有人曾经把服务器比作房子,而把端口比作通向不同房间(服务)的门,如果不考虑细节的话,这是一个不错的比喻。
3.2 入侵者要占领这间房子,势必要破门而入(物理入侵另说),
3.3 那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
3.4 普通人估计不需要了解这么多。
4.按端口号可分为3大类
4.1 公认端口(WellKnownPorts):
4.1.1 从0到1023,它们紧密绑定(binding)于一些服务。
4.1.2 通常这些端口的通讯明确表明了某种服务的协议。
4.1.3 例如:80端口实际上总是HTTP通讯。
4.2 注册端口(RegisteredPorts):
4.2.1 从1024到49151。
4.2.2 它们松散地绑定于一些服务。
4.2.3 也就是说有许多服务绑定于这些端口,这些端口同样用于许多其它目的。
4.2.4 例如:许多系统处理动态端口从1024左右开始。
4.3 动态和/或私有端口(Dynamicand/orPrivatePorts):
4.3.1 从49152到65535。
4.3.2 理论上,不应为服务分配这些端口。
4.3.3 实际上,机器通常从1024起分配动态端口。
4.3.4 但也有例外:SUN的RPC端口从32768开始。
5.系统管理员可以"重定向"端口
5.1 一种常见的技术是把一个端口重定向到另一个地址。
5.2 例如默认的HTTP端口是80,可以将它重定向到另一个端口,如8080。即可以实现重定向是为了隐藏公认的默认端口,降低受破坏率。
5.3 大多数端口重定向与原端口有相似之处:
5.3.1 例如多数HTTP端口由80变化而来:81,88,8000,8080,8888。
5.3.2 POP的端口原来在110,也常被重定向到1100。
5.4 原因一:避免木马病毒攻击:
远程控制木马(RemoteAccessTrojans,RATs)采用相同的默认端口。如NetBus的默认端口是12345。
5.5 原因二:root权限有关:
在UNIX系统上,如果你想侦听1024以下的端口需要有root权限。
如果你没有root权限而又想开web服务,你就需要将其安装在较高的端口。
5.6 原因三:ISP防火墙有关:
一些ISP的防火墙将阻挡低端口的通讯,这样的话即使你拥有整个机器你还是得重定向端口。
6.查看端口情况:
6.1 在终端输入:netstat -an
这并不是一个工具,但他是查看自己所开放端口的最方便方法。
6.2 在终端输入:netstat -talnp
查看系统已经打开的端口。
6.3 在终端输入:netstat -tanp
去显示端口状态。
7.Linux 如何开放端口和关闭端口。
以8080端口为例
7.1 查看是否打开8080端口,没反应就是没打开。
netstat -an | grep 8080
7.2 在root下输入,即可以查看80的所有已打开的窗口,比如8082是360浏览器打开的端口
netstat -ntulp |grep 80