首页 > 系统相关 >Linux的/etc/services文件的作用?

Linux的/etc/services文件的作用?

时间:2022-10-15 13:23:25浏览次数:88  
标签:文件 服务 端口 etc Linux services 端口号

/etc/services文件保存了服务和端口的对应关系。

/etc/services 作用 /etc/services文件保存了服务和端口的对应关系。但是通常服务的配置文件里会自行定义端口。那么两者间是什么关系呢?事实上,服务最终采用的方案仍然是自己的端口定义配置文件。但是/etc/services的存在有几个意义:
1、如果每一个服务都能够严格遵循该机制,在此文件里标注自己所使用的端口信息,则主机上各服务间对端口的使用,将会非常清晰明了,易于管理。
2、在该文件中定义的服务名,可以作为配置文件中的参数使用。
例如:在配置路由策略时,使用"www"代替"80",即为调用了此文件中的条目“www 80”
3、且当有特殊情况,需要调整端口设置,只需要在/etc/services中修改www的定义,即可影响到服务。
例如:在文件中增加条目“privPort 55555”,在某个私有服务中多个配置文件里广泛应用,进行配置。
当有特殊需要,要将这些端口配置改为66666,则只需修改/etc/services文件中对应行即可。

基本上是个标准,但是不是强制的。推荐的做法是在/etc/services里面加入新端口的定义或是使用已有的端口的定义,然后在监听的时候使用从/etc/servies里面得到的端口定义。这样和其他程序有没有冲突,一目了然。而且一旦需要调整和重新分配端口的时候也容易。
比如db2监听的是db2cdb2inst1这个端口名称,至于具体这个端口是多少(通常是50000),是定义在/etc/services里的,而且可以自由调整,比如改成60000,那么下次启动db2的时候就是监听60000端口

1)作用
/etc/services文件是记录网络服务名和它们对应使用的端口号及协议。
2)格式
文件中的每一行对应一种服务,它由4个字段组成,中间用TAB或空格分隔,分别表示“服务名称”、“使用端口”、“协议名称”以及“别名”。
服务名 "tab" 端口号/协议名 “tab” 别名

kermit 1649/udp
l2tp 1701/tcp l2f
l2tp 1701/udp l2f
h323gatedisc 1718/tcp
3)应用
很多的系统程序要使用这个文件。

如果每一个服务都能够严格遵循该机制,在此文件里标注自己所使用的端口信息,则主机上各服务间对端口的使用,将会非常清晰明了,易于管理;

在该文件中定义的服务名,可以作为配置文件中的参数使用。例如:在配置路由策略时,使用"www"代替"80",即为调用了此文件中的条目“www 80”;

且当有特殊情况,需要调整端口设置,只需要在/etc/services中修改www的定义,即可影响到服务。
例如:在文件中增加条目“privPort 55555”,在某个私有服务中多个配置文件里广泛应用,进行配置。当有特殊需要,要将这些端口配置改为66666,则只需修改/etc/services文件中对应行即可。
在应用程序中可以通过服务名和协议获取到对应的端口号,通过在该文件注册可以使应用程序不再关心端口号。
4)端口分配
Linux系统的端口号的范围为0–65535,不同范围有不同的意义。
0 不使用
1--1023 系统保留,只能由root用户使用
1024---4999 由客户端程序自由分配
5000---65535 由服务器端程序自由分配
4、如何使应用程序不再关心服务所使用的端口号?
1)确定服务程序名称,协议,端口号
2)在/etc/services中配置1)中信息
3)应用程序可以不直接使用端口号,通过函数getservbyname("server","tcp")获取端口号。
4)如果服务想更改端口号只要更改/etc/services中的端口号就可以了,应用程序不需要做任何更改。
注:同时可以通过函数getservbyport(htons(50),“tcp”)获取对应端口和规约上的服务名。
使用这两个系统函数需要包含头文件:#include <netdb.h>

原文:
https://blog.csdn.net/mydriverc2/article/details/79892948

标签:文件,服务,端口,etc,Linux,services,端口号
From: https://www.cnblogs.com/uuuuuuuuuuuuuuuu/p/16793967.html

相关文章

  • Linux文件系统与日志分析详解
    一、inode(索引节点/i节点)与block(块)1.inode与block的概念1.1什么是block?文件储存在硬盘上的,硬盘最小的存储单位叫“扇区”,每个扇区存储512个字节一般连续8个扇区会组......
  • linux之用户 | 15
    用户&用户组创建用户:useradduser1删除用户:userdel-ruser1删除一个用户('-r'排除主目录)修改用户密码:passwduser1修改一个用户的口令(只允许root执行)创建一个新用......
  • linux查看操作系统版本信息
    一、linux下如何查看已安装的centos版本信息:1.Linux查看当前操作系统版本信息 cat/proc/versionLinuxversion2.6.32-696.el6.x86_64([email protected]......
  • Linux 系统安全及应用(账号安全和引导登录控制)
    一、账号安全控制1.1系统账号清理将非登录用户的shell设置为/sbin/nologin   锁定长期不使用的账号   删除无用的账号   锁定帐号文件passwd和sh......
  • Leetcode——二分查找防止值溢出
    一般写法,但容易导致值溢出left+right这步操作有可能导致int溢出intleft=0,right=n,mid;mid=(left+right)/2;防止值溢出写法left加上right减去left......
  • Linux 性能1-perf
    参考:一文看得Linux性能分析|perf原理:https://mp.weixin.qq.com/s/Vj418ZwVe6PxE1erDu8bkg一文看懂Linux性能分析|perf实现:https://mp.weixin.qq.com/s/6kTe0eO1AmPPHb......
  • Unix/Linux系统编程学习笔记-7
    笔记第四章并发编程并行计算导论并行计算是一种计算方法,通过使用多个执行并行算法的处理器相较串行计算更快地解决问题。顺序算法与并行算法顺序算法begin step_......
  • 代码随想录 反转字符串(LeetCode 344) ,反转字符串II(LeetCode 541),替换空格(剑指offer
    反转字符串题目编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用......
  • LeetCode224 基本计算器
     idea:刚开始是打算分类讨论,建立了数字栈和字符栈,按照传入字符当时两个栈的基本情况分类,结果讨论完之后分类太麻烦,导致分析完了之后漏洞不少。我觉得这道题难点在于括号......
  • 《Unix/Linux系统编程》学习笔记7
    第四章并发编程一、知识点归纳(一)并行计算导论1.顺序算法与并行算法顺序算法并行算法begin  step_1  step_2  ……  step_nend//nextstepc......