Linux
henfengduandie
这个作者很懒,什么都没留下…
展开
-
linux ntfs格式u盘实现与挂载
linux ntfs格式u盘实现与挂载原创 2022-10-15 16:28:46 · 1912 阅读 · 0 评论 -
linux内核6rd实现了解
linux内核6rd实现了解原创 2022-10-15 16:22:37 · 590 阅读 · 0 评论 -
ipv6 neigh proxy代理功能
ipv6 neigh proxy代理功能原创 2022-10-15 16:20:25 · 1961 阅读 · 0 评论 -
联想服务器sudoer文件改坏后无法使用sudo问题修复
联想服务器sudoer文件改坏后无法使用sudo问题修复原创 2022-10-15 16:13:52 · 395 阅读 · 0 评论 -
初步熟悉新webserver goahead
初步熟悉新webserver goahead原创 2022-10-15 16:09:32 · 679 阅读 · 0 评论 -
高通QCA平台常见wifi命令使用
高通QCA平台常见wifi命令使用原创 2022-10-15 16:10:29 · 2668 阅读 · 0 评论 -
关于部分路由器LAN<->WAN/WLAN测试千兆上限无法突破问题
关于部分路由器LANWAN/WLAN测试千兆上限无法突破问题原创 2022-09-26 10:55:11 · 465 阅读 · 0 评论 -
HG HTTP REDIRECT重定向功能简要了解
HG HTTP REDIRECT重定向功能简要了解原创 2022-08-13 18:42:34 · 654 阅读 · 0 评论 -
HG DNS TRAP劫持功能简要了解
HG DNS TRAP劫持功能简要了解原创 2022-08-13 18:36:57 · 372 阅读 · 0 评论 -
cwmpClient实现框架简要总结
cwmpClient实现框架简要总结原创 2022-08-13 18:26:22 · 799 阅读 · 0 评论 -
CDC-NCM和CDC-ECM性能差别
在《RNDIS和CDC-ECM差别》中有提到CDC-ECM的性能应该会更好。但实际测试结果并非如此,CDC-NCM的性能表现才是更好的。重新查看了驱动,发现猫腻实现在tx_fixup / rx_fixup中。核心实现为:ncm可以将多个报文集成到一个buffer中,即实现一次收发多个数据报文(具体收发多少个需要参见cdc_ncm_bind -> cdc_ncm_setup)....原创 2021-10-08 11:28:03 · 2627 阅读 · 0 评论 -
watchdog的实现机制应用了解
正常理解watchdog工作原理为:客户定义一定的时间间隔ITime喂一次狗,如果狗超过最大时间VTime得不到喂养,则狗会饿死多数为硬件提供watchdog机制支持,在开启该硬件功能后(一般会提供寄存器软件设定开关)需要在VTime时间内至少完成一次kick,否则硬件通常的做法是直接reset重启举例某SDK watchdog实现机制:硬件提供watchdog功能支持,系统对外提供的接口主要为:echo enable 0 interval 32 > /proc/watchdo原创 2021-07-26 02:04:29 · 528 阅读 · 0 评论 -
RNDIS和CDC-ECM差别
默认建议的接口都是ethernet的(会包含eth头部),但对于RNDIS又定义了一层44字节的封包头部需要插入了报文中(cdc-ecm没有),然后再提交给usb处理即对于驱动来说,cdc-ecm基本属于透传模式,tx报文直接透传给usb;rx报文透传给CPUrndis需要增加44字节头部封装,tx报文在skb中扩展头部给usb;rx报文剥掉头部给CPUcdc-ncm从驱动上看也是有自己的头部扩展gobinet有些差异,gobinet可以配置2种模式(rawIPMode,即是否带有以太网原创 2021-07-26 02:06:30 · 3926 阅读 · 0 评论 -
LVM硬盘扩容
新硬盘需要先格式化:fdisk命令完成原有在用的硬盘是通过lvm管理的,lvm本身提供了机制可以在原有挂载点以及其对应的文件系统中扩展容量,这样可以让新加硬盘像老硬盘一样被直接使用而无感知lvm实现这套的架构为:多个pv(物理卷) 可以映射到 一个lvg逻辑卷组,一个lvg逻辑卷组 又可以分 多个lv逻辑卷,一个逻辑卷挂载一种文件系统每个步骤lvm系列工具都提供了对应的命令,具体可参见:https://www.cnblogs.com/diantong/p/10554831.htmlh原创 2021-07-26 02:01:56 · 204 阅读 · 0 评论 -
traceroute运行环境兼容性问题
某些国外运营商反馈执行traceroute没有任何结果traceroute默认使用UDP+TTL技术实现,抓包确认是上层环境没有对此报文做响应导致traceroute改为通过ICMP+TTL实现后问题解决注意:traceroute本身已通过-I参数提供了ICMP的实现...原创 2021-07-26 02:05:31 · 55 阅读 · 0 评论 -
shell命令行无法补全问题处理
多数是当前使用的默认shell脚本不支持,bash是支持的,改用bash方法:chsh -s /bin/bash原创 2021-07-26 02:05:06 · 692 阅读 · 0 评论 -
busybox ping 8.8.8.8服务器报文data长度超过88字节显示没有接收到回应报文 问题
异常时wireshark抓包和ip层check回应报文都有正常到达,从这点基本排除了网络层的问题,重点check应用层的实现对照busybox的ping源码实现,发现在unpack函数中存在回应报文长度的检查:当回应报文(从ip报头开始算) 小于 icmp报文长度(从icmp头部开始算),则认为此报文非法按照这个逻辑算下来,如果服务器固定回应data长度为68的报文,则只要设置icmp data长度超过(68+8+20-8)88,即触发此条件正常情况下icmp的回应报文data部分会直接使用原创 2021-07-25 19:59:10 · 410 阅读 · 0 评论 -
vfork的坑
需要特别注意:部分文档或资料说明vfork和fork没有差别,实际上是有差别的,而且在代码调用时要特别小心一点:vfork在调用exev系列函数之前,对父进程变量的修改都会直接会直接改变父进程中该变量的值!实例1:父进程:a = 11;vfork子进程:a = 22; //exev之前执行回过来check父进程的a值已经变成22实例2:RTL路由器平台某SDK版本中tr069 traceroute诊断功能的实现:traceroute子进程是通过vfork+sy原创 2021-07-25 19:58:25 · 71 阅读 · 0 评论 -
关于Linux kernel 提供hostname接口的一点验证
推荐阅读:https://www.cnblogs.com/kerrycode/p/3595724.html个人补充:hostname接口修改作用:1)gethostname函数获取主机名2)uname -a / hostname命令显示主机名还有一个非常重要的作用是域名IP解释:3)gethostbyname目前测试结果:不在/etc/hosts /etc/resolv.conf中映射主机名IP地址时,会获取当前设备接口IP地址显示关于此点未在2.18 glibc原创 2021-07-25 19:57:15 · 94 阅读 · 0 评论 -
windows执行cygwin慢问题
按照编译要求需要在windows下通过cygwin编译boot发现我自己的电脑编译非常慢(1~2个小时都没有编译完成),但同事的电脑不会通过windows安装程序对比排查,查找到问题原因是360影响(每个执行的命令都被劫持做安全检查???),关闭360后OK(大家也可以尝试更新360版本,看看是否已修复此问题)...原创 2021-07-25 19:55:44 · 1153 阅读 · 2 评论 -
samba安装后无法访问
1 修改samba配置smb.conf的访问权限(内部网络建议这样设定,不然就要等着各种人因为权限问题来找你麻烦...)#======================= Share Definitions =======================# Un-comment the following (and tweak the other settings below to suit)# to enable the default home directory shares. This原创 2021-07-25 19:53:41 · 581 阅读 · 0 评论 -
socket指定SRCIP和SO_BINDTODEVICE的区别
在网络编程中,尤其是多WAN(不论这个多WAN是物理的还是虚拟的,最终Linux都是以映射的NETDEVICE设备为准)的网络编程中,经常会用到上述实现,但常常会导致网络不通或走错接口的情况单播报文内核实现上的区别1)指定SRCIP - 这种情况下Linux内核并不会通过SRCIP直接定死出接口后,在没有特殊路由规则的情况下还是会按照DESTIP查找出接口注意:此时抓包会发现即使指定了SRCIP,但实际上出接口并不是我们要的那个接口,即会出现走错接口的情况处理方法:添加静态路由 -原创 2021-07-25 19:52:40 · 1040 阅读 · 0 评论 -
vi无法使用tab、backspace等按键
当前vi版本并没有指向vim,多数没有指向的原因是vim没有安装,ubantu vim安装方法:sudo apt-get install vim,安装后vi会被修改成指向vim如果已经安装vim,可以自己手动做了软链接,或者命令行直接改用vim使用而不是vi...原创 2021-07-25 19:45:11 · 461 阅读 · 0 评论 -
telnetd对tty和network socket的实现关联
telnetd实现最重要的就是对输入输出的转发处理:输入:telnet client(socket write) -> telnet server(socket read) -> telnet server(tty write) -> stdin(0)输出:stdout(1)/stderr(2) -> telnet server(tty read) -> telnet server(socket write) -> telnet client(socket rea原创 2021-07-25 19:44:23 · 168 阅读 · 0 评论