- 论坛徽章:
- 0
|
FreeBSD完全新手指南[译者前言]
发信人: hahalee (哈哈李), 信区: FreeBSD
标 题: FreeBSD完全新手指南[译者前言]
发信站: 网易 BBS (Mon Feb 15 06:37:19 1999), 转信
FreeBSD完全新手指南
原文出处: http://www.vmunix.com/fbsd-book/
翻译: hahalee, rainheart, con, ...
■ 译者前言; 翻译: hahalee, rainheart, con, ...
今日浏览发现一本好书,非常适合新手阅读。其优点在于深入浅出,对读者
起点要求很低,但是写的很全面。于是咬咬牙,决定把他翻译出来...
这个计划非常需要各位FreeBSD用户的支持,相信在阅读原文的过程中我们都
可以得益不少。因为,我们中的大多数人(有BSD系统背景的朋友除外)在使
用过程中总是抱着“完成任务”的目的去看文档的,难得碰到这本比较系统的
书(比handbook和FAQ强远了),不如顺便做点好事,造福各位同好吧!
你可以把你感兴趣的那一章先贴个标题出来,这样我和别的朋友会自动选取
下面的部分接着翻译。某些章节相当长,你可以只选取其中一段来翻译(总
之只要你干了活,大家都会感谢你的 我就从第一章开始翻起了,最近会
比较忙,不过我一有空就会继续这项工作的.
翻译的过程中,未完成的文章希望能在后面加上“未完待续”的字样,翻完了
就去掉它,我好做进一步的整理。工作有了进展不妨按Ctrl-C"转贴"到本版然
后D掉原文,这样你的文章会到最新的位置,方便不常造访的朋友们阅读.
这本书的原文其实也还正在写,不过完成的部分已具有一定规模和可读性了。
总觉得,要是有一天Linux的人和这个版的人骂起了架,那才好呢!(呵呵,
有点惟恐天下不乱的意思)
FreeBSD完全新手指南[1-介绍]
FreeBSD完全新手指南
出处: http://www.vmunix.com/fbsd-book/ 翻译:hahalee
■ FreeBSD 简介(绝对新手指南)nbsp;http://www.vmunix.com/fbsd-book/ 翻译:hahalee
□ 本章目标对新手指南)nbsp;http://www.vmunix.com/fbsd-book/ 翻译:hahalee
看完本章,你应该会做下面的事情了:
● 在网上自行寻找关于FreeBSD的资源
● 在FreeBSD邮件列表上问问题
● 订阅FreeBSD邮件列表
● 取消订阅邮件列表
□ 探索FreeBSDnbsp;取消订阅邮件列表
本书是为初步接触FreeBSD的用户和管理员们准备的,旨在帮助那些没有充分
的UNIX背景知识的朋友能顺利使用FreeBSD。不论是作为桌面系统,还是Internet
服务器,FreeBSD都有足够的能力和灵活性来满足哪怕是最苛刻的要求,但是,
同时也需要比某些“零售商品”化的操作系统付出更多的管理方面的努力。不过
另一方面需要指出的是,我们为了实现同样功能而付出的努力仍然比Windows95
和其他某些操作系统要少。如果你学会了正确的管理方法,就会发现维护运行一
个FreeBSD系统十分简单而充满乐趣。
即使你只在台式机上跑FreeBSD,他仍然具有服务器的功能,而你也可被称做“
系统管理员”。在Win95机器上工作的时候,你恐怕很难觉得自己是个“管理员”
虽然从技术上讲(Win95)的确是个“系统”,而你也的确是在“管理”它,你
觉得“管理员”这个称呼奇怪的原因在于Win95是个单用户系统,只有你一个人在
使用。
FreeBSD则是个多用户的系统:同一时间一台机器可以为多个用户服务.这种
服务可不光是文件共享服务(如WinNT和Netware提供的),连上FreeBSD的用户
可以使用服务器上所有的功能,就好象他坐在系统控制台上一样.如果允许
的话,用户之间还能实时互动.(译注fbsd-book/ 翻译:hahalee
Windows95更多的控制能力给你,在FreeBSD上你可以”热更新”系统参数,它
们则需要重新启动一下更新才能生效.比如,你可以更改机器的IP地址,然后
马上就可以投入使用.你不必等上5分种reboot来看效果.
现在,Internet正成为我们生活中越来越重要的组成部分,Internet也改变着我
们的商业模式,公司和个体都在寻找能廉价地增强他们竞争力的手段.尤其是公
司,他们正在提供各种Internet和Intranet服务以吸引客户,提高办事效率.与
此同时,尽管计算机硬件的价格不断下调,软件和支持的费用却不断上涨.对个
体来说,Internet更是一个开展业务的乐园,不过他们的启动经费往往只够买硬
件,他们也必须找到廉价的软件来提供服务.
UNIX是Internet的标准系统,极其重要的Internet标准协议--TCP/IP,DNS,HTTP,FTP
SMTP/POP3/IMAP......绝大部分都是在UNIX系统上开发或调试的.
FreeBSD刚好满足了上面两方面的需要:它基于UNIX的标准代码基(BSD 4.4),优化
运行于通用而廉价的Intel硬件平台,而且是自由的(正如其名).
FreeBSD上Internet标准协议的实现刚好是它的强项.它有众多的WWW/DNS/email
服务软件,也有大量的基于TCP/IP协议的软件包.
FreeBSD有着广泛的应用领域:
●服务器类应用
◎“装好就用”(turnkey)型的WWW服务器
◎ 电子邮件服务器(POP3和IMAP)
◎ 域名服务器(DNS)
◎ PPP拨号服务器
◎ WinXX用户的文件和打印共享服务()
◎ 用来当路由器
◎ 用来做Internet防火墙或网关
◎ 提供Novell Netware文件服务的互操作性
◎ 翻译网络地址(NAT),节约你的合法分配地址
● 普通应用
◎ 作为廉价的 UNIX X Window工作站
◎ 运行大量的FreeBSD桌面应用程序:
○ 文字处理
○ 电子表格
○ 数据库处理
○ 多媒体
○ 视频会议
◎ 运行其他系统上的应用:
○ Linux
○ BSDi
○ SCO
○ Windows 3.1/DOS
○ Windows 95/NT
◎ 单个用户的安全管理
● 大量的定制开发应用
□ 网络上的FreeBSD资源τ?
有关FreeBSD的信息大都可以在网上找到,且有多种格式。
Web网站:都可以在网上找到,且有多种格式。
网络上的FreeBSD站点很多,最好的寻找方法是从正式的FreeBSD站点开始浏览:
● http://www.freebsd.org (正式站点)
● http://www.freebsd.org/handbook/handbook.html (手册)
● http://www.freebsd.org/FAQ/FAQ.html (常见问答)
● http://www.de.freebsd.org/de/cgi/man.cgi (联机手册)
上面是进行中的FreeBSD文档计划的一部分,内有FreeBSD专家们撰写的应用指南,
还有一些参考书。
另外,也有不少站点是总体介绍FreeBSD和其他UNIX系统的。如:
● http://www.ugu.org (Unix 高手世界)
freebsd.org的人们也搭建了讨论FreeBSD的邮件列表,可以在上面报告bug、提问、
更新源代码等等你需要的所有服务,但你并不需要支付咨询服务费给任何人。关
于服务支持,你可以到http://www.freebsd.org/support.html了解详情。
CDROM:缘?a href="../../../../www.freebsd.org/support.html了解详情。">;http://www.freebsd.org/support.html了解详情。
其实大部分的文档在FreeBSD的安装光盘上已经包含了,可以在DOS或Windows下阅
读,安装前看看文档是个好主意,要是你拿不准,可以把相关章节打印出来随时备
查。
你的系统:个好主意,要是你拿不准,可以把相关章节打印出来随时备
在一个已经装好了的FreeBSD系统上,有如下文档:
● 全部的联机手册(man pages)
● HTML格式的手册(handbook)和常见问答(FAQ),它们放在/usr/share/doc
下面,可以用netscape或者lynx来查阅。
● 系统自带的例子。(译注:可能指的是各种配置文件里面的注解)
□ FreeBSD邮件列表?印?译注:可能指的是各种配置文件里面的注解)
邮件列表是一群人保持互相联系的一种简单方法。一旦你订阅了某个邮件列表,
你就会收到所有送往该列表的邮件。这样你就能看到人们提出的问题和解答。
FreeBSD有专门的邮件列表来解答问题,报告bug,还有新版本的发布。
向相应邮件列表提问是获得正确快速解答的方便途径,回复信往往在几个小时
内就能收到。要是订阅列表的其他人中刚好有知道答案的,他立即回答你的话,
几分钟之内就能收到回音了。你得到的不仅仅是答案,而将是完整的解决方法,
因为列表订阅者中很可能碰到过跟你一样的问题,甚至,你碰到问题的软件的
作者都有可能在这个列表当中,他们给你的答案,自然是最有价值的。
在你提问之前,你可能想去看看这个问题是否已经被提出过,要是能直接在邮件
档案中搜索到答案的话,你就不必麻烦别人了:
http://www.freebsd.org/search.html
要是在这个地方搜不到你想问的东西,那么找个正确的邮件列表,发封email。
有若干主题的FreeBSD邮件列表可供自由订阅。你最好先只订阅一个跟你目前使
用的系统和环境密切相关的列表,一次订阅多个列表的话要小心你的邮件流量超
载。
无论何时,你应该避免“重复张贴”(cross-posting),尽量只在跟你的问题相
关的那个列表上提问,重复张贴是对带宽的浪费,也是对无关列表的读者精力
的浪费。如果你错了,人们一般会指点你应该把这个问题发到哪个列表上去。
(译注文件里面的注解)
可就不是"指点"了,肯定会被人家骂个狗血喷头!)
如果你是个新手,那么freebsd-questions列表很可能是你最需要的了。所有关于
安装运行FreBSD的问题都可以在这个列表上提出来。
当发信到列表上去提问的时候,请记得详细描述你的问题,附带上尽量多的信息,
好方便大家帮助你解决问题,包括:
● 你运行的FreeBSD版本号
● 机器上有多少内存
● 硬盘类型和大小
● 硬件型号
● 所有跟你问题相关的配置情况
● 出错信息的详细拷贝
注意:如果你自己参考了某些联机文档来试图解决过问题,也请把你的尝试告诉
大家,这样,如果你遗漏了某些资料没有看,他们会很快地告诉你要查找些什么
资料。
□ 订阅邮件列表他们会很快地告诉你要查找些什么
下面列出一部分FreeBSD邮件列表,你可以从这些列表开始订阅。随着FreeBSD开发
和应用的发展,新的列表也会加入进来。
当订阅列表的时候要注意,订阅信和讨论信的邮件地址是不同的。订阅信是你要求
加入到某个列表中去的信,这种信一般是由一个叫做majordomo的列表管理程序来
自动处理的:你需要发送到 majordomo@freebsd.org
每个不同主题的列表都有其“列表地址”,你往这个地址发的信会被复制分发到每个
订阅者的邮箱里去,他们并不能帮你完成订阅申请,所以不要把你的订阅请求发到
这些列表地址:
● freebsd-newbies@freebsd.org 新手问题讨论
● freebsd-questions@freebsd.org 一般性问题讨论
● freebsd-isp@freebsd.org FreeBSD在ISP方面的应用讨论
● freebsd-current@freebsd.org 最新current用户问题
● freebsd-bugs@freebsd.org 报告BUGs
● freebsd-chat@freebsd.org 随意瞎聊(当然要跟FreeBSD有关的)
● freebsd-announce@freebsd.org 新版本发布通告(一般是只读的)
● freebsd-stable@freebsd.org FreeBSD稳定版应用问题
要想订阅某个列表,往majordomo@freebsd.org发一封请求信,其内容举例如下:
subscribe frebsd-questions
subscribe freebsd-announce
END
这样,majordomo程序会把你加入到 freebsd-questions和freebsd-announce两个
列表里面。很快,你就会收到这两个列表上的往来邮件了。在请求信的最后加上
end字样是个好习惯,它告诉majordomo忽略邮件的后面内容,否则,你的签名档
也会被majordomo分析一通。(译注p; FreeBSD稳定版应用问题
是加上这个"END"好些,不要去"测试"majoedomo了)
majordomo收到请求信后会给你发封确认信,以确认你的邮件地址是正确的,里面
有你的名字和地址,还有确认密码。你要做的很简单,直接"reply"这封邮件给
majordomo就行了。之所以采用这种确认程序,是为了防止别人冒用你的名义,
给你订上一大堆的邮件列表。
(译注ajordomo写请求信,格式跟
订阅请求一样,不过把subscribe换成unsubscribe就行了)
FreeBSD完全新手指南[4-配置系统]
发信人: con (con), 信区: FreeBSD
标 题: FreeBSD完全新手指南[4-配置系统]
发信站: 网易 BBS (Thu Feb 18 11:48:43 1999), 转信
内容
1. 配置你的.cshrc文件
2. 设置更多的虚拟控制台(Virtual Terminals)
3. 增加一个硬盘
4. 系统配置文件选项
5. 添加和安装软件
6. 怎样安装Linux模拟器
1. 配置你的.cshrc文件
这是系统自带的.cshrc文件.
#csh .cshrc file
alias h history 25
alias j jobs -l
alias la ls -a
alias lf ls -FA
alias ll ls -lA
alias su su -m
setenv EDITOR vi
setenv EXINIT 'set autoindent'
setenv PAGER more
set path = (~/bin /bin /usr/{bin,games} /usr/local/bin /usr/X11R6/bin)
if ($?prompt) then
# An interactive shell -- set some stuff up
set filec
set history = 1000
set ignoreeof
set mail = (/var/mail/$USER)
set mch = `hostname -s`
set prompt = "${mch:q}: {\!} "
umask 2
endif
path语句告诉你的shell哪里能找到你要执行的程序. 它从列出的第一个目录
开始寻找与你输入的命令相匹配的文件. 如果找到就开始执行那个程序.
它不会在没有列出的目录里寻找可执行文件. 哪怕就在你的当前目录下. 所以
如果你的当前目录没在path的列表里, 即使你要执行的文件就在这里也不能被找
到.
如果要执行当前目录下的文件, 你得在命令前面加一个"./" . 例如, 你在
/usr/local/www/cgi-bin/目录里要测试一个编好的程序. 它名叫getdata.pl,
你输入getdata.pl, 然而并没有你期待的HTML输出, 你只是得到了一条错误信
息, getdata.pl: Command not found. 这是因为你的path语句里没有包含"."
目录. 要想这个文件被执行你得输入:
./getdata.pl
现在你会看到期待的HTML. 除非你编的程序有误, 输出的是你所用的编程语言
的错误信息.
一个 TCSH 的例子
就象前面提及的, tcsh在csh的基础上增加了很多特性使得命令行界面更加易用.
这是一个能够体现出tcsh优越性的.cshrc文件的例子:
#tcsh .tcshrc file
alias h history 25
alias j jobs -l
alias la ls -a
alias lf ls -FA
alias ll ls -lF
#alias su su -m -- bad for su'ing to root..
setenv EDITOR vim
setenv PAGER less
set path = ( ~/bin /usr/local/bin /bin /usr/{bin,games} /usr/sbin /sbin /usr/local/samba/bin
/usr/X11R6/bin /usr/local/java/bin .)
setenv IRCNICK ringzero
setenv IRCSERVER irc2.magic.ca
setenv NNTPSERVER news.sentex.ca
if ($?prompt) then
# An interactive shell -- set some stuff up
set filec
set fignore = .o # ignore object files for filec
set showmatch # for programming
set history = 100
set savehist = 75 # tcsh version of history..
set ignoreeof
set mail = (/var/mail/$USER)
set prompt="vinyl:{%h}%~ %% " # tcsh version of above!
set watch = (1 gabor any mike any adrian any pwardrop any)
umask 2
endif
第一点值得注意的是有关setenv的行. 在这个例子里, 它们设置了使用新的阅读
软件和irc客户端软件的环境变量. 另一个感兴趣的地方是set fignore = .o , 它
使得file completion(set filec)(译者注: 我对tcsh不太熟悉,我猜想这里的file
completion 是指类似bash的命令补齐的东西,但又不敢确定,所以照搬下来了)忽略
结尾是".o"的文件. 如果你是一个C程序员的话这很有用, 因为你要编辑的是一个
".c"文件而不是".o"文件. set showmatch 是 tcsh 特有的另一个file completion
机制. 至于它的用途, 自己试试吧! set prompt 选项为你的shell设置了一个很
友好的提示符. 它会在任何时候显示你的当前目录. 看起来会象这样:
mark:{123}~ % cd /usr/src
mark:{124}/usr/src %
注意波浪号表示你的home目录. 现在你已经知道了很多tsch和csh选项了, 如果想
知道更多,最好的方法是man tcsh! 所有两种shells的特征(比如tcsh的"watch"特征)
都在man page里. 自己去体验一下你所喜欢的那些窍门吧!
注意:
如果你更改了你的.cshrc文件, 你可以用source .cshrc来使你的
变动立即生效!
2. 设置更多的虚拟控制台(Virtual Terminals)
(译者注: 想来想去还是决定把Virtual Terminals译为虚拟控制台,
因为记得有人把Pseudo terminals称作虚拟终端的)
一个虚拟控制台是一个内建在服务器主控制台上的终端. 它使你能同时打开好
几个屏幕, 当然一次只能看到一个. 缺省情况下设置了4个虚拟终端, 但只有3个
能用.按ALT加F2或F3(F1是一开始的那个)可以切换到第二或第三个虚拟控制台.
现在你会在屏幕上看到登录画面, 这和第一个虚拟控制台看起来没有什么不同.
按ALT加F1回到原来的屏幕.
要增加虚拟控制台, 你必须以超级用户身份访问/dev目录. 然后运行MAKEDEV
程序. MAKEDEV是一个shell脚本, 所以你得用sh shell解释器来执行它. 在提示符
下输入:
cd /dev
sh MAKEDEV vty 16
注意:
(全部用大写输入MAKEDEV, 大小写有本质的区别)
这将建立16个虚拟控制台. 它们可以用ALT+F?来访问. (译者注: 但是F键只有12个)
但是在你能使用它们之前你还要在/etc/ttys文件里激活它们. 去到/etc/目录里然后
用vi来编辑/etc/ttys文件.
cd /etc
vi ttys
#
# $Id: 139,v 1.3 1999/04/03 10:52:39 root Exp root $
# @(#)ttys 5.1 (Berkeley) 4/17/89
#
# name gettytype status comments
#
# This entry needed for asking password when init goes to single-user mode
# If you want to be asked for password, change "secure" to "insecure" here
console noneunknown off secure
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
#ttyv3 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
# Serial terminals
# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
ttyd0 "/usr/libexec/getty std.9600" dialup off secure
ttyd1 "/usr/libexec/getty std.9600" dialup off secure
ttyd2 "/usr/libexec/getty std.9600" dialup off secure
ttyd3 "/usr/libexec/getty std.9600" dialup off secure
# Pseudo terminals
ttyp0 none network secure
ttyp1 none network secure
ttyp2 none network secure
ttyp3 none network
(译者注: 原文里是一个图, 所以用我的/etc/ttys文件来代替)
如果你运行X window, 必须保留一个关掉的虚拟控制台. 缺省情况下,
ttyv4 是关闭的.
你要在标着Virtual Terminals的部分添加几行. 如果你制造了16个虚拟
控制台设备, 那么你现在有16个虚拟控制台要配置. 也就是说在/etc/ttys
文件里要有16行有关虚拟控制台的内容; 现在还只有4行. 你可以通过拷贝
粘贴这些行来完成:
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
把光标移到这行后按yy然后按j使光标下移再按12p来使这行被粘贴12次.现在
你有了ttyv2的12份拷贝, 你得把它们改为二进制数字. 从4开始,然后是5,6,
7,8,9,a,b,c,d,e,f.
完成后你就在/etc/ttys里配好了从ttyv1 - ttyvf的虚拟控制台.
在vi里你能用简单的方法来完成替换,把光标移到你要改变的数字上按r键再
输入要替换成的数字,然后按j使光标下移再重复前面的工作.
结束编辑后按ZZ退出vi. 现在要重起init进程. 以超级用户身份输入:
kill -HUP 1
现在你的虚拟控制台已经随时待命了.
3. 增加一个硬盘
先要从物理上安装硬盘. 保证电缆已经接好, 从第一针到电源插头.(注意,
数据线上的红带要与电源线相邻). 再确保有电供给驱动器.
然后重新启动FreeBSD,FreeBSD在启动的时候会检测出这个驱动器. 如果没有
的话用"-c"参数reboot. 在启动提示符下进入visual config使合适的控制器被
激活. 最可能的情况是你使用的核心是自己建立的并且附加的IDE驱动器以被核
心禁止,或者在一个SCSI被核心禁止的系统上添加第一个SCSI驱动器. 如果控制
器只是被核心*禁用*而不是删除, 只须在visual config里把它激活就行了. 否
则你必须重建核心以加入适当的控制器和驱动.
如果你错过了启动时的信息, 登录后在提示符下敲dmesg. 这将重现你的启动
信息.
/usr/>; dmesg | more
如果安装的是SCSI驱动器, 要确保驱动器已被SCSI BIOS找到并且用了适当的
SCSI termination.
一旦所有东西都被找到, 就可以开始FreeBSD下的配置了.
******************************************************************
要做的第一件事就是清扫干净磁盘上原有的任何东西. 很多硬盘驱动器厂商已
把新的驱动器分好区并且已格式化成DOS FAT文件系统. 在余下的部分, 我们假
设找到的硬盘驱动器是sd1, 也就是电缆上的第二个SCSI驱动器(用SCSI ID 1).
下面是如何清除FAT垃圾:
dd if=/dev/zero of=/dev/rsd1 count=100
然后要为驱动器准备一个"disk label". 假设你计划整个硬盘都在FreeBSD下
使用:
disklabel -Brw sd1 auto
*把rsd1和sd1替换成你添加的硬盘,不要在一个正在使用的磁盘上进行这些操作.
这将清除磁盘上的每样东西, 为FreeBSD能使用它做好准备. 一切顺利的话将不需要
使用fdisk.
如果你计划在FreeBSD下把整个硬盘分成一个区, 那么用刚才 disklabel 建立的
缺省的单一分区就行了, 否则的话你要用disklabel编辑器来创建更小的分区.你也
许需要在磁盘上增加一个交换分区, 例如.
编辑第一个IDE盘的disklabel:
disklabel -e wd0
# /dev/rwd0c:
type: ESDI
disk: wd0s1
label:
flags:
bytes/sector: 512
sectors/track: 51
tracks/cylinder: 13
sectors/cylinder: 663
cylinders: 722
sectors/unit: 479298
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0 # milliseconds
track-to-track seek: 0 # milliseconds
drivedata: 0
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 65536 0 4.2BSD 0 0 0 # (Cyl. 0 - 98*)
b: 85936 65536 swap # (Cyl. 98*- 228*)
c: 479298 0 unused 0 0 # (Cyl. 0 - 722*)
e: 61440 151472 4.2BSD 0 0 0 # (Cyl. 228*- 321*)
f: 266386 212912 4.2BSD 0 0 0 # (Cyl. 321*- 722*)
这部分需要动动脑筋,以使那些数字正确. 给一个分区分配容量,较容易的方法是
给你要分配的分区一个通过计算得出的柱面(cylinders)数. size 是分区的扇区数
目. offset 是前一个分区的最后一个扇区. 分区 a 从扇区0开始. 分区必须在你
所分配给分区的柱面的范围内开始和结束. 计算分区大小的方法是, tracks/cylinder
(每柱面的磁道数)乘以sectors/cylinder(每柱面的扇区数)再乘以你分配给分区的
柱面数.(扇区数*磁道数*柱面数=分区大小) 计算offset的方法是, 上个分区的大
小加上个分区的offset.(Size+Offset=下个分区的Offset)
fstype是你在分区上使用的文件系统的类型. FreeBSD通常使用的文件系统是
4.2BSD. swap是交换文件使用的文件系统. FAT是DOS分区使用的文件系统.分区a
为启动扇区保留,它为空表示不需要启动扇区.
分区 b 保留作交换文件. 它不能从offset 0开始. 它的前面必须要有一个分
区. 分区 e 可以从offset 0 开始并且可以是任意大小, 所以交换分区可以放在
分区 e 的后面.
分区 c 不会被改变. 要从分区c开始制造你的文件系统.
现在要用newfs命令在磁盘创建一个文件系统. 如果你使用的是整个磁盘, 可以
用disklabel 自动建立的c分区.
newfs /dev/rsd1c
c分区总是整个驱动器 - 所以这种情况下你建立的文件系统也就包括了整个磁盘.
如果你把磁盘分的更小, 你必须在每个分区上使用newfs来建立文件系统,交换分
区除外.
最后,你需要mount驱动器. 在这里我们假设你已用mkdir创建了"mount point"
/d2 .
mount /dev/sd1c /d2
顺利的话, 你可以看到象这样的东西:
#vinyl % df -k
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/sd0a 31775 13530 15703 46% /
/dev/sd0s1f 1913091 1086207 673837 62% /usr
/dev/sd0s1e 29727 12663 14686 46% /var
procfs 4 4 0 100% /proc
/dev/sd1c 4108717 616594 3163426 16% /d2
现在你要在/etc/fstab文件里创建一个条目以使它在每次启动时都被mount.
否则你每次都要手工执行mount. 你要为创建的每个分区建立fstab条目,包括
交换分区.
此外可以在man page里参考: fstab mount disklabel dmesg dd 和 newfs
4. 系统配置文件选项
4.1 重要的启动时初始化选项
4.2 网络配置子项
4.3 (其他)网络daemon & NFS选项
4.4 网络时间服务选项
4.5 网络信息服务(NIS)选项
4.6 网络路由选项
4.7 系统控制台选项
4.8 其他管理选项
4.9 Allow local configuration override at the very end here
注意:
所有参数都必须括在单引号或双引号里. 多个条目间用空格格开
4.1 重要的启动时初始化选项
swapfile="NO"
# 设定交换文件的名字,如果希望使用辅助交换文件的话.
# Set to name of swapfile if aux swapfile desired.
apm_enable="NO"
如果希望激活APM(高级电源管理)设为YES
pccard_enable="NO"
要配置PCCARD设备的话设为YES.
pccard_mem="DEFAULT"
如果ccard_enable=YES, 这是卡的内存地址.
pccard_ifconfig="NO"
以太网pccard的特殊配置(否则 NO).
local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d"
本地启动目录.在启动期间,FreeBSD会搜索某些目录,并执行里面的任何
程序.有些象Windows里的"启动"文件夹.local_startup选项让你指定那
些目录在启动期间会被搜索.可以列多个目录,中间用空格格开.它们将按
顺序被搜索,每个文件都会被执行.这是除/etc/rc.local外另一个启动程
序的方法.
4.2. 网络配置子项
基本网络选项:
hostname="myname.my.domain"
这是你的主机名. 如果你连在Internet上的话还要包括域名.这个名字
也会出现在你的DNS表里.
nisdomainname="NO"
设定 NIS 域 如果使用 NIS (否则 NO).
firewall="NO"
防火墙类型 (参见 /etc/rc.firewall) 否则 NO.
tcp_extensions="YES"
# 允许 RFC1323 & RFC1544 扩展 (否则 NO).
network_interfaces="lo0"
这是你配置你的所有网卡的地方.每块网卡都要有一项.lo0
是环路(loopback)设备也称作"localhost".网卡,比如ed0
(NE2000)和fxp0(Intel Ether Express)在上面加入.
ifconfig_lo0="inet 127.0.0.1"
在这里配置你上面列出的每块网卡.
ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff"
通过lo0为localhost设置一个别名.
4.3. (其他)网络daemon & NFS选项:
syslogd_enable="YES"
Syslog 是你的登录服务.它把所有的错误记录在/var/log/.它用
/etc/syslog.conf来配置.
syslogd_flags=""
# syslogd 的命令参数 (如果被允许).
inetd_enable="YES"
这是你所有的网络服务. 如果它被禁止你将不能telnet到这台计算机
上. 它通过/etc/inetd.conf来配置. 它管理着所有动态服务, 也就是
说在需要时才会被启动的服务, 比如: finger, telnet,rlogin, ftp,
pop3 等等...
inetd_flags=""
# inetd 的参数.
named_enable="NO"
这将运行你的Internet域名服务, 或者说, BIND. 如果你已经有了一个
DNS你就不必把它打开了.它通过 /etc/namedb/named.boot来配置, 除非
你专门指定了另一个. 你将会有至少两个DNS servers.
named_flags="-b /etc/namedb/named.boot"
这是你指定给named的配置文件.
kerberos_server_enable="NO"
# 运行一个kerberos主服务程序 (否则 NO).
# Run a kerberos master server(or NO).
rwhod_enable="NO"
# 运行 rwho daemon (否则 NO).
amd_enable="NO"
# 以$amd_flags运行amd服务. (否则 NO).
amd_flags="-a /net -c 1800 -k i386 -d my.domain -l syslog /host /etc/amd.map"
例子
nfs_client_enable="NO"
# 这台主机是一台 NFS 客户机 (否则 NO).
nfs_client_flags="-n 4"
# nfsiod 的参数 (如果被允许).
nfs_server_enable="NO"
# 这台主机是一台 NFS 服务器 (否则 NO).
nfs_server_flags="-u -t 4"
# nfsd 的参数 (如果被允许).
weak_mountd_authentication="NO"
# 运行 PCNFSD / 其他 non-root nfsd (否则 NO).
nfs_reserved_port_only="NO"
# 仅在安全端口上提供NFS (否则 NO).
rpc_lockd_enable="NO"
# 运行 NFS rpc.lockd (*broken!*) 如果 nfs_server.
rpc_statd_enable="YES"
# 运行 NFS rpc.statd 如果 nfs_server (or NO).
portmap_enable="YES"
# 运行 portmapper 服务 (否则 NO).
portmap_flags=""
# portmap 的参数(如果被允许).
xtend_enable="NO"
# 运行 X-10 电源控制器 daemon.
xtend_flags=""
# xtend 的参数(如果被允许).
4.4. 网络时间服务选项:
timed_enable="NO"
运行时间 daemon (否则 NO).
timed_flags=""
timed 的参数(如果被允许).
ntpdate_enable="NO"
运行ntpdate 使时间同步 (or NO).
ntpdate_flags=""
ntpdate 的参数(如果被允许).
xntpd_enable="NO"
允许 xntpd 网络时间协议 (否则 NO).
xntpd_flags=""
xntpd 的参数(如果被允许).
tickadj_enable="NO"
运行 tickadj (否则 NO).
tickadj_flags="-Aq"
tickadj 的参数(如果被允许).
4.5. 网络信息服务(NIS)选项:
nis_client_enable="NO"
我们是一台NIS客户机 (否则 NO).
nis_client_flags=""
ypbind 的参数 (如果被允许).
nis_ypset_enable="NO"
在启动时运行ypset (否则 NO).
nis_ypset_flags=""
ypset 的参数(如果被允许).
nis_server_enable="NO"
这是一台NIS服务器 (否则 NO).
nis_server_flags=""
ypserv 的参数(如果被允许).
nis_ypxfrd_enable="NO"
启动时运行rpc.ypxfrd(否则 NO).
nis_ypxfrd_flags=""
rpc.ypxfrd 的参数(如果被允许).
nis_yppasswdd_enable="NO"
启动时运行rpc.yppasswdd(否则 NO).
nis_yppasswdd_flags=""
rpc.yppasswdd 的参数(如果被允许).
4.6. 网络路由选项:
defaultrouter="NO"
这里设置你的缺省网关.这是你连接Internet的路由器的IP地址.如果
你没有设置这项,你将仅能ping通同一子网内的地址.如果你的IP地址
是10.1.1.3,子网掩码是255.255.255.0,你将能看到10.1.1.2而不能
看到10.1.2.2,因为没有设置缺省的路由.
static_routes=""
静态路由是作为路由器位于两个不同网络间的机器的高级选项.
gateway_enable="NO"
如果你的机器要当作网关的话设成YES.如果你机器上有不只一块网卡并
把它们用作路由,网桥,ipnat或者当作拨号服务器时设定为YES.
router_enable="YES"
设置为 YES 以允许一个路由daemon.
router="routed"
如果被允许,这是路由daemon的名字.
router_flags="-q"
路由daemon的参数.
mrouted_enable="NO"
作 multicast routing (参见 /etc/mrouted.conf).
ipxgateway_enable="NO"
设成 YES 以允许 IPX 路由.
ipxrouted_enable="NO"
设成 YES 以运行 IPX 路由 daemon.
ipxrouted_flags=""
IPX 路由 daemon的参数.
arpproxy_all=""
替换已废除的核心选项 ARP_PROXY_ALL. 当作拨号服务器时需要.
4.7. 系统控制台选项
keymap="NO"
/usr/share/syscons/keymaps/* 里的keymap (否则 NO).
keyrate="NO"
设键盘速率为: slow, normal, fast (否则 NO).
FreeBSD完全新手指南[5-设置你的网络]
本章内容
第一部分: 设置你的网络
设置你的网络
1. 配置网络界面
2. TCP/IP 介绍
3. Inetd, "超级"服务程序
4. 文件传输协议
5. 电子邮件
6. POP3 电子邮件
7. Windows 文件共享: SAMBA
8. Web Servers
9. 设置一个域名服务器
10. 路由/网关
11. 防火墙
12. IP 网络地址转化
1. 配置网络界面
一个网络界面就是一个使你能同你的网络通信的设备. 这些设备可以是一个网卡,
或者一个调制解调器, 或是其他各种各样的使你能够通信的设备. 这些设备需要进
行配置以便使网络能够认出你是谁. 这些界面将用TCP/IP网络协议来配置. 通常在
/etc/rc.conf里配置, 或者/etc/sysconfig如果你用2.2.1或更老的版本.
2. TCP/IP 介绍
2.1 IP - Internet 协议
2.2 TCP - 传输控制协议
TCP/IP 是FreeBSD用来进行网络通信的协议. 当然, TCP/IP也是整个Internet
用来通信的协议, 这意味着FreeBSD也能用在Internet上. 本章试图给你一个
TCP/IP协议的概貌和在一个TCP/IP网络上配置你的FreeBSD机器所需要了解的内容.
在我们向你对TCP/IP作足够的介绍以使你能把它运行起来的同时, 如果你在维
护一个FreeBSD网络(或者任何类似的TCP/IP网络), 几乎可以肯定你还要对TCP/IP
协议有更多的了解. TCP/IP是一个大的足够用一整本书来描述的协议, 并且需要很
多人来完成! (恕我直言)有本很好的关于这个主题的书就是Craig Hunt所写的
<<TCP/IP Network Administration>;>;.由O'Reilly and Associates 出版. 这本书
有对TCP/IP的更具深度的描述并且覆盖了很多本书仅简单涉及的UNIX通用服务程序.
这本书在涉及配置文件等的时候会显得有些过时, 但你仍能领会出其中的概念. 如
果你对(TCP/IP)协议本身很感兴趣的话, Richard Stivens写了从理论开始一直到
实践知识的整整三卷书. <<TCP/IP Illustrated>;>;已由Addison Wesley出版.
注意:
虽然FreeBSD也可以使用Apple-talk和IPX/SPX(Novell)协议, 但这并
不是FreeBSD所使用的标准协议,所以我们将把注意力集中到FreeBSD使
用的TCP/IP上.在本书的应用程序部分将看到如何使FreeBSD成为Apple
和Novell 文件/打印服务器的替代品 - 我们在那里将讨论如何打开适
当的协议.
关于TCP/IP首先你需要知道的是它实际上是一族协议. 这一族协议使我们能把数据
从一台计算机传到另一台 -- 一个源头到一个目标 -- 而不知道数据在这段旅途上走
过的确切的路径.有三个重要的部分你需要了解: IP, TCP, 和 UDP.
2.1 IP - Internet 协议
本质上说, IP 产生包(packets). 什么是一个包? 一个包是一个小的数据"单元"
或"包".看下面的例子能使我们很容易理解包是什么, 和IP怎样来制造包. 假设你
有200k的数据要通过Internet传给你的朋友. 你可以把这个文件想成是一个数据
的"流" - 这个文件有一个开始,和一个顺序的字节集合(这里是200K个字节)一直到
文件的末尾. 任何这样的连续性的数据集合被称作"流",由于数据据有方向性. 识
别数据流最关键的是集合里的字节存在次序. IP 所做的就是把这些连续的数据流断
开成为离散的包("packets" 以使它们能够被独立发送. IP 把数据流切成一个个的包,
然后包装这些包以使它们适合在Internet上传送, 并且在包上标明源地址和目标地址.
2.2 TCP - 传输控制协议
有关IP刚才我所没有告诉你的是, 很古怪的说, IP 是不可靠的. IP 并不保证某
个包能到达目的地, 或者全部包到达后再按原来的顺序恢复成数据流. 这就是要有
TCP的原因. TCP 按正确的次序来还原包并且保证所有的包都到达目的地. 没有
TCP, IP几乎没有用! 我猜这就是为什么叫它们TCP/IP的原因!!
有一个次序号藏在每个包的地址信息里. IP 发送每个包出去的时候递增次序号,
而TCP用这些次序号把到达的包按正确的次序重新装配起来. TCP 也用次序号来判
断是否有包丢失. 如果某个包没有出现(不正确的路由,等等原因)TCP会向源地址
请求再发一次这个包. 并且将保持重试直到所有的包凑成一个数据流. 因此,TCP
使得TCP/IP包传送机制"可靠".
TCP还加入了IP所没有提供的另一层次上的功能: 端口. IP 地址标识出网络上的
每台计算机, 而TCP 端口号标识出每台计算机上提供的每种服务. 端口号使得你
能同时运行很多种服务, 并且有一种机制保证每个请求能得到正确的服务. Web
服务器也许是你最熟悉的一个例子. WWW服务程序通常运行在80端口上. IP地址
加端口号请求的标准形式是 IP:端口号 - 例如, 192.168.100:80 . TCP使我们
能够同时向同一IP地址的Web 服务程序和telnet 服务程序(端口23)发送包.
太棒了!根据记录, 端口号的范围是 0 - 65000. 所有小于1024的端口号是有限
制的,意味着只有root有权限开始一个监听端口号小于1024的服务程序. 所有大
于1024的则可被任何用户进程使用 - 不需要有root权限.
3. Inetd, "超级"服务程序
正如我们先前揭示的, 一个FreeBSD系统能同时运行很多程序 - 对于FreeBSD
网络服务程序来说也一样; 它将为你要提供的每一种服务运行一个程序. 问题是,
每个服务程序都会吃掉一大块内存 - 而内存总是宝贵的. 解决方案是在收到请求
后启动相应的服务, 而在发送完应答给产生请求的客户机后又终止它. 然而一个服
务怎么知道什么时候该醒来呢?
这就是有inetd的原因. 它叫做 Internet "超级服务程序" 因为它控制着很多一
台典型的UNIX主机上存在的服务程序. inetd 监视着所有到达服务器上的请求的端
口号. 当一个请求到达时, inetd 在/etc/services 里寻找服务的名字. 就象我们
能在下面看到的, services 文件是一个端口号和服务名称的简单映射:
(图略)
在inatd知道了要启动的服务的名字后, 它会在它的配置文件, /etc/inetd.conf
里查找配置信息,配置文件看起来象这样:
(图略)
该文件通常的格式是:
● 服务名称
● socket 类型
● 协议
● {wait|nowait}[/max-child]
● 用户
● 服务程序
● 服务程序参数
现在用一个具体的例子来说明它们分别代表什么.
telnet stream tcp nowait root /usr/libexec/telnetd telnetd
第一个字段,telnet,是服务的名称. 这个名字必须和/etc/services里找到
的名字精确匹配. 第二和第三个字段, stream tcp, 描述了该服务所产生的连接的类
型. 在这种情况下, tcp 将处理包的顺序以使下载的信息成为无差错的数据流. 本字
段另外仅有一个选项,dgram udp,指定用UDP,而不是TCP来处理包的顺序(TCP/IP 里所
谓的"不可靠"数据报(datagram)).
第四个字段,root,指定用来运行服务的用户ID. inetd所启动的大多数程序都以
"root"或"nobody"身份运行. 接下来的字段告诉inetd在哪能找到要运行的程序, 和
任何要求的参数(在这个telnet 的例子里, 没有任何参数).
注意:
通过inetd来运行程序的缺点是, 当一个服务被频繁的运行,可能一
秒一次,或甚至一秒数百次的时候用它(inatd)不是很有效率. 你会
问为什么? 通常用inatd来运行程序可以减小占用的内存数量, 但这
带来的惩罚是每当有请求到达的时候都必须"fork"程序. 简单的说,
"fork" 意味着inetd要为服务启动新的进程. 我们不打算详细讨论
fork一个进程所需要的额外开销的技术细节. 而只是说会有一个额
外的开销, 而在一个繁忙的系统上这足以导致一个可观的延迟. 因
此一些服务以"deamons"形式而非"inetd"运行. 你决定如何运行一个
服务程序完全取决于你认为它的重要性. 如果性能是决定因素,使程
序成为一个daemon(即常驻内存). 如果想减少内存的开销,则通过inetd
运行程序. 典型的, FTP,finger,talk,POP3,和telnetd通过inetd服
务程序来运行,但web servers 和邮件发送server(通常是sendmail)
是daemons.象NCSA和Apache之类的web Server甚至会事先"pre-forking"
几份拷贝以消除请求的数量很多时forking产生的额外开销! 如果你
安装了一种新的服务, 附带的文档通常会告诉你最有效使用它的方法.
4. 文件传输协议
Not yet Scheduled
5. 电子邮件
Not yet Scheduled
6. POP3 电子邮件
Not yet Scheduled
7. Windows 文件共享:SAMBA
如果你用ports来安装,则它把所有东西都装在/usr/lcoal/samba/二进制文件放
在bin目录里. 配置文件位于lib/smb.conf
如果是用package,它会把东西装到/usr/local/sbin配置文件在
/usr/lcoal/etc/smb.conf. 要想知道如何创建smb.conf配置文件可以读smb.conf
的man page. 这份关于smb.conf的文档写的很好也很全面. 你有可能会放到配置
文件里的每样东西都包含在man page里了.要读它,只需输入:
man smb.conf
使用testparm来检查你的配置文件. testparm 也会告诉你缺省的配置文件在
哪里.
不管你是如何安装samba的, 你需要修改你的/etc/rc.local文件以使Samba在
系统启动时启动. 在你的rc.local里加入这两行:
/usr/lcoal/sbin/smbd -D
/usr/local/sbin/nmbd -D
8. Web Servers
Not yet Scheduled
9. 设置一个域名服务器
首先你要有一个有效的域名. 你需要在你注册域名的地方给出你的主域名
服务器的IP地址. INTERNIC或你上一级的DNS会把这些做好的.
如果你设置一个子域名, 你需要在你的域上建立一个映射指向那个域的主
域名服务器.
首先:
在/etc/sysconfig文件,或者是新的/etc/rc.conf,加入一行:
namedflags="-b /etc/namedb.named.boot"
这将在系统启动时启动名字服务的Daemon, 并让它把/etc/namedb/named.boot
作为配置文件.
现在进入/etc/namedb/目录,然后输入:
sh make-localhost
这将在目录里创建localhost.rev文件. 所有的本地传输都需要这个文件.
现在创建或编辑named.boot文件
++++++++++++++NAMED.BOOT EXAMPLE ++++++++++++++++++++
;semi colons comment out statments.
; sortlist 128.3.0.0
; The sort list gives higher priority to certain domains in the case
;of multi-homed hosts.
directory /etc/namedb
; this denotes the directory that named should look to find all of the
; source files.
; type domain source host/file backup file
cache . named.root
; named keeps a cache of recently looked up hostname in the file mentioned.
primary 0.0.127.IN-ADDR.ARPA localhost.rev
; this is the local host entry needs to be there. Usually automatic.
primary Berkeley.EDU your.domain.zone
primary 32.128.IN-ADDR.ARPA your.domain.rev
; These lines are a pair. They represent the primary domain you control
; The first one is your domain and the second is the reverse lookup table.
; You need to have each DNS entry entered in to both files.
; You will need a pair of primary lines for each primary domain that
; you administer.
secondary Berkeley.EDU 128.32.130.11 128.32.133.1 ucbhosts.bak
secondary 32.128.IN-ADDR.ARPA 128.32.130.11 128.32.133.1 ucbhosts.rev.bak
; These lines are a pair also. They represent the domains that you are
; interested in knowing about if their DNS goes down. Or you may just be
; the back up DNS for them.
; Instead of source files, you specify the host that is the primary DNS
; for that domain. You must also specify that filename that named will
; store the temporary table in.
; You need a pair of these lines for each of the Domains that you are
; a secondary DNS for.
++++++++++++++++++++++End Example Named.boot File++++++++++++++++++
如果你有域"my.domain.com", IP地址的范围是10.20.40 - 10.20.40.255,并且
需要一个主域名服务器,你可以在named.boot文件里加入这几行:
primary my.domain.com my.domain.com.zone
primary 40.20.10.IN-ADDR.ARPA my.domain.com.rev
现在需要制造primary source文件. 创建一个名为/etc/named/your.domain.zone
的文件(替换成你实际的域名). 它必须和named.boot里的primary段指定的文件名
匹配.
这是一个这样的文件的例子:
IN soa bbcc.ctc.edu. root.bbcc.ctc.edu. (
28 ;serial
10800 ;refresh every 3 hours
900 ;retry every 15 minutes
604800 ;expire after a week
86400 ;minimum of a day
)
IN NS bbcc.ctc.edu.
IN NS ctc.ctc.edu.
IN NS bb.cc.wa.us.
bbcc.ctc.edu. IN A 134.39.180.254
mail IN CNAME bbcc.ctc.edu.
www IN CNAME bbcc.ctc.edu.
irc IN CNAME bbcc.ctc.edu.
bigbend.ctc.edu. IN CNAME bbcc.ctc.edu.
athena IN A 134.39.180.5
IN HINFO intel 586-133 winnt
proto IN A 134.39.180.6
aries IN CNAME bb.cc.wa.us.
sal IN A 134.39.180.8
dialup3 IN A 134.39.180.252
;end of file.
5)现在要产生主反向解析(primary reverse lookup)文件. 创建一个叫
/etc/named/your.domain.rev的文件.(替换成你实际的域名)
它必须和named.boot里的primary段指定的文件名匹配. 这是一个例子:
IN soa bbcc.ctc.edu. root.bbcc.ctc.edu. (
28 ;serial
10800 ;refresh every 3 hours
900 ;retry every 15 minutes
604800 ;expire after a week
86400 ;minimum of a day
)
8 IN PTR sal.bbcc.ctc.edu.
252 IN PTR dialup.bbcc.ctc.edu.
10. 路由/网关
Not yet Scheduled
11. 防火墙
Not yet Scheduled
12. IP 网络地址转化
12.1. 1)装入核心模块
12.2. 2)设置NAT规则
12.3. 3)装入NAT规则
12.4. 4)在网络界面间允许路由
12.5. 5)到子网的静态路由
12.6. 6)确定你的网络界面已被配置
在装完IpFilter后,你需要改动这三个文件:
/etc/rc.local
/etc/sysconfig
/etc/natrules
这是在FreeBSD 2.1.6-RELEASE上用ipfilter 3.1.4的测试.
12.1. 1)装入核心模块
如果你使用可装入的核心模块你必须编辑/etc/rc.local文件以使模块在
启动时被装入.
用这一行: modload /lkm/if_ipl.o
如果没有使用,跳过此步.
12.2. 2)设置NAT规则
产生一个叫/etc/natrules的文件并放入你的系统所需要的规则. 如果你要
使用整个10网络:
map fxp0 10.0.0.0/8 ->; 208.8.0.1/32 portmap tcp/udp 10000:65000
下面是命令每一部分的解释:
map 开始命令.
fxp0 是真实internet地址的界面
10.0.0.0 是要使用的子网
/8 子网掩码, 就是 255.0.0.0
208.8.0.1 所使用的真实IP地址
/32 子网掩码255.255.255.255, 仅使用此IP地址
portmap tcp/udp 10000:65000
整个网络都用此端口号来重定向tcp/udp调用.
12.3. 3)装入NAT规则
每次计算机重新启动时NAT规则都必须被装入. 在你的/etc/rc.local文件里
放入这行: ipnat -f /etc/natrules
要检查它是否已装入,以root身份运行: ipnat -ls
12.4. 4)在网络界面间允许路由
告诉核心路由这些地址. 在/etc/rc.conf里加入:
Gateway=YES
或者在/etc/rc.local里加入:
sysctl -w net.inet.ip.forwarding=1
12.5. 5)到子网的静态路由
现在要给子网加入静态路由.编辑你的/etc/rc.conf, 在一个旧一些的系统
上是/etc/sysconfig.
static_routes="foo" route_foo="10.0.0.0 -netmask 0xf0000000 -interface 10.0.0.1"
12.6. 6)确定你的网络界面已被配置
我有两块Intel Ether Express Pro B网卡. 一块是208.8.0.1另一块是10.0.0.1
你需要在/etc/sysconfig里作如下配置:
network_interfaces="fxp0 fxp1"
ifconfig_fxp0="inet 208.8.0.1 netmask 255.255.255.0"
ifconfig_fxp1="inet 10.0.0.1 netmask 255.0.0.0"
注意:
当一台客户机在虚拟网络上使用ftp时,要用passive模式.
否则在取目录列表时会超时.
freebsd完全新手指南[X配置]
各位大虾,对不起了,该部分还是有一些没有翻完,我会抽时间出来把它翻完的,如
果各位大虾等不及的话,可以把没翻的部分做完,不过记得跟我说一声,以免重复劳
动嘛.下面是把前面两部分合并起来,再加了一部分进去:
如何架设X Window System.
FreeBSD完全初学者手册
本章取自``The Comprehensive FreeBSD Guide(TM)''的一小部分,
本书在Chris Coleman和Mark Mayo的努力下在进上步完成中.而本节
旨在指导人们通晓X Window System 的安装和定制.如有任何特别的
系统要求和配置,请垂询fbsd-book@vmunix.com
内容:
1. 安装X binaries
2. X的硬件配置
3. 开始X
4. 选择一个X 窗口管理者(X window manager)
5. X的提示与技巧
1. X Window System 是运行在UNIX上的图形用户界面.在你可得到的
X Window System中是有许多区别的,然而,XFree86是免费的. XFree96
是从FreeBSD计划中分离出来的一个自愿计划,但也包含在FreeBSD的光
碟中.你可在http://www.xfree86.org. 取得更详细的信息,这里提到的
X或X Window System 指的是XFree86. 要是想获得FreeBSD 的商业版的
X Window Systems 可以去www.xig.com. 看看.
在一个标准的FreeBSD的安装过程中,你也可同时安装X Window System,
或是在系统已建立并运行后再来安装X Window System. 在FreeBSD安装
中,X是被包含在若干个Distribution Sets 中的.
它们包括
X User
X Developer
Everything
如你已安装了以上之一,那么X就已经在你的硬盘上了,你可以跳过下面的
内容而直接开始配置.
在Custom安装模式中,你可将X Window System的安装作为普通安装的一部
分来进行.若你没有安装包含了X Window System的Distribution Set的话,
在post-install的配置菜单中你还有第二次机会来安装它.在post配置菜
单中,选择Distributions 再选
X Window Distribution就行了.
如果你的系统已经运行,你可从ports collection中安装.你要以root的身份
来做这事:
cd /usr/ports/x11/XFree86
然后再打:
make install
你也可从FTP站点上把源代码当下来,并编译安装.此过程所需的时间,依赖于
你的机子的速度.
2.X的硬件配置
2.1 xf86config
2.2 XF86Setup
在为你的硬件配置X前,你需先了解你的硬件.有三件事你绝对要弄明白(或者最
低限度你要猜准):
鼠标的类型和它接在哪个端口上(是 PS/2 还是在串口COM1上)
你的显卡的牌子(可是要被支持的牌子哦)
你的显示器的水平和垂直刷新率.(可在显示器手册中找到)
如果你清楚了以上三样东西的话,那么配置X就是非常容易的了。剩下的只是
个人品味和地理上的语言环境问题了。当你已经有了这些数据之后,你可以用
文本式配置程序(xf86config)或图形式配置程序(XF86Setup)来进行配置。
用了其中一个来配置,就不必再用另一个了。
2.1 xf86config
xf86config放在/usr/X11R6/bin/中。如果在那里还找不到这个配置工具的话,
你也可以直接打xf86config来启动。否则,你就打/usr/X11R6/bin/xf86config
吧。你要以root的身份来做。
进入以后,第一件事就是会问你的鼠标类型是哪种:
先指定一个鼠标类型。可从以下的列表中选择:
1. Microsoft compatible (2-button protocol)
2. Mouse Systems (3-button protocol)
3. Bus Mouse
4. PS/2 Mouse
5. Logitech Mouse (serial, old type, Logitech protocol)
6. Logitech MouseMan (Microsoft compatible)
7. MM Series
8. MM HitTablet
9. Microsoft IntelliMouse
从1-9中选择你的鼠标类型。如果你选择了一个三键鼠标的话,程序会问
你是否要启用中键,它叫做ChordMiddle:
请用y或n来问答下面这个的问题:
Do you want to enable ChordMiddle?
如果你键入n,接下来程序就会问你是否要仿真中键。你可以同时按下
左右两个键来仿真中键,X会当成你有下了中键了。
请用y或n来问答下面这个的问题:
Do you want to enable Emulate3Buttons?
接下来程序会问你的鼠标接在哪一个端口上。
现在程序会给出一个鼠标联结的设备名,例如/dev/tty00。你跟着按enter就行了
,
程序会用默认值:/dev/mouse。
鼠标设备:
鼠标通常是联在com1,com2或者PS/2端口上的。
/dev/ttyd0 (COM1)
/dev/ttyd1 (COM2)
/dev/psm0 (PS/2 Port)
接下来,程序会问你是否要重新设置你的键盘布局,别理它,跟着按enter就行了
。
请按y或n来回答下面的问题:
Do you want to use XKB?
这是问你要不要特殊的语言支持,如果你只是说英语的话,跟着按enter就行了。
如果你要输入特殊的语言符号,即要在X中输入非ACSII字符的话,你可将左Alt键
设为Meta,右Alt键设为ModeShift。
请按y或n来回答下面的问题:
Do you want to enable these bindings for the Alt keys?
这些是在你的显示器手册中的水平刷新率。如果你不知道你的显示器的刷新率的
话,
选择#2是相当安全的。不要选择比你的显示器的最高刷新率还要高的设置。否则
有
可能会对一些老显示器造成伤害。
刷新率用kHz做单位,用典型的模式来表示显示器类型
1 31.5; Standard VGA, 640x480 @ 60 Hz
2 31.5 - 35.1; Super VGA, 800x600 @ 56 Hz
3 31.5, 35.5; 8514 Compatible, 1024x768 @ 87 Hz interlaced (no 800x6
00)
4 31.5, 35.15, 35.5; Super VGA, 1024x768 @ 87 Hz interlaced,
800x600 @ 56 Hz
5 31.5 - 37.9; Extended Super VGA, 800x600 @ 60 Hz, 640x480 @ 72 Hz
6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @ 60 Hz, 800x600 @ 72 H
z
7 31.5 - 57.0; High Frequency SVGA, 1024x768 @ 70 Hz
8 31.5 - 64.3; Monitor that can do 1280x1024 @ 60 Hz
9 31.5 - 79.0; Monitor that can do 1280x1024 @ 74 Hz
10 31.5 - 82.0; Monitor that can do 1280x1024 @ 76 Hz
11 Enter your own horizontal sync range
输入你的选择(1-11):
你还要输入显示器的垂直刷新率。同样,#2是一个普通的SVGA设置。
1 50-70
2 50-90
3 50-100
4 40-150
5 Enter your own vertical sync range
输入你的选择吧。
下面这个问题用y来回答,它会在显卡数据库中搜索你的显卡。
Do you want to look at the card database?
下面这个列表中,左边是卡的名字,右边是卡的芯片
0 2 the Max MAXColor S3 Trio64V+ S3 Trio64V+
1 928Movie S3 928
2 AGX (generic) AGX-014/15/16
3 ALG-5434(E) CL-GD5434
4 ASUS PCI-AV264CT ATI-Mach64
5 ASUS PCI-V264CT ATI-Mach64
6 ASUS Video Magic PCI V864 S3 864
7 ASUS Video Magic PCI VT64 S3 Trio64
8 ATI 3D Pro Turbo ATI-Mach64
9 ATI 3D Xpression ATI-Mach64
10 ATI 3D Xpression+ PC2TV ATI-Mach64
11 ATI 8514 Ultra (no VGA) ATI-Mach8
12 ATI All-in-Wonder ATI-Mach64
13 ATI Graphics Pro Turbo ATI-Mach64
14 ATI Graphics Pro Turbo 1600 ATI-Mach64
15 ATI Graphics Ultra ATI-Mach8
16 ATI Graphics Ultra Pro ATI-Mach32
17 ATI Graphics Xpression with 68875 RAMDAC ATI-Mach64
输入号码来选择相应的显卡。
按enter翻到下一页,按q就可继续配置下一步了。
在接下来的部分中,你可以把X server当成是“显卡的驱动程序”。在显卡数据
库
定义中推荐的驱动程序总是会工作得较好的。无论如何,如果你的显卡不在显卡
数
据库中的话,你可以选择#5,它包容了在显卡定义中推荐的X server。
1. The XF86_Mono server。这是一个单色server,它可以工作在任何VGA兼容卡
上。
使用640*480的分辨率(甚至可以工作在一些SVGA芯片上)。
2.The XF86_VGA16 server。这是一个16色VGA server。它可以工作在任何VGA兼
容
卡上。
3. The XF86_SVGA server。这是一个256色SVGA server。它支持许多SVGA芯片。
在某些芯片上,它还可支持加速或者更高的色深。
4. The accelerated servers。它包括XF86_S3, XF86_Mach32, XF86_Mach8,
XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64, XF86_I128 和
XF86_S3V。
以上这四种server类型对应于在XF86Config中四个不同的“屏幕”设置部分(vg
a2,
vga16,svga,accel)。
5.从显卡定义中选择server,XF86_S3。
(未守待续)
4. 选择一个窗口管理者
4.1. twm
4.2. fvwm
4.3. fvwm95
4.4. enlightenment
4.5. windowmaker
4.6. kde
在运行X之前,你先要选用一个Window Manager。如果你不选一个窗口管理者的话
,
twm会默认式地自动打开。你要在.xinitrc或者.xsession文件中选择你所要用的
Window Manger.如果它不存在的话,你就要建一个。
下面是我的.xinitrc文件的拷贝:
setenv KDEDIR /usr/local
startkde
#color_xterm -geometry 80x24+0+0 &
#color_xterm -geometry 80x23+-1+341 &
#color_xterm -geometry 85x24+492+1 -ls &
#fvwm95
#fvwm
#enlightenment
这里我已经选择了kde作为我的窗口管理者了,我有三个窗口管理者的注释行。你
可以每次只指定一个窗口管理者。(译者注:此处好像对.xinitrc和.xsession两
个
文件的设定好像说的还不是很清楚,请各位大虾对此节做一个补充吧。)
4.1. twm
此窗口管理者是缺省设置。它的界面并不友好并且不支持虚拟桌面。
4.2. fvwm
fvwm 有良好的虚拟桌面,看起来像是Windows 3.1的感觉。现在的Novell 5就是
用
fvwm的一个版本来作为它的服务控制台的窗口管理者。在fvwm安装之后,你要把
fvwm加入你的.xinitrc或者.xsession文件。
4.3. fvwm95
看起来像是一个带着fvwm所有工具栏的Windows 95。非常稳定,并有优秀的虚拟
桌面。
它需要自己的配置文件:fvwm95rc。
4.4. enlightenment
一个真正cool的桌面外观。支持插入桌面主题,例如像“aliens"。支持四个虚拟
桌面。
4.5. windowmaker
允许你按自己的要求来创建和删除虚拟桌面。
4.6. kde
Kde是一个完善的桌面环境。它自带许多工具和程序。Kde在新的用户群中正变得
越来越
流行。在ports collection已经安装了的前提下,才能安装kde。现在只有一种办
法来
安装kde。
cd /usr/ports/x11/kde make install
5. X的提示和技巧
ctrl + alt + backspace
关闭 X并退到shell。
ctrl + alt + keypad plus
以列表中的顺序来改变屏幕的设定。
ctrl + alt + keypad minus
改在列表中前一个屏幕设定。
ctrl + alt + F1
跳出X到ttyv0
alt + F4
从tty's跳回X(如果X是在ttyv4上) |
|