May the #! be with you

Setting Up a Secure Private PPA

| Stephen Zhang | Comments

For those companies and organizations who use Debian or Ubuntu for their servers, a PPA (personal package archive) is a good friend of the Ops team.

We often need to make small modifications to some softwares and recompile them to fit our own requirements. .deb files are easy to reuse ...

Linux下配置FQDN

| Stephen Zhang | Comments

近来可能博客有一些多,闲在家里,把过去两年里碰到的一些问题都总结一下, 写点文章,刷一下存在感。

主机名是我进入云成后碰到的第一个比较棘手的问题,所谓棘手, 是指折腾了很久没搞明白是怎么回事。 “主机名”,往细节里说主要有两种,一种是hostname,一种是fqdn。 一般来说hostname是短名字,不含.。 通常hostname在某个特定的范围内应该是唯一的,以免产生冲突, 这个特定的范围通常用域(dnsdomain)表示。 而fqdn(full qulified domain name)则应该在一个更大的范围内(比如全球)唯一, 通常fqdn是${hostname}.${dnsdomain}。 下面讨论时会尽量避免使用“主机名”,而使用hostnamefqdndnsdomain

不过在不同的发行版里,设置hostname和fqdn的方法并不完全相同,甚至十分混乱。 比如在ArchLinux中,/etc/hostname 中直接填写fqdn,而其他大多数发行版里, /etc/hostname中写的都是hostname。 通常Linux发行版中并不存在一个配置文件或者配置选项可以直接设置fqdn。 在 ...

配置 limit 参数

| Stephen Zhang | Comments

曾经被配置ulimit这个问题困扰过很久,后来终于搞清楚了,写一篇文章记录一下。

做过访问量比较大的web服务的人可能都修改过max open files, 在Linux中一个TCP socket就是一个文件,所以当并发请求大于1024时 (Debian/Ubuntu等默认的max open files是1024), 服务软件(如nginx)就会开始抱怨Too many open files ...

修改max open files最直接的方法是直接执行:

ulimit -n 655350

但是很快就会发现,新开一个SSH连接到服务器上,执行ulimit -n看到的还是1024ulimit的修改仅对当前shell有效。 这是因为,rlimit (resource limit)是一个进程的属性,所以不出意外的, 修改rlimit的命令ulimit ...

My Vim Configuration

| Stephen Zhang | Comments

This post is under ``Wiki`` category, which is more like a personal notes on vim usage than a normal blog article. The page may be updated time to time.

Usage HowTo

To get the latest code (and with submodules):

git clone --recursive https://github.com/StephenPCG/dotvim

To use it ...

搭建网关系列 —— 隧道篇

| Stephen Zhang | Comments

在中国特色的网络里,使用vpn/openvpn连接国外的服务器十分不稳定, 无奈之下一些人会使用obfsproxy等作为openvpn的底层传输工具, 目前obfs3还算是比较稳定的,我在公司使用了一段时间并没有发现问题。 不过在家里搭建网关时发现,无论是openvpn还是obfsproxy都是很消耗CPU的, 这也是在有了一个dir825之后又买了一个minipc做网关的主要原因。

我们今天将介绍几种常见的ip隧道,包括ipipgresit (因为我正在用这三个),根据实践发现目前使用gre隧道与国外服务器连接很稳定, 没有发现被干扰的迹象。

大多数隧道都需要两端都有公网IP,这里提到的三种也不例外。 所以如果isp没有提供公网IP的话基本就没戏了, 如果使用pppoe,但能获得公网IP也是可以使用隧道的。

命令初识

使用iproute2套件创建隧道的命令都是一样的,只有很少的参数不同,所以学习成本很低。

我们首先贴一段真实的命令来看。以下命令在隧道的一端执行, 另一端执行的命令几乎完全相同,仅仅需要涉及到的IP交换一下。

ip tunnel add tun0 mode ipip remote 1.2.3.4 ttl 255
ip addr add ...