手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

又是VPN手记。。。

这是一个自动安装脚本,for 大便系列。比如 大便和ubuntu(版权不是我的,我也只是拿来改改) :

XML/HTML代码
  1. #!/bin/bash  
  2.   
  3. function installVPN(){  
  4.         apt-get update  
  5.         #remove ppp pptpd  
  6.         rm -rf /etc/pptpd.conf  
  7.         rm -rf /etc/ppp  
  8.         apt-get -y remove ppp pptpd  
  9.         apt-get -y install ppp pptpd iptables  
  10.   
  11.         #注意,这里的一些refuse-pap之类的要注意,如果不能连接首先改这里。  
  12.         #如果一直出错,将require-mschap-v2和require-mppe-128 这两行加密注释掉,(对应源文件)  
  13.         echo name pptpd >> /etc/ppp/pptpd-options  
  14.         echo refuse-pap >> /etc/ppp/pptpd-options  
  15.         echo refuse-chap >> /etc/ppp/pptpd-options  
  16.         #refuse-mschap  
  17.         echo require-mschap-v2 >> /etc/ppp/pptpd-options  
  18.         echo require-mppe-128 >> /etc/ppp/pptpd-options  
  19.         echo proxyarp >> /etc/ppp/pptpd-options  
  20.         echo nodefaultroute >> /etc/ppp/pptpd-options  
  21.         echo lock >> /etc/ppp/pptpd-options  
  22.         echo nobsdcomp >> /etc/ppp/pptpd-options  
  23.   
  24.   
  25.         echo ms-dns 8.8.8.8 >> /etc/ppp/pptpd-options  
  26.         echo ms-dns 8.8.4.4 >> /etc/ppp/pptpd-options  
  27.         echo ms-dns 4.3.2.1 >> /etc/ppp/pptpd-options  
  28.   
  29.         #写到pptpd.conf文件中  
  30.         echo option /etc/ppp/pptpd-options >> /etc/pptpd.conf  
  31.         echo logwtmp >> /etc/pptpd.conf  
  32.         echo localip 192.168.99.1 >> /etc/pptpd.conf  
  33.         echo remoteip 192.168.99.9-99 >> /etc/pptpd.conf  
  34.   
  35.         #这个最好只能处理一次。否则每次都会修改,以防万一,改两次吧。。第一次应该失败  
  36.         sed -i 's/#net\.ipv4.ip_forward=0/net\.ipv4.ip_forward=1/' /etc/sysctl.conf  
  37.         sed -i 's/#net\.ipv4.ip_forward=1/net\.ipv4.ip_forward=1/' /etc/sysctl.conf  
  38.         #echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf  
  39.         sysctl -p  
  40.         #以下内容是for OPENVZ  
  41.         #iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0' | cut -d: -f2 | awk 'NR==1 { print $1}'`  
  42.         #sed -i 's/exit\ 0/#exit\ 0/' /etc/rc.local  
  43.   
  44.         #echo iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0' | cut -d: -f2 | awk 'NR==1 { print $1}'` >> /etc/rc.local  
  45.         #echo exit 0 >> /etc/rc.local  
  46.   
  47.           
  48.   
  49.         # --- the sentence below was remarked By yanwen ,  what are you doing ??-----  
  50.   
  51. }  
  52.   
  53. function installOpenVZ(){  
  54.         (installVPN)  
  55.         iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0' | cut -d: -f2 | awk 'NR==1 { print $1}'`  
  56.         sed -i 's/exit\ 0/#exit\ 0/' /etc/rc.local  
  57.   
  58.         echo iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0' | cut -d: -f2 | awk 'NR==1 { print $1}'` >> /etc/rc.local  
  59.         echo exit 0 >> /etc/rc.local  
  60.         (setDefaultUser)  
  61. }  
  62. function installXen(){  
  63.         (installVPN)  
  64.         iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -o eth0 -j MASQUERADE  
  65.         sed -i 's/exit\ 0/#exit\ 0/' /etc/rc.local  
  66.   
  67.         echo iptables -t nat -A POSTROUTING -s 192.168.99.0/24 -o eth0 -j MASQUERADE >> /etc/rc.local  
  68.         echo exit 0 >> /etc/rc.local  
  69.         (setDefaultUser)  
  70. }  
  71.   
  72. function setDefaultUser(){  
  73.         #默认用户  
  74.         echo gouki \* 123456 \* >> /etc/ppp/chap-secrets  
  75.         /etc/init.d/pptpd restart  
  76. }  
  77.   
  78. function repaireVPN(){  
  79.         echo "begin to repaire VPN";  
  80.         mknod /dev/ppp c 108 0  
  81.         /etc/init.d/pptpd restart  
  82. }  
  83.   
  84. function addVPNuser(){  
  85.         echo "input user name:"  
  86.         read username  
  87.         echo "input password:"  
  88.         read userpassword  
  89.         echo "${username} pptpd ${userpassword} *" >> /etc/ppp/chap-secrets  
  90.         /etc/init.d/pptpd restart  
  91. }  
  92. function disableEncyption(){  
  93.         sed -i 's/^require-mschap-v2/#require-mschap-v2/' /etc/ppp/pptpd-options  
  94.         sed -i 's/^require-mppe-128/#require-mppe-128/' /etc/ppp/pptpd-options  
  95.         /etc/init.d/pptpd restart  
  96. }  
  97. function enableEncyption(){  
  98.         sed -i 's/^#require-mschap-v2/require-mschap-v2/' /etc/ppp/pptpd-options  
  99.         sed -i 's/^#require-mppe-128/require-mppe-128/' /etc/ppp/pptpd-options  
  100.         /etc/init.d/pptpd restart  
  101. }  
  102. echo "which do you want to?input the number."  
  103. echo "1. install Xen VPN service"  
  104. echo "2. install OpenVz VPN service"  
  105. echo "3. repaire VPN service"  
  106. echo "4. add VPN user"  
  107. echo "5. disable encryption"  
  108. echo "6. disable encryption"  
  109. read num  
  110.   
  111. case "$num" in  
  112. [1] ) (installXen);;  
  113. [2] ) (installOpenVZ);;  
  114. [3] ) (repaireVPN);;  
  115. [4] ) (addVPNuser);;  
  116. [5] ) (disableEncyption);;  
  117. [6] ) (enableEncyption);;  
  118. *) echo "nothing,exit";;  
  119. esac  

第一次写和改。连参数都不会。将就点了。。嗯。上面的内容复制起来比较麻烦,所以我做一个文件,可以直接下载:
放到自己的目录下,chmod a+x 这个文件。再执行就OK了。
你可以先看一下这个文件。。。以防万一
下载地址:untitled.sh

Tags: vpn

还是VPN的问题(openVZ , debian ,buyVM)

昨天发了一个微博,说是buyvm上面的VPN很容易装。非常方便,只要下载一个脚本包就OK了。
但是我用了之后还是发现没有用。。能连得上,但是上不了网,而且在/etc/ppp/pptpd-option里也设置了ms-dns,为什么上不了网呢?

找了一下,突然发现,/etc/pptpd.conf里就剩两行内容了,localip和remoteip,奇怪那怎么加载option呢???
对比了一下老文件,是有这么一行的:option /etc/ppp/pptpd-options
所以,立刻将这一行加入,OK,可以上网了,但是这时候还不支持加密。。如果选择了加密,就无法登录
再看/ppp/pptpd-options,居然也只有2行ms-dns的配置。连name什么的都没有,怪不得我刚才加的用户选择了服务名称为pptpd的时候都不能连接上网。我晕啊

对着原有的文件,加入:

XML/HTML代码
  1. name pptpd  
  2. refuse-pap  
  3. refuse-chap  
  4. #refuse-mschap  
  5. require-mschap-v2  
  6. require-mppe-128  
  7.   
  8.   
  9. proxyarp  
  10. nodefaultroute  
  11. lock  
  12. nobsdcomp  

再重启一下/etc/init.d/pptpd restart,一切都正常了。这些人啊。为了偷懒,也不能这样啊,心哇凉哇凉的,果然不可尽信一键包。下次我也来做一个一键包算了。。。NND

笔记:为虚拟机再挂载一块虚拟硬盘

原来的虚拟机只分配了8G空间,用啊用啊的就满了。怎么办?
于是想过挂载硬盘,但是不太会弄,今天在hover(http://www.hoverlees.com/blog/)的帮助下,搞定了。

1、fdisk -l,看看挂载进来的硬件是什么?

XML/HTML代码
  1. Disk /dev/sda: 8589 MB, 8589935104 bytes  
  2. 255 heads, 63 sectors/track, 1044 cylinders, total 16777217 sectors  
  3. Units = sectors of 1 * 512512 = 512 bytes  
  4. Sector size (logical/physical): 512 bytes / 512 bytes  
  5. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  6. Disk identifier: 0x0006642a  
  7.   
  8.    Device Boot      Start         End      Blocks   Id  System  
  9. /dev/sda1   *        2048      499711      248832   83  Linux  
  10. /dev/sda2          501758    16775167     8136705    5  Extended  
  11. /dev/sda5          501760    16775167     8136704   8e  Linux LVM  
  12.   
  13. Disk /dev/sdb: 25.8 GB, 25769803776 bytes  
  14. 255 heads, 63 sectors/track, 3133 cylinders, total 50331648 sectors  
  15. Units = sectors of 1 * 512512 = 512 bytes  
  16. Sector size (logical/physical): 512 bytes / 512 bytes  
  17. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  18. Disk identifier: 0x00000000  
  19.   
  20. Disk /dev/sdb doesn't contain a valid partition table  
  21.   
  22. Disk /dev/mapper/webserver-root: 7763 MB, 7763656704 bytes  
  23. 255 heads, 63 sectors/track, 943 cylinders, total 15163392 sectors  
  24. Units = sectors of 1 * 512512 = 512 bytes  
  25. Sector size (logical/physical): 512 bytes / 512 bytes  
  26. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  27. Disk identifier: 0x00000000  
  28.   
  29. Disk /dev/mapper/webserver-root doesn't contain a valid partition table  
  30.   
  31. Disk /dev/mapper/webserver-swap_1: 532 MB, 532676608 bytes  
  32. 255 heads, 63 sectors/track, 64 cylinders, total 1040384 sectors  
  33. Units = sectors of 1 * 512512 = 512 bytes  
  34. Sector size (logical/physical): 512 bytes / 512 bytes  
  35. I/O size (minimum/optimal): 512 bytes / 512 bytes  
  36. Disk identifier: 0x00000000  
  37.   
  38. Disk /dev/mapper/webserver-swap_1 doesn't contain a valid partition table  



2、将上面的红色部分的设备先格式化成某一类型的盘,输入:“mkfs.” 然后按TAB,出现:
mkfs.ext2     mkfs.ext3     mkfs.ext4     mkfs.ext4dev 
为了更通用一点,我还是用了Ext3,所以我后来输入:mkfs.ext3 /dev/sdb1,返回:

XML/HTML代码
  1. mke2fs 1.41.14 (22-Dec-2010)  
  2. Filesystem label=  
  3. OS type: Linux  
  4. Block size=4096 (log=2)  
  5. Fragment size=4096 (log=2)  
  6. Stride=0 blocks, Stripe width=0 blocks  
  7. 1572864 inodes, 6291200 blocks  
  8. 314560 blocks (5.00%) reserved for the super user  
  9. First data block=0  
  10. Maximum filesystem blocks=0  
  11. 192 block groups  
  12. 32768 blocks per group, 32768 fragments per group  
  13. 8192 inodes per group  
  14. Superblock backups stored on blocks:  
  15.     32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,  
  16.     4096000  
  17.   
  18. Writing inode tables: done                             
  19. Creating journal (32768 blocks): done  
  20. Writing superblocks and filesystem accounting information: done  
  21.   
  22. This filesystem will be automatically checked every 32 mounts or  
  23. 180 days, whichever comes first.  Use tune2fs -c or -i to override.  

3、mount到一个目录下,

XML/HTML代码
  1. root@webserver:/mnt# mount /dev/sdb1 /mnt  

4、然后df看一下结果:

XML/HTML代码
  1. root@webserver:/mnt# df   
  2. Filesystem           1K-blocks      Used Available Use% Mounted on  
  3. /dev/mapper/webserver-root  
  4.                        7462608   4930416   2153108  70% /  
  5. udev                    246512         4    246508   1% /dev  
  6. tmpfs                   101524       576    100948   1% /run  
  7. none                      5120         0      5120   0% /run/lock  
  8. none                    253808         0    253808   0% /run/shm  
  9. /dev/sda1               233191    154710     66040  71% /boot  
  10. /dev/sdb1             24769916    176196  23335480   1% /mnt  

一切就这样的完成了。
做个笔记。。。

成功利用apache对内容进行替换[更新]

说是成功了,但其实最终我还是通过PHP来实现的,因为遇到的问题是对方是gzip后的数据,无法直接替换,只能用php先将gzip的内容解压开,替换完后再gzip输出。
头疼。

参考:apache的mod_ext_filter,这个是功能比较强悍的替换模块了
nginx下当然也有更好的。不过因为我的服务器目前用的是apache。而且我习惯了用apache的一些配置,一下子要换到nginx不太习惯。
以后慢慢考虑吧。

---------

如果用PHP做,有些网站的gzip无法用:gzuncompress,gzinflate,gzdecode解压的。
可以用这个函数:http://www.jb51.net/article/15262.htm,原网站没有格式化,所以我格式化了一下:

PHP代码
  1. function gzdecode2($data) {  
  2.     $flags = ord(substr($data, 3, 1));  
  3.     $headerlen = 10;  
  4.     $extralen = 0;  
  5.     $filenamelen = 0;  
  6.     if ($flags & 4) {  
  7.         $extralen = unpack('v'substr($data, 10, 2));  
  8.         $extralen = $extralen[1];  
  9.         $headerlen += 2 + $extralen;  
  10.     }  
  11.     if ($flags & 8) // Filename  
  12.     {  
  13.         $headerlen = strpos($datachr(0), $headerlen) + 1;  
  14.     }  
  15.     if ($flags & 16) // Comment  
  16.     {  
  17.         $headerlen = strpos($datachr(0), $headerlen) + 1;  
  18.     }  
  19.     if ($flags & 2) // CRC at end of file  
  20.     {  
  21.         $headerlen += 2;  
  22.     }  
  23.     $unpacked = @gzinflate(substr($data$headerlen));  
  24.     if ($unpacked === FALSE) {  
  25.         $unpacked = $data;  
  26.     }  
  27.     return $unpacked;  
  28. }  
这回就可以了。。。

 

安装VPN。。。debian / centos

说实话,xen和openVZ安装VPN我真的不是特别了解 ,以前只知道openVZ默认不能装,因为没有ppp和tun设备,但即使有了ppp和tun设备 后,其实,iptables的NAT转发也不是每台机器 都支持。
我在cloud3k上的VPS后台里可以安装ppp和tun设备 ,但安装后无效,发了一个TK给客服,客服说是开通了NAT转发。然后就OK了。
但网上的一些教程中的iptables其实都不能用。因为那句: /sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE,其实是针对xen的VPS的。openVZ根本 就没有MASQUERADE这类的用法,而且。。。eth0,在openVZ上都没有。只有venet0。所以,我又找了一些资料,比如 :
1、http://qiaodahai.com/personal/article/2012/centos-6-pptpd-one-key-installation.htm
2、服务器架设:PPTPD VPN一键安装包 For CentOS 5
3、BuyVM OpenVZ VPS Debian安装PPTP VPN

其实现在网上有openVZ的一键安装包,我这里就不多介绍了,google一下或者百度一下,N多。
安装完后就三个功能
1、安装pptpd服务
2、修复pptpd服务
3、设置帐号
非常方便。但设置帐号后一定要去chep-secrets文件里看一下,理论上是可能有一个所谓的默认帐户存在的。注意删除一下。

Tags: vps, vpn, openvz, debian, centos