-------------------------------------------------------------------------------------------- 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_3strace-4.5.1有一点要注意,我用pkg_add安装ccache-2.4.1时发现会去缺少一个libc.so.4这个文件,所以后来我用ports安装的。cvsup src portsrc 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后安装ccacheCCACHE是为程序编译提供缓存,通过减少重复代码编译次数,加快编译时间的软件。cd /usr/ports/devel/ccache/make install cleancd /usr/mkdir ccachecd /usr/sbinln -s /usr/local/bin/ccache gccln -s /usr/local/bin/ccache ccln -s /usr/local/bin/ccache c++ln -s /usr/local/bin/ccache g++ln -s /usr/local/bin/ccache cppecho "setenv CCACHE_DIR /usr/ccache" >> /root/.cshrcrehashexit完成后,复制一份内核配制文件,不要把内核文件放到/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.conf5.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/srcmake -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 lessif ($?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 启动natnat 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 allpass out all# Bandwidth Controlpass out on $ext_if proto tcp from any to any queue std_outpass 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/sysinstallConsole中将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端口上 QUOTE (wsgtrsys @ Jan 16 2005, 08:45 PM)
精简内核并且加入pf选项device pf device pflog device pfsync options ALTQ options ALTQ_CBQ检查make.conf5.3的/etc/make.conf可以参考下面的配制: NO_PF= true NO_AUTHPF= true
请教老大。内核是要启用PF的,但make.conf为什么加上:NO_PF= true 这可能是写这篇文档的人的一点错误. 有5点多起床的,有7点多回的,我8点不到才排第3,你们睡了没有啊? 我7:20起床 http://www.freebsd.org.cn/snap/doc/zh_CN.G...books/handbook/ QUOTE (bow @ Jan 17 2005, 09:52 AM)
http://www.freebsd.org.cn/snap/doc/zh_CN.G...books/handbook/
这手册不错啊.. 收藏ING....... 呵呵 早下了PDF版了不过还是谢了
页:
[1]