# 端口 # 设备与外界交流的门口,分为物理端口(接口)与虚拟端口(端口)
# 这里只讲述虚拟的服务端口
# 一个ip地址的端口有 2的16次方个 即65536个
# 端口概念是为了解决同一个IP地址多个请求的识别而引入的
# 根据服务类型的不同,端口分TCP端口和UDP端口
# 两种服务类型:
# 发送信息后 会去确认信息是否到达 # 这种方式大多采用TCP协议(面向连接服务)
# 发送信息后就不管了 # 这种方式大多采用UDP协议(无连接服务)
# 端口分类
# well known ports # 默认端口
# 范围0-1023
# 总所周知的端口,如www用80端口,ftp用21端口
# 有些端口可以改变,有些不可以该变 比如139端口
# Registered Ports # 注册端口
# 范围1024-49151
# 分配给用户进程或应用程序的端口
# Dynamic Ports # 动态端口
# 范围 49152-65535
# 不固定分配某种服务,而是动态分配
# 端口重定向 # 隐藏默认端口,降低受破坏率
端口操作
# 检测开放端口
# 1 内置的端口开放查看命令,如果开启了防火墙,还需要看防火墙的开放端口
netstat -tlunp
# 2 第三方工具侦察
#centos 有个叫nmap的端口侦测工具
rpm -qa | grep nmap # 是否安装了nmap
yum install nmap # 安装nmap
nmap ip # 展示ip对应主机对外暴露的端口,可以扫描自己
# 防火墙保护端口
# 防火墙状态 centos7用firewall 不是原来的iptables
firewall-cmd --state/reload # 防火墙状态/重启
systemctl status/start/stop/reload firewalld # 防火墙 状态/开启/关闭/重启
systemctl enable/disable firewalld # 开机自启/关闭开机自启 防火墙
firewall-cmd --list-ports # centos7 查看打开的端口
# 防火墙开放端口 其中permanent表示永久生效,public表示作用域,80/tcp表示端口和类型
firewall-cmd --zone=public --add-port=80/tcp --permanent # 永久开放80端口
firewall-cmd --reload # 重载 防火墙
# 防火墙关闭端口
firewall-cmd --permanent --zone=public --remove-port=80/tcp
firewall-cmd --reload # 重载 防火墙
# centos7之前 防火墙(iptables)
man iptables #查看防火墙命令的帮助
service iptables status/start/stop/restart # 防火墙服务 状态/开启/关闭/重启
iptables-save # 查看防火墙开放端口 # 其中 IN_public_allow 项是开放端口
iptables -I INPUT -p TCP --dport 80 -j ACCEPT # 开放指定端口(80)
# 禁止ssh服务(服务器在机房的要小心,会关闭远程连接,导致无法远程连接)
iptables -A INPUT -p TCP --dport 22 -j DROP # (谨慎)
80端口httpd服务
# 80端口
# httpd process # Apache HTTP Server 开放源码的网页服务软件
# httpd 资源访问:/var/www/html
# httpd 配置文件目录:/etc/httpd/conf.d
# centos 7 操作
# 1 查看httpd安装状态
httpd -version
# 2 安装httpd 默认全部
yum -y install httpd
# 3 增加开启启动
systemctl start httpd.service # 启动
systemctl enable httpd # 开机启动
# 4 查看监听
netstat -lnt | grep 80
# 5 防火墙设置
firewall-cmd --zone=public --add-port=80/tcp --permanent # 永久开放80端口
firewall-cmd --reload # 重载 防火墙
# centos6 操作
service httpd status #httpd服务的状态
service httpd start/stop #启动/关闭 配合iptables防火墙进行开闭
service --status-all | grep httpd