分类目录归档:Linux

完美解决Linux下Intel 1000 BGN间断丢包的bug

我的Y460笔记本接入A哥的无线路由的时候,不到一会,就会出现完全丢包的现象。等几分钟之后,又好了,但是不到10多秒,又丢了。

这种现象一直困扰了我几年多,我以前曾经尝试过安装官方提供的网卡驱动或者固件,都无法解决这个问题。今晚好不容易想使用一下荣哥分享的校园网,这个问题重现,真的烦死了!

dmesg一下日志,如下:
继续阅读

ARM版Ubuntu源

我的手机用的是Ubuntu maverick的arm版,可以使用apt-get来给手机安装系统软件包。例如常用的一些gcc,tcpdump,apache2,php,升级内核等。

官方的arm源并不在archive.ubuntu.com上,而是在ports.ubuntu.com。
修改/etc/sources.list为:

deb http://ports.ubuntu.com maverick main restricted universe multiverse

然后更新软件包信息。
继续阅读

改用PAE内核让32位Linux支持4GB以上的内存

2011年4月,我在网上买了一条4G金士顿的笔记本内存(DDR3 1333),花了275.00元(不含邮费)。

几个月前,我舍友买了一条同样的4G内存条,花了156.00元。

今天在网上看了一下,同样的内存只需要120元左右就够了。

一年还不到,这个降价太离谱啦!!!

因为大部分在32位的Linux下娱乐工作学习,所以在我电脑上最多只能使用到3GB多的内存。

直到今天,我才真正的把这条4G内存用上场。有点可惜了 🙁

PAE是Physical Address Extension,最初是为了弥补32位地址在PC服务器应用上的不足而推出的。更新至支持PAE的Linux内核,可以让你的32位Linux支持最大64GB内存。

更新步骤很简单,在终端执行下面一句或者在软件包管理器里选择安装linux-generic-pae:

apt-get install linux-generic-pae

继续阅读

手动创建ICMP Tunnel实现VPN上网(附Python实现代码)

其实这是一篇讲解利用中国移动CMWAP的一些特性来实现免费上网的博文,但是没有以这个为标题,因为

1、用的是2G的EDGE网络,跟2G手机上网一样,速度有限.

2、各地区的移动设备有差别,例如在广州,这种方法行不通。但是广州的移动Wifi是可以通过UDP建立VPN来免费使用的。

3、不想吸引太多人的注意。

我见过很多公共网络都对UDP和TCP有不少限制,以致于我们不能自由地访问互联网。为了摆脱这种束缚,很多人都为此付出了很多努力,例如各种代理软件,各种隧道,各种VPN等。本文介绍的是一种比较罕见的ICMP隧道方式建立VPN。

背景

一年前,因为在县城里没有网络使用,又不想晚上跑到外面上,所以经常使用笔记本连接手机的GPRS网络来上网。打开一些网页或者聊天工具之类的,网速的快慢并不是很重要。但是流量有限,当时开通了300MB的套餐也很快被消耗尽了。有一次,在Ubuntu下创建了一个cmwap网络,cmwap是需要设置代理IP为10.0.0.172才能上网的。但是奇怪的是,我竟然可以ping通我自己博客服务器的IP。所以我想cmwap对外网IP的访问只是限制了TCP和UDP类型的数据包进出而已。
继续阅读

用alarm信号处理阻塞socket的超时

以前在使用阻塞(blocked)socket的connect,send,recv函数的时候,通常都使用settimeout来设置超时。
如下,

#!/usr/bin/env python

import socket
import time

fd = socket.socket()

try:
    print "connect", time.ctime()
    fd.settimeout(5)
    fd.connect(("twitter.com", 22))
except:
    print "timeout", time.ctime()
finally:
    fd.settimeout(0)

继续阅读

创建一个最简单的Linux随机启动服务

网上有不少关于如何让Linux自动运行自己编写的脚本或者程序的方法,但是大多数都是把命令写到/etc/rc.d/rc.local或者/etc/rc.local里,这样虽然能够实现随机运行,但是并不够灵活。不能像mysql,apache等服务一样能够使用service命令或者调用init.d下的脚本启动、关闭或者重启进程。例如,

service mysql restart
service apache2 stop

或者

/etc/init.d/mysql restart
/etc/init.d/apache2 stop

因为不同的Linux发行版本,对后台服务的处理方式不大一样,所以下面以Ubuntu系统为例,看看如何写一个简单的随机启动服务。
继续阅读

用UNetBootin制作CentOS的USB安装盘

据说有人愿意赞助我300多元去制作一个校园的Linux服务器,这个价钱,就够一台二手主机,凑着用就好!
周二下午去岗顶看一下二手货,顺便在我的U盘上放一个CentOS安装文件,这样可以在店家那里测试一下USB安装系统。

经历多番波折,终于制作好了CentOS的USB安装盘。我用的是CentOS6.0的Minimal版本的iso安装文件,写入U盘使用UNetBootin这个工具。
具体步骤如下:

1、安装UNetBootin

root@xiaoxia-pc:~# apt-get install unetbootin

继续阅读