利用内网穿透 frp 工具实现外网链接(ssh)内网树莓派设备

内网穿透原理内网穿透(Net穿透)也即端口映射,笔者粗暴理解是一种能够将外网机器与内网机器(外网无法直接访问的设备)建立通信的一种技术解决方案。百度百科尽管有许多穿越NAT的技术,但没有一项是完美的,这是因为NAT的行为是非标准化的。这些技术中的大多数都要求有一个公共服务器,而且这个服务器使用的是一个众所周知的、从全球任何地方都能访问得到的IP地址。一些方法仅在建立连接时需要使用这个服务器,而其它的方法则通过这个服务器中继所有的数据——这就引入了带宽开销的问题。具体原理详见百度百科=> https://baike.baidu.com/item/NAT%E7%A9%BF%E8%B6%8需要资源一台公网服务器(可以通过IP直接访问树莓派(也可以是电脑,以树莓派为例安装本文以frp v 0.13.0为例(具体版本可以自己定,但不保证其他版本能够成功)。笔者在go 1.7.4版本下编译frp... Read More

禁止 tmux 窗口自动命名

关于tmux的多窗口,用起来可谓非常方便。但,也许在默认的tmux配置下,一样和我被一个小问题困扰。那就是,tmux的窗口名称总是会随着执行的命令不同而变动。关于这一点,可用如下的方式来解决更改tmux配置文件打开~/tmux.conf文件,增加(或修改)如下内容[code lang="shell"set allow-rename of[/code更改oh-my-zsh配置文件当然,如果你在用oh-my-zsh的话。那么,还需要进行如下修改打开~/.zshrc文件,增加(或修改)如下内容[code lang="shell"DISABLE_AUTO_TITLE="[/code参考文章:https://stackoverflow.com/questions/38543763/tmux-will-not-stop-auto-renaming-window Read More

修正 Vim(Mac) 有时无法正确提交 Git Commit Message 的问题

和 Subversion 一样,Git 也可以为 Commit Message 设置一个默认的编辑器,命令如下git config --global core.editor vi不过我在 Mac OS X 系统使用 Git 的过程中,偶尔会遇到如下的情况*** Commands **1: status 2: update 3: revert 4: add untracke5: patch 6: diff 7: quit 8: helWhat now>Bye.error: There was a problem with the editor 'vim'.Please supply the message using either -m or -F option.这种情况基本上都是出现在我打错字的时候,开始以为是输入法引起的 Vim 状态异常,不过出现... Read More

工作效率之动态 IP 域名化篇

在公司里,RD们不免会使用一些代理服务来进行抓包操作。那么就需要获取代理服务器(一般为自己的电脑)的内网IP。然而,这个内网IP并不是固定不变的。所以,每次配置代理IP时就略显麻烦。那么,下面就来聊聊如何解决这个尴尬,提升效率。方案将非固定IP实时解析到域名中。利用阿里云的域名解析开发者API进行定时的更新。其中的定时用本机(Mac)的Launchd实现(类似Linux下的Crontab)。原材料Mac(或者Windows 但本文仅谈及Mac配置方法)域名(如 ihuxu.com如果没有域名可以到freenom.com中注册一个免费域名,然后将其DNS切到阿里云免费的DNS云解析服务中即可。阿里云账号利用阿里云提供开发者的DNS管理相关的AP步骤下载阿里云SDK & 编写代码库:https://github.com/aliyun/aliyun-openapi-php-sdk.g... Read More

作为 10 个月的 Vim 使用者心得总结

隐约记得对于Vim的使用,起始于2015年12月份底。当时,是处于Eclipse到Vim的过渡时期。所以,对于Vim的使用基本上是“婴幼儿”级别。偶然间,我看到了一位同事正在编码的屏幕。不需要触摸板或鼠标的操作,看起来是那么的自然,更是让我看得有些“眼花缭乱”。从那时起,才知道原来Vim可以这么cool(是不是很无知的赶脚?)。这十个月,经历了从小白到能够把Vim作为主“IDE”的过程。故在此和大家分享下本人在Vim的心得。从最基本的概念、快捷键到一些实用的插件的管理与使用。在此之前,曾在部门的例会上有做过分享(分享了一个多小时,估计大家都困了),PPT托管在了github.com/genialx/vimer 上,本文的内容也将基本按照着PPT的顺序。Vim的指令集之丰富、功能之强大真,以至于我这种“小白”来在会议上分享Vim可谓多么忐忑,: 为什么要分享Vim?这个问题很简单,但更重要。对于Vim,会有两种态度... Read More

深入IDE利器VIM:tab键的配置

VIM,一款自定义程度超乎你想象的IDE利器。在平时开发中,得心应手,无所不可比及。没有你想不到,只有你做不到。。。不对,没有你做不到,只有你想不到的。然而,为了代码看起来更优雅,通常也是编程的规范,基本上在编写代码时,是不允许有tab字符存在的。所以,在VIM如何配置tab键,将tab键统一替换成空格?区别空格的ACSii码:0x2tab的ACSii码:0x0这使得在混用两种字符的时候,不同的场景下(比如:vim、浏览器)会呈现不同的长度,看起来很混乱。配置打开vim配置文件.vimr[code lang="shell"vim ~/.vimr[/code写入如下内容并保存[code lang="shell"set expandtaset tabstop=set shiftwidth=[/code这样一来,试试在vim中敲击tab键的效果,是不是已经替换成4个空格了?那之前的tab键怎么办... Read More

powerline 插件安装之 vim 篇(Mac)

powerline是vim的状态栏插件,同时也提供状态栏和提示窗口功能给其他一些应用,包括zsh,bash,tmux,IPython,Awesome,i3 和 Qtile。这篇文字只谈vim上的安装。环境与工具系统:OS X EI Capitan version 10.11.终端:terminavim :v7.4.191xcode: 7.3.1(xcode的版本过低会影响一些依赖库的安装,我在6.5的情况下安装一些软件会出些问题,避免麻烦升级下。python:3.5.源码python: https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xvim: https://github.com/vim/vim/archive/v7.4.1949.tar.g安装pytho./configure  --prefix=/us... Read More

Vim 使用技巧之只有用了才会懂“最好的 IDE 是 Vim”

半年前,我还在诸如Eclipse、ZendStudio等IDE里徘徊。然而,这半年对于Vim的使用,我不得不说,Vim的效率是更高的。代价是需要时间来配置属于你自己的Vim。此篇文字,不会人云亦云。当然,很抱歉也不是个教程(水平不够)。只写下迄今为止对于Vim+tmux的使用感受,以及展示vim的使用技巧(至于如何入门vim请自行google)。为什么要用VIm?随时随地,摆脱环境的束缚,你只需要一个终端。你不必在键盘和鼠标之前来回切换(我压根就觉得鼠标是不服务于“编码工作”的产品),所有的操作都在指尖下的按键。高程度的自定义,所以不要来拷贝他人的配置文件,很伤。其他IDE中的功能在Vim里基本能找到替代品,幸福指数飙升耳听十遍,不如亲眼一见winmanager, ftaglist, neardtree, bufexplorer和tmux等的应用ctrlp的应用Vim使用技巧看到好多人,... Read More

关于 rsync 工具的安装、配置与进行文件同步与备份的使用流程

安装linux yum install rsyn配置编辑文件vim /etc/xinetd.d/rsyn内容如下# default: of# description: The rsync server is a good addition to an ftp server, as it # allows crc checksumming etc.service rsyndisable = nflags = IPvsocket_type = streawait = nuser = rooserver = /usr/bin/rsynserver_args = --daemolog_on_failure += USERI创建配置文件touch /etc/rsyncd.con... Read More

抓包工具 tcpdump 的使用说明与官方文档

一直在Linux下开发的人一定会用到tcpdump,下面就是关于tcpdump的使用方法说明tcpdump的选项-a —— 将网络地址和广播地址转变成名字-d —— 将匹配信息包的代码以人们能够理解的汇编格式给出-dd —— 将匹配信息包的代码以c语言程序段的格式给出-ddd —— 将匹配信息包的代码以十进制的形式给出-e —— 在输出行打印出数据链路层的头部信息-f —— 将外部的Internet地址以数字的形式打印出来-l —— 使标准输出变为缓冲行形式-n —— 不把网络地址转换成名字-t —— 在输出的每一行不打印时间戳-v —— 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息-vv —— 输出详细的报文信息-c —— 在收到指定的包的数目后,tcpdump就会停止-F —— 从指定的文件中读取表达式,忽略其它的表达式-i —— 指定监听的网络接口-r —— ... Read More

Git 与 SVN 的使用感受

这是一篇上网一搜一大堆的文章,所以,重在个人感受(不说具体实现,当然现在也不懂!)。工作环境需要,分别接触了Git和SVN版本控制工具。接触不久,尽管这两种工具都不是很熟悉,目前仅能达到满足简单的工作需求(有时还需要查引擎)。但,还是有一些感受以记录。分支(branches)与里程碑(tagsGit的分支和里程碑很有趣和简单,可以快速地在当前工作区切换不同的分支和里程碑。SVN的分支和里程碑本身就是一个目录(拷贝),目录下分别有一个.svn的文件夹以存储版本信息。所以,SVN切换分支很麻烦,需要切换工作区(每一个工作区只对应服务器的某一分支)。而Git却很方便。集中式与分布式这个事情和上面的分支和里程碑是有重叠的地方的。Git采取的是分布式。简单的说就是每台checkout过代码的笔记本上都有着一个完整的代码库。而SVN却是集中式的,只有一个是代码仓库,就是服务器。所以,Git可以本地提交,SVN需联网提交。... Read More