Linux使用笔记: 在Linux中使能IP转发

Linux系统缺省并没有打开IP转发功能,要确认IP转发功能的状态,可以查看/proc文件系统,使用下面命令:

cat /proc/sys/net/ipv4/ip_forward

如果上述文件中的值为0,说明禁止进行IP转发;如果是1,则说明IP转发功能已经打开。

要想打开IP转发功能,可以直接修改上述文件:

echo 1 > /proc/sys/net/ipv4/ip_forward

把文件的内容由0修改为1。禁用IP转发则把1改为0。

上面的命令并没有保存对IP转发配置的更改,下次系统启动时仍会使用原来的值,要想永久修改IP转发,需要修改/etc/sysctl.conf文件,修改下面一行的值:

net.ipv4.ip_forward = 1

修改后可以重启系统来使修改生效,也可以执行下面的命令来使修改生效:

sysctl -p /etc/sysctl.conf

进行了上面的配置后,IP转发功能就永久使能了

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/enable-ip-forward-on-linux/

文章的脚注信息由WordPress的wp-posturl插件自动生成

Linux使用笔记: 更改CentOS的时区(timezone)

安装了一台CentOS的虚拟机,发现时区设罢的不正确,因为没装图形界面,一时不知道怎么改时区。在邮件列表里搜索了一下,发现解决方法很简单,直接用所需的时区信息,覆盖/etc/localtime即可。

我使用的是下面的命令:

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

另外你也可以安装system-config-date工具:

yum install system-config-date

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/modify-timezone-in-centos/

文章的脚注信息由WordPress的wp-posturl插件自动生成

使用gvim+pyclewn+gdbserver进行远程调试

在以前的文章中,Easwy介绍了如何使用pyclewn在gvim中调试。网友yorker留言询问如何在vim中远程调试服务器上的程序而不需要登录服务器。这就涉及到远程调试的话题了。

所谓远程调试,顾名思义,就是在本地调试运行在远端设备上的程序。远程调试在嵌入式系统的开发上应用的比较多。嵌入式设备上内存、磁盘空间都比较有限,可能无法容纳整个gdb的调试环境和符号表;即便可以容纳,也需要对gdb进行交叉编译,比较麻烦,所以更常用远程调试的办法。像网友yorker这样在本地调试远端服务器上的程序,也是一种应用。

远程调试最简单的办法是使用gdbserver。gdbserver是一个非常小的程序,大小不到100K,因此可以方便的拷贝到嵌入式设备上,交叉编译也很简单。使用gdbserver,就可以使你的程序与远端的GDB调试器通讯,接收并执行调试命令。

gdbserver在大多数Linux系统中已经包含,不需要特别安装。如果你需要交叉编译,到GNU GDB网站上下载gdb的源代码,在里面你可以找到gdbserver。

本文将主要介绍如何在vim使用pyclewn进行远程调试(关于pyclewn的介绍,参见Easwy的的另外一篇文章:vim使用进阶: 在vim中进行GDB调试 – 使用pyclewn)。实际上,本文中所涉及的命令都是常用的远程调试命令,你可以直接使用gdb或ddd来执行这些命令,进行远程调试。

我们还使用在pyclewn一文中的程序做为调试示例,对那个程序做了一点修改,原来该程序需要由标准输入读取一个数字,现在则改为由命令行参数中传入。修改后的程序在这里下载。

现在我们准备开始调试。我们把编译好的二进制程序拷贝到一个名为Easwy_remote的计算机,然后在Easwy_remote上执行:

gdbserver Easwy_local:333 ./factorial 4 

上面的命令执行完后,屏幕输出如下(你的输出可能稍有不同):

Process ./factorial created; pid = 7532
Listening on port 333 

上面的gdbserver命令的含义是:使用gdbserver启动./factorial程序,并传入参数4,而gdbserver监听在333端口上,等待远程GDB程序中的连接。命令中的Easwy_local表明允许来自主机Easwy_local的连接,不过目前的gdbserver版本实际上是不检测所连接的主机的。

现在,我们在Easwy_local主机上启动pyclewn,并在所打开的gvim窗口中执行下面的命令:

:e main.c
:Cmapkeys
:Cfile factorial
:Cbreak 15
:Ctarget remote Easwy_remote:333
:Ccontinue

上面的命令,首先打开main.c文件,然后执行pyclewn提供的mapkeys命令,加载pyclewn的按键映射。然后使用file命令加载所要调试的程序,并在main.c的第15行设置一个断点。

需要注意的是target remote命令。这条命令告诉GDB连接到主机Easwy_remote的333端口,进行调试。执行完这条命令,我们就连接到了远端运行的程序。接下来就可以像调试本地程序那样进行调试了,在上面Easwy使用的continue命令,使程序执行到断点处,然后继续调试。

下面是远程调试的屏幕抓图:

gdbserver不仅可以像本文中这样启动一个调试进程,它还可以连接到一个已经运行的进程上对其进行调试,例如,用gdbserver Easwy_local:333 –attach 1235命令就可以使gdbserver连接到进程ID为1235的进程。

更多关于vi的内容,请参见Easwy的博客上的其它文章。

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/advanced-vim-skills-vim-gdbserver/

文章的脚注信息由WordPress的wp-posturl插件自动生成

删掉星期一

杨乐盈小同学上幼儿园已经两个月了,最初的新鲜感已经过去,现在开始不愿意去上学,每天早晨都会例行的哭上一小段时间,不过到了幼儿园,很快又会和老师同学玩的兴高采烈。

星期六的早上,美丫小同学起床时又例牌的哭了起来,“我不要去幼儿园,我不要去幼儿园”。

妈妈安慰她:“今天是星期六,幼儿园休息,不用去。我们星期一再去幼儿园”。

杨美丫小脑瓜一转,突发奇语:“我星期一也不要去幼儿园,我要把星期一删掉!”

“星期一删掉了,还有星期二、星期三、……、都要去幼儿园的呀”,妈妈逗她。

“我要把它们全都删掉!……”

哦,多完美的生活啊!没有星期一、星期二、……,每天都是星期六和星期日,杨美丫还真会享受啊!

原创文章,请阅读页脚的许可方式,转载请注明:转载自易水博客 [ http://easwy.com/blog/ ]

本文链接地址: http://easwy.com/blog/archives/no-monday-life/

文章的脚注信息由WordPress的wp-posturl插件自动生成