自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

钱国正的专栏

业精于勤荒于嬉,行成于思毁于随

  • 博客(384)
  • 资源 (9)
  • 收藏
  • 关注

原创 Dead loop on virtual device ppp301, fix it urgently! 与cisco路由问题解决方案

设备作为L2TP client背靠背连接思科的路由器的时候一直提示这个错误。

2022-12-21 19:12:57 379 1

原创 hostapd mac filtering问题记录

Hostapd 的Mac Filtering功能在多SSID中使用过程中的问题

2022-12-20 17:49:08 371

原创 Linux Kernel存储udp server的socket信息跟踪

前言工作中遇到一个内核的bug,同事给内核增加了socket绑定设备接口id的功能,主要用在绑定VRF的时候,绑定特定的设备。最近测试发现了,加了这个补丁后,导致不同vlan的dhcp server不能同时工作,为了解决这个问题,我对linux kernel如何存储socket的相关功能进行了跟踪,记录如下。应用层UDP Server创建应用层调用socket, bind创建udp server socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); bind(sock

2020-09-07 16:46:44 508 1

原创 Intel Eval Board L2TP/IPSec客户端搭建Ubuntu系统

L2TP over IPSec on Ubuntu由于Windows自带的L2TP/IPSec无法与Intel Eval Board建立连接, 这个是Intel的bug.从头搭建L2TP/IPsec 隧道。服务器端配置准备 环境: Intel Eval Board 系统:sdk 基于openwrt 主要构成软件: xl2tpd-1.3.1, strongswan, iperf3(可选,测试性能)配置/etc/xl2tpd/xl2tpd.conf[global]listen-add

2020-07-08 16:55:28 603

原创 Linux VRF 移植遇到的无法绑定VRF interface发送单播数据包问题

起因系统内核版本3.10.104, 然而VRF的multicast支持在4.4版本才开始,而且版本之间很多问题也不一样,后续导致了一些问题。理解错误?在我的理解中,如果要绑定VRF interface,在发送数据包的时候需要提供ifindex, 也就是真实的接口的ifindex,而不是VRF接口的ifindex.VRF 作者的pdfVRF 作者在论坛中回复问题之前的移植,发送广播的时候没什么问题,发送IPv6单播的时候就出现问题了。无法绑定vlan interface,或者VRF interf

2020-06-15 14:12:25 528 2

原创 工作记录- 移植BGP md5支持到linux 2.6.16

需求客户需要BGP协议支持MD5加密这种安全性,所以需要实现IPv6两种协议的支持,然而标准内核在2.6.20才支持这个功能,所以,我们的活儿来了。移植参考Linux-2.6.20 将这个setsocketopt的操作抽象为回调函数,这样方便同时支持两种协议。然后就参照实现,自己添加喽,计算md5的方式参考IPv4实现,其他的参考新的内核实现。问题由于对IPv6 md5使用的不熟悉,测...

2019-08-16 15:45:11 268

原创 工作记录 - Linux 的socket TCP keep-alive功能在特定情况下失效的原因

问题TCP socket keep-alive 失败,导致正在进行的业务失败。分析根据数据报文发现,每次tcp ack keep-alive数据报文请求发送后如果发送别的数据,就会出现socket超时, 判断是内核处理tcp keepalive出现问题导致的。问题重现我根据这种情况,实现了一个类似的socket,发送keep-alive然后在程序中sleep特定时间,然后发送数据,模拟紧...

2019-08-16 15:36:42 965

原创 Linux网络中的桥 (Bridge)

桥简介桥,从字面来讲就是在一条河流上面建造一条路,对,就是这样,甭管是多大多长跨江还是跨海,它都是起到连接两岸的作用。在计算机的网络世界中也存在这种连接的两个网络的设备,这也是一种桥,虚拟的桥。网络中的桥OK, 回归主题,什么是网络中的桥?我们在90年用的Repeater(一个比特一个比特的转发数据),后来的网桥(一帧一帧的转发),再到后来的交换机(多个端口的桥)。这些都是桥的不同形态的设...

2019-08-16 15:15:52 1073

原创 Qemu 使用记录

简介一直想研究qemu很久了,都是浅尝辄止,看一半的文档就不搞了,要下载那么多的镜像很讨厌的。最近觉得这两年实在是没什么长进确实应该深入看看了。命令行先了解这个命令怎么用吧,首先下载个TinyCore-current.iso 官网上下载才16MBqemu-system-i386 -m 2G -smp 2 -vga vmware TinyCore-current.iso -enable-k...

2019-07-31 19:10:46 353

原创 Linux中的虚拟路由转发VRF

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点 这里可以跳转到教程。VRF 简单概念虚拟路由转发(Virtual Routing and Forwarding)顾明思义,虚拟的路由转发,讲路由分成不同的分组,然后根据请求的接口,目的地址进行路由的转发,这个是工作在单台设备内的,出了这个设备就...

2019-07-22 21:48:16 1983

原创 自动下载Twitter视频图片golang实现

Github地址Github: https://github.com/gohiweeds/twitterdownloader.git功能支持Socks5代理配置国内的:支持设置SOCK5 代理,下载Twitter视频图片 如果已经配置了就不需要了使用SOCK5下载了,如下,直接下载即可,无须配置HTTP代理。 MacOS: export http_proxy=...

2018-09-03 14:30:23 6936

原创 利用go-ethereum创建自己的以太坊账户

转载请注明出处 本人首发在github上 http://blog.hiweeds.net最近两天一直搜索哪里有开源的Go实现的Ethereum的钱包,但是发现其实那么多的开源项目并没有 符合我想看的,兜兜转转,还是看了go-ethereum的源码,然后在stackoverflow上看到了下面的 实现,值得一试。package mainimport "github.com/ethere...

2018-05-30 16:09:33 2951

原创 IPFS 是什么?

IPFS 全称IPFS 英文全称: InterPlanetary File System , 翻译: 星际文件系统技术基础基于Git, BitTorrent, Kademlia, SFS 和Web, 他就像是一群bittorrent, 交换git对象。IPFS提供http接口操作,你也可以挂载文件系统/ipfs.Git - Linus发明的分布式源码管理工具BitTorrent...

2018-04-24 17:03:52 1567

原创 吐槽下dnsmasq源码

吐槽下dnsmasq源码首先表示下感谢,作者提供简单的设计,丰富的功能,充分降低了我们这些普通程序员的工作,但是要理解起来还是不那么称心如意,主要有那么几点。1. 无关设计, 代码缩进问题。无处不再的空格,偶尔有几行tab,真的不好看阿,阅读起来很麻烦2. 整体设计的感想程序主要架构是select侦听socket的状态进行操作 -- 【决定其只能在小网络架构中使用】采用struct dnsmasq

2017-09-01 11:25:56 5402

原创 git push: error 401 Unauthorized while accessing

git push origin mastererror: The requested URL returned error: 401 Unauthorized while accessing https://git.oschina.net/qianguozheng/mtk7620a.git/info/refsvi .git/config将 [remote “origin”] url

2017-05-15 16:59:08 1870

原创 go-workerpool 支持每分钟百万并发的抽象原型

使用 Golang 实现了一个简单的消费者模式, 主要解决每分钟百万请求的问题。基本原理:建立固定的工作线程去缓冲池中取数据处理。以此来控制固定时间内处理的请求数源码地址https://github.com/qianguozheng/go-workerpool.git用途控制goroutine的数目简练模型实际使用场景及灵感来源http://marcio.io/2015/07/handling

2017-01-14 23:22:32 2861

原创 go http异常处理

原文出处: https://github.com/qianguozheng/ideas/blob/master/golang-http-panic-recover-usage.mdGolang http post panic recover usageBrief IntroductionIn golang, some abnormal case would cause program crash,

2017-01-10 13:00:32 1734

原创 大小端再测

以前就对这写概念理解的不够透彻, 每次都是死记硬背大小端的概念, 现在其实也记得不是很清晰。 现在终于是心理稍微有点普了, 0x1234, 低位是0x34, 高位是0x12. short是两个字节。 char 是一个字节。 存到低位的值是低位, 0x12高位, 则主机为大端序 存到低位的值是低位, 0x34低位, 则主机为小端序#include<stdio.h>in

2016-11-02 20:10:37 444

原创 Go语言字符串反转

实现字符串翻转也就是将“abcd” 转换为 “dcba”func reverse(str string) string { rs := []rune(str) len := len(rs) var tt []rune tt = make([]rune, 0) for i := 0; i < len; i++ { tt = append(tt, r

2016-10-12 14:33:52 3111 1

原创 Golang截取字符串(支持中文)

Go内置函数不支持截取字符串转换为rune slice之后,一个中文就是一个“字符”, 所以你可以一个一个的替换,取出等操作。func SubString(str string, begin, length int) string { fmt.Println("Substring =", str) rs := []rune(str) lth := len(rs) fm

2016-10-12 11:09:34 5683

转载 Ubuntu更新出现 The system is running in low-graphics mode解决

一第一步: 出现上面的界面的时候 : 按ctrl +alt+f1 第二步: 按照相应的显卡输入以下命令1.对于最新的Nvidia二进制驱动:sudo add-apt-repository ppa:ubuntu-x-swat/x-updates sudo apt-get update sudo apt-get install nvidia-current nvidia-current-mo

2016-09-28 17:45:10 482

转载 openwrt取消strip 软件包

https://forum.openwrt.org/viewtopic.php?id=15195Hi all , anybody out there who are familiar with makefiles ? sorry for asking , if i for example write in the makefile for a package the following line

2016-09-20 15:43:03 1342

原创 valgrind在openwrt 系统下无法工作原因

http://stackoverflow.com/questions/15840091/cross-compiled-valgrind-does-not-detect-obvious-leaks It turns out that openwrt strips all libraries including valgrind’s vgpreload_xxxxxx.so libs and libc

2016-09-20 15:07:07 1895

原创 error: ext4_allocate_best_fit_partial: failed to allocate 742 blocks, out of space?

I hope this reply doesn’t come too late for you, but I ran into the same problem, in my case:error: ext4_allocate_best_fit_partial: failed to allocate 1579 blocks, out of space?I solved the problem by

2016-09-20 14:58:45 4796

原创 字节数int, long, double

和机器字长及编译器有关系:所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI/ISO制订的): 1 sizeof(short int)<=sizeof(int) 2 sizeof(int)<=sizeof(long int) 3 short int至少应为16位(2字节) 4 long int至少应为32位。 unsigned 是

2016-09-19 14:45:56 672

原创 protobuf-c应用样例

源码源码地址: https://github.com/protobuf-c/protobuf-c.git编译./autogen.sh && ./configure && make && make install应用根据协议格式生成源码与头文件amessage.proto 文件内容如下: message AMessage { required int32 a=1; optio

2016-09-18 13:44:31 1339

转载 openwrt toolchain 编译错误 *** [s-attrtab] Killed

[转载] http://www.aganzai.com/post-42.htmlmake[5]: *** [s-attrtab] Killedmake[5]: Leaving directory `/home/work/openwrt/barrier_breaker/build_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/gcc-l

2016-08-21 10:48:25 2129 3

原创 我会如何从头搭建嵌入式系统

让我从头搭建一个类似openwrt的系统,我才不干,我也干不出那么好。 虽然心里一直说这个系统那么烂,但是不得不为其设计思想感到折服。openwrt的自动下载这个块,设计的思路非常简单,就是按照规则写Makefile由解析程序去下载,解压编译安装。 这套对于普通用户来说很爽,但是如果经常需要编译或者修改就不是很友好。几个字概况就是,不适合产品化。openwrt的内核更新较快,相关软件也有相应升级,

2016-07-02 21:28:24 878

原创 OpenWrt分区

近期与同行交流,问我openwrt分区记忆加深。uboot+firmware+art 其实关于分区叫什么名称,我觉得是随便改,但是功能基本类似。主要是firmware里面又分了两个,之前还遇到过这个事情,竟然忘记了。 firmware=kernel+ rootfs+rootfs_datauboot启动不需要知道分区吗? 需要知道传递给内核的分区参数吧,还有就是要知道内核的烧写地址吧。dev:

2016-07-02 21:20:51 2440

原创 Linux C语言strlcpy,strlcat函数

常用字符串操作函数strcat, 连接字符串strcpy, 拷贝字符串以上两个函数经常会出现stack overflow问题,长度问题导致的等。以下两个是相对安全一点的。strncatstrncpy但是,我个人常用的是snprintf函数,这个函数保证以NUL结尾的。所以从来不参考以上的函数。发现新大陆重温privoxy源码,发现了下面的函数strlcpystrlcat只不过这两个函数并

2016-06-30 23:39:55 1149

转载 iptables的nf_conntrack相关参数引起两个问题

某关键业务系统上频繁出现业务失败,并发生了一次大规模业务中断。 该系统采用两台IBM Power 740运行AIX 6.1+Oracle 11gR2 RAC作为数据库服务器,两台DELL PowerEdge R720作为应用服务器,前端采用F5作为负载均衡设备。 数据库服务器和应用服务器之间有Cisco ASA5585硬件防火墙进行访问控制。 应用服务器上运行自行开发的C程序,通过Oracle

2016-06-13 18:20:37 6258

原创 Squid zph-qos 选项

squid默认并不是以root用户启动的进程,而且即使设置为以root用户启动也是无法生效的。所以,如果想给socket打mark即调用setsockopt API函数的话需要权限来进行操作。提权就很重要,libcap类库就是来干这个事情的。具体是在tools.cc文件中的函数实现restoreCapabilities 中CAP_NET_ADMIN就是提权的能力使能。static voidrest

2016-06-05 09:33:54 599

转载 tcp wrapper简介及nginx支持

Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。Tcp wrappers是一种对使用 /etc/inetd.sec 的替换方法。TCP Wrappers 提供防止主机名和主机地址欺骗的保护。欺骗是一种伪装成有效用户或主机以获得对系统进行未经授权的访问的方法。1、重新编译Nginx

2016-06-05 09:20:59 1005

原创 Linux C语言strlcpy,strlcat函数

常用字符串操作函数strcat, 连接字符串strcpy, 拷贝字符串以上两个函数经常会出现stack overflow问题,长度问题导致的等。以下两个是相对安全一点的。strncatstrncpy但是,我个人常用的是snprintf函数,这个函数保证以NUL结尾的。所以从来不参考以上的函数。发现新大陆重温privoxy源码,发现了下面的函数strlcpys

2016-05-24 09:58:53 17888

原创 OpenWrt 4G网卡拨号配置

基础知识MiniPCI-e, 接口其实就是USB接口, 采用的USB协议.USB协议中有product id, vendor id.4G网卡的拨号方式有三种: PPP (PPP over EV-DO, CDMA, UMTS or GPRS) QMI (USB modems using QMI protocol) NCM (USB modems using NCM pro

2016-05-23 22:37:28 22516 2

原创 iptables connections state 简介

Linux Packet Filtering and iptables Prev Chapter 10. Iptables matches Next 10.3. Explicit matches Explicit matches are those that have to be specifically loaded with the -m or –match

2016-05-23 22:36:31 368

原创 转移git仓库

原来的仓库地址如https://git.hiweeds.net/test.git 新的仓库地址为 https://git.hiweeds.net/real.gitgit clone https://git.hiweeds.net/test.gitcd testgit remote set-url https://git.hiweeds.net/real.gitgit push --all

2016-02-19 13:36:16 546

原创 Linux pppd拨号成功,无法访问网络解决方法

pppd拨号成功生成虚拟接口时, 需要做的工作就是增加默认路由route add default gw 10.64.64.64域名服务器地址更新 vim /etc/resolv.conf114.114.114.114执行resolvconf -u

2016-01-28 19:07:03 6609

原创 python统计程序运行时间函数

统计程序运行时间是time.clock() 装饰器的参数 (*args, **kwargs)import timedef decorated_hello(func):def _hello(*args, **kwargs): print "<function name : " +func.__name__+">" print "<function call begin>"

2016-01-05 21:39:16 2603 1

原创 Linux 段错误调试Segment Fault

Linux下调试方式, 我个人用的主要是两种:1. printf2. coredump3. review代码 (在线程过多或是错误信息不明显时)printf 这个大家都懂, 直接打印,一行一行的。coredump 生成#前提条件程序使用 -g 编译增加调试信息。#允许系统生成coredump文件ulimit -c unlimitedulimit unlimited#查看coredump

2016-01-04 23:44:36 613

5G NR _ the next generation wireless access technology-Academic Press (2018)

5G NR _ the next generation wireless access technology-Academic Press (2018).pdf

2018-12-06

linux device tree 介绍

linux device tree开发文档, linux内核通过device解析设备驱动的配置

2015-09-17

mtk openwrt 3.10.14 sdk源码

mtk openwrt, 3.10.14的相关文档介绍, 如果定制开发最好熟悉下

2015-09-17

AIO nginx C10K

something about highest Asynchronous Performance development of Concurrent, may be the best docs you can find , thanks

2012-03-31

linux动态链接库示例

linux动态链接库的制作,linux下制作动态链接库 C语言描述

2011-09-18

类 QQ 聊天室 java

本人写的类QQ 聊天室,可以实现实时通讯的,不过没有用户列表,而求是用udp 实现,传输可靠性不是特别高哦

2010-11-08

绩点计算器 C# + SQL Server2005

淮阴师范学院绩点计算器作业,如有需要,欢迎下载啊,各位同学也可以参考内容,仅限源码

2010-10-05

截屏源码 java 编写 code

上次的那个没有源码抱歉,这个给补上了,里面包含各种资源信息,希望有兴趣的同学下载

2010-10-04

java 截图工具 源代码

程序设计时有四秒的等待时间 源码部分已经给出,可以再次基础上自己编写图形界面,以及设置截屏大小

2010-10-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除