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

发发对84的牢骚

刚才看到群里有人在说84(burst)的VPS,我也发发牢骚吧
一年前买了个84的vps,那时候大家都说它便宜,不错。于是我就信了。
因为买一年会有一个优惠,所以我一下子就买了一年的。然后问题就来了

用了2个月,都还不错,但第三个月开始,有一天突然不能访问了。去控制面板一看,关机了。于是reboot
过两天发现又关机了。又reboot,然后当天晚上又关机了。

这TMD太让人纠结了。开始我想,可能是我的系统有问题吧?于是更新补丁,结果第二天还是关机了。难道ubuntu有漏洞?于是我装了一个gentoo,什么软件都没有装,就空着。2天后还是关机了。我晶啊。

今天我想上去看看。结果。。。控制面板也登录不了了,用户名和密码不都是后台自动提供的吗?为什么这也登录不了。
这年头。84真让人郁闷。

如果还有人让我推荐VPS,84我是绝对不会再推荐的了。价格其实现在看来相对于其他的VPS供应商,也没有便宜到哪里去。

Tags: vps, burst

busybox

最近买了一个UIS2000,也就是一个NAS设备了。因为内置了linux操作系统。所以就想着用它来做一些其他的事情,比如备份,比如做个小网站之类的。
但是功能确实不够强大,于是同事建议我下载一个最新的busybox,因为功能更强大。于是我查了一下busybox是干嘛的,用法怎么样,看了一下。哇塞,好方便啊。。。。。。

busybox是一个集成了一百多个最常用linux命令和工具的软件,他甚至还集成了一个http服务器和一个telnet服务器, 而所有这一切功能却只有区区1M左右的大小.我们平时用的那些linux命令就好比是分立式的电子元件,而busybox就好比是一个集成电路,把常用的 工具和命令集成压缩在一个可执行文件里,功能基本不变,而大小却小很多倍,在嵌入式linux应用中,busybox有非常广的应用,另外,大多数 linux发行版的安装程序中都有busybox的身影,安装linux的时候案ctrl+alt+F2就能得到一个控制台,而这个控制台中的所有命令都 是指向busybox的链接.
Busybox的小身材大作用的特性,给制作一张软盘的linux带来了及大方便.
---
关键,它真的很小,带的功能却不少,什么bzip,tar,cat,vi等等常用的都带了。。crontab 都有了。。。。ftpd,httpd,我晕啊。还有什么是它没有的?
----
安装软件也很方便,先./busybox --list,看看有多少功能。然后。。。
可以这样用busybox
#busybox ls
他的功能就相当运行ls命令
最常用的用法是建立指向busybox的链接,不同的链接名完成不同的功能.
#ln -s busybox ls
#ln -s busybox rm
#ln -s busybox mkdir

然后分别运行这三个链接:
#./ls
#./rm
#./mkdir

就可以分别完成了ls rm 和mkdir命令的功能.虽然他们都指向同一个可执行程序busybox
但是只要链接名不同,完成的功能就不同,busybox就是这么的神奇.
很多linux网站都提供busybox的源代码下载.

-----
下面的东东对我来说用不太倒,但我还是贴一下,供有心人做测试:
3,配置busybox

busybox的配置程序和linux内核菜单配置方式简直一模一样.熟悉用make menuconfig方式配置linux内核的朋友很容易上手.

#cp busybox-1.00.tar.gz /babylinux
#cd /babylinux
#tar xvfz busybox-1.00.tar.gz
#cd busybox-1.00
#make menuconfig

下面是需要编译进busybox的功能选项,其他的可以根据需要自选,但是同样不要太贪心.
General Configuration应该选的选项
Show verbose applet usage messages
Runtime SUID/SGID configuration via /etc/busybox.conf

Build Options
Build BusyBox as a static binary (no shared libs)
这个选项是一定要选择的,这样才能把busybox编译成静态链接的可执行文件,运行时才独立于其他函数库.否则必需要其他库文件才能运行,在单一个linux内核不能使他正常工作.

Installation Options
Don't use /usr
这个选项也一定要选,否则make install 后busybox将安装在原系统的/usr下,这将覆盖掉系统原有的命令.选择这个选项后,make install后会在busybox目录下生成一个叫_install的目录,里面有busybox和指向他的链接.

其他选项都是一些linux基本命令选项,自己需要哪些命令就编译进去,一般用默认的就可以了.

配置好后退出并保存.

4,编译并安装busybox

#make
#make install

编译好后在busybox目录下生成子目录_install,里面的内容:
drwxr-xr-x 2 root root 4096 11月 24 15:28 bin
lrwxrwxrwx 1 root root 11 11月 24 15:28 linuxrc -> bin/busybox
drwxr-xr-x 2 root root 4096 11月 24 15:28 sbin
其中可执行文件busybox在bin目录下,其他的都是指向他的符号链接.
我编译出来的busybox可执行文件是935K,加上符号链接,整个_install目录是952K.加上845K的内核不是已经超过1440K了吗?别担心,我们将对整个根文件系统做大幅度的压缩.
-------上面的大部分内容都不是我写的,我只是做了一个简单的COPY。
不过我现在用的很爽。同事也编译了一个PHP,在我不会写bash的时候,我就准备用这个php来完成一些我的脚本了。只保留了两个文件:php和php-cgi。但我觉得php-cgi可能也用不到。。。一个纯php就足够了。黑黑
上面的大部分内容来自:http://hi.baidu.com/pylctstsddhistr/item/36cc0cbd3f44799d19469708

Tags: busybox, uis2000

Linux运维常用命令

微博上,@IT程序猿微博达人贴出了常用命令,他说:【Linux运维常用命令】实际运维中经常需要用到的命令,很实用。http://t.cn/zl8wFGQ

看了一下图,确实很常用。
大小: 576.13 K
尺寸: 35 x 376
浏览: 1413 次
点击打开新窗口浏览全图

XML/HTML代码
  1. 1.删除0字节文件  
  2. find-type f -size 0 -exec rm -rf {} ;  
  3.   
  4. 2.查看进程  
  5. 按内存从大到小排列  
  6. ps -e -o "%C : %p : %z : %a"|sort -k5 -nr  
  7.   
  8. 3.按cpu利用率从大到小排列  
  9. ps -e -o "%C : %p : %z : %a"|sort -nr  
  10.   
  11. 4.打印说cache里的URL  
  12. grep -r -a jpg /data/cache/* | strings | grep "http:" |awk-F'http:' '{print "http:"$2;}'  
  13.   
  14. 5.查看http的并发请求数及其TCP连接状态:  
  15. netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
  16.   
  17. 6.sed-i '/Root/s/no/yes/' /etc/ssh/sshd_config sed在这个文里Root的一行,匹配Root一行,将no替换成yes.  
  18.   
  19. 7.1.如何杀掉mysql进程:  
  20. ps aux |grep mysql |grep -v grep|awk '{print $2}' |xargs kill -9 (从中了解到awk的用途)  
  21.   
  22. killall -TERM mysqld  
  23.   
  24. kill -9 `cat /usr/local/apache2/logs/httpd.pid`试试查杀进程PID  
  25.   
  26. 8.显示运行3级别开启的服务:  
  27. ls /etc/rc3.d/S* |cut-c 15- (从中了解到cut的用途,截取数据)  
  28.   
  29. 9.如何在编写SHELL显示多个信息,用EOF  
  30. cat << EOF  
  31. +--------------------------------------------------------------+  
  32. | === Welcome to Tunoff services === |  
  33. +--------------------------------------------------------------+  
  34. EOF  
  35.   
  36. 10. for的巧用(如给mysql建软链接)  
  37. cd /usr/local/mysql/bin  
  38. for i in *  
  39. do ln /usr/local/mysql/bin/$i /usr/bin/$i  
  40. done  
  41.   
  42. 11.取IP地址:  
  43. ifconfig eth0 |grep "inet addr:" |awk '{print $2}'|cut -c 6-或者  
  44.   
  45. ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'  
  46.   
  47. 12.内存的大小:  
  48. free -m |grep "Mem" | awk '{print $2}'  
  49.   
  50. 13.  
  51. netstat -an -t | grep ":80" | grep ESTABLISHED | awk '{printf "%s %sn",$5,$6}' | sort  
  52.   
  53. 14.查看Apache的并发请求数及其TCP连接状态:  
  54. netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  
  55.   
  56. 15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和....,下面的命令就能解决啦.  
  57. find / -name *.jpg -exec wc -c {} ;|awk '{print $1}'|awk '{a+=$1}END{print a}'  
  58.   
  59. CPU的数量(多核算多个CPU,cat /proc/cpuinfo |grep -c processor)越多,系统负载越低,每秒能处理的请求数也越多。  
  60.   
  61. ---------------------------------------------------------------------------------------  
  62. 16 CPU负载 # cat /proc/loadavg  
  63. 检查前三个输出值是否超过了系统逻辑CPU的4倍。  
  64.   
  65. 18 CPU负载 #mpstat 1 1  
  66. 检查%idle是否过低(比如小于5%)  
  67.   
  68. 19内存空间 # free  
  69. 检查free值是否过低也可以用# cat /proc/meminfo  
  70.   
  71. 20 swap空间 # free  
  72. 检查swap used值是否过高如果swap used值过高,进一步检查swap动作是否频繁:  
  73. # vmstat 1 5  
  74. 观察si和so值是否较大  
  75.   
  76. 21磁盘空间 # df -h  
  77. 检查是否有分区使用率(Use%)过高(比如超过90%)如发现某个分区空间接近用尽,可以进入该分区的挂载点,用以下命令找出占用空间最多的文件或目录:  
  78. # du -cks * | sort -rn | head -n 10  
  79.   
  80. 22磁盘I/O负载 # iostat -x 1 2  
  81. 检查I/O使用率(%util)是否超过100%  
  82.   
  83. 23网络负载 # sar -n DEV  
  84. 检查网络流量(rxbyt/s, txbyt/s)是否过高  
  85.   
  86. 24网络错误 # netstat -i  
  87. 检查是否有网络错误(drop fifo colls carrier)也可以用命令:# cat /proc/net/dev  
  88.   
  89. 25网络连接数目 # netstat -an | grep -E “^(tcp)” | cut -c 68- | sort | uniq -c | sort -n  
  90.   
  91. 26进程总数 # ps aux | wc -l  
  92. 检查进程个数是否正常(比如超过250)  
  93.   
  94. 27可运行进程数目 # vmwtat 1 5  
  95. 列给出的是可运行进程的数目,检查其是否超过系统逻辑CPU的4倍  
  96.   
  97. 28进程 # top -id 1  
  98. 观察是否有异常进程出现  
  99.   
  100. 29网络状态检查DNS,网关等是否可以正常连通  
  101.   
  102. 30用户 # who | wc -l  
  103. 检查登录用户是否过多(比如超过50个)也可以用命令:# uptime  
  104.   
  105. 31系统日志 # cat /var/log/rflogview/*errors  
  106. 检查是否有异常错误记录也可以搜寻一些异常关键字,例如:  
  107. # grep -i error /var/log/messages  
  108. # grep -i fail /var/log/messages  
  109.   
  110. 32核心日志 # dmesg  
  111. 检查是否有异常错误记录  
  112.   
  113. 33系统时间 # date  
  114. 检查系统时间是否正确  
  115.   
  116. 34打开文件数目 # lsof | wc -l  
  117. 检查打开文件总数是否过多  
  118.   
  119. 35日志 # logwatch –print配置/etc/log.d/logwatch.conf,将Mailto设置为自己的email地址,启动mail服务(sendmail或者postfix),这样就可以每天收到日志报告了。  
  120. 缺省logwatch只报告昨天的日志,可以用# logwatch –print –range all获得所有的日志分析结果。  
  121. 可以用# logwatch –print –detail high获得更具体的日志分析结果(而不仅仅是出错日志)。  
  122.   
  123. 36.杀掉80端口相关的进程  
  124. lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh  
  125.   
  126. 37.清除僵死进程。  
  127. ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9  
  128.   
  129. 38.tcpdump抓包,用来防止80端口被人攻击时可以分析数据  
  130. # tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts  
  131.   
  132. 39.然后检查IP的重复数并从小到大排序注意"-t +0"中间是两个空格  
  133. # less pkts | awk {'printf $3"n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"n"'} | sort -n -t +0  
  134.   
  135. 40.查看有多少个活动的php-cgi进程  
  136. netstat -anp | grep php-cgi | grep ^tcp | wc -l  
  137.   
  138. chkconfig --list | awk '{if ($5=="3:on") print $1}'  
  139.   
  140. 41.kudzu查看网卡型号  
  141. kudzu --probe --class=network  
  142.   
  143. 匹配中文字符的正则表达式:[u4e00-u9fa5]  
  144. 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了  
  145.   
  146. 匹配双字节字符(包括汉字在内):[^x00-xff]  
  147. 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)  
  148.   
  149. 匹配空白行的正则表达式:ns*r  
  150. 评注:可以用来删除空白行  
  151.   
  152. 匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?</1>|<.*? />  
  153. 评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力  
  154.   
  155. 匹配首尾空白字符的正则表达式:^s*|s*$  
  156. 评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式  
  157.   
  158. 匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*  
  159. 评注:表单验证时很实用  
  160.   
  161. 匹配网址URL的正则表达式:[a-zA-z]+://[^s]*  
  162. 评注:网上流传的版本功能很有限,上面这个基本可以满足需求  
  163.   
  164. 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$  
  165. 评注:表单验证时很实用  
  166.   
  167. 匹配国内电话号码:d{3}-d{8}|d{4}-d{7}  
  168. 评注:匹配形式如0511-4405222或021-87888822  
  169.   
  170. 匹配腾讯QQ号:[1-9][0-9]{4,}  
  171. 评注:腾讯QQ号从10000开始  
  172.   
  173. 匹配中国邮政编码:[1-9]d{5}(?!d)  
  174. 评注:中国邮政编码为6位数字  
  175.   
  176. 匹配身份证:d{15}|d{18}  
  177. 评注:中国的身份证为15位或18位  
  178.   
  179. 匹配ip地址:d+.d+.d+.d+  
  180.   
  181. 评注:提取ip地址时有用  
  182.   
  183. 匹配特定数字:  
  184. ^[1-9]d*$  //匹配正整数  
  185. ^-[1-9]d*$ //匹配负整数  
  186. ^-?[1-9]d*$  //匹配整数  
  187. ^[1-9]d*|0$ //匹配非负整数(正整数+ 0)  
  188. ^-[1-9]d*|0$  //匹配非正整数(负整数+ 0)  
  189. ^[1-9]d*.d*|0.d*[1-9]d*$  //匹配正浮点数  
  190. ^-([1-9]d*.d*|0.d*[1-9]d*)$ //匹配负浮点数  
  191. ^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$ //匹配浮点数  
  192. ^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$  //匹配非负浮点数(正浮点数+ 0)  
  193. ^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数+ 0)  
  194. 评注:处理大量数据时有用,具体应用时注意修正  
  195.   
  196. 匹配特定字符串:  
  197. ^[A-Za-z]+$  //匹配由26个英文字母组成的字符串  
  198. ^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串  
  199. ^[a-z]+$  //匹配由26个英文字母的小写组成的字符串  
  200. ^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串  
  201. ^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串  
  202. 评注:最基本也是最常用的一些表达式  

那个看内存从小到大的还真不知道。。。。那个取IP地址的,在现在的VPN一键安装包中很常见。我现在写脚本都是用PHP来实现的。现在有了这个,以后考虑用Bash写的时候就有很多参考了。

又是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