利用Racoon在Ubuntu搭建IPSec的VPN

首先申明,原文参考了这一篇,http://blog.martianz.cn/article/2014-02-14-centos-cisco-ipsec 但是这一篇有两个问题 作者使用的CentOS,而我的目标机器是Ubuntu。 可能是系统不一样的原因,楼主有些防火墙命令在我这里没法执行 因此,整理一篇可以用于Ubuntu的 1.首先,安装所需软件 apt-get install ipsec-tools apt-get install racoon 2.编辑Racoon的配置文件 可以用如下内容直接覆盖默认配置文件/etc/racoon/racoon.conf,注意listen中的公网IP path pre_shared_key "/etc/racoon/psk.txt"; path certificate "/etc/racoon/certs"; listen…

关于Linux的NetworkManager和iptables-persistent的二三事

最近给工作站换了Linux Mint,但是一直有几个问题: 我的工作站是双网卡,一个内网,一个外网。但是两个网卡都设置了默认路由,导致无法上网。所以写了一个临时脚本来调整路由策略,每次开机都要执行,甚烦。 因为需要使用shadowsocks科学上网,在防火墙配置了ss-redir的透明代理,然后试图用iptables-persistent自动加载,但是一直没有成功,于是每次开机也要手动执行。 这两个问题困扰了我很久,于是趁着周末加班又没有什么事情,把他们一并解决掉,记录一下。 0x01 双网卡路由的问题 Linux Mint使用了NetworkManager替代了传统的/etc/network/interfaces来进行网络配置,因此,无法在/etc/network/interfaces进行网关调整的工作。翻了翻资料,发现其实NetworkManager也挺简单的,在界面就可以配置: 注意底下的这一句”仅对此网络上的资源使用此连接“,就是这个破烂翻译,一直让我没明白这是干嘛的。其实就是”是否将此连接设置为默认路由“。果断打勾,让其不要成为默认路由,完事。其影响的配置文件是在/etc/NetworkManager/system-connections下面,翻看一下: [ipv4]…

Shiro中,对已登陆用户再次访问loginUrl的控制

最近在做一个项目,第一次使用Shiro,配置倒是非常简单,测试时有用户抱怨说反复登陆,都停留在登陆界面。于是分析其行为,最终发现,用户很可能是收藏了登陆界面,在已经登陆到系统的前提下,用户没有退出,直接用收藏夹切换到登陆界面,打算用另外一个用户登陆。通过阅读文档,可以知道Shiro对于用户行为有三种方式过滤: 如果用户没有登陆,直接来到了登陆页面,则成功登陆后,用户会被重定向到successUrl界面。 如果用户没有登陆,直接访问了未授权页面,则会被重定向到loginUrl页面(即登陆页面),登陆成功后,会被重新定向到之前用户直接访问的页面。 用户已经登陆,则可以直接访问权限内的页面 那么,问题就出在,用户已经登陆的情况下,用户直接访问了loginUrl,这时候,Shiro不会将其重定向,而Shiro的用户登陆逻辑,又是向loginUrl发送一个POST请求。因此,就出现了似乎是死循环的逻辑。 放狗搜索,最终在stackoverflow得到了一些答案,总结一下,基本上两种结局方案 在loginUrl页面判断用户是否已经登陆,如果已经登陆了,则提示用户可以选择进入系统或者登出: <ui:fragment rendered="#{not empty…

利用dnsmasq的并发查询功能来解决内外网域名服务器切换问题

很多公司,都架设了自己的域名服务器,使得在内网的机器可以通过子域名而不是ip来轻松访问内网资源。但是,这里又有所划分: 有些域名,比如intranet.company.com,仅仅能够内网访问,只有内网的域名服务器才可以解析 有些域名,比如mail.company.com,不仅可以内网访问,公网也可以访问。只是不同的网络,解析出来的ip地址不同。 对于我这样的,喜欢自己使用dnsmasq来做个人电脑dns加速的,在这种场景下,就不得不经常切换dns服务器设置。举个例子,在公司,可能用server=/company.com/111.111.111.111来解析intranet.compay.com这样的域名。离开公司,又要切换到server=/company.com/114.114.114.114。有没有办法可以一劳永逸的解决,不需要切换呢。于是翻看dnsmasq的官网,终于找到这样一段描述: --all-servers By default, when…

感受纯粹的影视,评Netflix在亚太地区的全面上线

一直以来,我对于寻找一个让人满意的网上视频点播服务,有着十足的好奇心。当然,我有自己的要求: 必须是origin的。因此,朝内这些搜狐或者QQ一等受到我朝文化省监督的网站,全部退下了。 必须是支持各种设备。电脑,手机,pad自然不必说。电视系统也是要支持的。 先后体验了Google Play Movies & TV和iTunes,先来谈谈这两者。 Google Play Movies & TV是谷歌旗下的影视系统。首先,我选择的是香港地区。Google Play Movies & TV在香港只提供电影,并没有电视剧。电影以欧美的影片为主,极少有香港台湾电影,大陆的就更不要想了。设备上,Google Play Movies & TV除了提供电脑网页,手机,iPad之外,其电视盒子Nexus Player也可以提供在电视机上观看。各设备的播放质量,可以参考官方。在写该篇文章时,发现iPad已经可以流式播放高清视频了,…

一台Mac,一台Linux,相互做NAT来访问背后的网络

0x01 基本情况 我们经常会使用一根网线连接两台电脑,让两台电脑相通。但是,如何让一台电脑可以访问另一台电脑背后的网络呢。特别的,如果一台是Linux,一台是Mac,如何让其互相能够访问背后的网络呢?这就是我今天搞了一上午的成果。 先来看看我们什么都没做的时候的网络拓扑结构: 一台Linux的电脑,有两块网卡,其中一块网卡eth0连接内网,分配的地址如下ip:192.168.132.131,gw:192.168.132.2,另外一块eth1暂时闲置。这台机器处于内网,我厂的内网网段为182.0.0.0/8,内网DNS为182.119.172.49。 一台Mac电脑,也有两块网卡(其中一块就是WIFI啦)。en0(WIFI)分配的地址如下ip:172.31.85.126,gw:172.31.80.…

说一说bootstrap-datepicker项目不大不小的坑

最近接手了一个Bootstrap的项目,因为要用到一个日期组件,所以放狗一搜,就有了bootstrap-datepicker这个控件。使用起来倒是也不难,但是差点被坑了一下。 什么情况呢?该项目需要日期控件控制用户的日期选择段,且要控制这一段时间内春节那几天不能被选择。该控件提供了: startDate,endDate来控制日期段的起始日 datesDisabled来控制某几日不能被选择 OK。写代码,测试都通过,没有问题,上线。但是上线第一日早晨8点之前在做最后一次测试时,测试人员发现春节不能选择的那几天,莫名其妙的被推后了一天。即本来是7号-13号不能选择,但是却变成了6号-13号不能被选择。于是做了一番研究,发现问题在于这几个类在解析时,控件内部使用了不同的时区解析策略: 对于startDate,endDate,它使用local timezone去比较哪几天不能被选择,这很正常 对于datesDisabled,控件却使用了UTC timezone去比较哪几天不能被选择。这就导致,比如说中国,在东八区,那么早上8点之前,我们已经是4号了,但是UTC时间还是3号。这就造成了一天的差异。 目前的解决方案是各使用不同的初始化值: 对于startDate,endDate,就使用new Date(2016, 0,…

新年新气象

新年新气象,换了我的VPS供应商。之前使用的一直是Vultr的服务,节点日本,5刀一个月。但是最近的两件事情,扭把在一起,让我决心更换: 一是Vultr的网络是越来越差了,遂准备安装锐速。但是才发现我的Ubuntu版本太高(14.10),目前锐速不支持,见支持列表。 二是最近最好用的SSL服务Let's Encrypt终于进入了Public Beta阶段,遂准备为博客上SSL,结果因为我的Ubuntu不是LTS,已经停止了apt更新下载服务(404),只能被迫升级才能解决。 一个要求升级,一个要求降级,真是当时选择了Ubuntu的版本,现在才意识到选择LTS的重要性。扭把在一起,想想算了,某同事在DigitalOcean购买的服务,我测试过,速度确实不错,直觉上在上海是超过Vultr的。于是决心上DigitalOcean,新加坡节点,依旧5刀每月。 问题来了:数据怎么迁移??我在旧VPS的服务包括但不限于博客,主页,谷歌镜像,Git仓库,Shadowsocks服务,DNS服务等等。其它都好搭建,但是博客是个问题。因为之前使用的Wordpress的平台,但是其是PHP写的,一个我不懂的技术,因此早就有更换的念头了。…