分类目录归档:未分类

Linux CentOS 快速安裝 VPN Server (PPTP)

[VPN]是一种常用于中、大型企业或团体与团体间的私人网路的通讯方法。借由VPN所建立的加速通道,可以让你从外部存取公司内部的资源,或透过连线到VPN的Server当跳板,去存取被限制的外部资源(俗称[翻墙]).

在使用VPN之前,你得先有一台提供服务的VNP Server,现在蛮多人回去租用国外的VPS当Server。(遵纪守法是公民的义务)。

以下把握几个中点击快速完成Linux的PPTP的VPN Server架设:

  • PPP – 点对点协定(Point-to-Point Protocol)
  • PPTP – 点对点通道协定 (Point-to-PointTunneling Protocol)
  • iptables – 设定封包转发规则

安装步骤:

1.判断 ppp 是否可用

$ cat /dev/ppp
cat: /dev/ppp: No such device or address

如果出现跟上面一样的讯息【No such device or address】,那不用担心,这表示ppp是可用的,可以正常架设pptp。

如果出现的是【Permission denied】,表示ppp是关闭的,下面的步骤就可以不用再看了。

2.安装ppp与iptables

$ yum -y install ppp iptables
$ cp -rpf /etc/sysconfig/iptables /etc/sysconfig/iptables.pptpsave
$ cd /usr/src

3.请依照你的系统环境下载适合的pptp套件:

# for CentOS 6.x 32bit
$ wget http://here.vixual.net/files/linux/pptpd/pptpd-1.3.4-2.el6.i686.rpm
# for CentOS 6.x x64
$ wget http://here.vixual.net/files/linux/pptpd/pptpd-1.3.4-2.el6.x86_64.rpm
# for CentOS 5.x 32bit
$ wget http://here.vixual.net/files/linux/pptpd/pptpd-1.3.4-2.rhel5.i386.rpm
# for CentOS 6.x x64
$ wget http://here.vixual.net/files/linux/pptpd/pptpd-1.3.4-2.rhel5.x86_64.rpm

上面这些站点如果失效,有可能是更新版本了,请自行google or baidu安装包。

4.安装一个步骤所下载的pptp套件:

$ rpm -ivh pptpd-1.3.4-2.el6.i686.rpm

5.编辑/etc/sysctl.conf,找到

net.ipv4.ip_forward = 0

将后面的 0 改成 1

6.下面的指令全部给他执行下去:

sysctl -p
echo "localip 192.168.240.1" >> /etc/pptpd.conf
echo "remoteip 192.168.240.101-200" >> /etc/pptpd.conf
echo "ms-dns 8.8.8.8" >> /etc/ppp/options.pptpd
echo "ms-dns 8.8.4.4" >> /etc/ppp/options.pptpd
iptables --flush POSTROUTING --table nat
iptables --flush FORWARD
iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o eth0 -j MASQUERADE
service iptables save
service pptpd restart
service iptables restart
chkconfig pptpd on
chkconfig iptables on

这样就大功告成了!!!

上面这些质量会创造一个 192.168.240.* 的网段给连上来的 vpn 用户使用,并透过 Server 上的 eth0 转送对外上网的封包(你可以自行将 192.168.240 与 eth0 改成符合你需求的设定)。(有的vps并没有eth0网段,请随机应变,ifconfig自行查找)

加入 VPN 账号

接着我们要加入 VPN 的连线账号。

编辑 /etc/ppp/chap-secrets 以加入 VPN 账号,一个账号一行,格式为:

账号名称  pptpd  密码  *

例如:我要新增一个账号为【vpn】,密码为【test123】,则只要在 /etc/ppp/chap-secrets 加入一行:

vpn pptpd test123 *

加入之后不用重新启动 pptpd,你就可以在 Client 端以 pptp 协定用VPN 连线至这台 Server 了。

连线测试

连线成功后,你可以连到 ip.calm9.com 查看你的是否用 VPN Server 的IP 在上网。

下面这张图的连线咨询是我用我的账号所建立的 VPS, 位置在【美国】:

3747E0D4-2CC1-4F91-A9F1-00449A712566

iptables 规则说明

在上面的指令中,最重要的是这三条 iptables 规则:

iptables -A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.240.0/24 -o eth0 -j MASQUERADE

说明 pptp 是以 GRE (Generic Routing Encapsulation)封包透过1723 Port 进行传输,并且设定VPN的网段是由那个网路界面转送对外的封包。

错误处理

807错误

在连接至 VPN 时,如果出现807错误(在您的电脑与 VPN 服务器之间的网路连线已经中断),或是其它在确认账号、密码之前出现的错误,如果确定不是自己电脑的问题,你可以编辑啊Server的 /etc/sysconfig/iptables ,查看这两条规则是否有正确出现在档案里面。

-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -p gre -j ACCEPT

并且,这两条规则的位置不能在任何 【-A INPUT -j REJECT …】 的规则下面。如有这种情形,请把它一到【-A INPUT -J REJECT …】的上方。

储存之后,再重新启动 iptables:

service iptables restart

734错误

在连接至 VPN 时,如果出现734 错误 (已经终止PPP连接控制通讯协定),请修改Windows的VPN安全性设定:

  1. 将资料加密改为【可省略加密】
  2. 勾选【未加密的密码】
  3. 勾选【challenge Handshake 验证通讯协定】

vpn-settings

http://www.vixual.net/blog/archives/32

http://www.dabu.info/centos6-4-structures-pptp-vpn.html

mac OSX 系统重置MySql root 密码

第一步:停止MySql服务,在系统偏好设置里停止或者用命令行的方式:

sudo /usr/local/mysql/support-files/mysql.server stop

然后需要在安全模式下启动MySql:

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

这是一个持续运行的命令,知道进程结束,所以我们打开另一个终端窗口,无密码登录MySql

mysql -u root
UPDATE mysql.user SET Password=PASSWORD('my-new-passowrd') WHERE User='root';
FLUSH PRIVILEGES;
\q

如果你使用MySql 5.7版本,那么你必须使用另一种命令而不是上面这段。因为在MySql 5.7中,mysql.user表中的password字段已经被移除,现在密码字段名称是‘authentication_string’.

mysql -u root
UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE User='root';
FLUSH PRIVILEGES;
\q

现在我们需要重新启动MySql服务。

sudo /usr/local/mysql/support-files/mysql.server start

当以上所有步骤进行完之后,就可以使用新的密码登录root账号了

mysql -u root -p
********  // 输入上面设置的密码即可

正常情况mysql应该可以正常登录了,接下来执行个小操作看看都有哪些数据库吧

mysql> show databases;

可能会报一下错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

继续执行以下命令即可解决:

SET PASSWORD = PASSWORD('root');

此时一切顺利的话应该会返回一下内容:

Query OK, 0 rows affected, 1 warning (0.01 sec)

到此时mysql的密码应该算是完全重置了,而且可以正常进行任何操作,也可以通过GUI客户端连接数据库了。再次执行下”show databases;”试试吧~

xml/xslt中使用自增计数

在xml模板中实现自动计数,为文章标题添加序列号,效果如下:

<li><span>1</span> 文章标题 </li>
<li><span>2</span> 文章标题 </li>
<li><span>3</span> 文章标题 </li>
<li><span>4</span> 文章标题 </li>
<li><span>5</span> 文章标题 </li>

可以通过<xsl:number/><xsl:value-of select="position()"/>实现