- 端口是干什么用的?
- 如果把ip地址比作一个房子,那么端口就好比进入房子的门,一个ip会有2^16(65536)个端口.
- linux系统支持多进程,每一个进程与外部进行数据交互的时候,外部的数据通过ip地址找到主机,但是,一个系统同时运行多个进程,如何将数据准确的传给指定的进程?
- 系统中的每一个服务(进程)都会打开一个端口,外部数据通过这个端口找到对应的进程,从而准确的传输数据
- 每一个服务为什么要监听一个端口?
- 监听一个端口,一是为了能够让进程接收传输来的数据,二是为了防止外部恶意的木马攻击
- 例如:linux可以使用ssh远程连接,那么只有当打开ssh的服务时,外部才可以进行连接,或者当发现有不知名来者连接此电脑时,就可以进行阻止或关闭服务
- linux的服务管理指令
service 服务名 [选项]
- 常用参数
start | 打开服务 |
stop | 关闭服务 |
restart | 重新启动服务 |
reload | 重新加载服务 |
status | 查看当前服务状态 |
- 在centOS7之后不再使用service了而是使用systemct
- 示例:查看当前linux防火墙服务状态(linux防火墙服务为(iptables))
service iptables status
- 从返回的信息中可以看到,防火墙只提供了一个22号端口
- 如何测试别人的电脑某个端口是否可以访问?
- 测试端口指令
telnet ip 测试端口
- 现在已知linux防火墙端口为22,这个Linux的ip地址为"192.168.5.129",现在通过windows测试linux的22号端口是否可用
-
出现以下画面,就表示连接成功
-
如何永久关闭某个服务
- 如果通过"service"指令关闭的某项服务,会立即生效,但是在下次系统重新启动之后,该服务还是会转换为之前的状态.
- 那么如果想要永远关闭某一项服务,不希望这个服务下一次开机的时候重新再启动,该怎么做呢?
查看系统上已有的服务
- 方式一指令查看
setup
- 选择系统服务,每个服务名称前面[*] 打新号的就表示为自启动,如果不希望开机自启动,只需要将光标移动到服务名上,按空格去掉"**"号即可
- 方式二:目录查看
ls -l /etc/init.d/
运行级别和服务的关系?
- linux系统上有7种不同的运行级别,例如图形界面(5),单用户模式(1),关机模式(0)等等,系统开机的时候会检测此时要运行哪一种运行级别.
- 而每个服务对于不同的运行级别,会有不同的配置,比如当运行级别为5的时候,某些服务会开机自启动,而当运行级别为3的时候则不会开机自启动.
- 所以如果希望一个服务无论在哪种运行级别下都不要开机自启动,就可以使用以下的指令完成
- 查看服务自启动情况指令
chkconfig --list
- 查看单个服务的自启动状态
chkconfig 服务名称 --list
- 例如:查看sshd服务的自启动状态
chkconfig sshd --list
- 修改服务在所有运行级别上是否自启动
chkconfig 服务名 [on/off]
- 例如:修改防火墙服务在所有的运行级别中都是开机自启动(0为关机模式,1位单用户模式,6为重启模式,所以无法启动防火墙服务)
chkconfig iptables on
- 修改服务在指定运行级别上,自启动状态
chkconfig --level 运行级别 服务名 [on/off]
- 例如:关闭sshd服务在运行级别为5的时候自启动
chkconfig --level 5 sshd off
- 所有的自启动设置需要在系统重新启动之后才会生效