实在不知道怎么起这个标题了….. 主要问题的是如果在命令行打上了中文,然后用按住backspace删除的时候会把PS1打出来的也一起删除掉…. 就是以上的效果,这个问题困扰我好久,刚开始以为是自定义PS1的问题.试了好久也没有找到问题 奇怪的是,同样的PS1配置,在有一些机器上没问题,有一些机器有问题…..对比了一下不同,可以正常删除文字的机器上配置了LANG环境变量为en_US.UTF-8,不了解这个环境变量的同学可以去这里看一下, 不能正常删除文字的机器上LANG环境变量没有配置,尝试配置上以后就OK了… 困扰多年的问题啊…… 原因是啥呢? 可以看到”我现在要删除了” 这7个中文会转成unicode, 由于我用的SecureCRT 客户端里配置了以UTF8格式输入,所以每个中文占3个字符 在未配置LANG环境变量的时候,我们按删除键,一次只删除一个unicode字符 末配置LANG环境变量的情况下,没按删除,按一
Category: 实用技巧
经测试shadowsocks协议已经完全被识别
由于最近处于比较特别的时期,好多同学发现之前用得好好的ss梯子现在突然无法用了,于是我做了一个简单的测试 网络环境:广东电信梯子VPS:某不知名VPS主机协议:普通shadowsocks协议,未加混淆端口:假设是1111 用windows客户端和shadowrocket连均无法使用 ss梯子端口切换成1112,仍然无法使用.但是ping远端IP正常,且telnet 端口1111和1112都正常返回 把1111端口修改为ssh服务端口,用ssh客户端成功连上,所以GFW已经不单单监控流量,可以快速识别ss协议的特征. 这样的话使用ss协议已经很容易被盯上,虽然GFW不能破解出协议内容,但是可以知道客户端的IP有梯子行为,以后就…. 何解? 等特殊时期过了可能自然恢复(但是不建议用ss协议)换其它协议(V2Ray中的各种协议, https proxy , websocket + tls之类)V2Ray配置实在太麻烦了,像我这么喜欢折腾的人都懒得去配置….https proxy 需要自己去买一个证书,或者用Let’s Encr
一次破解TP-Link路由器的经历
说是破解其实也没有这么夸张啦,也就意外拿到了root密码. 先来说说背景吧,最初想要在公司的核心路由器上添加静态路由规则,通过IP地址段来判定网络出口,本来公司人就不多,当初就让熟人做一个套TP-Link的方案,核心路由用的是TP-R4239G 小型企业的路由器,管理界面都是tplink自己定制过的,恶心的要死,在后台Web管理界面只能手动一条一条增加,最多限制20条静态路由规则.20条明显不够用啊,APNIC中查出来的中国IP段都有7000多条了,哈哈,知道我要干嘛了吧 这个一看就知道肯定是有一个配置文件设置的,只要修改这个配置文件,再重启一下路由启就好了,但是这种tplink的路由器定制的系统,又没有开ssh端口,实在不好修改配置文件,要是能给刷上Openwrt之类的就好了,但是去官网上查了一下,Openwrt根本没有支持这个型号的路由.这个就没有办法了吗…想起原来有在tplink的官网上下载过升级的固件,是不是可以把官网的固件里的文件修改一下,然后刷到路由器
在一个系统中安装运行多个版本的Glibc-实战篇
上回说到发现了一个神奇的项目LFS,从官网上可以看到,这个项目是教你怎么完全用源码编译一个自已定制化的Linux系统.这跟我们之前说的安装运行多个Glibc有什么联系呢? 来来来,前情提要,上篇 讲到在程序运行的时候会依赖很多动态库,其中Glibc就是一个非常重要的库,程序通过加载ld-linux.so库对这些依赖库的路径进行查找.而ld-linux.so的路径是写死在编译器gcc中的,换一句话说,就是在一个程序在编译的时候,默认情况下它需要加载的ld-linux.so路径已经写死了(这里编译Glibc的时候会生成对应版本的ld-linux.so文件的,所以不同版本的Glibc会生成版本的ld-linux.so哦). 所以需要运行多个版本的Glibc,有两个方法,一个是在编译新的程序时通过-Wl,–dynamic-linker= 参数指定ld-linux.so路径指向其它版本 ,第二是修改gcc源码中ld-linux.so的路径,再用修改过的gcc编译新的程序,这样编译出来的所有程序ld-linux.so的路径都会指向其它版本生成的了.很容易
在一个系统中安装运行多个版本的Glibc-原理篇
又好久没有更新博客了……… 这是一个困扰了我好久好久的问题.首先我们来说一下需求,我们需要在同一台linux主机上安装和运行多个版本的Glibc,为什么呢? 不知道大家有没有遇到这种情况,一般在公司里,多人共享一台开发机,开发编译都在同一台机子上,每个人需要安装一些自已喜欢的软件,比如tmux,ycm之类的,但是安装软件的时候又不想要影响其它人的工作,所以一般都是自已编译安装在自已的home目录下,然后修改自已用户的$PATH环境变量,事情到这里应该是比较顺利的. 但是呢,大部分公司的开发编译机呢,由于历史的原因,上面的各种库的版本都比较老,由于升级成本比较高,所以线上跑的程序依赖库的版本也是比较老的版本,所以你想要在开发编译机上安装一些比较新工具,体验一下新特性什么的,由于一些库的版本太低,就没有办法了.(就例如YCM,目前依赖最低的Glibc是2.14,但是很多公司的机器Glibc的版本是2.3,2.9,2.12…所以就gg了…)
Linux Console快捷键大法
鉴于好久都没有发博客了,鉴于怕以后要用的时候找不到…我来转一篇,接下来要坚持写博客呀… Command Editing Shortcuts Ctrl + a – go to the start of the command line Ctrl + e – go to the end of the command line Ctrl + k – delete from cursor to the end of the command line Ctrl + u – delete from cursor to the start of the command line Ctrl + w – delete from cursor to start of word (i.e. delete backwards one word) Ctrl + y – paste word or text that was cut using one of the deletion shortcuts (such as the one above) after the cursor Ctrl + xx – move between start of command line and current cursor position (and back again) Alt + b – move backward one word (or go to start of word the cursor is currently on) Alt + f – move forward one word (or go to
搭建DNSCrypt服务器
哪里有压迫哪里就有反抗啊 上篇讲到用dnscrypt-proxy加密转发dns请求,看上去很美好的样子..可是问题来了dnscrypt-proxy默认提供的dns地址列表中的大部分地址都已经被和谐了,没有服务端再怎么加密都没有用 于是乎我们只有自己搭建一套dnscrypt服务器,虽然dnscrypt-proxy是官方开源的,但是server端并没有开源出来,好在有大神Cofyc参照client写了一个开源的版的server,dnscrypt-wrapper 下载源码进行编译,注意需要 libsodium和libevent 2库.Linode的CentOS源有两个库,直接yum安装就可以,编译是还需要安装autoconf 编译过程看看README就好了,比较简单 根据README中安装成功后,新建一个目录,在目录生成两个provider key文件 public.key secret.key 注意把公钥的串先记下来,之后会用到 再生成一个有时限的安全key和它对应的证书,我里命名为20151212(今天双12,哈哈) dnscrypt-wrapper --gen-crypt-keypair --crypt-secretke
OpenWRT防止DNS污染
话说写了这么多和谐的东西,不是给我封了吧… 那天家里停电,回来的时候发现路由器爬不了梯子了,手动重启shadowsock也不行,但是用ss的客户端还是可以访问的,现在是openwrt上有问题,DNS用的是8.8.4.4,当时想应该不会被污染吧,找了一圈都没有找到原因,于是在openwrt上装了个dig试试DNS解析,opkg install bind-dig,查了一个fb,果然dns被污染了,被解析到了一个159.106.121.75的IP上.以为是dnsmasq的dns服务器IP没有配置对,搞了一大圈,虽然没有效果,指定dns server 解析 dig @8.8.4.4 www.facebook.com 居然也被污染了,心想可能是8.8.4.4被劫持了,那换一个私有的dns服务器来解析总可以吧,把linode的dns 的IP来试试居然还是不行,这…已经非常明显了..一定是dns解析的53端口被劫持了.. 换一个opendns的5353端口试试 dig @208.67.222.222 -p 5353 www.facebook.com 解析正常..操蛋的电信,居然把53端口上的所有流量都劫持了,不知道什么
用OpenWRT+Shadowsocks实现全自动爬梯子指南
那天在网上瞎逛,无意中发现OpenWRT这个好东东,想用自己路由器试试,无奈我用的这个屌丝水星路由器刷不上OpenWRT(你可以在官网列表上查看自己的路由器是否可刷),第二天逛公司BBS时居然就有人在转二手的TL-WDR4320,180收了!市场价400+这波不亏啊,回来赶紧去官网下固件,这里注意到官网没有WDR4320的固件,但是与WDR4310型号是相同的,故刷上4310的固件是没有问题的. 刷成功之后你的路由器就相当于一个轻量的Linux server,你可以直接在你的电脑上用ssh登录,ip默认是192.168.1.1,端口是22,需要修改的话可以跟一般的路由器一样,用浏览器进入后台管理页面进行配置修改,建议把端口和root密码修改掉.可以在上面装软件呀什么的,由于OpenWRT是基于debian开发来的,所以也有一个类似于ubuntu的apt-get的包管理工具,这里是opkg,安装软件全靠它,当然你也可以直接ipk包然后直接安装,但是然后安装的软件有依赖包就会非常的麻烦,所以推荐直接用opkg管理.另外还需要注意的