网络协议是空白怎么添加,Linux 添加网络协议方法

题图来自Unsplash,基于CC0协议
导读
你最近可能在系统里遇到了网络协议空白的提示,看着一脸询问符号的系统界面上说“这里什么都没有”这取决于你的操作系统,其实就是在掩盖一些专业设置的事。不用担心,这其实是属于一个可以通过一些确认方法填补的过程,我来简单讲讲几种常用的排查解决方式。
协议空白对有些用户来说经常是打开方式遇不到的那种头大。别急,可能你是在系统安装目录里没找到相关文献,或者干脆是文档上写了但你心里还没点数。下面我们分别介绍一下在不同情况下的“添加网络协议是空白”问题和解决方法。
Windows 网络协议为空如何添加
要在Windows系统中为网络协议添加配置,通常需要进入到注册表的相关分支 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters,然后找到 ProviderName 字段,把需要的协议名称添加进去。操作要小心,基本属于管理员权限编辑。
若你是从旧系统迁移协议设置,命令行工具 netsh 是一个好助手,可以在Microsoft指导下轻松导出再导入新的协议信息。
Linux 添加网络协议方法
Linux环境下,网络协议主要通过/etc/network/interfaces文件来定义,当然还有更上层的完整系统启动脚本如 /etc/init.d/networking。对于支持模块加载的系统例如Ubuntu,可以通过插入 modprobe 或者直接用 insmod 来载入相应的协议模块。
网络接口配置参数可以通过配置文件 /etc/sysconfig/network-scripts/ifcfg-xxx 等文件控制。如果你需要系统识别某种未预置的协议,可能还需要调整内核引导参数或者 /usr/src/linux/xxx 目录下的代码,然后重新编译内核。
自定义网络协议添加到协议栈教程
在严格意义上,网络协议栈主要是基于 RFC 文档的标准定义,但你可以写程序或工具来定义和识别你自己的自定义协议。
要将自己的网络协议模型真正加入协议栈,需要自己编写符合 Socket API 的代码,或者进行底层修改,这实际上开发成本是不低的,尤其在用户需要通畅的双向通信时。搞定协议头解读结构、序号控制、校验处理等,才可称得上有添加脚本。
如果你掌握的是系统编程,像 Python 写试验性质的协议实现其实方便许多,可以调用 socket 库或程序自己做解析器,用于测试自定义协议反应。没错,这做法用途之一就是快速把你自己定义的字段接到协议栈访问配置。
网络协议字段空白填充方法
有时候你在批处理文档或者配置环境中,需要添加网络协议字段时为空白,你得针对性处理。
常见做法是在编辑器里添加 PROTOCOL="你的协议名称",这个字段具体有哪些用途,还是要看你所在场景下的系统要求。比如数据库脚本里写入数据协议时,通常需要这样定义,就可以同时控件多个端点要求。
若这是指在防火墙或安全策略填写协议名称时遇到的空白提示,则直接添加协议关键词如 TCP, UDP, ICMP,或是全部你自己定义。
网络协议设置空白怎么解决
可能你自己设置协议时,忘了填补内容,比如默认只给了端口之类的参数,没写协议名称,导致“空白”报错。
如果你是在 /etc/services 文件或 services.resolve 配置文档中建记录,那你需要填入对应的你正在使用的协议,例如定义新服务时,配好协议和端口关系。
如果你不确定怎添加,可以先查看 Kernal Exception 和协议列表,查清楚你要加的协议是哪个标准的。如果是没听过的新协议,那可信度需要更严谨,最好自己先了解清楚再添加。
如果你是遇到不相关的配置错误,说服解配置文件句法错误或缺少依赖的情况下,也是需要补充协议内容的。记住,不明不白“填白”很容易引发不可预料的行为。
协议配置说难不难,说简单也真不简单,一定要结合你要用的系统环境来办,应对机器配置错误也算不能太随意,理清来龙去脉从小点做起才是可靠的解决方向。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com