工具:add_swap.sh
所有执行的脚本都需要root身份来执行,执行方法:以root身执行命令:bash xxx.sh

功能:自动检测系统swap分区大小,交换分区大小不合理则自动新增并挂载上
适用系统版本:兼容线上所有linux版本
执行方法:以root身执行命令:bash add_swap.sh
解决了什么问题:一键式检测系统swap分区大小,如果低于物理内存的2倍则自动创建一个物理内存2倍大小的swap分区
备注:swap不是越大越好,由于磁盘速度相对于内存较为低下,所以大swap反而会造成业务响应更慢,通常为2至2.5倍就好,如果有特殊需求可以更大。
内存为32G以上则不考虑
内存在16G至32G之间,交换分区配置为8G
内存在4G至16G之间,交换分区配置为4G
内存小于4G的则配置交换分区为2G

 

#!/bin/bash
#########################################
#Function:    add a new swap partition
#Usage:       bash add_swap.sh
#Author:      Customer service department
#Company:     Alibaba Cloud Computing
#Version:     2.1
#########################################

check_os_release()
{
  while true
  do
    if cat /proc/version | grep redhat >/dev/null 2>&1
    then
      os_release=redhat
      echo "$os_release"
      break
    fi
    if cat /proc/version | grep centos >/dev/null 2>&1
    then
      os_release=centos
      echo "$os_release"
      break
    fi
    if cat /proc/version | grep ubuntu >/dev/null 2>&1
    then
      os_release=ubuntu
      echo "$os_release"
      break
    fi
    if cat /proc/version | grep -i debian >/dev/null 2>&1
    then
      os_release=debian
      echo "$os_release"
      break
    fi
    break
    done
}

check_memory_and_swap()
{
  mem_count=$(free -m|grep Mem|awk '{print $2}')
  swap_count=$(free -m|grep Swap|awk '{print $2}')
  if [ "$mem_count" -ge 15000 ]  && [ "$mem_count" -le 32768 ]
  then
    if [ "$swap_count" -ge 8000 ]
    then
      echo -e "\033[1;40;31mYour swap is already enough.Do not need to add swap.Script will exit.\n\033[0m"
      rm -rf $LOCKfile
      exit 1
    elif [ "$swap_count" -ne 0 ]
    then
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      remove_old_swap
      create_swap 8192
    else
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      create_swap 8192
    fi
  elif [ "$mem_count" -ge 3900 ] && [ "$mem_count" -lt 15000 ]
  then
    if [ "$swap_count" -ge 3900 ]
    then
      echo -e "\033[1;40;31mYour swap is already enough.Do not need to add swap.Script will exit.\n\033[0m"
      rm -rf $LOCKfile
      exit 1
    elif [ "$swap_count" -ne 0 ]
    then
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      remove_old_swap
      create_swap 4096
    else
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      create_swap 4096
    fi
  else
    if [ "$swap_count" -ge 2000 ]
    then
      echo -e "\033[1;40;31mYour swap is already enough.Do not need to add swap.Script will exit.\n\033[0m"
      rm -rf $LOCKfile
      exit 1
    elif [ "$swap_count" -ne 0 ]
    then
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      remove_old_swap
      create_swap 2048
    else
      echo -e "\033[40;32mYour swap is not enough,need to add swap.\n\033[40;37m"
      create_swap 2048
    fi
  fi
}

create_swap()
{
  root_disk_size=$(df -m|grep -w "/"|awk '{print $4}')
  if [ "$1" -gt "$((root_disk_size-1024))" ]
  then
    echo -e "\033[1;40;31mThe root disk partition has no space for $1M swap file.Script will exit.\n\033[0m"
    rm -rf $LOCKfile
    exit 1
  fi
  if [ ! -e $swapfile ]
  then
    dd if=/dev/zero of=$swapfile bs=1M count=$1
    /sbin/mkswap $swapfile
    /sbin/swapon $swapfile
    /sbin/swapon -s
    echo -e "\033[40;32mStep 3.Add swap partition successful.\n\033[40;37m"
  else
    echo -e "\033[1;40;31mThe /var/swap_file already exists.Will exit.\n\033[0m"
    rm -rf $LOCKfile
    exit 1
  fi
}

remove_old_swap()
{
  old_swap_file=$(grep swap $fstab|grep -v "#"|awk '{print $1}')
  swapoff $old_swap_file
  cp -f $fstab ${fstab}_bak
  sed -i '/swap/d' $fstab
}

config_rhel_fstab()
{
  if ! grep $swapfile $fstab >/dev/null 2>&1
  then
    echo -e "\033[40;32mBegin to modify $fstab.\n\033[40;37m"
    echo "$swapfile	 swap	 swap defaults 0 0" >>$fstab
  else
    echo -e "\033[1;40;31m/etc/fstab is already configured.\n\033[0m"
    rm -rf $LOCKfile
    exit 1
  fi
}

config_debian_fstab()
{
  if ! grep $swapfile $fstab >/dev/null 2>&1
  then
    echo -e "\033[40;32mBegin to modify $fstab.\n\033[40;37m"
    echo "$swapfile	 none	 swap sw 0 0" >>$fstab
  else
    echo -e "\033[1;40;31m/etc/fstab is already configured.\n\033[0m"
    rm -rf $LOCKfile
    exit 1
  fi
}

##########start######################
#check lock file ,one time only let the script run one time 
LOCKfile=/tmp/.$(basename $0)
if [ -f "$LOCKfile" ]
then
  echo -e "\033[1;40;31mThe script is already exist,please next time to run this script.\n\033[0m"
  exit
else
  echo -e "\033[40;32mStep 1.No lock file,begin to create lock file and continue.\n\033[40;37m"
  touch $LOCKfile
fi

#check user
if [ $(id -u) != "0" ]
then
  echo -e "\033[1;40;31mError: You must be root to run this script, please use root to install this script.\n\033[0m"
  rm -rf $LOCKfile
  exit 1
fi

os_release=$(check_os_release)
if [ "X$os_release" == "X" ]
then
  echo -e "\033[1;40;31mThe OS does not identify,So this script is not executede.\n\033[0m"
  rm -rf $LOCKfile
  exit 0
else
  echo -e "\033[40;32mStep 2.Check this OS type.\n\033[40;37m"
  echo -e "\033[40;32mThis OS is $os_release.\n\033[40;37m"
fi

swapfile=/var/swap_file
fstab=/etc/fstab

echo -e "\033[40;32mStep 3.Check the memory and swap.\n\033[40;37m"
check_memory_and_swap

echo -e "\033[40;32mStep 4.Begin to modify $fstab.\n\033[40;37m"
case "$os_release" in
redhat|centos)
  config_rhel_fstab
  ;;
ubuntu|debian)
  config_debian_fstab
  ;;
esac

free -m
echo -e "\033[40;32mAll the operations were completed.\n\033[40;37m"
rm -rf $LOCKfile

下载建立SWAP分区脚本

告别node-forever,拥抱PM2
http://www.oschina.net/translate/goodbye-node-forever-hello-pm2?cmp

pm2 logodevo.ps团队对JavaScript的迷恋已经不是什么秘密了;node.js作为服务器端,AngularJS作为客户端,某种程度上说,我们的堆栈是用它建成的.我们构建静态客户端和RESTful JSON API的方法意味着我们跑了很多的node.js,我必须承认尽管node.js的一切都令人敬畏,但当我们在生产环境中运行它时它仍然会让我们感到头疼.相比一些更加成熟的语言,它的工具和最佳实践仍然缺乏(试想一下:监控,日志,错误处理).

到目前为止,我们仍然依赖漂亮俏皮的node-forever模块.它是非常伟大的模块,不过依然缺失一些功能:

  • 有限的监控和日志功能,
  • 进程管理配置的支持差,
  • 不支持集群,
  • 代码库老化(意味着在升级node.js时频繁的失败).

这就是为什么我们要在过去的几个月里去写PM2模块.在我们即将发布针对生产环境的正式版之前我们想先让您看一眼.

PM2到底是什么个东西呢?

首先第一件事,你需要先通过 npm 来安装它:

npm install -g pm2

让我们通过表格来对比下:

Feature Forever PM2
Keep Alive
Coffeescript
Log aggregation
API
Terminal monitoring
Clustering
JSON configuration

现在让我来介绍一点点主要特性...

原生的集群化支持

Node v0.6引入了集群特性,允许你在多个Node应用中共享socket.问题在于,它不能在容器外运行而且需要一些额外的配置来处理主进程和子进程.

PM2原生支持处理这个问题,而且不需要额外的代码:PM2本身作为主进程,然后它将你的代码封装到一个特殊的集群进程里,就像node.js一样,为你的代码文件添加一些全局变量.想要启动一个使用所有CPU核心的集群,你只需要键入如下的指令:

$ pm2 start app.js -i max

然后;

$ pm2 list

然后就会显示类似下面的东西(ASCII UI FTW);

pm2 list

就像你看到的,现在你的应用有多少个进程就取决于你的CPU核心数了.

按照termcaps-HTOP(Linux下的系统监控与进程管理软件)的方式管理

通过pm2 list命令来观察所有运行的进程以及它们的状态已经足够好了.但是怎么来追踪它们的资源消耗呢?别担心,用这个命令:

$ pm2 monit

你可以得到进程(以及集群)的CPU的使用率和内存占用.

pm2 monit

声明: node-usage 到目前为止还不支持MacOS(随便什么性能要求),不过它在Linux下运行良好.

现在,让我们来核实一下我们的集群,还有对内存堆栈的垃圾回收,我们假设你已经有一个HTTP基准测试工具(如果没有,你一定要使用 WRK):

$ express bufallo // Create an express app $ cd bufallo
$ npm install
$ pm2 start app.js -i max
$ wrk -c 100 -d 100 http://localhost:3000/

在另一个终端,运行监控选项:

$ pm2 monit

耶~

实时集中log处理

现在你不得不管理多个集群进程:一个爬取数据,一个处理数据,等等...这就意味着大量log,你可以按照老式的方法处理:

$ tail -f /path/to/log1 /path/to/log2 ...

但我们想的很周到,我们增加了logs功能:

$ pm2 logs

pm2 monit

快速恢复

现在事情一切顺利,你的进程嗡嗡的运行着,你需要做一次硬重启(hard restart).现在吗?是的,首先,dump掉:

$ pm2 dump

然后,你可以从文件中恢复它:

$ pm2 kill // 让我们假设一个PM2停掉了
$ pm2 resurect // 我所有的进程又满血满状态复活了

强健的API

比方说,你想要监控所有被PM2管理的进程,而且同时还想监控运行这些进程的机器的状态(甚至希望创建一个Angular应用来调用这些API...):

$ pm2 web

打开浏览器输入 http://localhost:9615 ,我嘞个去!!

对了,还有很多特性...

  • 全部测试通过,
  • 新一代的update-rc.d(pm2 startup),当然它还是alpha版,
  • 开发模式下更改文件自动重启(pm2 dev),也同样还是草稿,
  • 自动刷新log,
  • 快捷的通过JSON文件管理你的应用,
  • 在error log里记录未捕获的异常,
  • 记录重启的次数和时间,
  • 退出时自动杀死进程.

 

下一步计划?

首先,你可以去Github上粉我们(我们喜欢stars): https://github.com/Unitech/pm2.

我们开发的PM2提供了先进完整的Node进程管理解决方案.我们希望能有更多的人来帮助我们:更多的pull requests.一些还停留在开发路线图上面的功能我们会尽快完成,下面这些就是:

  • 远程管理/状态校验,
  • 嵌入式跨进程通信通道(消息总线),
  • V8垃圾回收的内存泄漏检查,
  • Web界面,
  • 监控数据持久化,
  • 邮件通知.

特别感谢 Makara Wang 的观点和工具,还有 Alex Kocharin 提的建议和提交的代码.

转:http://zhaohe162.blog.163.com/blog/static/38216797201402234212981/

本文演示在Linux上安装NodeJS及Express开发框架
 
软件环境:
VMware 9
CentOS 6.5
NodeJS v0.10.24

 
安装过程:

Step 1、确认服务器有nodejs编译及依赖相关软件,如果没有可通过运行以下命令安装。

[root@BobServerStation local]# yum -y install gcc gcc-c++ openssl-devel

Step 2、下载NodeJS源码包并解压。

[root@BobServerStation local]# wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz

[root@BobServerStation local]# tar zxvf node-v0.10.24.tar.gz
[root@BobServerStation local]# cd node-v0.10.24

安装雪豹系统全攻略

http://blog.csdn.net/momo2010programer/article/details/6098874

转向Intel阵营为在PC安装Mac OS提供可能


 

 

泡泡网主板频道5月13日 从目前桌面级操作系统的格局来看,主要分为Windows、Mac OS以及Linux三大阵营。其中Windows阵营最为强大,占据全球整个桌面级操作系统90%以上的市场份额,苹果公司自有的操作系统Mac次之,拥有超过5%的市场份额,剩下的则基本上是Linux阵营的天下。

在这三种操作系统当中,Windows和Linux都是可以直接安装在个人电脑上的,它们本身在硬件方面并没有严格的限制,一般来说基于x86架构的PC都可以安装。而苹果公司的Mac OS系列操作系统则不同,它所面向的是苹果公司自己的电脑产品,并不在除苹果之外的硬件上提供支持。

都来啃苹果吧!PC安装雪豹系统全攻略

    对苹果电脑稍微有所了解的朋友应该知道,自1994年以来,苹果一直在使用IBM的PowerPC处理器,直到2006年苹果公司才正式决定放弃与IBM的合作,采用性价比更高的Intel处理器,也就是说转向了x86架构。采用Intel处理器对于苹果的转变来说是非常重要的一件事情,它不仅仅标志着苹果不会再受到IBM在芯片价格方面的制约,也为如今能在普通PC或笔记本电脑上安装Mac OS系统提供了可能。为什么这么说呢?

Ubuntugeek 上介绍了一个方法,通过一个名为apt-fast的脚本来让axel结合 apt-get 命令进行软件的安装,由于 axel 可以多线程下载软件包,这样就可以起到了加速的作用。

而且整个使用过程基本与 apt-get 无异,只需要把平常的 apt-get 改为 apt-fast 就可以了,比如sudo apt-fast installpackage

 

# 安装与使用:

先安装 axel 工具

sudo apt-get install axel

linux/apt-fast/" target="_blank">这里下载 apt-fast.sh 脚本,把它移动到 /usr/bin 目录中同时改名为 apt-fast 。

sudo cp apt-fast.sh /usr/bin/apt-fast

最后给予可执行权限

sudo chmod +x apt-fast

现在你就可以用 apt-fast 来代替 apt-get 了,比如sudo apt-fast upgrade,sudo apt-fast dist-upgrade等等。

 

转:http://hi.baidu.com/flashgive/item/518079e66bb781adc00d7532

CentOS默认是不支持Ext4.所以你需要处理一下才行。

使用环境使用的是CentOS5.8 内核是  2.6.18-238.19.1.el5

其实CentOS 5.8 里面是有 ext4 模块的,只是没加载,所以我们先把模块加入系统

# cd /lib/modules/2.6.18-238.19.1.el5/kernel/fs/ext4   //ext4模块就在此目录下

# [root@linux ext4]# ls

ext4.ko

找到模块后使用modprobe 命令添加

# modprobe ext4    //注意:这里只能写模块名,不能写成 ext4.ko

# lsmod |grep ext4  //添加完后使用lsmod 查看

ext4                  285409  0

jbd2                   47744  1 ext4

crc16                   1027  1 ext4

[root@linux ext4]# yum install e4fsprogs     //最后使用yum 安装一下 e4fsprogs

[root@linux ext4]# mkfs.ext4 /dev/sdc    //最后创建一个分区来使用ext4 创建文件系统

mke4fs 1.41.12 (17-May-2010)
/dev/sdi is entire device, not just one partition!
Proceed anyway? (y,n) y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
61014016 inodes, 244056064 blocks
12202803 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
7448 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune4fs -c or -i to override.
[root@linux ext4]#mount /dev/sdc /hadoop1 

 

第2层隧道协议 (L2TP),是 VPN 隧道协议的一种,是 PPTP 的后续版本。L2TP 支持两端点间多隧道,但通常要由 IPSec 来提供加密和验证功能,可建立变动的客户端到固定服务器的连接。

一、安装 IPSec

IPSec 用于对 IP 数据包进行加密和验证,通常使用 Openswan 来实现 IPSec。

1.1、安装编译工具

1
apt-get -y install build-essential

1.2、安装 OpenSwan 依赖包

1
apt-get -y install libgmp3-dev flex bison

1.3、编译安装 OpenSwan

1
2
3
4
wget -c http://www.openswan.org/download/openswan-2.6.33.tar.gz
tar -zxf openswan-2.6.33.tar.gz
cd openswan-2.6.33
make programs install

1.4、编辑 IPSec 配置文件

注意将"192.168.1.102"换成服务器公网IP。

1
cp /etc/ipsec.conf /etc/ipsec.conf.old
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
cat >/etc/ipsec.conf<<EOF
version 2.0

config setup
    nat_traversal=yes
    virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
    oe=off
    protostack=netkey

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
    also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=192.168.1.102
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any
EOF

1.5、设置 PSK 预共享密钥

注意将"192.168.1.102"换成服务器公网IP。将"123456"换成你自己的PSK。

1
2
3
cat >/etc/ipsec.secrets<<EOF
192.168.1.102 %any: PSK "123456"
EOF

1.6、调整网络策略

for 循环语句,请一行一行地输入,输完后按回车。

1
2
3
4
5
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done

1.7、重启IPSec 服务

1
2
/etc/init.d/ipsec restart
/usr/local/sbin/ipsec verify

可尝试使用 L2TP/IPSec 客户端连接一次,以测试 IPSec 部分配置是否成功。

1
cat /var/log/auth.log | grep pluto

如出现"IPsec SA established transport mode"则成功了。

二、安装 L2TP

使用 xl2tpd 来实现 L2TP,另外要注意的是 xl2tpd 需要从 rp-l2tp 中提取 l2tp-control。

2.1、提取 l2tp-control

1
2
3
4
5
6
7
8
wget http://nchc.dl.sourceforge.net/project/rp-l2tp/rp-l2tp/0.4/rp-l2tp-0.4.tar.gz
tar zxvf rp-l2tp-0.4.tar.gz
cd rp-l2tp-0.4
./configure
make
cp handlers/l2tp-control /usr/local/sbin/
mkdir /var/run/xl2tpd/
ln -s /usr/local/sbin/l2tp-control /var/run/xl2tpd/l2tp-control

2.2、编译安装 xl2tpd

1
apt-get -y install libpcap-dev #安装依赖包
1
2
3
4
5
wget -c http://www.xelerance.com/wp-content/uploads/software/xl2tpd/xl2tpd-1.2.8.tar.gz
tar -zxf xl2tpd-1.2.8.tar.gz
cd xl2tpd-1.2.8
make install
mkdir /etc/xl2tpd

2.3、编辑 xl2tpd 配置文件

ip range 是连接上来的客户端所获得的服务器端内网的 IPv4 地址段。
local ip 是 pppX 所占用的那个 IP 地址。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat >/etc/xl2tpd/xl2tpd.conf<<EOF
[global]
ipsec saref = yes

[lns default]
local ip = 10.10.11.1
ip range = 10.10.11.2-10.10.11.245
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
EOF

三、PPP 的安装配置

3.1、安装 ppp 包

1
apt-get -y install ppp

3.2、配置 options.xl2tpd

主要是改MS-DNS,其他默认。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat >/etc/ppp/options.xl2tpd<<EOF
require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
EOF

四、添加 VPN 用户

chap-secrets 文件为4段,分别是:用户名、服务器名称、密码、分配给客户端的IP。
服务器名可以是l2tpd 或 pptpd,*号代表全部。
密码以明文填写,不需进行加密。
最后的*号代表从remoteip指定的IP段随机分配

1
2
3
cat >>/etc/ppp/chap-secrets<<EOF
user * 123456 *
EOF

五、配置数据包转发

否则连接VPN后,只能访问服务器资源,而不能访问这台服务器以外的资源。

1
2
sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf
sysctl -p

开启iptables转发

1
iptables -t nat -A POSTROUTING -j MASQUERADE

设置MTU

1
iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356

六、启动 xl2tpd 服务

1
2
/usr/local/sbin/xl2tpd
/usr/local/sbin/xl2tpd -D #以调式模式启动

参考资料:

1. linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch35_:_Configuring_Linux_VPNs" rel="nofollow">http://www.linuxhomenetworking.com/wiki/index.php
2. http://www.linode.com/wiki/index.php/AndroidL2TPPSKServer
3. https://humou.net/blog/201102061326.html
4. http://b.gkp.cc/2010/06/19/setup-ipsec-l2tp-on-centos-55/
5. http://apple4.us/2010/05/setting-up-l2tp-vpn-on-debian-ubuntu.html

原文地址 : http://wangyan.org/blog/debian-l2tp-ipsec-vpn.html
本站遵循 : 知识共享署名-非商业性使用-相同方式共享 3.0 版权协议
版权声明 : 原创文章转载时,请务必以超链接形式标明 文章原始出处

买了一台米国的KVM,一年才200块,可以用VPN,自己架设了一套,以下是参考出处:

http://www.onelone.com/tutorial/vpn2.html

感谢作者

Debian架设VPN其实跟CentOS相差不大,大家要设置的内容一样,只是具体执行命令有差别而已,所以本文只是简单讲解一下,如有不明请参看我的上一篇CentOS Linux VPS架设VPN教程。闲话少说,下面是教程:

 

一、确认PPP和TUN启用后,先升级系统然后重启一次:

 

apt-get update
reboot

 

1.png

二、安装pptpd:apt-get install pptpd 然后配置pptpd,编辑 /etc/pptpd.conf  文件,去掉下面两行前面#

 

localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.10.245

 

三、配置 DNS,编辑 /etc/ppp/options 文件,加入下面两行:

 

ms-dns 8.8.8.8
ms-dns 8.8.4.4

 

四、开启IP转发,编辑 /etc/sysctl.conf 文件,去掉下面代码前面的#

 

net.ipv4.ip_forward=1

 

五、添加VPN用户名密码,编辑 /etc/ppp/chap-secrets 文件,按下面格式输入:

 

用户名    pptpd       密码      *

 

六、把转发规则写成文件,执行命令:vi /etc/pptpdfirewall.sh 然后内容输入:

 

sudo /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT 
--to-source 你的VPS公网IP

sudo /sbin/iptables -A FORWARD -s 192.168.0.0/24 -p tcp -m tcp --tcp-flags 
FIN,SYN,RST,ACK SYN -j TCPMSS --set-mss 1356

 

七、设置文件执行权限,执行下面命令:

 

chmod 755 /etc/pptpdfirewall.sh

 

八、设置开机启动,执行命令:vi /etc/init.d/rc.local 然后在最后一行加入下面代码:

 

sh /etc/pptpdfirewall.sh

 

九、重启VPS后就可以正常使用你的VPN了:

 

reboot

 

2.png 

最后,如果连接出现错误619或者错误734,请参看这里

 

Hyper-V安装CentOS 6.3后无法安装LIC3.3,也就是Linux Integration Services V3.3 集成服务,安装时报错,显示kernel(clocksource_register)神马神马的,总之是不让装。

参考了洋同志们给的帮助 http://social.technet.microsoft.com/Forums/zh-CN/linuxintegrationservices/thread/0b94561d-9d15-4d9d-97ec-a67580c4db8a

顺利解决,貌似是将linux内核降到 2.6.32-71

我用的是64位的,所以找到以下内核的下载地址,进行安装。

Download

mirror.switch.ch linux/6rolling/build/x86_64/kernel-devel-2.6.32-71.el6.x86_64.rpm">kernel-devel-2.6.32-71.el6.x86_64.rpm
ftp.ntua.gr linux/scientificlinux/6.0/x86_64/os/Packages/kernel-devel-2.6.32-71.el6.x86_64.rpm">kernel-devel-2.6.32-71.el6.x86_64.rpm
ftp.icm.edu.pl linux-scientificlinux/6rolling/build/x86_64/kernel-devel-2.6.32-71.el6.x86_64.rpm">kernel-devel-2.6.32-71.el6.x86_64.rpm
ftp.icm.edu.pl linux-scientificlinux/6.0/x86_64/os/Packages/kernel-devel-2.6.32-71.el6.x86_64.rpm">kernel-devel-2.6.32-71.el6.x86_64.rpm
ftp.pbone.net linux.org/linux/scientific/6rolling/build/x86_64/kernel-devel-2.6.32-71.el6.x86_64.rpm">kernel-devel-2.6.32-71.el6.x86_64.rpm
ftp.pbone.net linux.org/linux/scientific/6.0/x86_64/os/Packages/kernel-devel-2.6.32-71.el6.x86_64.rpm">kernel-devel-2.6.32-71.el6.x86_64.rpm  

rpm -i --force kernel-2.6.32-71.el6.x86_64.rpm

reboot

然后再加载LIC3.3,安装即可。

找不到网卡的时候,修改了一下snmpd.conf就好了

http://blog.sina.com.cn/s/blog_6a03f09f0100xcf8.html

Cacti snmp找不到网卡的问题,请帮忙解决net-snmp版本5.0.9
编译配置:
./configure --with-default-snmp-version="3" --with-sys-contact="root@localhost" --with-sys-location="beijing" --with-logfile
="/var/log/snmpd.log" --with-persistent-directory="/var/net-snmp" --with-libwrap

snmp安装完成后,配置了一下snmpd.conf
内容为:

rocommunity abc_snmp
com2sec notConfigUserdefault abc_snmp
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.2
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1.3.6.1.2.1.1
view systemview included .1.3.6.1.2.1.2
view systemview included .1.3.6.1.2.1.2.2.1.1
view systemview included .1.3.6.1.2.1.25.1.1
view systemview included .1.3.6.1.4.1.2021.10.1.3.1
view systemview included .1.3.6.1.4.1.2021.10.1.3.2
view systemview included .1.3.6.1.4.1.2021.10.1.3.3
view systemview included .1.3.6.1.4.1.2021.4.3.0
view systemview included .1.3.6.1.4.1.2021.4.4.0
view systemview included .1.3.6.1.4.1.2021.4.5.0
view systemview included .1.3.6.1.4.1.2021.4.6.0
view systemview included .1.3.6.1.4.1.2021.4.11.0
view all included .1 80
accessnotConfigGroup "" any noauth exactall none none
syslocation abc
syscontact abc@abcd
pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat

然后把编译目录下/dist/snmpd-init.d cp到/etc/rc.d/init.d/snmpd
然后修改/etc/rc.d/init.d/snmpd
#!/bin/sh
#
# snmpd This shell script takes care of starting and stopping
# the net-snmp SNMP daemon
#
# chkconfig: - 26 74
# description: snmpd is net-snmp SNMP daemon.

# Source function library.
. /etc/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

RETVAL=0
name="snmpd"
prog="/usr/local/sbin/snmpd"

[ -x $prog -a -f /usr/local/share/snmp/snmpd.conf ] || exit 0

start() {
# Start daemons.
echo -n $"Starting $name: "
daemon $prog -Cc /etc/snmp/snmpd.conf
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$name
return $RETVAL
}

stop() {
# Stop daemons.
echo -n $"Shutting down $name: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$name
return $RETVAL
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $name
RETVAL=$?
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/$name ]; then
stop
start
RETVAL=$?
fi
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 1
esac

exit $RETVAL

修改的内容主要是把启动时的命令添加了参数 -Cc /etc/snmp/

请建议vpn方案...

snmpd.conf 修改snmpd读取的配置文件

在cacti添加了这个服务器以后http://www.2uphone.com,取不到数据,不知道为什么,请高人指导http://www.vaexcellent.com!佳能600DCacti版本是0.8.6h for linux,数据获取方式是Cactid,Cactid默认编译.
我觉得问题应该不是Cactid,因为我以前用cmd.php取数据也是没有取到请看cacti下 的log/cacti.log查找问题你要抓的网卡是千M还是百M,是32位还是64位?
下一个新的net-snmp从新编译安装试试。
configure 时加个--enable-mfd-rewrites我现在严重怀疑是我的cacti端的net-snmp版本太低.正在重新编译5.4版的.希望有些奇迹. 我的网卡32位1000M的