linux下vpn server搭建(PPTP)

Posted in Linux, VPN on 05月 7th, 2012 by Strong


1. 12.
一、PPTP 协议介绍
1、PPTP 简介
PPTP: Point to Point Tunneling Protocol
点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。通过该协议,远程用户能够通过 Microsoft Windows NT 工作站、Windows 95 和 Windows 98 操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地 ISP,通过 Internet 安全链接到公司网络。
PPTP 可以用于在 IP 网络上建立 PPP 会话隧道。在这种配置下,PPTP 隧道和 PPP 会话运行在两个相同的机器上,呼叫方充当 PNS。PPTP 使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。PPTP 作为一个呼叫控制和管理协议,它允许服务器控制来自 PSTN 或 ISDN 的拨入电路交换呼叫访问并初始化外部电路交换连接。
PPTP 只能通过 PAC 和 PNS 来实施,其它系统没有必要知道 PPTP。拨号网络可与 PAC 相连接而无需知道 PPTP。标准的 PPP 客户机软件可继续在隧道 PPP 链接上操作。
PPTP 使用 GRE 的扩展版本来传输用户 PPP 包。这些增强允许为在 PAC 和 PNS 之间传输用户数据的隧道提供低层拥塞控制和流控制。这种机制允许高效使用隧道可用带宽并且避免了不必要的重发和缓冲区溢出。PPTP 没有规定特定的算法用于低层控制,但它确实定义了一些通信参数来支持这样的算法工作。
2、协议(报文)结构
16bit
32 bit
Length
PPTP Message Type
Magic Cookie
Control Message Type
Reserved 0
Protocol Version
Reserved 1
Framing Capability
Bearing Capability
Maximum Channels
Firmware Revision
Host Name (64 Octets)
Vendor String (64 Octets)
●Length: 该 PPTP 信息的八位总长,包括整个 PPTP 头。
●PPTP Message Type: 信息类型。可能值有:1、控制信息;2、管理信息。
●Magic Cookie: Magic Cookie 以连续的 0×1A2B3C4D 进行发送,其基本目的是确保接收端与 TCP数据流间的正确同步运行。
●Control Message Type: 可能值有:”1″ 开始-控制-链接-请求(Start-Control-Connection-Request);”2″ 开始-控制-链接-答复(Start-Control-Connection-Reply);”3″ 停止-控制-链接-请求(Stop-Control-Connection-Request);”4″ 停止-控制-链接-答复(Stop-Control-Connection-Reply);”5″ 回应-请求(Echo-Request);”6″ 回应-答复(Echo-Reply);
●Call Management: 可能值有:”1″ 传出-呼叫-请求(Outgoing-Call-Request);”2″ 传出-呼叫-答复(Outgoing-Call-Reply);”3″ 传入-呼叫-请求(Incoming-Call-Request);”4″ 传入-呼叫-答复(Incoming-Call-Reply);”5″ 传入-呼叫-连接(Incoming-Call-Connected);”6″ 呼叫-清除-请求(Call-Clear-Request);”7″ 呼叫-断开连接-通告(Call-Disconnect-Notify);”8″ 广域网-错误-通告(WAN-Error-Notify)。
●PPP Session Control: 设置-链路-信息(Set-Link-Info)。
●Reserved 0 & 1: 必须设置为0。
●Protocol Version: PPTP版本号。
●Framing Capabilities: 指出帧类型,该信息发送方可以提供:”1″ 异步帧支持(Asynchronous Framing Supported);”2″ 同步帧支持(Synchronous Framing Supported)。
Bearer Capabilities: 指出承载性能,该信息发送方可以提供:”1″ 模拟访问支持(Analog Access Supported);”2″ 数字访问支持(Digital access supported)。
●Maximum Channels: 该 PAC 可以支持的个人 PPP 会话总数。
●Firmware Revision: 若由 PAC 出发,则包括发出 PAC 时的固件修订本编号;若由 PNS 出发,则包括 PNS PPTP 驱动版本。
●Host Name: 包括发行的 PAC 或 PNS 的 DNS 名称。
●Vendor Name: 包括特定供应商字串,指当请求是由 PNS 提出时,使用的 PAC 类型或 PNS软件类型。
二、安装 PPTP Server
操作系统:CentOS 5.0/Red Hat Enterprise Linux AS 5 ( RHEL 5 )
安装 PPTP 需要 MPPE 和较高版本的 ppp ( > 2.4.3 ) 支持,不过 CentOS 5.0/RHEL 5 的 2.6.18 内核已经集成了 MPPE 和高版本的 ppp 。因此可以跳过安装配置 MPPE 和 ppp 的过程直接安装 PPTP。
如果需要检查 MPPE 是否存在可以使用以下命令:
shell> modprobe ppp-compress-18 && echo ‘MPPE found !’
1、安装 pptpd
下载最新的 pptpd 源代码 ( 1.3.4 @ 2007-05-23 ):
http://sourceforge.net/project/showfiles.php?group_id=44827
下载源码包之后:
shell> tar xzvf pptpd-1.3.4.tar.gz
shell> cd pptpd-1.3.4
编译安装:
注意:可能需要 libcap、libcap-devel RPM 包支持,如果没有请安装 libcap、libcap-devel RPM 包.
shell> ./configure –prefix=/usr/local/pptpd –enable-bcrelay –with-libwrap
shell> make
shell> make install
2、配置 PPTP
编译安装完成后,首先需要手工建立一些目录以及复制原始的 pptpd 配置文件:
shell> mkdir /usr/local/pptpd/etc
shell> vi /usr/local/pptpd/etc/pptpd.conf
填入内容如下:
# pptpd.conf
option /usr/local/pptpd/etc/options.pptpd
debug
stimeout 30
localip 10.0.0.254
remoteip 10.0.0.200-210
说明:
option /usr/local/pptpd/etc/options.pptpd ———— 指定 pptpd 扩展属性配置文件 options.pptpd 的位置。
debug ———— 开启调试模式,有关 pptpd?的信息和错误都会记录在 /var/logs/message 中,方便排错和调试。
stimeout 30 ———— 设置客户端连接 pptpd server 时的最长连接等待时间(连接超时时间),30 秒。
localip 10.0.0.254 ———— pptpd server?所在服务器的 IP 地址,可以设置为服务器上绑定的任意一个 IP 地址。
remoteip 10.0.0.200-210 ———— 设置客户端连接到 pptpd server 后可供分配的 IP 地址范围( 10.0.0.200 – 10.0.0.210 ),可以这样设置:10.0.0.200-208,10.0.0.209,10.0.0.210,效果是一样的。
shell> vi/usr/local/pptpd/etc/options.pptpd
填入内容如下:
# options.pptpd
name IsMole-VPN
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 202.106.46.151
ms-dns 202.106.0.20
# ms-dns 208.67.222.222 米国用
# ms-dns 208.67.220.220
proxyarp
debug
lock
nobsdcomp
novj
novjccomp
nologfd
说明:
name IsMole-VPN ———— pptpd server 的名称。
refuse-pap ———— 拒绝 pap 身份验证模式。
refuse-chap ———— 拒绝 chap 身份验证模式。
refuse-mschap ———— 拒绝 mschap 身份验证模式。
require-mschap-v2 ———— 在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。
require-mppe-128 ———— MPPE 模块使用 128 位加密。
ms-dns 202.106.46.151
ms-dns 202.106.0.20 ———— ppp 为 Windows 客户端提供 DNS 服务器 IP 地址,第一个 ms-dns 为 DNS Master,第二个为 DNS Slave。
proxyarp ———— 建立 ARP 代理键值。
debug ———— 开启调试模式,相关信息同样记录在 /var/logs/message 中。
lock ———— 锁定客户端 PTY 设备文件。
nobsdcomp ———— 禁用 BSD 压缩模式。
novj
novjccomp ———— 禁用 Van Jacobson 压缩模式。
nologfd ———— 禁止将错误信息记录到标准错误输出设备(stderr)。
配置好上面的两个文件后,我们开始添加客户端帐号。
客户端帐号控制文件位于:/etc/ppp/chap-secrets
shell> vi /etc/ppp/chap-secrets
# PPTP User Accounts
# username server_name “password” ip
vpnuser1 IsMole-VPN “123456″ 10.0.0.201
三、启动 PPTPD
shell> /usr/local/pptpd/sbin/pptpd -c /usr/local/pptpd/etc/pptpd.conf -o /usr/local/pptpd/etc/options.pptpd
如果tcp的1723端口是打开的,就说明启动OK。
四、打开linux路由转发
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -j MASQUERADE
特殊情况注意:
开启pptp vpn转发,vpn服务器和内网路由器
modprobe ip_conntrack_pptp
modprobe ip_nat_pptp

1. 12.一、PPTP 协议介绍1、PPTP 简介PPTP: Point to Point Tunneling Protocol点对点隧道协议(PPTP)是一种支持多协议虚拟专用网络的网络技术。通过该协议,远程用户能够通过 Microsoft Windows NT 工作站、Windows 95 和 Windows 98 操作系统以及其它装有点对点协议的系统安全访问公司网络,并能拨号连入本地 ISP,通过 Internet 安全链接到公司网络。PPTP 可以用于在 IP 网络上建立 PPP 会话隧道。在这种配置下,PPTP 隧道和 PPP 会话运行在两个相同的机器上,呼叫方充当 PNS。PPTP 使用客户机-服务器结构来分离当前网络访问服务器具备的一些功能并支持虚拟专用网络。PPTP 作为一个呼叫控制和管理协议,它允许服务器控制来自 PSTN 或 ISDN 的拨入电路交换呼叫访问并初始化外部电路交换连接。PPTP 只能通过 PAC 和 PNS 来实施,其它系统没有必要知道 PPTP。拨号网络可与 PAC 相连接而无需知道 PPTP。标准的 PPP 客户机软件可继续在隧道 PPP 链接上操作。PPTP 使用 GRE 的扩展版本来传输用户 PPP 包。这些增强允许为在 PAC 和 PNS 之间传输用户数据的隧道提供低层拥塞控制和流控制。这种机制允许高效使用隧道可用带宽并且避免了不必要的重发和缓冲区溢出。PPTP 没有规定特定的算法用于低层控制,但它确实定义了一些通信参数来支持这样的算法工作。
2、协议(报文)结构16bit32 bitLengthPPTP Message TypeMagic CookieControl Message TypeReserved 0Protocol VersionReserved 1Framing CapabilityBearing CapabilityMaximum ChannelsFirmware RevisionHost Name (64 Octets)Vendor String (64 Octets)●Length: 该 PPTP 信息的八位总长,包括整个 PPTP 头。●PPTP Message Type: 信息类型。可能值有:1、控制信息;2、管理信息。●Magic Cookie: Magic Cookie 以连续的 0×1A2B3C4D 进行发送,其基本目的是确保接收端与 TCP数据流间的正确同步运行。●Control Message Type: 可能值有:”1″ 开始-控制-链接-请求(Start-Control-Connection-Request);”2″ 开始-控制-链接-答复(Start-Control-Connection-Reply);”3″ 停止-控制-链接-请求(Stop-Control-Connection-Request);”4″ 停止-控制-链接-答复(Stop-Control-Connection-Reply);”5″ 回应-请求(Echo-Request);”6″ 回应-答复(Echo-Reply);●Call Management: 可能值有:”1″ 传出-呼叫-请求(Outgoing-Call-Request);”2″ 传出-呼叫-答复(Outgoing-Call-Reply);”3″ 传入-呼叫-请求(Incoming-Call-Request);”4″ 传入-呼叫-答复(Incoming-Call-Reply);”5″ 传入-呼叫-连接(Incoming-Call-Connected);”6″ 呼叫-清除-请求(Call-Clear-Request);”7″ 呼叫-断开连接-通告(Call-Disconnect-Notify);”8″ 广域网-错误-通告(WAN-Error-Notify)。●PPP Session Control: 设置-链路-信息(Set-Link-Info)。●Reserved 0 & 1: 必须设置为0。●Protocol Version: PPTP版本号。●Framing Capabilities: 指出帧类型,该信息发送方可以提供:”1″ 异步帧支持(Asynchronous Framing Supported);”2″ 同步帧支持(Synchronous Framing Supported)。Bearer Capabilities: 指出承载性能,该信息发送方可以提供:”1″ 模拟访问支持(Analog Access Supported);”2″ 数字访问支持(Digital access supported)。●Maximum Channels: 该 PAC 可以支持的个人 PPP 会话总数。●Firmware Revision: 若由 PAC 出发,则包括发出 PAC 时的固件修订本编号;若由 PNS 出发,则包括 PNS PPTP 驱动版本。●Host Name: 包括发行的 PAC 或 PNS 的 DNS 名称。●Vendor Name: 包括特定供应商字串,指当请求是由 PNS 提出时,使用的 PAC 类型或 PNS软件类型。
二、安装 PPTP Server操作系统:CentOS 5.0/Red Hat Enterprise Linux AS 5 ( RHEL 5 )安装 PPTP 需要 MPPE 和较高版本的 ppp ( > 2.4.3 ) 支持,不过 CentOS 5.0/RHEL 5 的 2.6.18 内核已经集成了 MPPE 和高版本的 ppp 。因此可以跳过安装配置 MPPE 和 ppp 的过程直接安装 PPTP。如果需要检查 MPPE 是否存在可以使用以下命令:shell> modprobe ppp-compress-18 && echo ‘MPPE found !’1、安装 pptpd下载最新的 pptpd 源代码 ( 1.3.4 @ 2007-05-23 ):
http://sourceforge.net/project/showfiles.php?group_id=44827
下载源码包之后:shell> tar xzvf pptpd-1.3.4.tar.gzshell> cd pptpd-1.3.4编译安装:注意:可能需要 libcap、libcap-devel RPM 包支持,如果没有请安装 libcap、libcap-devel RPM 包.shell> ./configure –prefix=/usr/local/pptpd –enable-bcrelay –with-libwrapshell> makeshell> make install2、配置 PPTP编译安装完成后,首先需要手工建立一些目录以及复制原始的 pptpd 配置文件:shell> mkdir /usr/local/pptpd/etcshell> vi /usr/local/pptpd/etc/pptpd.conf填入内容如下:# pptpd.confoption /usr/local/pptpd/etc/options.pptpddebugstimeout 30localip 10.0.0.254remoteip 10.0.0.200-210
说明:option /usr/local/pptpd/etc/options.pptpd ———— 指定 pptpd 扩展属性配置文件 options.pptpd 的位置。debug ———— 开启调试模式,有关 pptpd?的信息和错误都会记录在 /var/logs/message 中,方便排错和调试。stimeout 30 ———— 设置客户端连接 pptpd server 时的最长连接等待时间(连接超时时间),30 秒。localip 10.0.0.254 ———— pptpd server?所在服务器的 IP 地址,可以设置为服务器上绑定的任意一个 IP 地址。remoteip 10.0.0.200-210 ———— 设置客户端连接到 pptpd server 后可供分配的 IP 地址范围( 10.0.0.200 – 10.0.0.210 ),可以这样设置:10.0.0.200-208,10.0.0.209,10.0.0.210,效果是一样的。
shell> vi/usr/local/pptpd/etc/options.pptpd填入内容如下:# options.pptpdname IsMole-VPNrefuse-paprefuse-chaprefuse-mschaprequire-mschap-v2require-mppe-128ms-dns 202.106.46.151ms-dns 202.106.0.20# ms-dns 208.67.222.222 米国用# ms-dns 208.67.220.220proxyarpdebuglocknobsdcompnovjnovjccompnologfd
说明:name IsMole-VPN ———— pptpd server 的名称。refuse-pap ———— 拒绝 pap 身份验证模式。refuse-chap ———— 拒绝 chap 身份验证模式。refuse-mschap ———— 拒绝 mschap 身份验证模式。require-mschap-v2 ———— 在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。require-mppe-128 ———— MPPE 模块使用 128 位加密。ms-dns 202.106.46.151ms-dns 202.106.0.20 ———— ppp 为 Windows 客户端提供 DNS 服务器 IP 地址,第一个 ms-dns 为 DNS Master,第二个为 DNS Slave。proxyarp ———— 建立 ARP 代理键值。debug ———— 开启调试模式,相关信息同样记录在 /var/logs/message 中。lock ———— 锁定客户端 PTY 设备文件。nobsdcomp ———— 禁用 BSD 压缩模式。novjnovjccomp ———— 禁用 Van Jacobson 压缩模式。nologfd ———— 禁止将错误信息记录到标准错误输出设备(stderr)。
配置好上面的两个文件后,我们开始添加客户端帐号。客户端帐号控制文件位于:/etc/ppp/chap-secretsshell> vi /etc/ppp/chap-secrets# PPTP User Accounts# username server_name “password” ipvpnuser1 IsMole-VPN “123456″ 10.0.0.201
三、启动 PPTPDshell> /usr/local/pptpd/sbin/pptpd -c /usr/local/pptpd/etc/pptpd.conf -o /usr/local/pptpd/etc/options.pptpd如果tcp的1723端口是打开的,就说明启动OK。
四、打开linux路由转发sysctl -w net.ipv4.ip_forward=1iptables -t nat -A POSTROUTING -j MASQUERADE
特殊情况注意:开启pptp vpn转发,vpn服务器和内网路由器modprobe ip_conntrack_pptpmodprobe ip_nat_pptp


Tags: , , , ,

Linux长时间连接ssh自动终止的解决办法(转自 祥子)

Posted in Linux on 05月 29th, 2011 by Strong

由于OpenSSH考虑到安全问题,如果用户连接到SSH Server后长时间不操作,SSH 将会在一定时间后自动终止SSH连线。因本人习惯长时间连接,所以得修改ssh配置文件来解决这个问题,方法如下:

1、shell下打开ssh配置文件:都知道在哪吧。。。

# vim /etc/ssh/ssh_config

加入如下两个参数保存就可以:

TCPKeepAlive yes
ClientAliveCountMax 360

注:前一个参数意思是要保持TCP连接,后一个参数表示客户端的SSH连线闲置多长时间后自动终止连线的数值,单位为分钟。

2、然后重启sshd生效即可:

/etc/init.d/sshd restart

注:此法适用于所有Linux发行版的OpenSSH。

linux(ubuntu)终端下发微博

Posted in Linux on 05月 29th, 2011 by Strong

对于喜欢终端的人来说,如果能在终端完成的东西就一定不会用鼠标点来点去。发微博也是,所以才会有这个小东西~其实就是用curl库调用一下 http://open.t.sina.com.cn/wiki/index.php/Statuses/update 这个接口。

用了libcurl这个库,ubuntu测试没有问题只要有libcurl.so、libcurl.so.3或libcurl.so.4 就可以了。

下载cliFaWeibo.zip

unzip cliFaWeibo.zip
sudo mv ./faweibo /usr/bin
(当然,也可以直接在解压的文件下运行)

在终端下输入:faweibo 输入用户名和密码 看到下面的提示就成功了

linux

********************
|输入: -t "文字" 发送信息
|输入:-p 图片路径 发图片
|输入:-tp "文字" 图片路径 发信息+图片
|输入:-d 重新配置文件
********************

呵呵,试试如何吧!
例子:
发文字: faweibo -t “我用终端发微博!”
发图片:faweibo -p ~/p/ubuntu.jpg
发图片和文字:faweibo -tp “我在终端下发微博,你想不想试试 ?” ~/p/love/loevyou.jpg

本文转自:深蓝色的梦想

Linux PPTPD+MYSQL+Radius 安装整套方案 第二篇 MySql部分

Posted in Linux, VPN, 服务器 on 05月 29th, 2011 by Strong


1.需要软件,什么都不需要。

你只要给各mysql的库就好了,库结构在

freeradius源码目录下的/src/modules/rlm_sql/drivers/rlm_sql_mysql/db_mysql.sql

你建立一个数据库就好了,我在我自己的机器上建立了一个名字为radius的数据库

并且导入了这个数据库的结构。

2。配置sql.conf

先回到刚才的freeradius的配置文件目录

cd /usr/local/freeradius-1.1.0/etc/raddb


vi sql.conf

修改连接信息


# Connect info
server = “192.168.8.53″
login = “radius”
password = “radius”
# Database table configuration
radius_db = “radius”

# Connect info        server = “192.168.8.53″        login = “radius”        password = “radius”
# Database table configuration        radius_db = “radius”

去掉下面的simul。。。。前面的#
打开sql的用户同时连接数测试的语句


# Uncomment simul_count_query to enable simultaneous use checking

simul_count_query = “SELECT COUNT(*) FROM ${acct_table1} WHERE UserName=’%{SQL-User-Name}’ AND AcctStopTime = 0″

3.配置radiusd.conf

注释掉 authorize {
的files
去掉sql前的注释


注释掉 preacct {
的files


注释掉 accounting {
的radutmp
去掉sql前面的#


注释掉 session{
的radutmp
去掉sql前面的#


去掉 post-auth {
sql前的#


总之就是去掉files模块,开启sql模块



4。在数据库中添加用户

在usergroup中添加一个test用户,组名为vpn

在radgroupcheck中添加一个vpn组,
attribute为Simultaneous-Use
op为:=
value为1
的纪录

在radcheck中添加
username为test
attribute为 User-Password
op为==
value为test


这样就添加了一个用户为test,组为vpn,密码为test
并且所有的组用户的都只能1个用户名登陆一次


5.测试
用debug模式启动radiusd

会看到


rad_recv: Access-Request packet from host 127.0.0.1:32768, id=222, length=146

Service-Type = Framed-User

Framed-Protocol = PPP

User-Name = “test”

MS-CHAP-Challenge = 0xb6a9e94b94c3c386875043efd5144e17

MS-CHAP2-Response = 0x38006d78036bb5e40ddeca0ce96b944619e000000000000000007b887b8762be38eb111a94a4b581925b85e07453a38a070f

Calling-Station-Id = “192.168.8.53″

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

rlm_sql (sql): Reserving sql socket id: 4

rlm_sql (sql): Released sql socket id: 4

rlm_sql (sql): Reserving sql socket id: 3

rlm_sql (sql): Released sql socket id: 3

rlm_sql (sql): Processing sql_postauth

rlm_sql (sql): Reserving sql socket id: 2

rlm_sql (sql): Released sql socket id: 2

Sending Access-Accept of id 222 to 127.0.0.1 port 32768

MS-CHAP2-Success = 0x38533d33453434464142394232444230413143464539453832444536453534373331383833454238414536

MS-MPPE-Recv-Key = 0x53a3812a0fd5b6f7b1cf4f6f6796f26b

MS-MPPE-Send-Key = 0xb8be60559cbc46fd4da277516d6584f3

MS-MPPE-Encryption-Policy = 0×00000002

MS-MPPE-Encryption-Types = 0×00000004

rad_recv: Accounting-Request packet from host 127.0.0.1:32768, id=223, length=110

Acct-Session-Id = “43EC0822056A00″

User-Name = “test”

Acct-Status-Type = Start

Service-Type = Framed-User

Framed-Protocol = PPP

Calling-Station-Id = “192.168.8.53″

Acct-Authentic = RADIUS

NAS-Port-Type = Async

Framed-IP-Address = 10.10.110.1

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

Acct-Delay-Time = 0

rlm_sql (sql): Reserving sql socket id: 1

rlm_sql (sql): Released sql socket id: 1

Sending Accounting-Response of id 223 to 127.0.0.1 port 32768

如果你把Simultaneous-Use改成0


会看到


rad_recv: Access-Request packet from host 127.0.0.1:32768, id=225, length=146

Service-Type = Framed-User

Framed-Protocol = PPP

User-Name = “test”

MS-CHAP-Challenge = 0x2295d4d65913cbc0a7836e986fe4a998

MS-CHAP2-Response = 0x34001739a3331c1a1a938eed99cda89b691f0000000000000000a8a9e9ae2eadaa6b1acb93e368113dc4ed47dac0a20b1ed8

Calling-Station-Id = “192.168.8.53″

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

rlm_sql (sql): Reserving sql socket id: 4

rlm_sql (sql): Released sql socket id: 4

rlm_sql (sql): Reserving sql socket id: 3

rlm_sql (sql): Released sql socket id: 3

rad_recv: Access-Request packet from host 127.0.0.1:32768, id=225, length=146

Sending Access-Reject of id 225 to 127.0.0.1 port 32768

Reply-Message := “\r\nYou are already logged in – access denied\r\n\n”






Tags: , , ,

Linux下的下载工具

Posted in Linux on 05月 27th, 2011 by Strong

Axel是命令行下的多线程下载工具,支持断点续传,速度通常情况下是Wget的几倍。

可在http://www.linuxfans.org/nuke/modules.php?name=Site_Downloads&op=mydown&did=1697下载。

下载后使用如下命令编译安装:
#tar zxvf axel-1.0a.tar.gz
#cd axel-1.0a/
#./configure
#make
#make install

基本的用法如下: #axel [选项] [下载目录] [下载地址]
[root@localhost axel-1.0a]# axel –help
Usage: axel [options] url1 [url2] [url...]

-s x Specify maximum speed (bytes per second)
-n x Specify maximum number of connections
-o f Specify local output file
-S [x] Search for mirrors and download from x servers
-N Just don”t use any proxy server
-q Leave stdout alone
-v More status information
-a Alternate progress indicator
-h This information
-V Version information

一个典型下载如下: #alex -n 10 -o /home/kennycx/ http://xxxx/jre.tar.gz

用10线程将指定路径的文件下载到/home/kennycx/这个目录下。

#设置代理
[root@localhost axel-1.0a]# export HTTP_PROXY=192.168.0.5:8080

#开始下载
[root@localhost axel-1.0a]# axel -n 10 -vo . http://xxx/xx.tar.gz

Initializing download: http://xxx/xx.tar.gz
File size: 1945089 bytes
Opening output file ./d4x-2.5.6.tar.gz
Starting download

[ 0%] ………. ………. ………. ………. ………. [ 15.3KB/s]
[ 2%] ………. ………. ………. ………. ………. [ 20.5KB/s]


  • D4X

Downloader For X(文中简称为D4X)是Linux下功能强大的图形化下载工具。
支持HTTP与FTP协议,
具有类似NetAnt和FlashGet等多线程、
断点续传下载
具有连接超时断点续传
记录下载日志
模拟下载
链接拖拽下载
自动复制剪贴板链接到下载地址栏中等功能。

1.下载和安装 D4X的下载地址为http://www.krasu.ru/soft/chuchelo/files/d4x-2.5.0final.tar.gz,下载后使用如下命令安装:
#tar zxvf d4x-2.5.0final.tar.gz
#cd d4x-2.5.0final
#./configure
#make
#make install
成功安装后,运行“d4x”命令便可直接运行。它的界面如图3所示,和FlashGet有点相像吧。

2.使用和设置
D4X的使用十分简单,下载文件时,只需在“添加新的下载任务”对话框中输入下载文件地址即可。如果下载地址需要用户名和密码,可在这个对话框中直接输 入。如要计划下载,可在时间选项中设定下载时间。此外,在下载任务选项中,可设定一些下载的配置,如下载文件默认目录、默认线程个数、界面风格等。值得一 提是代理选项,可指定默认的代理服务器和SOCKS5代理,具体设置如图4所示。


  • mms协议流媒体下载工具

[来源]http://www.5anet.com/?module=bbs&object=bbs&action=showdetail&id=13
[作者]黄叶
ASFR+ 是一个专门用来下载 ASF、Wma、Wmv 格式流文件的工具.此软件是国内的 Yaan2 同志在ASFRecorder 代码的基础上加以改进做出的,这个软件在ASFRecorder 的基础上加上了分断下载、修复损坏 ASF 文件、多线程下载ASF文件,断点续传等功能。唯一遗憾就是没有GUI界面。
安装方法:tar zxvf asfrplus.tgz
cd asfrplus
make
在asfrplus目录会生成一个文件名为”asfr”的可执行文件。
下面是它的基本用法:
进入asfrplus的目录,输入:
./asfr mms://www.hehe.com/***.wma -t 3
使用3个线程下载***.wma

./asfr -P http://proxy:8080 mms://www.hehe.com/***.wma
使用代理服务器proxy:8080下载***.wma

./asfr mms://www.hehe.com/***.wma -T
强制用MMST协议下载***.wma

退出程序:Ctrl+Break

大小: 47KB
下载: http://www.5anet.com/software/asfrplus.tgz


  • 图形界面下载工具

D)WxDfast
WxDfast也是一个图形化的下载工具,支持多线程、断点续传等功能,最大特点是下载速度快。可在 http://heanet.dl.sourceforge.net/sourceforge/dfast/wxdfast-0.2.1- src.tar.gz下载WxDfast的最新版本。然后使用如下命令进行安装:
#tar jxvf wxdfast-0.2.1d.tar.bz2
#cd wxdfast-0.2.1-src
#make install
在终端下运行“./wxdfast”命令便可运行程序。WxDfast界面非常简洁,其界面如图5所示。全英文界面使用起来可能不如KGet方便,好在它的操作和KGet、D4X基本相同,大家可参照学习,这里就不赘述了。

E)Aria
Aria是个小巧的多线程下载工具,简单易用的界面用起来得心应手。
可在http://aria.rednoah.com/download_e.html下载最新版本,然后使用如下命令进行编译安装:
#./configure
#make
#make install 成功安装后直接运行如下命令便可运行Aria:
#aria&

Aria的界面如图6所示,它的操作和D4X差不多,可参照使用。

  • 命令行下载工具

对于喜欢命令行操作及追求高效率、高速度下载的朋友,推荐使用命令行下载工具。命令行工具不但使用方便,而且大多具有很高的下载速度及下载效率,尤其适合于大批量下载文件。下面就为大家详细介绍一下这些工具。

A)Wget
Wget是一个十分常用命令行下载工具,多数Linux发行版本都默认包含这个工具。

如果没有安装可在http://www.gnu.org/software/wget/wget.html下载最新版本,并使用如下命令编译安装:
#tar zxvf wget-1.9.1.tar.gz
#cd wget-1.9.1
#./configure
#make
#make install

它的用法很简单,Wget使用格式如下: #wget [选项] [下载地址]

Wget常用参数
◆-b:后台下载,Wget默认的是把文件下载到当前目录。
◆-O:将文件下载到指定的目录中。
◆-P:保存文件之前先创建指定名称的目录。
◆-t:尝试连接次数,当Wget无法与服务器建立连接时,尝试连接多少次。
◆-c:断点续传,如果下载中断,那么连接恢复时会从上次断点开始下载。

HTTP和FTP代理功能,编辑其配置文件“/etc/wgetrc”即可。具体方法是使用VI编辑器打开上述文件,将 “http_proxy”和“ftp_proxoy”前的#去掉,然后在这两项后输入相应的代理服务器的地址,保存退出即可。

Wget还可下载整个网站,如下载http://man.chinaunix.net整个Man手册中心。只需输入如下命令即可: #wget -r -p -np -k http://man.chinaunix.net

其中-r 参数是指使用递归下载,
-p 是指下载所有显示完整网页所以需要的文件,如图片等,
-np 是指不搜索上层目录,-k则是指将绝对链接转换为相对链接。

B)Prozilla
Prozilla也是一个十分流行的命令行下载工具,支持多线程下载和断点续传功能, 但未找到代理支持功能

可到http://prozilla.genesys.ro/下载最新的1.3.7.4安装包,下载安装包后使用如下命令进行安装:

#tar zxvf prozilla-1.3.7.4.tar.gz
#cd prozilla-1.3.7.4
#./configure
#make
#make install Prozilla

命令格式如下: #proz [参数] [下载地址]
常用的选项有:
◆-k=n :设置n个线程下载。不加此参数指定线程数,Prozilla默认为4线程下载。
◆-P, –directory-prefix=DIR:指定将下载的文件保存在DIR/目录。
◆-r, –resume:继续下载未完成的文件。如果要指定线程数下载可用如下命令: #proz -k=5 http://64.12.204.21
/pub/mozilla.org/firefox/releases/1.0/linux-i686/zh-CN/firefox-1.0.installer.tar.gz

这样便以5线程进行文件的下载,并将文件保存到当前目录。

和Wget一样,Prozilla也提供了续传功能,下载中断后,重新输入上述命令,就会出现提示续传,按R键就可继续下载了。

D)Linuxdown
Linuxdown是一个命令行多线程下载工具,最多可支持30线程的下载, 但未找到代理支持功能

在https://gro.clinux.org/frs/download.php/1015/linuxdown-1.0.0.tar.gz下载最新的1.1.0版本。

然后使用如下命令进行编译安装:
#tar zxvf linuxdown-1.1.0.tar.gz
#cd dandelion/
#make
#make install linuxdown

格式为: #linuxdown [下载地址] [选项] [线程数]
需要注意的是下载地址和选项都需要西文引号括起来,线程数不可超过30个。一个典型的下载如下:
#linuxdown “http://xxx/xxx.zip” 30

Tags: ,

Linux PPTPD+MYSQL+Radius 安装整套方案 第二篇 Radius部分

Posted in Blog技术, Linux, VPN, 服务器 on 05月 25th, 2011 by Strong


1。需要软件

freeradius

原先pppd源码目录中的一些关于radius外挂模块的配置文件。

2。安装freeradius的前期准备

安装mysql-devel.i386

yum install mysql-devel.i386

3。安装freeradius

http://www.freeradius.org

下载源码,我测试的时候是用 freeradius-1.1.0

用指定安装目录的方法安装


./configure –prefix=/usr/local/freeradius-1.1.0
make
make install

./configure –prefix=/usr/local/freeradius-1.1.0makemake install

4。配置pppd支持radius

4.1拷贝文件

从pppd的源码目录把下面这个目录复制到/etc/radiusclient/

cp -R ppp-2.4.4b1/pppd/plugins/radius/etc  /etc/radiusclient/

4.2修改options.pptpd中的配置

在/etc/ppp/options.pptpd

中加入


plugin /usr/local/lib/pppd/2.4.4b1/radius.so


4.3 配置 /etc/radiusclient中的servers和radiusclient.conf

在servers中,你需要增加一个radiusd的地址和密码


[root@kdfng radiusclient]# cat servers

#Server Name or Client/Server pair              Key

#—————-                               —————

#portmaster.elemental.net                       hardlyasecret

#portmaster2.elemental.net                      donttellanyone

localhost       netdragon

这里localhost表示你的radiusd就在本机,并且访问的密码是netdragon


radiusclient.conf中


# service. if this fails also a compiled in default is used.

authserver      localhost:1812


# RADIUS server to use for accouting requests. All that I

# said for authserver applies, too.

#

acctserver      localhost:1813


确认上面也是本地的,默认就是本地,所以一般不需要修改。
同时确保这个文件中radiusclient相关的路径所有的路径都是 /etc/radiusclient 开头的。


5。配置freeradius

cd /usr/local/freeradius-1.1.0/etc/raddb

raddb这个目录就是所有的freeradius配置文件所在了

5.1 修改clients.conf

这里说明一下,所有的nas都是radiusd的client,nas就是那个pptpd,所以这个文件就是配置pptpd的登陆权限的。


client 127.0.0.1      {

secret = netdragon

shortname = iamok

nastype     = other

}


修改127.0.0.1部分为上面的样子。secret就是我们刚才在/etc/radiusclient中servers里设置的那个。这两个要一致


5.2 在users文件的最上面加入一个用户

ww Auth-Type:= MS-CHAP, User-Password==”ww”, Simultaneous-Use:=1

Service-Type = Framed-User,

Framed-Protocol = PPP,

Framed-IP-Address = 255.255.255.254,

Framed-IP-Netmask = 255.255.255.0

说明一下 ww是用户名
auth-type是验证的类型
第二个ww是密码
Simultaneous-Use是允许这个用户名同时登陆的个数

所有这些都是check属性,要写在第一行
然后第二行开始用tab开头,是服务器返回给radius客户端的(也就是返回给pptpd)时reply属性。
其中ip地址设置为255.255.255.254表示ip地址的分配是由radius客户端决定的,也就是由pptpd决定。
最后一个是子网掩码。


5.3用debug模式运行radiusd

../../sbin/radiusd -x

你会看到


Starting – reading configuration files …

Using deprecated naslist file.  Support for this will go away soon.

Module: Loaded exec

rlm_exec: Wait=yes but no output defined. Did you mean output=none?

Module: Instantiated exec (exec)

Module: Loaded expr

Module: Instantiated expr (expr)

Module: Loaded PAP

Module: Instantiated pap (pap)

Module: Loaded CHAP

Module: Instantiated chap (chap)

Module: Loaded MS-CHAP

Module: Instantiated mschap (mschap)

Module: Loaded eap

rlm_eap: Loaded and initialized type md5

rlm_eap: Loaded and initialized type leap

rlm_eap: Loaded and initialized type gtc

rlm_eap: Loaded and initialized type mschapv2

Module: Instantiated eap (eap)

Module: Loaded preprocess

Module: Instantiated preprocess (preprocess)

Module: Loaded files

Module: Instantiated files (files)

Module: Loaded Acct-Unique-Session-Id

Module: Instantiated acct_unique (acct_unique)

Module: Loaded realm

Module: Instantiated realm (suffix)

Module: Loaded detail

Module: Instantiated detail (detail)

Module: Loaded radutmp

Module: Instantiated radutmp (radutmp)

Initializing the thread pool…

Listening on authentication *:1812

Listening on accounting *:1813

Ready to process requests.

6。测试

建立一个新的vpn连接

用户名ww密码ww

然后拨号

成功的话,会看到。


rad_recv: Access-Request packet from host 127.0.0.1:32768, id=214, length=144

Service-Type = Framed-User

Framed-Protocol = PPP

User-Name = “ww”

MS-CHAP-Challenge = 0x729e2492953298b498a766e778defe74

MS-CHAP2-Response = 0xfc00475dd294431a52ee1187d13127c3bf49000000000000000043aad8bb5cd6f5ece16ddae9d20c63d857836053b2197144

Calling-Station-Id = “192.168.8.53″

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

Sending Access-Accept of id 214 to 127.0.0.1 port 32768

Service-Type = Framed-User

Framed-Protocol = PPP

Framed-IP-Address = 255.255.255.254

Framed-IP-Netmask = 255.255.255.0

MS-CHAP2-Success = 0xfc533d31303637323037453037384244433138333441303536434337433044373046363942414446343039

MS-MPPE-Recv-Key = 0x0211fcb6f599479e8ee0a7d8a16a3252

MS-MPPE-Send-Key = 0x91242cedc84a2dc69355c56951119065

MS-MPPE-Encryption-Policy = 0×00000002

MS-MPPE-Encryption-Types = 0×00000004

rad_recv: Accounting-Request packet from host 127.0.0.1:32768, id=215, length=108

Acct-Session-Id = “43EBFF39048300″

User-Name = “ww”

Acct-Status-Type = Start

Service-Type = Framed-User

Framed-Protocol = PPP

Calling-Station-Id = “192.168.8.53″

Acct-Authentic = RADIUS

NAS-Port-Type = Async

Framed-IP-Address = 10.10.110.1

NAS-IP-Address = 127.0.0.1

NAS-Port = 0

Acct-Delay-Time = 0

Sending Accounting-Response of id 215 to 127.0.0.1 port 32768

这样pptp+radius的部分就完成了,下面一部分是对radiusd增加mysql的支持

用ctrl+c退出radius









 

Tags: , , ,

Linux PPTPD+MYSQL+Radius 安装整套方案 第一篇 PPTPD安装

Posted in Linux, VPN, 服务器 on 05月 25th, 2011 by Strong

1.你所需要的软件 
内核最好能升级到2.6
如果你是centos的用户,可以通过yum update来升级到最新的centos4.2
升级内核是为了待会安装一个内核模块增加对mppe的支持。这样才能支持pptp拨号。

2.确定你的内核是否支持mppe

modprobe ppp-compress-18 && echo ok

如果显示ok,那么恭喜,你的内核已经具备了mppe支持。请到第4部分

3。升级内核支持mppe

http://sourceforge.net/project/showfiles.php?group_id=44827

到上面这个网址。下载2个rpm包。

dkms-2.0.6-1.noarch.rpm 
kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

dkms是一个新的软件,能让你在不编译内核的基础上,外挂一些内核的模块。
kernel_ppp_mppe就是mppe支持的内核模块了。

ok后重起你的系统。

4。安装pppd

http://www.samba.org/ppp

在上面的网址下载最新的ppp软件包,我测试的时候是 ppp-2.4.4b1
用最常规的方法,configure,make,make install
由于新版的没有复制范例配置文件,需要用 make install-etcppp 来安装范例配置文件

5。安装pptpd

http://poptop.sourceforge.net/

在上面的网址下载最新的pptpd包,我测试的时候是pptpd-1.2.3

也是最常规的方法 configure,make,make install

6。配置你的pppd和pptpd

pppd的默认配置文件在 /etc/ppp

pptpd的配置文件在 /etc/pptpd.conf

pptpd和pppd的关系好比 pptpd是pppd的外挂一样。

6.1 
/etc/pptpd.conf中需要配置的地方只有几个

你首先要确定下面这个
ppp  /usr/local/sbin/pppd

他给pptpd指名了pppd的所在

option /etc/ppp/options.pptpd

这个说明了pptpd在ppp下的配置文件

localip 192.168.8.22

remoteip 10.10.110.1-100

localip是pptpd的对外服务的ip,也就是客户端需要拨号的ip
remoteip是拨号服务器分配给拨号用户的ip ,可以用-表示ip范围

6.2
配置/etc/ppp/options.pptpd

为了测试,请打开debug和dump


# Logging
# Enable connection debugging facilities.
# (see your syslog configuration for where pppd sends to)
debug
# Print out all the option values which have been set.
# (often requested by mailing list to verify options)
dump

# Logging
# Enable connection debugging facilities.# (see your syslog configuration for where pppd sends to)debug
# Print out all the option values which have been set.# (often requested by mailing list to verify options)dump

默认的信息会写在/var/log/messages


6.3
编辑 /etc/ppp/chap-secrets

添加一个测试用户


# Secrets for authentication using CHAP

# client        server  secret                  IP addresses

“iamok” pptpd   “iamok” *

第一个iamok是用户,第二个iamok是密码 ,*表示任意ip
pptpd表示和/etc/ppp/options.pptpd中的name 部分的pptpd要匹配,一般不用修改,我们只是
测试以下pptpd是否正常。


7。测试你的pptpd

如果是默认安装,你在任意路径打pptpd就可以了。

如果成功,你就会在 
/var/log/messages里面看到


Feb 10 09:51:46 kdfng pptpd[926]: MGR: Manager process started

Feb 10 09:51:46 kdfng pptpd[926]: MGR: Maximum of 100 connections available

然后你可以在任意一个win2k系统上建立一个vpn连接,用pptp方式的,用户名用上面设置的,这样你就能拨号了
而且ip就是你在上面所设置的ip


现在复查以下log文件


Feb 10 09:54:53 kdfng pptpd[937]: MGR: Manager process started

Feb 10 09:54:53 kdfng pptpd[937]: MGR: Maximum of 100 connections available

Feb 10 09:55:06 kdfng pptpd[939]: CTRL: Client 192.168.8.53 control connection started

Feb 10 09:55:06 kdfng pptpd[939]: CTRL: Starting call (launching pppd, opening GRE)

Feb 10 09:55:06 kdfng pppd[940]: pppd options in effect:

Feb 10 09:55:06 kdfng pppd[940]: debug          # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: nologfd                # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: dump           # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: require-mschap-v2              # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: refuse-pap             # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: refuse-chap            # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: refuse-mschap          # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: name pptpd             # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: 115200         # (from command line)

Feb 10 09:55:06 kdfng pppd[940]: lock           # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: local          # (from command line)

Feb 10 09:55:06 kdfng pppd[940]: ipparam 192.168.8.53           # (from command line)

Feb 10 09:55:06 kdfng pppd[940]: 192.168.8.22:10.10.110.1               # (from command line)

Feb 10 09:55:06 kdfng pppd[940]: nobsdcomp              # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: require-mppe-128               # (from /etc/ppp/options.pptpd)

Feb 10 09:55:06 kdfng pppd[940]: pppd 2.4.4b1 started by root, uid 0

Feb 10 09:55:06 kdfng pppd[940]: Using interface ppp0

Feb 10 09:55:06 kdfng pppd[940]: Connect: ppp0 <–> /dev/pts/1

Feb 10 09:55:06 kdfng pptpd[939]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!

Feb 10 09:55:06 kdfng pppd[940]: MPPE 128-bit stateless compression enabled

Feb 10 09:55:08 kdfng pppd[940]: local  IP address 192.168.8.22

Feb 10 09:55:08 kdfng pppd[940]: remote IP address 10.10.110.1

Feb 10 09:55:17 kdfng pppd[940]: LCP terminated by peer (^Z^HEO^@<M-Mt^@^@^@^@)

Feb 10 09:55:17 kdfng pppd[940]: Connect time 0.2 minutes.

Feb 10 09:55:17 kdfng pppd[940]: Sent 0 bytes, received 3492 bytes.

Feb 10 09:55:17 kdfng pppd[940]: Modem hangup

Feb 10 09:55:17 kdfng pppd[940]: Connection terminated.

Feb 10 09:55:17 kdfng pppd[940]: Exit.

Feb 10 09:55:17 kdfng pptpd[939]: CTRL: Client 192.168.8.53 control connection finished

这样你的pptpd就配置完成了。






Tags: , , ,

UBuntu中增加中文字符编码的方法

Posted in Linux on 05月 24th, 2011 by Strong

UBuntu中增加中文字符编码的方法

在Widnows XP下的FTP服务器中有中文文件名,今天使用ftp命令,发现不能显示中文文件名,只能显示????。于是到网上查了一些资料,也没有找到好的解决方法,只是有人说使用图形化的ftp工具 gftp,安装方法:sudo apt-get install gftp,另外还要增加中文字符编码zh_CN.GBK即可即可。在这里总结一下Ubuntu下增加中文字符编码的方法。
一. Ubuntu默认的中文字符编码
Ubuntu默认的中文字符编码为zh_CN.UTF-8,这个可以在/etc/environment中看到:
sudo gedit /etc/environment
可以看到如下内容:
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games”
LANG=”zh_CN.UTF-8″
LANGUAGE=”zh_CN:zh:en_US:en”
第二行即是默认的中文字符编码。注:可以通过这里修改默认的中文编码字符,比如修改为:zh_CN.GBK。

二. 添加中文字符编码的方法
1. 直接使用locale-gen
在超级终端输入命令:
sudo locale-gen zh_CN.GB18030
即可完成中文字符集的添加。完成后可以转到/usr/lib/locale/,下面已经有一个zh_CN.gb18030文件夹;在超级终端输入命令:gedit /var/lib/locales/supported.d/local,可以发现文件中多了一行:zh_CN.GB18030 GB18030。说明添加成功。

2. 通过修改/var/lib/locales/supported.d/local文件
在终端输入命令行
sudo gedit /var/lib/locales/supported.d/local
可以看到如下内容:
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
在文件尾添加中文字符集
zh_CN.GBK GBK
保存后退出。在超级终端输入命令:
sudo dpkg-reconfigure locales

Generating locales…
en_AU.UTF-8… done
en_BW.UTF-8… done
en_CA.UTF-8… done
en_DK.UTF-8… done
en_GB.UTF-8… done
en_HK.UTF-8… done
en_IE.UTF-8… done
en_IN.UTF-8… done
en_NZ.UTF-8… done
en_PH.UTF-8… done
en_SG.UTF-8… done
en_US.UTF-8… done
en_ZA.UTF-8… done
en_ZW.UTF-8… done
zh_CN.GBK… done
zh_CN.UTF-8… up-to-date
zh_HK.UTF-8… done
zh_SG.UTF-8… done
zh_TW.UTF-8… done
Generation complete.

即可生成相应文件:/usr/lib/locale/zh_CN.gbk/
注:也可使用locale-gen

+++++++++++++++++++
Ubuntu 默认采用UTF8编码,可以方便global。但对中文支持,还不细致,即便默认采用中文安装,也并不会自动添加GB*等支持,致使在Ubuntu下访问部分Win文本文件时,出现乱码。

I. 配置系统环境
执行 sudo vi /var/lib/locales/supported.d/zh
加入以下配置参数

zh_CN.GB18030 GB18030 (最新汉字编码字符集,向下兼容GBK,GB2312)
zh_CN.GBK GBK (汉字扩展编码,向下兼容GB2312, 并包含BIG5全部汉字)
zh_CN.GB2312 GB2312 (简化汉字编码字符集, 最近有客户要我们改进GB2312,太看得起我们了,我只能说:”NO!”)
zh_CN.GB18031 GB18031 (数字键盘汉字编码输入,面向手持设备,我的Nokia3120从来就是发短信,接听电话,无法和PC通讯,就不用这个了。 maybe用Google Android SDK的大侠们需要这个)
zh_HK.BIG5 BIG5 (繁体)
zh_TW.BIG5 BIG5 (繁体)

然后执行 sudo locale-gen
提示以下信息,成功了
zh_CN.GB18030… done
zh_CN.GBK… done
……

II. 系统环境支持GB*内码了,但用vi, gedit等工具访问文件还会继续乱码,需要针对不同的工具分别配置,使之自己检测支持范围内的编码
e.g. vi
执行 sudo vi /etc/vim/vimrc
加入以下配置参数
let &termencoding=&encoding
set fileencodings=utf-8,gb18030,gbk,gb2312,big5

e.g. gedit
执行 gconf-editor
选择 apps/gedit-2/preferences/encodings
找到 auto_detected 编辑,在Values中分别加入 GB18030,GBK,GB2312,BIG5

OK~

感谢lec的支援。
enca工具很方便,用于检测文件内码(前提是系统环境支持,如,环境不支持BIG5,是无法检测的,这个晕了我许久)
安装 sudo apt-get install enca
用法 enca filename
+++++++++++++++++++++++++++++++++++
1.编辑/var/lib/locales/supported.d/*
格式参考 /usr/share/i18n/SUPPORTED
vi /var/lib/locales/supported.d/local
vi /var/lib/locales/supported.d/zh
vi /var/lib/locales/supported.d/en

如:
more /var/lib/locales/supported.d/local
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
zh_CN.GB18030 GB18030

2.生成locale(自动保存在/usr/lib/locale/中)
locale-gen

3.修改locale
vi /etc/environment

LANG=”zh_CN.UTF-8″
改成
LANG=”zh_CN.GB18030″

more /etc/environment
PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:
/usr/games”
#LANG=”zh_CN.UTF-8″
LANG=”zh_CN.GB18030″
LANGUAGE=”zh_CN:zh:en_US:en”
CLASSPATH=.:/usr/lib/jvm/java-1.5.0-sun/lib
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun

4.重新启动或切换下运行级别,查看locale
root@1006:~# locale
LANG=zh_CN.GB18030
LANGUAGE=zh_CN:zh:en_US:en
LC_CTYPE=”zh_CN.GB18030″
LC_NUMERIC=”zh_CN.GB18030″
LC_TIME=”zh_CN.GB18030″
LC_COLLATE=”zh_CN.GB18030″
LC_MONETARY=”zh_CN.GB18030″
LC_MESSAGES=”zh_CN.GB18030″
LC_PAPER=”zh_CN.GB18030″
LC_NAME=”zh_CN.GB18030″
LC_ADDRESS=”zh_CN.GB18030″
LC_TELEPHONE=”zh_CN.GB18030″
LC_MEASUREMENT=”zh_CN.GB18030″
LC_IDENTIFICATION=”zh_CN.GB18030″
LC_ALL=

5.登陆界面的选项里
默认语言也要相应改选成 zh_CN.GB18030,这样ubuntu就完全被中文化了,zh_CN.GB18030是目前最标准国家强制要求的中文编码

Tags: