在ubuntu下面搭建vpn服务器

1,安装pptpd软件

sudo apt-get install pptpd

2,修改/etc/pptpd.conf这个文件

找到#localip 192.168.0.1和#remoteip 192.168.0.234-238,192.168.0.245这两行,把前面的#号去掉,然后保存就行了。

3,编辑/etc/ppp/pptpd-options

vi /etc/ppp/pptpd-options

找到ms-dns这项,去掉前面的#号,修改成google提供的DNS,很好记哈

ms-dns 8.8.8.8

ms-dns 8.8.4.4

4,添加用户和密码

修改/etc/ppp/chap-secrets文件

按一行四列添加账号、服务器名、密码和IP限制。即第一列是用户名,第二列是服务器名(默认写pptpd 即可,注意与 pptpd-options 文件保持一致),第三列是密码,第四列是 IP 限制(不做限制用 * )。如创建一个名为test,密码为123,不限制登录IP的VPN账号:

test pptpd 123 *

5,修改/etc/sysctl.conf

把ipv4 forward开启,方法是找到/etc/sysctl.conf这个文件里的这一行#net.ipv4.ip_forward=1后,去掉net.ipv4.ip_forward=1前面的#号,使他生效,然后保存,运行命令sysctl –p

root@tony:~# sysctl -p

6,使用iptables建立一个NAT, 用下面的命令:

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

上面的24表示子网掩码,代表24个1.

7,重启pptpd

/etc/init.d/pptpd restart

Published: 2013-09-22 — Comments

Scrum汇总

###定义

Scrum是一个迭代性、增量性的流程,适用于任何的产品开发以及工作管理。 在每个迭代结束后,Scrum都会产生一套可以交付的功能性产品。

###宣言

个体与交互 胜过过程与工具 可以工作的软件 胜过 面面俱到的文档 客户协作 胜过 合同谈判 响应变化 胜过 遵循计划

###Scrum的特点是:

Scrum是一个敏捷的流程,可用于管理和控制研发工作。

Scrum是现有设计流程的总结。

Scrum以团队为基础,是一种在要求迅速变化情况下迭代地、增量地开发系统和产品的方法。

Scrum是一个控制由利益和需求冲突导致的混乱的流程。

Scrum是改善交流并最优化合作的方式。

Scrum是一种检测产品开发和生产过程中障碍并将其去除的方式。

Scrum是最大化生产率的一种方法。

Scrum适用于单一的项目到整个组织。Scrum可以控制并组织多件具有相关性的产品开发以及拥有超过千名开发者和执行者的项目实施过程。

Scrum能让每个参与者都对自己的工作以及自己做出的贡献感到满意,并让他们感觉自己的工作已经达到最佳的水平。

###角色:

一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”,猪回头看了一下鸡说,“好主意,那你准备给餐馆起什么名字呢?”, 鸡想了想说“餐馆名字叫火腿和鸡蛋怎么样?”,“我不这么认为”,猪说, “我全身投入,而你只是参与而已”

###产品负责人

利用产品backlog,督促团队优先开发具有价值的功能,并在其基础上继续 开发。产品负责人必须频繁检视产品代开发需求的优先级,以便将最具价值的功能安排在下一个迭代中完成。

###开发团队

开发软件功能,他们是自组织团队,团队 所有成员对每一次迭代和整个项目共同负责,不单做考核。

###Scrum Master

则需要对Scrum过程负责,向所有项目参与者讲授Scrum方法,负责实施Scrum,确保它既符合企业文化,又能交付预期利益,还需督促 全体成员遵从Scrum规则和实践。

###鸡类人员

站立会议中鸡类人员不得讲话、评论、扮鬼脸等

在Scrum团队中,ScrumOwner(产品经理)、ScrumMaster(项目经理)、Developer、需求分析师为猪类角色,而管理者、测试工程师、UI工程师、QA、客户等为鸡类角色。

lspci ###流程

我们首先需要确定一个Product Backlog (按优先顺序排列的一个产品需求列表),这个是由Product Owner 负责的;

Scrum Team根据Product Backlog列表,做工作量的预估和安排;

有了Product Backlog列表,我们需要通过 Sprint Planning Meeting(Sprint计划会议) 来从中挑选出一个Story作为本次迭代完成的目标,这个目标的时间周期是1~4个星期,然后把这个Story进行细化,形成一个Sprint Backlog;

Sprint Backlog是由Scrum Team去完成的,每个成员根据Sprint Backlog再细化成更小的任务(细到每个任务的工作量在2天内能完成); 在Scrum Team完成计划会议上选出的Sprint Backlog过程中,需要进行 Daily Scrum Meeting(每日站立会议),每次会议控制在15分钟左右,每个人都必须发言,并且要向所有成员当面汇报你昨天完成了什么,并且向所有成员承诺你今天要完成什么,同时遇到不能解决的问题也可以提出,每个人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃尽图);

做到每日集成,也就是每天都要有一个可以成功编译、并且可以演示的版本;很多人可能还没有用过自动化的每日集成,其实TFS就有这个功能,它可以支持每次有成员进行签入操作的时候,在服务器上自动获取最新版本,然后在服务器中编译,如果通过则马上再执行单元测试代码,如果也全部通过,则将该版本发布,这时一次正式的签入操作才保存到TFS中,中间有任何失败,都会用邮件通知项目管理人员;

当一个Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,这时,我们要进行 Srpint Review Meeting(演示会议),也称为评审会议,产品负责人和客户都要参加(最好本公司老板也参加),每一个Scrum Team的成员都要向他们演示自己完成的软件产品(这个会议非常重要,一定不能取消);

最后就是 Sprint Retrospective Meeting(回顾会议),也称为总结会议,以轮流发言方式进行,每个人都要发言,总结并讨论改进的地方,放入下一轮Sprint的产品需求中;

###工具

白板和便签

纸牌

在Sprint计划会议中讨论backlog时间时,需要用到纸牌?比如A程序员开发一个功能,需要5个小时,B程序员认为只需要半小时,那他们各自取相应的牌,藏在手中,最后摊牌,如果时间差距很大,那么A和B就可以讨论A为什么要5个小时…

参考:

http://pm.venusource.com/projects/create_share/wiki/Scrum%E6%B1%87%E6%80%BB

Published: 2013-05-27 — Comments

理解磁盘

##SCSI硬盘

SCSI硬盘是采用SCSI接口的硬盘,SCSI是Small Computer System Interface(小型计算机系统接口)的缩写,使用50针接口,外观和普通硬盘接口有些相似。SCSI硬盘和普通IDE硬盘相比有很多优点:接口速度快,并且由于主要用于服务器,因此硬盘本身的性能也比较高,硬盘转速快,缓存容量大,CPU占用率低,扩展性远优于IDE硬盘,并且支持热插拔。

多用于服务器

##SATA

SATA硬盘,即使用SATA(Serial ATA)口的硬盘又叫串口硬盘。SATA的全称是Serial Advanced Technology Attachment。

普通电脑硬盘及移动硬盘基本都是SATA接口的

##块

最有名的块设备可能就是Linux系统中表示第一个IDE硬盘的/dev/sda。SCSI硬盘和Serial ATA硬盘都是/dev/sda。如果你正在使用内核里新的libata架构,即便IDE硬盘也会是/dev/sda。如果你用的是旧的设备架构,你的第一个IDE硬盘将是/dev/hda。

##分区

尽管在理论上可以使用一整块磁盘来安装你的Linux系统,但是在实际中几乎从不这样做。相反,整个磁盘块设备被分割成更小、更容易管理的块设备。在x86系统中,这些被称作分区。

分区有三种类型:主分区,扩展分区和逻辑分区。

主分区是把自己的信息储存在MBR(主引导记录)中的分区。由于MBR非常小(512个字节),所以仅可以定义4个主分区(例如,/dev/sda1到/dev/sda4)。

扩展分区是一种特殊的主分区(意味着扩展分区必须是4个可能的主分区之一),它包含着更多的分区。这种分区最初并不存在,但是由于4个主分区太少了,为了能划分更多的分区,在保持向后的兼容性的前提下扩展分区诞生了。

逻辑分区是在扩展分区内部的分区。它们的定义不在MBR中,而是在扩展分区中。

独立的分区或卷有以下优点:

你可以为每一个分区或卷选择最佳性能的文件系统 如果一个有问题的工具不停地向一个分区或卷写文件,也不会把你整个系统的可用空间都用完 如果需要,可以减少文件系统检测的时间,因为多个检测可以并行的进行(尽管这个优势在多磁盘系统上比多分区系统上更为明显) 通过对一些分区的进行只读、nosuid(忽略setuid位)、noexec(忽略可执行位)等方式挂载,安全性会大大增强

SCSI和SATA还有15个分区的限制。

使用fdisk进行分区操作

##文件系统

一个带日志,一个不带,个人建议,像/boot这样的分区就用ext2好了,比较快,如果是自己的系统和数据呢,可以适用ext3,也可以适用想reiserfs之类的文件系统,对于小文件的处理上,reiserfs性能较好。

对大文件操作性能来说,最好选择JFS或者XFS。 如果你需要使CPU利用减到最小,更推荐JFS。

mke2fs /dev/sda1

mke2fs -j /dev/sda3

创建交换分区

mkswap /dev/sda2

激活交换分区

swapon /dev/sda2

##挂载

mount /dev/sda3 /mnt/gentoo

mount /dev/sda1 /mnt/gentoo/boot

挂载目录需要使用bind参数,如

mount -o bind /dev /mnt/gentoo/dev

挂载后重启失效

查看mount文件系统类型

df -Th

参考: http://www.gentoo.org/doc/zh_cn/handbook/handbook-x86.xml?full=1#fdisk

Published: 2013-05-17 — Comments

puppet使用记录

现有两个ubuntu版本的虚拟机

###设置DNS 由于系统没有自动分配DNS,只能手动设置DNS

在/etc/resolvconf/resolv.conf.d/base文件中添加:

nameserver 192.168.0.1

sudo resolvconf -u

###安装ruby

在两台机器上都安装ruby

sudo apt-get install ruby

系统会自动安装1.8.7

若想装最新,更新源或者用rvm安装ruby

版本老一点不影响puppet

###安装puppet

server:

sudo apt-get install puppet puppetmaster

client:

apt-get install puppet

###设置hostname

server: hostname master

client: hostname:slave

###设置hosts

server:

127.0.1.1 master 192.168.0.170 slave.zhuyinghao.com slave

client:

127.0.1.1 slave.zhuyinghao.com slave 192.168.0.170 master.zhuyinghao.com master

###启动server puppet

sudo puppet master

###客户端连接服务器

puppetd –server master –test

若报错,err: Could not request certificate: The certificate retrieved from the master does not match the agent’s private key. 先执行 sudo puppetca -l sudo puppetca -s slave.zhuyinghao.com

###编写脚本进行测试 在服务端/etc/puppet/manifests建立site.pp文件

node 'slave.tony.com' {
	file {
		"/tmp/test" :
			content => 'hello tony',
					mode => 0644;
	}
}

客户端执行

puppetd –server master –test

在/tmp/下生成文件test

有成功提示:

notice: Finished catalog run in 0.03 seconds

参考: http://www.youtube.com/watch?v=US8ZpjgEhUg

http://gzzanninghu.blog.163.com/blog/static/170583133201110163372699/

http://dongxicheng.org/cluster-managemant/puppet/

Published: 2013-05-15 — Comments

Gentoo使用记录

##查看cpu

uname -m

##lspci lspci 是一个用来显示系统中所有PCI总线设备或连接到该总线上的所有设备的工具。

##什么是PCI

PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它是目前个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。

其颜色一般为乳白色,可插接USB2.0卡 显卡、声卡、网卡、其它种类繁多的扩展卡。插接不同的扩展卡可以获得目前电脑能实现的几乎所有功能,是名副其实的“万用”扩展插槽。

像软件中的API,一个是硬件外部连接标准,一个是软件应用接口。

lspci

##什么是DHCP

DHCP是Dynamic Host Configuration Protocol的缩写,动态主机配置,它是TCP/IP协议簇中的一种,主要是用来给网络客户机分配动态的IP地址。 它分为两个部份﹕一个是服务器端﹐而另一个是客户端。 DHCP 的分配形式

必须至少有一台 DHCP 工作在网络上面﹐它会监听网络的 DHCP 请求﹐并与客户端搓商 TCP/IP 的设定环境。它提供两种 IP 定位方式﹕

###Automatic Allocation

自动分配﹐其情形是﹕一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后﹐就永远使用这个地址。

###Dynamic Allocation

动态分配﹐当 DHCP 第一次从 HDCP 服务器端租用到 IP 地址之后﹐并非永久的使用该地址﹐只要租约到期﹐客户端就得释放(release)这个 IP 地址﹐以给其它工作站使用。当然﹐客户端可以比其它主机更优先的更新(renew)租约﹐或是租用其它的 IP 地址。

动态分配显然比自动分配更加灵活﹐尤其是当您的实际 IP 地址不足的时候﹐例如﹕您是一家 ISP ﹐只能提供 200 个IP地址用来给拨接客户﹐但并不意味着您的客户最多只能有 200 个。因为要知道﹐您的客户们不可能全部同一时间上网的﹐除了他们各自的行为习惯的不同﹐也有可能是电话线路的限制。这样﹐您就可以将这 200 个地址﹐轮流的租用给拨接上来的客户使用了。这也是为什么当您查看 IP 地址的时候﹐会因每次拨接而不同的原因了(除非您申请的是一个固定 IP ﹐通常的 ISP 都可以满足这样的要求﹐这或许要另外收费)。当然﹐ISP 不一定使用 DHCP 来分配地址﹐但这个概念和使用 IP Pool 的原理是一样的。

##traceroute

使用man traceroute查看文档帮助

traceroute www.zhuyinghao.com

记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 www.zhuyinghao.com ,表示向每个网关发送4个数据包;

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

通过http://www.ip138.com查询每个ip是电信还是联通等等。

##Live CD/stage3/minimized CD的区别

LiveCD包含了所有需要的文件,包括系统,各种软件等等,直接用它的话就等于失去了自己编译安装的意义了

stage3是一个含有最小Gentoo环境的压缩包,有了它就可以自行编译安装系统了

minimized CD是用来安装的gentoo的引导ISO,用它可以从只有硬盘,无操作系统的计算机里启动gentoo的安装

##IP,Netmask,broadcast,网关,DNS

在一个网络中,所有主机都通过IP地址(互联网协议地址)来识别。一个这种地址是由四个0到255之间的整数组合成的

个IP地址由32个比特(0和1)组成

IP地址(整数): 192.168.0.2

IP地址(位): 11000000 10101000 00000000 00000010

为了区别一个网络内部和外部的主机,IP地址被分为两个部分:网络部分和主机部分。

子网掩码用来描述这种区分,它由一系列的1跟随着一系列的0组成。IP中映射在1上的部分为网络部分,另一部分为主机部分。照例,子网掩码可以描述为IP地址的形式。

IP地址: 192 168 0 2

			11000000 10101000 00000000 00000010

子网掩码: 11111111 11111111 11111111 00000000

也就是说,192.168.0.14仍是我们的例子网络中的成员,而192.168.1.2就不是了。

广播地址是一个跟你的网络在同一个网段的IP地址,只是它的主机部分全部为1。你的网络中所有的主机都监听这个IP地址。它真正的用途是用来广播数据包。 IP地址: 192 168 0 2

			11000000 10101000 00000000 00000010

广播: 11000000 10101000 00000000 11111111

为了能在互联网上冲浪,你必须知道是哪台主机在共享Internet连接。这台主机称为网关。由于它是一台普通主机,所以它有一个普通的IP地址(比如192.168.0.1)。

前面我们陈述了每台主机拥有它自己的IP地址。为了能够通过域名(而不是IP地址)连到这台主机,你需要一种服务,以将一个域名(如dev.gentoo.org)翻译成一个IP地址(如64.5.62.82)。这种服务称为域名服务。你必须在/etc/resolv.conf中定义必要的域名服务器以享用这种服务。

某些情况下,你的网关也作为域名服务器提供服务。否则就必须加入ISP提供的域名服务器。

比如google架设的服务器ip为8.8.8.8,但通过google解析相对比较慢,最好使用网关。

查看/etc/resolv.conf是否已经有配置好的nameserver

在ubuntu下设置dns:

在/etc/resolvconf/resolv.conf.d/base文件中添加:

nameserver 192.168.0.1

sudo resolvconf -u

参考: http://www.gentoo.org/doc/zh_cn/gentoo-x86-quickinstall.xml

http://www.gentoo.org/doc/en/handbook/handbook.xml

http://www.gentoo.org/doc/zh_cn/handbook/handbook-x86.xml?full=1#book_part1_chap4

Published: 2013-05-03 — Comments