找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5854|回复: 7

[BSD] 用freebsd 5.3打造自己的服务器

[复制链接]
发表于 2005-1-16 20:45:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
QUOTE
-------------------------------------------------------------------------------------------- 1,基本系统的安装 -------------------------------------------------------------------------------------------- freebsd5.3 mini安装  完成以后,安装src和ports  重新启动  需要安装的软件  为了节省时间我使用pkg_add 命令安装了一下软件  ccache-2.4_1,  cvsup-without-gui-16.1h,  perl-5.8.5,  pftop-0.4_1,  portaudit-0.5.9,  portupgrade-20040701_3  strace-4.5.1  有一点要注意,我用pkg_add安装ccache-2.4.1时发现会去缺少一个libc.so.4这个文件,所以后来我用ports安装的。  cvsup src port  src ports在开始的时候已经从光盘安装了,这里更新到最新的源码和软件包  # cp /usr/share/examples/cvsup/ports-supfile /root/cvsup/  # cp /usr/share/examples/cvsup/stable-supfile /root/cvsup/  # chmod 755 /root/cvsup/ports-supfile   # chmod 755 /root/cvsup/stable-supfile   修改ports-supfile,stable-supfile文件中的服务器地址,可以用比较快的地址替换,完成后  # cvsup /root/cvsup/ports-supfile  # cvsup /root/cvsup/stable-supfile   -------------------------------------------------------------------------------------------- 2,对系统进行简单优化并重新make world -------------------------------------------------------------------------------------------- cvsup到新的源码和port后安装ccache  CCACHE是为程序编译提供缓存,通过减少重复代码编译次数,加快编译时间的软件。  cd /usr/ports/devel/ccache/  make install clean  cd /usr/  mkdir ccache  cd /usr/sbin  ln -s /usr/local/bin/ccache gcc  ln -s /usr/local/bin/ccache cc  ln -s /usr/local/bin/ccache c++  ln -s /usr/local/bin/ccache g++  ln -s /usr/local/bin/ccache cpp  echo "setenv CCACHE_DIR /usr/ccache" >> /root/.cshrc  rehash  exit  完成后,复制一份内核配制文件,不要把内核文件放到/usr/src下  可以考虑将内核配置文件放到别的地方, 然后在 i386 目录中建立一个符号连接指向它。  # cd /usr/src/sys/i386/conf  # mkdir /root/kernels  # cp GENERIC /root/kernels/MYKERNEL   # ln -s /root/kernels/MYKERNEL  定制内核的配制文件,也就是刚才拷贝到/root/kernels/的MYkernel文件  精简内核并且加入pf选项  device pf device pflog device pfsync options ALTQ options ALTQ_CBQ  检查make.conf  5.3的/etc/make.conf可以参考下面的配制:   NO_ACPI= true NO_BOOT= true NO_BIND= true NO_BLUETOOTH= true NO_FORTRAN= true NO_I4B= true NO_IPFILTER= true NO_PF= true NO_AUTHPF= true NO_KERBEros= true NO_LPR= true NO_MODULES= true NO_SHAREDOCS= true NO_USB= true NOATM= true NOGAMES= true NOINET6= true NOLIBC_R= true NOPROFILE= true CXXFLAGS+= -fmemoize-lookups -fsave-memoized SUP_UPDATE= yes SUP= /usr/local/bin/cvsup SUPFLAGS= -g -L 2 SUPHOST= cvsup2.freebsdchina.org SUPFILE= /root/cvsup/standard-supfile PORTSSUPFILE= /root/cvsup/ports-supfile DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile MASTER_SITE_BACKUP?= \  ftp://ftp2.tsinghua.edu.cn/mirror/FreeBSD...;{DIST_SUBDIR}/ \ ftp://ftp.freebsd.org.cn/pub/FreeBSD/port...;{DIST_SUBDIR}/ \ ftp://ftp.freebsdchina.org/pub/FreeBSD/po...;{DIST_SUBDIR}/ MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}  这时就可以makeworld了  make world时使用-j4选项,会同时启动4个进程来make world     进入/usr/src  make -j4 buildworld  给 make 指定 -j 选项了,这样会使用产生出几个并发的进程来。 这在多处理器机器里最有用。但是,   由于大部分的编译过程是 IO 限制远胜 CPU 限制,它在单处理器的机器里也是有用的。  这时候make 会有至多 4 个进程在同一时刻执行。贴到邮件列表里的实验证据显示这样会收到最好的效果  如果您有一台多 CPU 机器,那您就使用 SMP 配置内核,试试 6 到 10 之间的值,看这些值提速如何。  同时使用4个进程,加上ccache的加速,make world的速度会有所提高  至于提高多少,还要看本身的机器性能了  makeworld是一个漫长的过程,我在p3 800的笔记本里运行vmware用了4个多小时   完成以后就可以编译和安装新内核  # cd /usr/src  # make installworld  # make buildkernel KERNCONF=MYKERNEL  # make installkernel KERNCONF=MYKERNEL   重新启动 ==================== 到目前为止,一个全新的系统就完成了 接着我们对系统进行简单的设置:  在/boot/loader.conf中加入: autoboot_delay="2" //把默认的启动时间设置为2秒,原10秒 net.inet.tcp.tcbhashsize="2048" // 增大TCP控制块数量 beastie_disable="YES" // 关闭小恶魔图像启动菜单  /etc/rc.conf加入: background_dhclient="YES" sendmail_enable="NONE" sendmail_submit_enable="NO" sendmail_outbound_enable="NO" sendmail_msp_queue_enable="NO" clear_tmp_enable="YES" tcp_extensions="YES" pf_enable="YES" //启用pf防火墙 pflog_enable="YES" ifconfig_lnc0="inet 10.0.64.253 netmask 255.255.248.0" //外网地址 ifconfig_lnc1="inet 172.16.0.1 netmask 255.255.255.0"      //内网地址 ifconfig_lnc1_alias0="inet 172.16.0.2 netmask 255.255.255.255" //虚拟主机地址 ifconfig_lnc1_alias1="inet 172.16.0.3 netmask 255.255.255.255"     //虚拟主机地址    shell环境设定  /root/.cshrc加入: alias ls ls -FGw //ls彩色 setenv EDITOR ee // 默认编辑器为ee setenv PAGER less  if ($?prompt) then中加入: set nobeep set prompt = ‘%n@%/%# ‘ set filec set autolist     打开 NAT 的 IP Forwarding   #ee /etc/sysctl.conf   net.inet.ip.forwarding=1  设定pf的规则  #ee /etc/pf.conf   # MacROS 定义网络接口  ext_if="lnc0" #外部   int_if="lnc1" #内部  vhost1="172.16.0.2"          #定义内部服务器vhost1的地址  vhost2="172.16.0.3"         #定义内部服务器vhost2的地址 如果还有虚拟机的同样的道理  # ALTQ 定义带宽的进出   # Outgoing bandwidth limit   altq on $ext_if cbq bandwidth 512Kb queue { std_out }   queue std_out bandwidth 256Kb cbq (default)   # Incoming bandwidth limit   altq on $int_if cbq bandwidth 2Mb queue { std_in }   queue std_in bandwidth 768Kb cbq (default borrow)    # NAT 启动nat  nat on $ext_if from $int_if:network to any -> ($ext_if) #地址转换  rdr on $ext_if proto tcp from any to 10.0.64.253 port 33 -> $v1 port 22 #端口映射   # Filter Rules 规则设置 pass in all  pass out all  # Bandwidth Control  pass out on $ext_if proto tcp from any to any queue std_out  pass in on $int_if proto tcp from any to any queue std_in     操作控制 Operation & Control:   # pfctl -f /etc/pf.conf 载入pf.conf配置文件  # pfctl -nf /etc/pf.conf 解析pf.conf文件, 但不载入。  # pfctl -Nf /etc/pf.conf 只从文件中载入NAT规则链。  # pfctl -Rf /etc/pf.conf 只从文件中载入过滤规则链。   # pfctl -sn 显示当前的NAT规则链  # pfctl -sr 显示当前的过滤规则链  # pfctl -ss 显示当前的状态  # pfctl -si 显示过滤状态和计数  # pfctl -sa 显示所有能显示的东西   另外,我们在前面还安装了个pftop这个软件,可以查看pf防火墙的状态   --------------------------------------------------------------------------------------------  建立jail虚拟机 -------------------------------------------------------------------------------------------- 安装虚拟机上运行的网络服务程序   建立一个虚拟机 需要先为vhost准备一个目录: # mkdir -p /home/jail/vhost1   因为先前我们已经make world过了,所以现在建立虚拟机就比较简单了  #cd /usr/src #make installworld DESTDIR=/home/jail/vhost1 #cd /usr/src/etc #make distribution DESTDIR=/home/jail/vhost1 #mount_devfs devfs /home/jail/vhost1/dev   ------------------------ ln -s /usr/ports /home/jail/vhost1/usr/ports -------------------------   准备vhost使用的地址 在前面,我们已经在  /etc/rc.conf中加入了: ifconfig_lnc1_alias0="inet 172.16.0.2 netmask 255.255.255.255" ifconfig_lnc1_alias1="inet 172.16.0.3 netmask 255.255.255.255"  现在,需要为建立的第一个虚拟机增加点东西: mkdir /home/jail/vhost1/stand cp /stand/sysinstall /home/jail/vhost1/stand/ cp /etc/resolv.conf /home/jail/vhost1/etc touch /home/jail/vhost1/etc/fstab   进入vhost1:  jail /home/jail/vhost1 vhost1.xiao2.org 172.16.0.2 /bin/sh  配置vhost1 进入vhost1的后,执行sysinstall工具:  /stand/sysinstall  Console中将Repeat设置为fast   更改root的密码  User Management中加入系统中的用户(记得要加一个wheel能su成root的用户哟)   Time Zone中设置正确的时区   Networking中设置inetd为no、Mail为None、并选中sshd(inetd和sshd为必须)   Startup中关了quotas   配置完成后输入:   exit 退出   启动vhost1   jail /home/jail/vhost1 vhost1.xiao2.org 172.16.0.2 /bin/sh /etc/rc  执行后会看到一些启动信息,然后就返回了shell  这时就可以使用ssh连接到虚拟机起了 至此,一个完成的新的虚拟服务器就装好了  根据我在pf.conf文件里的设定,如果你ssh到10.0.64.253的33端口,就回重定向到虚拟机vhost1的22端口上
routeros
发表于 2005-1-17 05:38:04 | 显示全部楼层
QUOTE (wsgtrsys @ Jan 16 2005, 08:45 PM)
  精简内核并且加入pf选项  device pf device pflog device pfsync options ALTQ options ALTQ_CBQ  检查make.conf  5.3的/etc/make.conf可以参考下面的配制:   NO_PF= true NO_AUTHPF= true  
  请教老大。内核是要启用PF的,但make.conf为什么加上:NO_PF= true
routeros
回复

使用道具 举报

 楼主| 发表于 2005-1-17 07:23:58 | 显示全部楼层
这可能是写这篇文档的人的一点错误.
routeros
回复

使用道具 举报

发表于 2005-1-17 07:51:12 | 显示全部楼层
有5点多起床的,有7点多回的,我8点不到才排第3,你们睡了没有啊?
routeros
回复

使用道具 举报

 楼主| 发表于 2005-1-17 07:56:01 | 显示全部楼层
我7:20起床
routeros
回复

使用道具 举报

发表于 2005-1-17 09:52:54 | 显示全部楼层
http://www.freebsd.org.cn/snap/doc/zh_CN.G...books/handbook/
routeros
回复

使用道具 举报

发表于 2005-1-17 11:50:20 | 显示全部楼层
QUOTE (bow @ Jan 17 2005, 09:52 AM)
http://www.freebsd.org.cn/snap/doc/zh_CN.G...books/handbook/  
     这手册不错啊.. 收藏ING.......
routeros
回复

使用道具 举报

发表于 2005-2-20 00:22:08 | 显示全部楼层
呵呵 早下了PDF版了  不过还是谢了
routeros
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-5-6 10:29 , Processed in 0.059815 second(s), 4 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表