开放端口的事情就几条命令的事情,以 L2TP/IPSec 为例:

但是比较麻烦的是从VPN客户端过来的包总是无法转发到Internet上,找了好多资料,发现问题主要在两个地方:

NAT转发没配置好:

但是,配置好转发之后,问题仍然存在,不得以调试了半天 iptables 规则,发现问题出在 filter:FORWARD 链中。在我的规则中,FORWARD链中第九条规则直接REJECT了包。

暂时把ACCEPT规则添加进去吧:
[crayon-[……]

Read more

首先安装strongswan和xl2tpd:

记得开启IP转发,修改 /etc/sysctl.conf 修改如下:

并重启使之生效。(执行 sysctl -p 应该也是可以的,但一定要验证一下,实在不行就重启吧。)

接下来修改 /etc/strongswan/ipsec.conf 文件,如下:

修改/etc/strongswan/ip[……]

Read more

29. March 2014 · 2 comments · Categories: Develop, Python · Tags: ,

Install Python 3.x

In CentOS, There is no Python3 rpm package in EPEL, RPMFusion, we must install Python 3.x by source.

Download Python 3.4.0, and extract it.

switch to Python-3.4.0, compile&install Python 3.4.0 (You are expected have installed gcc, make an[……]

Read more

MySQL Connector Python 1.1.6 was released on 2014-2-19, I use it with Django and South, but South looks like cannot work with the Connector 1.1.6.

Description

First, add pair 'mysql.connector.django': 'mysql', to variable engine_modules in file south/db/__init__.py .

But, with settings.DEBUG enabled, connector will process all warming as error. So, if we use south command schemamigration app --initial , We will receive the error “PendingDeprecationWarning: Options.module_name has been deprecated in favor of model_name”.

Hotfix1

Suppose we can’t modify the third party package, you can only adjust your code.

Add fellow code to settings.py :

and, add fellow code to project’s __init__.py :

Hotfix2

If you can modify the third party package, you can use this way.

Add pair 'mysql.connector.django': 'mysql', to variable engine_modules in file south/db/__init__.py .

in file ‘mysql/connector/django/base.py’ line 61, the call of  warnings.filterwarnings , add the parameter append=True

UTF8[……]

Read more

19. February 2014 · 1 comment · Categories: Tips · Tags:

Debian下

修改 /etc/default/docker 添加http_proxy变量:

http://www.dockboard.org/docker-http-proxy-with-golang/

Fedora下

修改 /usr/lib/systemd/system/docker.service 文件,在service段设置Environment值:

另外

代理http://192.241.209.203:8384/目前[……]

Read more

在Python 2.x中,可以用如下的命令启动一个最简单的Web服务器(默认端口号8000):

接下来直接访问 http://localhost:[端口号] 即可

在Python 3.x中,这几个模块都已经改名了,如果需要如上的功能,可直接换用如下命令:

参见: http://stackoverflow.com/a/7943768[……]

Read more

嗯,火狐打开jw.dhu.edu.cn的“查看选课结果”页面是这样的(没有显示课程门数和学分信息):

教务网在Firefox下的显示结果

教务网在Firefox下的显示结果

好吧,祭出Scriptish,写脚本,期间遇到问题。唉,不说了,上代码:

使用方法

首先,为火狐安装Scriptish扩展。

然后,将上述代码保存到一个js文件中。

about:addons 页面,点击右上角的齿轮,选[……]

Read more

22. January 2014 · Write a comment · Categories: Develop, Python · Tags:

本文是PIP 3137的翻译。

背景

Python 2.x系列缺乏一个标准的方式来说明一个函数的参数和返回值,各种工具和库的出现填补了这一空白。一些工具使用了“PEP 318”中的装饰器,而其他的工具则去解析函数的文档注释,寻找注解。

在这一点上,众多已存在的机制和语法造成了很大的混乱。本PEP的目的是提供一个单一的,标准的方式指定这些信息,减少这些混乱。

函数注解的基础知识

在仔细讨论Python 3.0的函数注解的细节之前,首先让我们大致讨论下注解是什么、不是什么:

  1. 函数注解,无论是对参数的还是对返回值的函数注解,完全是可选的。
  2. 函数注解无非是一种方法,用来在编译[……]

Read more

The Fedora 20 Release Party in Shanghai was successfully held at 联合创业办公社 on Dec 22. It was organized by Fedora Zhongwen User Group and Shanghai Linux User Group.

The release party began at 1:20 pm. (It was late for about 20 minutes.) After a short Opening address by me, speakers start talks.

T[……]

Read more

现状

首先,Django@Python2.x 中默认的引擎为 django.db.backends.mysql 。但是在Python3中如果这样写的话,会发现 django.db.backends.mysql 依赖 MySQLdb[5] ,而 MySQLdb 又不兼容 Python3 于是要找一种新的方式来继续使用MySQL。

MySQL官方的方案

首先据MySQL文档[3]说,自从MySQL Connector/Python 1.1.1 开始,引入了 mysql.connector.django ,可直接作为 Django 的数据库引擎使用,但是我试了1.1.2和1.1.3后发现,根本不是那么回事[4]。

PyMySQL(It works)

后来,发现了 PyMySQL[1] ,支持Python3 ,google后知道如何与 Django 结合使用[2],答案如下:

首先,安装PyMySQL

for Windows

for Fedora

然后,在 Django 站点的 __init__.py 文件中添加如下两行:

最后是数据库的配置(在settings.py)

然后同步数据库:

for Windows

for Fedora

OK, It works!

:本人在 Windows 7 + MariaDB 5.5 + Django 1.6.0 + Python 3.3 的环境下试验成功。

更新:在Fedora + MariaDB 5.5 + Django 1.6.0 + Python 3.3 下也测试成功。
[……]

Read more