• 使用 OpenConnect 代替 Cisco AnyConnect,避免路由表被锁定

    前言

    最近做一个项目,需要通过 VPN 连结到对方的服务器,对方用的是 Cisco AnyConnect。

    我们装上给的 AnyConnect 客户端,可以连上。

    问题

    后来,我们的系统跑不起来,发现了问题:我们的系统需要连接我们内网的服务 X,而这个服务 X 的 IP 地址被 AnyConnect 的路由表包含在其中了。查看路由表可以发现这个情况,把 VPN 一断开,服务 X 又能访问了,一连上马上又不行了。我们连 VPN 只需要访问对方的仅仅一个 IP,但是这 VPN 把一堆内网网段都路由了。

    我直接删了对应的路由表,再刷新路由表一看,那个条目怎么还在??

    后来找了好久,总算找到了元凶,就是 AnyConnect 本身。它就是会故意监视路由表,一旦发现被篡改就给你改回去。

    解决

    在刚才的链接中,有人就提出了办法:不用 AnyConnect,改用开源的 OpenConnect。安装很简单,Linux/Mac OS 都有现成的包可以通过命令行安装,Windows 也有对应的 GUI 版本。

    安装完成后,使用以下命令连接 VPN:

    # echo password | openconnect --background -u vpnuser \
    --servercert pin-sha256:xxxxxxxxxxxxxxxxxxxx \
    vpn.your.com

    连接建立后,可以查看路由表,发现路由表确实又被加了许多。

    但是没关系,sudo ip del xxxxxxxxxx,直接就能删掉。这样问题就解决了。

  • 神级视频软件FFmpeg你知多少

    尽管我们每天都在看视频,不过对视频播放背后的机理,恐怕并不是每个朋友都会去作了解。我们平时看到的小电影有着各种各样的格式,例如AVI、RMVB、MKV等等,但是这些格式并非是视频之间的本质区别——不同的格式往往只代表着不同的容器,容器内封装的具体视频流、音频流等内容,才是一个视频的本质所在。

    例如,AVI中可以封装H.264编码的视频流,MKV也可以封装H.264,但同时MKV还能够封装HEVC、VP9等视频流。因此,MKV和MKV之间的区别,可能要比某个AVI和某个MKV之间的区别大得多。当然,不同的容器也是有功能和性能上的区别的,例如MKV对各种编码的兼容性就非常好,而AVI则有所局限,且不支持流媒体播放等。

    要播放某段视频,播放软件所需要做的,首先要支持某种容器,然后把视频流、音频流等内容从容器中分离出来,接而解码,然后渲染,用户就可以播放出视频、音频乃至字幕等内容了。

    这个过程是比较繁琐而且颇有技术含量的,世界上有着茫茫多规格的编码格式,做一个播放器就意味着需要对这些东西吃得比较透,这无疑是相当费时费力的。因此,为数庞大的视频播放器实际上都使用了统一的解决方案——FFmpeg。

    阅读更多…

  • 2015年,“白菜价”的开发板都有哪些?

    2015年,迷你电脑主机大走低价路线。以往动辄上百美金的开发板,在过去一年集体大幅度跳水,售价低至10美元左右,创客圈直呼业界良心。那么2015年究竟有哪些“白菜价”的开发板上市了呢?硬创邦这里为大家做详细盘点。作为开源硬件的代表作品,Raspberry开启了迷你Linux电脑的先河。

    Raspberry Pi Zero 5美元

    35美元的Raspberry Pi 成为了一代创客们心中对于创客文化最早的记忆。为了让编程开发变得更简单更亲民,在2015年11月份,英国树莓派基金会正式对外推出了迷你版的树莓派Zero。

    56cee7b92923cd8.jpg_600x600[1]

    这块只需要5美元的开发板,只有半张信用卡的大小,能够运行Linux系统,支持Python、C语言和Perl等编程语言。性能方面,Zero 并不逊色。配备博通(Broadcom)出产的ARM架构的BCM2835处理器(1GHz),512MB的内存,相比初代的树莓派性能提升了40%。

    值得一提的是,Zero 内置了USB、视频、LAN等各种接口,能够帮助创客们实现更多的外接功能。

    阅读更多…