w1100n
This site is best viewed in Google Chrome
wiloon, 10/30/2018 14:33

place the certificate to be trusted (in PEM format) in /etc/pki/ca-trust/source/anchors/ [code lang=shell] update-ca-trust enable sudo update-ca-trust [/code]

wiloon, 10/30/2018 10:17

https://blog.csdn.net/zqtsx/article/details/25487185 linux下测试磁盘的读写IO速度(IO物理测速) 一:使用hdparm命令 这是一个是用来获取ATA/IDE硬盘的参数的命令,是由早期Linux IDE驱动的开发和维护人员 Mark Lord开发编写的( hdparm has been written by Mark Lord mlord@pobox.com, the primary developer and maintainer of the (E)IDE driver for Linux, with suggestions from many netfolk).该命令应该也是仅用于Linux系统,对于UNIX系统,ATA/IDE硬盘用的可能比较少,一般大型的系统都是使用磁盘阵列的. 使用方法很简单 hdparm -Tt /dev/sda /dev/sda: Timing cached reads: 6676 … Continue reading

wiloon, 10/29/2018 23:15

build R7800, Build custom Netgear R7800 firmware for a larger flash size/root space burn netgear 刷机, factory.img, sysupgrade.bin 改网段 openwrt lan 改网段 openvpn https://openwrt.org/docs/guide-user/services/vpn/openvpn/basic enable https for wget opkg install librt openssl-util opkg install wget ca-certificates

wiloon, 10/28/2018 23:48

edit /etc/opkg/distfeeds.conf [code lang=shell] src/gz openwrt_core http://openwrt.proxy.ustclug.org/releases/18.06.1/targets/ipq806x/generic/packages src/gz openwrt_base http://openwrt.proxy.ustclug.org/releases/18.06.1/packages/arm_cortex-a15_neon-vfpv4/base src/gz openwrt_packages http://openwrt.proxy.ustclug.org/releases/18.06.1/packages/arm_cortex-a15_neon-vfpv4/packages src/gz openwrt_routing http://openwrt.proxy.ustclug.org/releases/18.06.1/packages/arm_cortex-a15_neon-vfpv4/routing src/gz openwrt_telephony http://openwrt.proxy.ustclug.org/releases/18.06.1/packages/arm_cortex-a15_neon-vfpv4/telephony [/code] [code lang=shell] # backup src/gz openwrt_core http://downloads.openwrt.org/releases/18.06.1/targets/ipq806x/generic/packages src/gz openwrt_base http://downloads.openwrt.org/releases/18.06.1/packages/arm_cortex-a15_neon-vfpv4/base src/gz openwrt_packages http://downloads.openwrt.org/releases/18.06.1/packages/arm_cortex-a15_neon-vfpv4/packages src/gz openwrt_routing http://downloads.openwrt.org/releases/18.06.1/packages/arm_cortex-a15_neon-vfpv4/routing src/gz openwrt_telephony http://downloads.openwrt.org/releases/18.06.1/packages/arm_cortex-a15_neon-vfpv4/telephony [/code] … Continue reading

wiloon, 10/28/2018 10:49

xxx-factory.img 首先使用网线连接路由器的LAN口 和 PC的网口 路由器断电,用牙签或其他工具,捅路由器的reset口。 开启设备电源开关,观察电源灯(此时保持按住Restore Factory Settings按钮不要松手),直到电源灯由橙色闪烁状态变到绿色闪烁状态(说明设备已经进入到了TFTP修复模式) 在win下面使用DOS命令,即: tftp -i 192.168.1.1 put 文件名.img 在mac下面,同样也是使用tftp命令。 1.自己的ip改成192.168.1.10,网关即路由ip 192.168.1.1 2.把 下好的 img 固件放到用户文件夹下 3.打开终端,输入(binary的作用是改为二进制模式)>tftp>connect 192.168.1.1>binary>put 文件名.img完了之后路由器会闪灯后自动重启。 文件传送完毕后,等待80秒左右,设备会自动重启(请耐心等待,切勿将路由器手动断电)。至此,TFTP修复完成。 设备重启后,可手动断电,再重启。否则可能没有5G。这不是BUG,其他openwrt也是一样的 如果恢复过程中断或失败,重复上述步骤再做尝试。

wiloon, 10/27/2018 11:36

http://blog.51cto.com/changfei/1672147 KVM-Qemu-Libvirt三者之间的关系 Qemu Qemu是一个模拟器,它向Guest OS模拟CPU和其他硬件,Guest OS认为自己和硬件直接打交道,其实是同Qemu模拟出来的硬件打交道,Qemu将这些指令转译给真正的硬件。 由于所有的指令都要从Qemu里面过一手,因而性能较差。wKiom1WdDYyjiVZiAAECBtAEQ5E590.jpg KVM KVM是linux内核的模块,它需要CPU的支持,采用硬件辅助虚拟化技术Intel-VT,AMD-V,内存的相关如Intel的EPT和AMD的RVI技术,Guest OS的CPU指令不用再经过Qemu转译,直接运行,大大提高了速度,KVM通过/dev/kvm暴露接口,用户态程序可以通过ioctl函数来访问这个接口。见如下伪代码: open(“/dev/kvm”) ioctl(KVM_CREATE_VM) ioctl(KVM_CREATE_VCPU) for (;;) { ioctl(KVM_RUN) switch (exit_reason) { case KVM_EXIT_IO: case KVM_EXIT_HLT: } } KVM内核模块本身只能提供CPU和内存的虚拟化,所以它必须结合QEMU才能构成一个完成的虚拟化技术,这就是下面要说的qemu-kvm。 qemu-kvm Qemu将KVM整合进来,通过ioctl调用/dev/kvm接口,将有关CPU指令的部分交由内核模块来做。kvm负责cpu虚拟化+内存虚拟化,实现了cpu和内存的虚拟化,但kvm不能模拟其他设备。qemu模拟IO设备(网卡,磁盘等),kvm加上qemu之后就能实现真正意义上服务器虚拟化。因为用到了上面两个东西,所以称之为qemu-kvm。 Qemu模拟其他的硬件,如Network, Disk,同样会影响这些设备的性能,于是又产生了pass through半虚拟化设备virtio_blk, virtio_net,提高设备性能。 wKiom1WdDc2CEwy6AAGPf4VzQao172.jpg libvirt libvirt是目前使用最为广泛的对KVM虚拟机进行管理的工具和API。Libvirtd是一个daemon进程,可以被本地的virsh调用,也可以被远程的virsh调用,Libvirtd调用qemu-kvm操作虚拟机。

wiloon, 10/26/2018 18:00

转义, 加引号 [code lang=shell] linux "-xxx" [/code]

wiloon, 10/26/2018 17:28

[code lang=shell] find /data/logs -mtime +30 -type f -name "*.*" -exec rm -f {} \; [/code] -mtime:File’s data was last modified n*24 hours ago. +10:查找10天前的文件,这里用数字代表天数,+30表示查找30天前的文件 “.“:希望查找的数据类型,”.jpg”表示查找扩展名为jpg的所有文件,”“表示查找所有文件 -exec:固定写法 rm -rf:强制删除文件,包括目录 {} \; :固定写法,一对大括号+空格+/+; https://www.linuxidc.com/Linux/2013-06/85613.htm

wiloon, 10/26/2018 9:35

https://www.cnblogs.com/apocelipes/p/9609895.html 不过因为某些未知原因,并不是所有的包都能直接用go get获取到,这时我们就需要使用go modules的replace功能了。(当然大部分问题挂个梯子就能解决,但是我们也可以有其它选项) 使用replace替换package replace顾名思义,就是用新的package去替换另一个package,他们可以是不同的package,也可以是同一个package的不同版本。看一下基本的语法: go mod edit -replace=old[@v]=new[@v] old是要被替换的package,new就是用于替换的package。 这里有几点要注意: replace应该在引入新的依赖后立即执行,以免go tools自动更新mod文件时使用了old package导致可能的失败 package后面的version不可省略。(edit所有操作都需要版本tag) version不能是master或者latest,这两者go get可用,但是go mod edit不可识别,会报错。(不知道是不是bug,虽然文档里表示可以这么用,希望go1.12能做点完善措施) 基于以上原因,我们替换一个package的步骤应该是这样的: 首先go get new-package(如果你知道package的版本tag,那么这一步其实可以省略,如果想使用最新的版本而不想确认版本号,则需要这一步) 然后查看go.mod,手动复制new-package的版本号(如果你知道版本号,则跳过,这一步十分得不人性化,也许以后会改进) 接着go mod tidy或者go build或者使用其他的go tools,他们会去获取new-package然后替换掉old-package 最后,在你的代码里直接使用old-package的名字,golang会自动识别出replace,然后实际你的程序将会使用new-package,替换成功 下面我们仍然用chromedp的example做一个示例。 示例 chromedp使用了golang.org/x/image,这个package一般直连是获取不了的,但是它有一个github.com/golang/image的镜像,所以我们要用replace来用镜像替换它。 我们先来看看如果不replace的情况下的依赖情况: 没错,我们使用了原来的包,当然如果你无法获取到它的话是不会被记录进来的。 下面我们go get它的镜像: master表示获取最新的commit go … Continue reading

wiloon, 10/24/2018 18:04

https://blog.csdn.net/weiwenjuan0923/article/details/52713387 摘要总结: ASCII编码是128个字符 中国把汉字编入GB2312,Shift_JIS/Euc-kr各国标准….. Unicode是为了解决各国乱码的,但浪费存储空间 UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6字节,英文字母是1字节,汉字通常是3字节,生僻字符是4-6字节 简单归纳: 编码 大小 支持语言 ASCII 1个字节 英文 Unicode 2个字节(生僻字4个) 所有语言 UTF-8 1-6个字节,英文字母1个字节,汉字3个字节,生僻字4-6个字节 所有语言 具体解释: 最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。 但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。 你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。 因此,Unicode应运而生。Unicode把所有语言都统一到一套编码里,这样就不会再有乱码问题了。 Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。 新的问题又出现了:如果统一成Unicode编码,乱码问题从此消失了。但是,如果你写的文本基本上全部是英文的话,用Unicode编码比ASCII编码需要多一倍的存储空间,在存储和传输上就十分不划算。 所以,本着节约的精神,又出现了把Unicode编码转化为“可变长编码”的UTF-8编码。 UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间。 UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分, 所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。 理论解释: 1、ASCII码 在计算机内部,所有的信息最终都表示为一个二进制的字符串。 一个字节一共有256种不同的状态,从0000000到11111111。 上世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定,称为ASCII码。 ASCII码一共规定了128个字符的编码。这128个符号,只占用了一个字节的后面7位,最前面的1位统一规定为0。 2、非ASCII编码 扩展ASCII码在保留原始的7位的基础上,使用了最前的一位。 不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。 3、Unicode … Continue reading

wiloon, 10/20/2018 17:32

[code lang=shell] go mod init project0 go mod tidy //拉取缺少的模块,移除不用的模块。 go mod download //下载依赖包 go mod graph //打印模块依赖图 go mod vendor //将依赖复制到vendor下 go mod verify //校验依赖 go mod why //解释为什么需要依赖 go list -m -json all //依赖详情 [/code]

wiloon, 10/17/2018 10:58

install xorg start xorg install xfce4 install tigervnc vncpasswd /root/.vnc/password

wiloon, 10/12/2018 11:32

[code lang=shell] tar -cvf – foo | openssl enc -e -aes256 -k password -out foo.tar openssl enc -d -aes256 -in foo.tar -k password | tar xv openssl enc -d -aes256 -in foo.tar -k password | tar xv -C . #原文件 … Continue reading

wiloon, 10/10/2018 10:14

[code lang=shell] cat out | python -c "import sys; print sys.stdin.read().replace('.\n','.')" [/code] sed replace newline (or 5 ways to remove line breaks with sed, python, tr, perl, xargs)

wiloon, 10/9/2018 11:10

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/ldd.html ldd 作用:用来查看程式运行所需的共享库,常用来解决程式因缺少某个库文件而不能运行的一些问题。 示例:查看test程序运行所依赖的库: /opt/app/todeav1/test$ldd test libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00000039a7e00000) libm.so.6 => /lib64/libm.so.6 (0x0000003996400000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00000039a5600000) libc.so.6 => /lib64/libc.so.6 (0x0000003995800000) /lib64/ld-linux-x86-64.so.2 (0x0000003995400000)

wiloon, 10/9/2018 8:21

https://blog.csdn.net/crjmail/article/details/79097348 一、关于PolarSSLmbed TLS(以前称为PolarSSL)是TLS和SSL协议的实现,并且需要相应的加密算法和支持代码。这是双重许可与Apache许可证 2.0版(与GPLv2许可也可)。网站上指出,mbed TLS的目标是“易于理解,使用,集成和扩展”核心SSL 库用C编程语言编写,并实现SSL模块,基本加密功能并提供各种实用功能。与OpenSSL和TLS的其他实现不同,mbed TLS设计为适合小型嵌入式设备,最小完整的TLS堆栈需要60KB的程序空间和64KB的RAM。它也是高度模块化的:每个组件,如加密函数,可以独立于框架的其余部分使用。版本也可用于Microsoft Windows和Linux。因为mbed TLS是用C编程语言编写的,没有外部依赖,PolarSSL的后期版本超过1.3.0,为内核分配和线程添加抽象层,以“支持与现有嵌入式操作系统的更好集成”——机器翻译的凑合着看。想看原版的自行Wikii现在叫MbedTSL,PolarSSL源码,也许是最小巧的ssl代码库。高效、便于移植和集成。尤其适合嵌入式应用。也就是说,无论是嵌入式还是桌面软件版的编程,只要你用的到AES,RSA等加密算法,你都可以直接拿过来源码放进你的工程中,进行编译管理,不用带着DLL,或者必须安装一些不必要的库,并且算法是标准库,所以你懂得。并且OpenSource。二、什么是OpenSSLOpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库、应用程序以及密码算法库。OpenSSL的目录结构自然也是围绕这三个功能部分进行规划的。作为一个基于密码学的安全开发包,OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。三、什么是SSLSSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。网景Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。安全套接层协议能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。通过以上叙述,SSL协议提供的安全信道有以下三个特性:1 数据的保密性信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密钥来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密钥要用一个安全的方法传送。加密过的数据可以公开地传送。2 数据的完整性加密也能保证数据的一致性。例如:消息验证码(MAC),能够校验用户提供的加密信息,接收者可以用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。3 安全验证加密的另外一个用途是用来作为个人的标识,用户的密钥可以作为他的安全验证的标识。SSL是利用公开密钥的加密技术(RSA)来作为用户端与服务器端在传送机密资料时的加密通讯协定。四、SSL和TLS的区别SSL:(Secure Socket Layer,安全套接层协议),SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL通过互相认证、使用数字签名确保完整性、使用加密确保机密性,以实现客户端和服务器之间的安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。Secure Socket Layer是Netscape于1994年开发的,目前有三个版本:SSL2.0、SSL3.0、SSL3.1,最常用的是1995年发布的第3版,已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。TLS:(Transport LayerSecurity,传输层安全协议),是IETF(工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本,目前有TLS 1.0,TLS1.1,TLS1.2等版本。 本文来自 crjmail 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/crjmail/article/details/79097348?utm_source=copy

wiloon, 10/8/2018 19:12

pam模块文件内容看,可以将pam配置文件分为四列, 第一列代表模块类型 第二列代表控制标记 第三列代表模块路径 第四列代表模块参数 Module_type 将为 Service_name 字段中的相应服务指定模块类型(auth/account/session/passwd)。 Control_flag 将指定模块的堆栈行为。它可以获取诸如 requisite、required、sufficient 和 optional 之类的值。 Module_path 将指定实现模块的库对象的路径名称。默认情况下,它将被设为 /lib/security。 Module_options/module_args(可选字段)将指定可以传递给服务模块的选项或实参。 PAM模块接口(模块管理组) PAM为认证任务提供四种类型可用的模块接口,它们分别提供不同的认证服务: auth 表示鉴别类接口模块类型用于检查用户和密码,并分配权限; 这种类型的模块为用户验证提供两方面服务。让应用程序提示用户输入密码或者其他标记,确认用户合法性;通过他的凭证许可权限,设定组成员关系或者其他优先权。 account 表示账户类接口,主要负责账户合法性检查,确认帐号是否过期,是否有权限登录系统等; 这种模块执行的是基于非验证的帐号管理。他主要用于限制/允许用户对某个服务的访问时间,当前有效的系统资源(最多可以多少用户),限制用户位置(例如:root只能通过控制台登录)。 多数情况下auth和account会一起用来对用户登录和使用服务的情况进行限制。这样的限制会更加完整。比如下面是一个具体的例子:login是一个应用程序。Login要完成两件工作——首先查询用户,然后为用户提供所需的服务,例如提供一个shell程序。通常Login要求用户输入名称和密码进行验证。当用户名输入的时候,系统自然会去比对该用户是否是一个合法用户,是否在存在于本地或者远程的用户数据库中。如果该账号确实存在,那么是否过期。这些个工作是由account接口来负责。 如果用户满足上述登录的前提条件,那么它是否具有可登录系统的口令,口令是否过期等。这个工作就要由auth接口来负责了,他通常会将用户口令信息加密并提供给本地(/etc/shadow)或者远程的(ldap,kerberos等)口令验证方式进行验证。 如果用户能够登录成功,证明auth和account的工作已经完成。但整个验证过程并没有完全结束。因为还有一些其他的问题没有得到确认。例如,用户能够在服务器上同时开启多少个窗口登录,用户可以在登录之后使用多少终端多长时间,用户能够访问哪些资源和不能访问哪些资源等等。也就是说登录之后的后续验证和环境定义等还需要其他的接口。这就是我们下面要提到的两组接口: password 口令类接口。控制用户更改密码的全过程。也就是有些资料所说的升级用户验证标记。 session – 会话类接口。实现从用户登录成功到退出的会话控制;处理为用户提供服务之前/后需要做的些事情。包括:开启/关闭交换数据的信息,监视目录等,设置用户会话环境等。也就是说这是在系统正式进行服务提供之前的最后一道关口。 单个PAM库模块可以提供给任何或所有模块接口使用。例如,pam_unix.so提供给四个模块接口使用。 auth        required      pam_env.so        … Continue reading

wiloon, 10/7/2018 13:26

https://www.cnblogs.com/double-win/p/3841017.html [code lang=shell] vim /etc/config/network config 'interface' 'lan' #LAN口,用于路由器子网设置 option 'ifname' 'eth0' option 'type' 'bridge' option 'proto' 'static' option 'ipaddr' '192.168.99.1' option 'netmask' '255.255.255.0' [/code]

wiloon, 10/6/2018 16:32

ip tuntap add dev tun0 mode tun ip tuntap add dev tap0 mode tap ip tuntap del dev tun0 mode tun #for detail ip tuntap help https://my.oschina.net/dangzy/blog/221893

wiloon, 10/5/2018 14:43

sudo pacman -S nftables 增 增加表,Adding tables: nft add table [<family>] <name> nft add table ip foo family 参数是可选的,如果不指定 family,默认是 IPv4 增加链,add chain: nft add chain [<family>] <table-name> <chain-name> { type <type> hook <hook> priority <value> \; [policy <policy>] } … Continue reading

next page
辽ICP备14012896