益友网(http://www.1uu2.com) 做linux用户的良师益友、linux操作系统命令教程

Linux下简单的DNS实例一则

发表于 2008-11-04 02:42 浏览次数:822 次

   题目:Linux DNS Client

    要求:案例模拟一个DNS客户端程序,根据指定的DNS服务器,对域名实施正向、逆向解析。
    问题:目前只能用系统默认DNS服务器,无法逆向解析外网IP。
    使用方法:

    编译:$gcc -o dns dns.c

    运行:$./dns www.aaaa.com

    $./dns 192.168.0.8(我的内网IP)

    程序:

    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <string.h>
    #include <netdb.h>
    #include <sys/types.h>
    #include <netinet/in.h>
    #include <sys/socket.h>
    int main(int argc ,char *argv[])
    {
    struct sockaddr_in addr;
    struct hostent *host;
    char **alias;
    if(argc!=2)
    {
    fprintf(stderr,”Usage:%s hostname|ip..\n\a”,argv[0]);
    exit(1);
    }
    /* 这里我们假设是IP,通过IP获得主机信息*/
    if(inet_aton(argv[1],&(addr.sin_addr))!=0)
    {
    host=gethostbyaddr((char *)&(addr.sin_addr),4,AF_INET);
    printf(“Address information of Ip %s\n”,argv[1]);
    }
    else
    {
    /* 否则用户应该输入的是域名,通过域名找主机信息*/
    host=gethostbyname(argv[1]);
    printf(“Address information of host %s\n”,argv[1]);
    }
    if(host==NULL)
    {
    /* 都不是,算了不找了*/
    printf(“No Information found”);
    exit(1);
    }
    /*打印主机正式名称*/
    printf(“Official host name:\n%s\n\n”,host->h_name);
    /*打印主机其他名称*/
    printf(“Name aliases:\n”);
    for(alias=host->h_aliases;*alias!=NULL;alias++)
    printf(“%s\n”,*alias);
    /*打印主机系列IP*/
    printf(“\nIp address:\n”);
    for(alias=host->h_addr_list;*alias!=NULL;alias++)
    printf(“%s\n”,inet_ntoa(*(struct in_addr *)(*alias)));
    }

关键字: | 分类: Linux服务器 | 评论数: 0 | 阅读全文

LAMP安装和优化

发表于 2008-07-23 23:37 浏览次数:654 次

操作系统:Red Hat Enterprise Linux AS release 4 (Nahant Update 3)2.6.9-34.EL
软件版本:httpd-2.2.3.tar.gz
        mysql-5.0.18.tar.gz
        php-5.0.4.tar.gz
 
1安装mysql
         shell#tar xzvf mysql-5.0.15.tar.gz
              #解开安装包
 
         shell#cd mysql-5.0.1
         shell#./configrue –prefix=/usr/local/mysql
         shell# make && make install
         shell#make install
               #进入安装目录,设置安装路径.编译并安装
         shell#groupadd mysql
         shell#useradd -g mysql mysql
              #新建名为mysql的组,并新建名为mysql的用户,并且默认属于mysql组
 
         shell#chgrp -R mysql /usr/local/mysql
              #改变/usr/local/mysql及下属文件与目录的属组
 
         shell#cp support-files/my-large.cnf /etc/my.cnf
              #copymy-large.cnf到 /etc中,替换原有的my.cnf
 
         shell#scripts/mysql_install_db
              #建立初始数据
 
         shell#chown -R mysql:mysql /usr/local/mysql/var
       &
 shell#cp support-files/mysql.server /etc/init.d/mysqld
              #copymysql.server到init.d目录中并重命名为mysqld,启动文件
 
         shell#chmod 755 /etc/init.d/mysqld
              #设置启动文件的权限有为755
 
         shell#chkconfig –add mysqld
         shell#chkconfig mysqld on
              #把此服务添加到系统启动中,add为添加至/etc/rc.d/init.d中,on默认在3\5级别服务默认启动
           
         shell#/etc/init.d/mysqld start
         shell#/usr/local/mysql/bin/mysqld_safe &
                  启动myhsql
        
 
 
         shell#/usr/local/mysql/bin/mysqladmin -u root password 123
              默认root用户密码为空,设置密码为123
 
         shell#/usr/local/mysql/bin/mysql -u root -p
               #输入上面设置的123后.以root身份登陆
         
         shell#./mysqladmin -u root -p password 456
               #修改mysql root用户密码为456,在提示框中要输入原密码,
 mysql> grant select on test.* to ‘ttt’ @’%’ identified by’ttt’ with grant option;
               #添加一个名称为ttt,密码为ttt的mysql账户,对test数据库有修改权限
     
         
2安装apache-2.2.3
         shell#tar xzvf httpd-2.2.3.tar.gz
         shell#cd httpd-2.2.3
         shell#./configure –prefix=/usr/local/apache –enable-so
         shell#make && make install
              #解包设置安装信息编译安装
        
         shell#cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
              #把服务cp至启动文件中        
 
         shell#chmod 755 /etc/init.d/httpd
              #设置服务权限
 
 
3安装php
         shell#tar xvzf php-5.0.4.tar.gz
         shell#cd php-5.0.4
         shell#./configure –with-mysql=/usr/local/mysql –with-  apxs2=/usr/local/apache/bin/apxs –prefix=/usr/local/php
         shell#make && make instal
              #解包设置安装信息编译安装
 
         shell#echo
AddType application/x-httpd-php .php >> /usr/local/apache/conf/httpd.conf
         shell#echo AddType application/x-httpd-php .sulpx >> /usr/local/apache/conf/httpd.conf
        shell#echo AddType application/x-httpd-php-source .phps >> /usr/local/apache/conf/httpd.conf
        shell#echo DirectoryIndex index.php index.html index.htm index.html.var >> /usr/local/apache/conf/httpd.conf
             #在http.conf中加入对php的支持
 
shell#/usr/local/apache/bin/apachectl start
             #启动http
 
测试,在/usr/local/apache/htdocs 下建一文件名为test.php,内容为:<? phpinfo(); ?>,然后在打开IE输入本机IP地址查看,如显示php页面,则建立成功
 
 
网上文档:
#tar xzvf libpng-1.2.8-config.tar.gz
#tar xzvf freetype-2.1.9.tar.gz
#tar xzvf zlib-1.2.2.tar.gz
#tar xzvf gd-2.0.33.tar.gz
#tar xzvf httpd-2.0.54.tar.gz
#tar xzvf php-5.0.4.tar.gz
#tar xzvf mysql-5.0.15.tar.gz
#########default setup/change my.cnf for onlyone please
cd mysql-5.0.18
./configure –prefix=/usr/local/mysql –with-charset=utf8 –with-extra-charsets=gbk,gb2312,big5 && make && make install
groupadd mysql
useradd -g mysql mysql
chgrp -R mysql /usr/local/mysql
cp support-files/my-large.cnf /etc/my.cnf
scripts/mysql_install_db
chown -R mysql:mysql /usr/local/mysql/var
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
/usr/local/mysql/bin/mysqld_safe &
—————————–
chkconfig –add mysqld
chkconfig mysqld on
——————————
#########support soft setup
cd /root/install/libpng-1.2.8-config
./configure && make && make install
cd /root/install/freetype-2.1.9
./configure –prefix=/usr/local/freetype-2.1.9 && make && make install
cd /root/install/zlib-1.2.2
./configure –prefix=/usr/local/zlib-1.2.2 && make &&
; make install
cd /root/install/jpeg-6b
cp -R /root/install/jpeg-6b /usr/local/
mkdir -p /usr/local/man/man1
./configure –enable-shared –enable-static && make && make install
cd /root/install/gd-2.0.33
./configure –prefix=/usr/local/gd-2.0.33 –with-freetype=/usr/local/freetype-2.1.9 && make && make install
#########apache setup
cd /root/install/httpd-2.2.3
./configure –prefix=/usr/local/apache –enable-so –enable-rewrite && make && make install
#rm -f /etc/init.d/httpd
#cp /usr/local/apache/bin/apachectl /etc/init.d/httpd
#chmod 755 /etc/init.d/httpd
#########php setup
cd /root/install/php-5.0.4
./configure –with-mysql=/usr/local/mysql –enable-trans-sid –enable-track-vars –with-png-dir=/usr/local/bin –with-gd=/usr/local/gd-2.0.33 –with-jpeg-dir=/usr/local/jpeg-6b –with-extension_dir=/usr/local/lib/extension –with-freetype-dir=/usr/local/freetype-2.1.9 –with-zlib-dir=/usr/local/zlib-1.2.2 –with-apxs2=/usr/local/apache/bin/apxs –prefix=/usr/local/php –with-config-file-path=/usr/local/php –enable-force-cgi-redirect –disable-cgi –with-gettext –with-gdbm && make && make install
sed -e ‘s/variables_order = “EGPCS”/variables_order = “ECPGS”/g’ -e ‘s/register_globals = Off/register_globals = On/g’ php.ini-dist > /usr/local/php/bin/php.ini
echo AddType application/x-httpd-php .php >> /usr/local/apache/conf/httpd.conf
echo AddType application/x-httpd-php .sulpx >> /usr/local/apache/conf/httpd.conf
echo AddType application/x-httpd-php-source .phps >> /usr/local/apache/conf/httpd.conf
echo DirectoryIndex index.php index.html index.htm index.html.var >> /usr/local/apache/conf/httpd.conf
/usr/local/apache/bin/apachectl stop
/usr/local/apache/bin/apachectl start
 
./configure –with-mysql=/usr/local/mysql –enable-trans-sid –enable-track-vars –with-png-dir=/usr/local/libpng-1.2.5 –with-gd=/usr/local/gd-2.0.33 –with-jpeg-dir=/usr/local/jpeg-6b –with-extension_dir=/usr/local/lib/extension –with-freetype-dir=/usr/local/freetype-2.1.9 –with-zlib-dir=/usr/local/zlib-1.2.2 –with-apxs2=/usr/local/apache/bin/apxs –prefix=/usr/local/php –with-config-file-path=/usr/local/php –enable-force-cgi-redirect –disable-cgi –with-gettext –with-gdbm && make && make install
 
 
 
 
 
 
[LAMP平台]
  LAMP这个词的由来最早始于德国杂志“c’t Magazine”,Michael Kunze在1990年最先把这些项目组合在一起创造了LAMP的缩写字。这些组件虽然并不是开开始就设计为一起使用的,但是,这些开源软件都可以很方便的随时获得并免费获得。这就导致了这些组件经常在一起使用。在过去的几年里,这些组件的兼容性不断完善,在一起的应用情形变得非常普便。为了改善不同组件之间的协作,已经创建了某些扩展功能。目前,几乎在所有的Linux发布版中都默认包含了“LAMP stack”的产品。这些产品组成了一个强大的Web应用程序平台
  LAMP 平台由四个组件组成,呈分层结构。每一层都提供了整个软件栈的一个关键部分:
  Linux:Linux 处在最低层,提供操作系统。其他每个组件实际上也在 Linux 上运行。但是,并不一定局限于 Linux,如有必要,其他组件也可以在 Microsoft? Windows?、Mac OS X 或 UNIX? 上运行。
  Apache:次低层是 Apache,它是一个 Web 服务器。Apache 提供可让用户获得 Web 页面的机制。Apache 是一款稳定的、支持关键任务的服务器,Internet 上超过 65% 的网站都使用它作为 Web 服务器。PHP 组件实际上是在 Apache 中,动态页面可以通过 Apache 和 PHP 创建。
  MySQL:MySQL 提供 LAMP 系统的数据存储端。有了 MySQL,便可以获得一个非常强大的、适合运行大型复杂站点的数据库。在 Web 应用程序中,所有数据、产品、帐户和其他类型的信息都存放在这个数据库中,通过 SQL 语言可以很容易地查询这些信息。
  PHP:PHP 是一门简单而有效的编程语言,它像是粘合剂,可以将 LAMP 系统所有其他的组件粘合在一起。您可以使用 PHP 编写能访问 MySQL 数据库中的数据和 Linux 提供的一些特性的动态内容。
  [检测工具]
  为了得到完整的调试结果,建议你采用 ApacheBench 或者 httperf之类的软件。如果你对非 LAMP 架构的服务器测试有兴趣的话,建议你采用微软的免费软件: Web Application Stress Tool(需要 NT 或者 2000)。 (其它服务器测试工具)
检测 Apache ,采用 top d 1 显示所有进程的 CPU 和内存情况。另外,还采用 apachectl status 命令
  [硬件优化]
  1、升级硬件的一般规则:对于 PHP 脚本而言,主要的瓶颈是 CPU ,对于静态页面而言,瓶颈是内存和网络。一台 400 Mhz 的普通奔腾机器所下载的静态页面就能让 T3 专线(45Mbps)饱和。
  2、采用 hdparm 来优化磁盘,一般能提升 IDE 磁盘读写性能 200%,但是对 SCSI 硬盘也有效果。(不同类型的硬盘对比)
  [策略优化]
  3、Apache 处理 PHP 脚本的速度要比静态页面慢 2-10 倍,因此尽量采用多的静态页面,少的脚本。
  4、PHP 脚本如果不做缓冲,每次调用都需要编译,因此,安装一个 PHP 缓冲产品能提升 25-100% 的性能。
  5、如果你采用了 Linux 系统,建议升级内核到 2.4,因为静态页面由内核服务。
  6、另外一项缓冲技术是把不常修改的 PHP 页面采用 HTML 缓冲输出。
  7、不要在 Web 服务器上运行 X-Windows ,关掉没有必要运行的进程。
  8、如果能够用文本就不要用图像,尽量减小图片的尺寸。
  9、分散负载,把数据库服务器放到另外的机器上去。采用另外低端的机器服务图片和 HTML 页面,如果所有的静态页面在另外一台服务器上处理,可以设置 httpd.conf 中的 KeepAlives 为 off ,来减少断开连接的时间。
  10、以上所有的方法都是针对单机而言的,如果你觉得系统还是不够快,可以采用集群,负载均衡,缓冲技术。采用 Squid 作为缓冲,配置 Squid 的方法。
  [编译优化]
  11、把基于文件的会话切换到基于共享内存的会话。编译 PHP 时采用 –with-mm 选项,在 php.ini 中设置 set session.save_handler=mm 。这个简单的修改能让会话管理时间缩短一半。
  12、采用最新版本的 Apache ,并把 PHP 编译其中,或者采用 DSO 模式,不要采用 CGI 方式。
  13、编译 PHP 时,建议采用如下的参数:
–enable-inline-optimization –disable-debug
  [配置优化]
  14、修改 httpd.conf :
  # 关闭 DNS lookups,PHP 脚本只拿 IP 地址
  HostnameLookups off
  15、如果网络拥挤,CPU 资源不够用,采用 PHP 的 HTML 压缩功能:
  output_handler = ob_gzhandler
  PHP 4.0.4 的用户请不要使用,因为存在内存泄漏问题。
  16、修改 httpd.conf 中的 SendBufferSize 为你最大的页面文件的大小。加大内核的 TCP/IP 写缓冲大小。
  17、采用数据库的持久连接时,不要把 MaxRequestsPerChild 设置得太大。
  [第三方软件优化]
  18、如果喜欢从修改 Apache 源码入手,可以安装 lingerd。在页面产生和发送后,每个 Apache 进程都会浪费一段时光在客户连接上,Lingerd 能接管这项工作,让 Apache 迅速服务下一个客户请求。
  19、如果你足够勇敢的话,还可以采用 Silicon Graphics 的 Accelerated Apache 补丁。这个工程能使 Apache 1.3 快 10 倍,使 Apache 2.0 快 4 倍。
  安装一个 PHP 缓冲产品能提升 25-100% 的性能。
 [Linux系统优化]
  1.清理服务器磁盘碎片:
  不论Linux文件系统采用什么文件格式(ext3、JFS、XFS、ReiserFS )、何种类型的硬盘(IDE 、SCSI),随着时间的推移文件系统都会趋向于碎片化。ext3、JFS等高级文件系统可以减少文件系统的碎片化,但是并没有消除。在繁忙的数据库服务器中,随着时间的过去,文件碎片化将降低硬盘性能,硬盘性能从硬盘读出或写入数据时才能注意到。时间长了会发现每个磁盘上确实积累了非常多的垃圾文件,释放磁盘空间可以帮助系统更好地工作。Linux最好的整理磁盘碎片的方法是做一个完全的备份,重新格式化分区,然后从备份恢复文件。但是对于7×24小时工作关键任务服务器来说是比较困难的。Kleandisk是一个高效的磁盘清理工具,它能把磁盘上的文件分成不同的”组”,比如把所有的”core”文件归成一组(Group),这样要删除所有core文件时只要删除这个组就行了。core文件是当软件运行出错时产生的文件,它对于软件开发人员比较有用,对于其他用户(比如电子邮件服务器)却没有任何意义。因此,如果没有软件开发的需要,见到core文件就可以将其删除。
  2、开启硬盘DMA
  现在使用的IDE硬盘基本支持DMA66/100/133(直接内存读取)但是Linux发行版本安装后一般没有打开,可以 /etc/rc.d/rc.local 最後面加上一行: /sbin/hdparm -d1 –x66 -c3 -m16 /dev/hda 这样以后每次开机,硬盘的 DMA 就会开启,不必每次手动设定。添加前后你可以使用命令:hdparm -Tt /dev/hda 来测试对比一下。
  3、调整缓冲区刷新参数
  Linux内核中,包含了一些对于系统运行态的可设置参数。缓冲刷新的参数可以通过调整 /proc/sys/vm/bdflush文件来完成,这个文件的格式是这样的: # cat /proc/sys/vm/bdflush 30 64 64 256 500 3000 60 0 0
  每一栏是一个参数,其中最重要的是前面几个参数。第一个数字是在”dirty”缓冲区达到多少的时候强制唤醒bdflush进程刷新硬盘,第二个数字是每次让bdflush进程刷新多少个dirty块。所谓dirty块是必须写到磁盘中的缓存块。接下来的参数是每次允许bd flush将多少个内存块排入空闲的缓冲块列表。 以上值为RHEL 4.0中的缺省值。可以使用两种方法修改:
  (1)使用命令 # echo “100 128 128 512 5000 3000 60 0 0″>/proc/sys/vm/bdflush
  并将这条命令加到/etc/rc.d/rc.local文件中去。
  (2)在/etc/sysctl.conf 文件中加入如下行: vm.bdflush = 100 128 128 512 5000 3000 60 0 0
  以上的设置加大了缓冲区大小,降低了bdflush被启动的频度,VFS的缓冲刷新机制是Linux文件系统高效的原因之一。
  4、优化输入输出
  I/O程序对Linux系统性能也是相当重要的,网络硬件I/O对服务器尤其重要。现在大多数Linux服务器使用10/100 Mb以太网。如果有较重的网络负载,则可以考虑千兆以太网卡。如果没有能力购买千兆网卡的话:可以使用多块网卡虚拟成为一块网卡,具有相同的IP地址。这项技术,在Linux中,这种技术称为Bonding。Bonding在Linux2.4以上内核中已经包含了,只需要在编译的时候把网络设备选项中的 Bonding driver support选中见图1。当然利用Bonding技术配置双网卡绑定的前提条件是两块网卡芯片组型号相同,并且都具备独立的BIOS芯片。
  然后,重新编译核心,重新起动计算机,执行如下命令:  #ismod bonding #ifconfig eth0 down #ifconfig eth1 down
#ifconfig bond0 ipaddress#ifenslave bond0 eth0#ifenslave bond0 eth1
  现在两块网卡已经象一块一样工作了。这样可以提高集群节点间的数据传输.bonding对于服务器来是个比较好的选择,在没有千兆网卡时,用两块100兆网卡作bonding,可大大提高服务器到交换机之间的带宽.但是需要在交换机上设置连接bonding网卡的两个子口映射为同一个虚拟接口。编辑 /etc/modules.conf文件,加入如下内容,以使系统在启动时加载Bonding模块。  alias bond0 bonding options bond0 mode=0
  “mode”的值表示工作模式,共有0、1、2和3四种模式,这里设定为0。Bonding工作在负载均衡(Load Balancing (round-robin))方式下,即两块网卡同时工作,这时理论上Bonding能提供两倍的带宽。Bonding运行在网卡的混杂(Promisc)模式下,而且它将两块网卡的MAC地址修改为一样的。混杂模式就是网卡不再只接收目的硬件地址是自身MAC地址的数据帧,而是可以接收网络上所有的帧。
  5、减少虚拟终端机的数量。
  Linux安装后系统默认是6个虚拟终端机,也就是 CTRL+ALT F1~F6 那六个,作为服务器使用可以关掉其中四个,只留下 CTRL+ALT F1~F2,大约省下 4 Mbytes 的内存,但是这样一来,X-Window 会从原来的 CTRL+ALT F7 变成 CTRL+ALT F3 。 修改 /etc/inittab 中,将 mingetty 3 ~6 全部加上 # 字号 。
  6. 关闭一些不用的服务
  Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现的。如Web服务http等。同时,守护进程完成许多系统任务,比如,作业规划进程crond、打印进程lqd等。有些书籍和资料也把守护进程称作:“服务”。关闭服务方法请查看笔者的文章:深入理解Linux守护进程。 
  
原文:http://blog.chinaunix.net/u/7546/showart.php?id=1086488

关键字: , | 分类: Linux服务器 | 评论数: 0 | 阅读全文

轻量型http服务器boa的交叉编译

发表于 2008-07-17 20:30 浏览次数:1 次

交叉编译boa
./configure –build=i486-linux-gnu –host=mipsel-linux –prefix=/usr
修改Makefile文件
a、 修改 CC = gcc
为 CC = mipsel-linux-gcc
b、 修改 CPP = gcc – E
为 CPP = mipsel-linux-gcc -E
修改src/defines.h
将#define DEFAULT_PATH “/bin:/usr/bin:/usr/local/bin”
改为#define DEFAULT_PATH “/bin:/usr/bin:/var/www”
make
mipsel-linux-strip boa

第二步 Boa的配置
Boa需要在/etc目录下建立一个boa目录,里面放入Boa的主要配置文件boa.conf。在Boa源码目录下已有一个示例boa.conf,可以在其基础上进行修改.
User 0
Group 0
#DirectoryMaker /usr/lib/boa/boa_indexer
CGIPath /bin:/usr/bin:/var/www/cgi-bin
ScriptAlias /cgi-bin/ /var/www/cgi-bin/

mkdir -p /var/log/boa
mkdir -p /var/www/
chmod 777 /var/www
mkdir -p /var/www/cgi-bin
chmod 777 /var/www/cgi-bin
从交叉工具链/opt/mipseltools/mipsel-linux/lib/拷贝库文件到文件系统
cp -av libnss_files.so libnss_files.so.2 libnss_files-2.3.2.so libnss_nis.so libnss_nis.so.2 libnss_nis-2.3.2.so libnss_nisplus.so libnss_nisplus.so.2 libnss_nisplus-2.3.2.so
touch /etc/ld.so.preload
touch /etc/ld.so.cache
touch /var/run/.nscd_socket

测试 http:
http://192.168.4.84/
测试cgi:
http://192.168.4.84/cgi-bin/helloworld.cgi
FAQ:
1.
mipsel-linux-gcc -g -O2 -pipe -Wall -I. -c -o util.o util.c
util.c:100:40: pasting “t” and “->” does not give a valid preprocessing token
make: *** [util.o] Error 1

解决办法:

修改 src/compat.h
找到
#define TIMEZONE_OFFSET(foo) foo##->tm_gmtoff
修改成
#define TIMEZONE_OFFSET(foo) (foo)->tm_gmtoff

2.
boa无法正常启动,查看ErrorLog可以看到,“boa.c:266.icky Linux kernel bug!:No such file”。解决该问题的方法是将boa.c文件中以下几行判断去掉即可。

解决办法:

if (setuid(0) != -1) {
DIE(“icky Linux kernel bug!”);
}
 
作者: ylnyzl  来源: http://www.linuxdiyf.com

关键字: , | 分类: Linux服务器 | 评论数: 0 | 阅读全文

Linux系统下简单安装VPN虚拟网

发表于 2008-07-17 20:22 浏览次数:1,086 次

       单说安装VPN.

  按以下的操作

  复制内容到剪贴板

  代码:

  cd /tmp

  wget http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm

  wget http://poptop.sourceforge.net/yum/stable/packages/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

  如果是centos 4版本的

  复制内容到剪贴板

  代码:

  wget http://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.3-7.rhel4.i386.rpm

  wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel4.i386.rpm

  CentOS 5的

  复制内容到剪贴板

  代码:

  wget http://poptop.sourceforge.net/yum/stable/packages/ppp-2.4.4-3.1.rhel5.i386.rpm

  wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm

  下载回来这4个文件后安装 [按顺序]

  复制内容到剪贴板

  代码:

  rpm -ivh dkms-2.0.17.5-1.noarch.rpm

  rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

  以上二个是为CENTOS加载MPPE[MICROSOFT的加密协议] ..不安装的话就不能使用加密连接

  复制内容到剪贴板

  代码:

  rpm -Uvh ppp-2.4.3-7.rhel4.i386.rpm

  rpm -Uvh ppp-2.4.4-3.1.rhel5.i386.rpm

  rpm -ivh pptpd-1.3.4-1.rhel4.i386.rpm

  rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

  为懒人写的…四个都打上去…如果你只下载其中二个的话..其它二个就不存在..没所谓了.给那些懒人方便而已..

  安装完毕后..编辑配置文件

  复制内容到剪贴板

  代码:

  vi /etc/pptpd.conf

  找到最下面

  localip 后面要改为你服务的IP

  remoteip 后面改为你分配给VPN用户的IP段….比如192.168.0.1-100

  这时已经可以启动VPN服务器了.启动方法就用

  service pptpd start

  停止

  service pptpd stop

  这时你编辑VPN用户的密码资料等[实时生效]

  复制内容到剪贴板

  代码:

  vi /etc/ppp/chap-secrets

  在最下面插入新行..

  它的写法是

  用户名 服务名 密码 IP

  比如我新增加的一个用户..

  im286 pptpd bendy 192.168.10.20

  那这个用户就可以登陆VPN服务器了…分配的IP只有一个就是192.168.10.20了.也就是说只能一个人同时使用.

  如果你想多人同时使用…可以将192.168.10.20改为*

  这样就不限制这个帐户的使用人数了[同时登陆的人数.还要取决于PPTPD服务器的设置,默认40个

  我好似没有发现哪里可以设置说可以让多少人使用同一个帐户登陆的.

  如果加上RADIUS认证就可以.[这个东西我也做过.不难的]

  至此.VPN可以连接了.

  但连接之后.我们还需要设置NAT IP转发.否则用户连接上服务器后.是不能访问外网的内容的.

  设置方法也很简单的.

  复制内容到剪贴板

  代码:

  iptables -t nat -F

  iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT –to 999.999.999.999

  上面的192.168.10.0替换成你要分配给客户用的VPN 内网IP段

  999.999.999.999 替换成你的VPN服务器IP [与上面PPTPD.CONF的LOCALIP一样]

  最后我们打开LINUX服务器的IP转发功能就大功告成了

  复制内容到剪贴板

  代码:

  echo 1 >/proc/sys/net/ipv4/ip_forward

  以上是临时打开的.重启服务器后无效..

  长期调整的话..可以编辑

  /etc/sysctl.conf这个文件中的net.ipv4.ip_forward = ???

  完成

作者:未知  来源:ZDNet 服务器频道

关键字: , | 分类: Linux服务器 | 评论数: 0 | 阅读全文

Ubuntu服务器快速设置指南

发表于 2008-06-30 04:50 浏览次数:633 次

http://www.oklinux.cn 2006-12-24

一.安装Ununtu:
去http://www.ubuntu.org.cn/download下载最新ISO文件。刻写成光盘。
用刻好的光盘引导计算机,一路下去会进去Live Ubuntu中,启动完毕后,桌面有个Install,点击安装Ubuntu,进行一些简单的设置后就开始安装Ubuntu了。
重启后用你的新建的普通用户登陆系统。
使用 sudo passwd 修改root帐户密码。
到此一个简单Ubuntu系统更新完毕

二.修改源与中文环境设置请参考:
Ubuntu快速设置指南(中文官方wiki)

三.服务的安装:
1.apache2
2.php4或php5
3.mysql
4.ftp
5.tomcat

1.apache2安装

sudo apt-get install apache2

去 http://localhost 测试

2. php4安装 (php5的安装类似把php4改为php5即可)
sudo apt-get install php4
sudo apt-get install libapache2-mod-php4
sudo /etc/init.d/apache2 restart

sudo gedit /var/www/phpinfo.php
输入
< ?php phpinfo(); ?>
保存,退出gedit
测试 http://localhost/phpinfo.php

3.Mysql安装:
sudo apt-get install mysql-server
mysql默认只能本机访问,以下是修改为任意机器访问

sudo gedit /etc/mysql/my.cnf

找到 bind-address = 127.0.0.1 这行并把此行注释掉

#bind-address = 127.0.0.1

修改mysql密码:
mysqladmin -u root password your-new-password
mysqladmin -h root@local-machine-name -u root password your-new-password
sudo /etc/init.d/mysql restart

4:FTP服务安装:
sudo apt-get install proftpd

sudo cp /etc/proftpd.conf /etc/proftpd.conf_backup
sudo gedit /etc/proftpd.conf

找到这行

DenyFilter \*.*/

在下面添加
DefaultRoot ~

保存并退出gedit
sudo /etc/init.d/proftpd restart

5.Tomcat 安装:
转自野火兔的窝 中的 在Ubuntu中安装Tomcat
1、首先要确保安装相关的软件
安装JAVA环境
打开终端,执行以下命令,或使用《新立得软件管理器》,在其中分别搜索“sun-java5-jre“和“sun-java5-jdk”并标记安装。
sudo apt-get install sun-java5-jre
# 如果空间富裕,建议安装一个JDK。呵呵
sudo apt-get install sun-java5-jdk
设置当前默认的java解释器
sudo update-alternatives –config java
执行后会出现类似如下的画面:
There are 4 alternatives which provide `java’.

Selection Alternative
———————————————–
*+ 1 /usr/lib/jvm/java-gcj/jre/bin/java
2 /usr/bin/gij-wrapper-4.1
3 /usr/bin/gij-wrapper-4.0
4 /usr/lib/jvm/java-1.5.0-sun/jre/bin/java
# Press enter to keep the default , or type selection number:
输入 有包含 “sun” 的行的前面的数字。如上面显示,则输入 4,然后回车确定。

2、下载tomcat 5.5.17
wget http://apache.justdn.org/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5.17.tar.gz
3、解压tomcat
sudo tar zxvf apache-tomcat-5.5.17.tar.gz -C /opt
sudo mv /opt/apache-tomcat-5.5.17.tar.gz /opt/tomcat
4、确保在/etc/environment文件中有:(这一步不是很确定是否需要,根据java版本不同,目录也有所不同)
CLASSPATH=/usr/lib/jvm/java-1.5.0-sun-1.5.0.06/lib
JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.06
5、启动tomcat
export CLASSPATH=/usr/lib/jvm/java-1.5.0-sun-1.5.0.06/lib
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun-1.5.0.06
sudo /opt/tomcat/bin/startup.sh
如果能看到下列提示,就表明启动成功了!
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr/lib/j2sdk1.5-sun
6、测试:打开Firefox,在地址栏中输入http://localhost:8080,如果出来Tomcat的缺省界面,说明测试通过!
7、停止Tomcat服务
sudo /opt/tomcat/bin/shutdown.sh
8、获得MySQL的JDBC,在Firefox浏览器的地址栏中输入http: //dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.1.10.tar.gz/from/http: //mysql.cbn.net.id/以得到该软件。
9、安装JDBC
tar -zxvf mysql-connector-java-3.1.10.tar.gz
sudo cp mysql-connector-java-3.1.10/mysql-connector-java-3.1.10-bin*.jar /usr/lib/j2sdk1.5-sun/lib

关键字: | 分类: Linux服务器 | 评论数: 0 | 阅读全文

Ubuntu Linux下Virtualbox桥接网络配置

发表于 2008-06-29 22:55 浏览次数:781 次

1 安装必须软件

sudo apt-get install uml-utilities bridge-utils
2 添加本人帐户到软件组

sudo gpasswd -a bruce uml-net
3 修改interface文件内容如下

sudo vi /etc/network/interfaces
auto lo

iface lo inet loopback
auto tap0

iface tap0 inet manual

up ifconfig $IFACE 0.0.0.0 up

down ifconfig $IFACE down

tunctl_user bruce
auto tap1

iface tap1 inet manual

up ifconfig $IFACE 0.0.0.0 up

down ifconfig $IFACE down

tunctl_user bruce
auto tap2

iface tap2 inet manual

up ifconfig $IFACE 0.0.0.0 up

down ifconfig $IFACE down

tunctl_user bruce
auto br0

iface br0 inet static

address 192.168.1.188

netmask 255.255.255.0

broadcast 192.168.1.255

gateway 192.168.1.1

bridge_maxwait 0

bridge_ports all tap0 tap1 tap2
auto eth0

allow-hotplug eth0

iface eth0 inet manual

up ifconfig eth0 0.0.0.0 promisc up
4 重启机器配置生效!
以上配置是因为我的网络环境是静态IP的环境,所以虚拟机的IP全都是静态IP,如果网络环境中有DHCP服务器配置可以简化一下,不过我是用虚拟机做实验的,喜欢IP是固定的,所以配置如上。

作者:sixth

Linux操作系统网络安装总结

发表于 2008-06-25 09:30 浏览次数:660 次

 环境:centos4.5+dhcp+tftp+dns+apache+ftp+nfs+syslinux+grub4dos
本机IP:192.168.0.105
说明:apache,ftp,nfs 是为了配合无光盘安装光盘内容获取来设计的.所有的服务配置不是本文重点,所以只介绍用的部分.
基于syslinux的pxelinux.0
apache,nfs,ftp,根据安装需要而定,dns最好配置,因为在自动安装的过程中,自动获得IP以后,linux安装程序要自动决定自己的机器名,会查找域名服务器,如果不配置的话,会在这里卡很长时间.
Dhcp

rpm -ivh dhcp-3.0.1*

cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcp.conf
原有的配置保持默认,只是在全局配置下加入以下几句
option domain-name “rainbird.com”;//要使用的域名

option domain-name-servers 192.168.0.105;//要使用的dnsIP,此处用的本机

allow bootp;

allow booting; //这两句定义网络引导

next-server 本机IP;//tftp server

filename “pxelinux.0″; //这一句定义网络引导时tftp默认读取的配置文件

service dhcpd start
请确认dhcp正常工作

Tftp

rpm -ivh tftp-server*.rpm

vi /etc/xinitd.d/tftp
把 disable=yes 这句改为 diable=no
如果你要同时进行大量的系统安装,还要注意把 wait=yes 一句改成wait=no.
ok,tftp的配置文件就这样轻松搞定了.
service xinetd restart
请确认tftp正常工作

Pxe
其实把这一项列为pxe还不如说怎样配置tftp的根目录,tftp的根目录默认是在/tftpboot,也就是说我们只要把我们需要的东西放在这个目录就可以了,这里要用到linux光盘的第一张,默认有一个isolinux目录,我们要做的就是把这里面的东西全都拷贝到/tftpboot目录下去用 mkdir /tftpboot/pxelinux.cfg
建立一个配置目录,然后用命令 cp /tftpboot/isolinux.cfg /tftpboot/pxelinux.cfg/default
把isolinux.cfg拷成配置文件default。再有就是我们的pxelinux.0 在dhcp的配置我们有提到它,那么它在哪呢,对,是要放到当前目录下。
一句

cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
准备安装目录树
我们将安装光盘的所有内容复制到ftp的默认目录/var/ftp/pub下,在这里建立目录树,方便安装.
mount /dev/cdrom /mnt/cdrom

cp -au /mnt/cdrom/* /var/ftp/pub

Apache

rpm -ivh httpd-2.*

ln -s /var/ftp/pub /var/www/html

service httpd start
访问http://192.168.0.105/pub如果能看到安装光盘的目录树则安装成功.
Vsftpd

rpm -ivh vsftpd*

service vsftpd start

ftp://192.168.0.105/pub确认能否看到目录树

Nfs

vi /etc/exports 

/var/ftp/pub 192.168.2.0/24(ro,sync) 
保存退出

service nfs restart

dns
 

为减少安装程序决定自己名字的时间安装此服务

 

rpm -ivh bind-9*
rpm -ivh cacheing-*
vi /etc/named.conf
zone "rainbird.com" IN {
type master;
file "123";
allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN {
type master;
file "321";
allow-update { none; };
};
cp localhost.zone 123
cp named.local 321
vi 123
vi 321

配置完毕
service named start
OK,现在打开客户机就可以根据你配置好的pxelinux/default和ks.cfg进行安装了
基于grub4dos
需要的文件:grldr(pxe启动文件) fonts(字体) xp2008.xpm.gz(背景) menu.lst下的default(默认引导)
需要的服务同上。
 

关键字: , , | 分类: Linux服务器 | 评论数: 0 | 阅读全文

CentOS下配置XDMCP的方法介绍

发表于 2008-06-24 21:29 浏览次数:1,020 次

服务器端设置

1.修改/etc/gdm/custom.conf,允许使用xdmcp
[xdmcp]

Enable=1

如果需要root用户也能通过XDMCP远程登录,可添加

[security]

AllowRemoteRoot=true
2.打开防火墙设置

打开XDMCP的端口:UDP 177

打开TCP 6000到6010端口
可直接修改/etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 177 -j ACCEPT

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 6000:6010 -j ACCEPT
然后重启iptables

/etc/init.d/iptables restart
3.启动到图形界面runlevel

#init 5
如果本身已经进入图形界面,需重启

#init 3;init 5
客户端设置

4.使用x-win32连接

打开X-Config,会话中用向导创建一个XDMCP,查询输入服务器IP,完成。

再选择该会话,启动即可。

关键字: , , | 分类: Linux服务器 | 评论数: 0 | 阅读全文

返回首页 | 关于我们 | 联系我们 | 广告合作 | 网站地图 | 友情链接 | 版权声明 |