最近在测FREEBSD平台下ISP邮件系统前的准备知识摘录
很多人想优化自己的FreeBSD,特别是在网络性能以及内核调整上,因为这些是最直接的优化方式。在这里我收集整理并用中文注释了一下,相信很多人用得到。
CODE
#最大的待发送TCP数据缓冲区空间
net.inet.tcp.sendspace=65536
#最大的接受TCP缓冲区空间
net.inet.tcp.recvspace=65536
#最大的接受UDP缓冲区大小
net.inet.udp.sendspace=65535
#最大的发送UDP数据缓冲区大小
net.inet.udp.maxdgram=65535
#本地套接字连接的数据发送空间
net.local.stream.sendspace=65535
#加快网络性能的协议
net.inet.tcp.rfc1323=1
net.inet.tcp.rfc1644=1
net.inet.tcp.rfc3042=1
net.inet.tcp.rfc3390=1
#最大的套接字缓冲区
kern.ipc.maxsockbuf=2097152
#系统中允许的最多文件数量
kern.maxfiles=65536
#每个进程能够同时打开的最大文件数量
kern.maxfilesperproc=32768
#当一台计算机发起TCP连接请求时,系统会回应ACK应答数据包。
#该选项设置是否延迟ACK应答数据包,把它和包含数据的数据包一起发送,
#在高速网络和低负载的情况下会略微提高性能,但在网络连接较差的时候,
#对方计算机得不到应答会持续发起连接请求,反而会降低性能。
net.inet.tcp.delayed_ack=0
#屏蔽ICMP重定向功能
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0
#防止ICMP广播风暴
net.inet.icmp.bmcastecho=0
net.inet.icmp.maskrepl=0
#限制系统发送ICMP速率
net.inet.icmp.icmplim=100
#安全参数,编译内核的时候加了options TCP_DROP_SYNFIN才可以用
net.inet.icmp.icmplim_output=0
net.inet.tcp.drop_synfin=1
#设置为1会帮助系统清除没有正常断开的TCP连接,这增加了一些网络带宽的使用,但是一些死掉的连接最终能被识别并清除。死的TCP连接是被拨号用户存取的系统的一个特别的问题,因为用户经常断开modem而不正确的关闭活动的连接
net.inet.tcp.always_keepalive=1
#若看到net.inet.ip.intr_queue_drops这个在增加,就要调大net.inet.ip.intr_queue_maxlen,为0最好
net.inet.ip.intr_queue_maxlen=1000
#防止DOS***,默认为30000
net.inet.tcp.msl=7500
#接收到一个已经关闭的端口发来的所有包,直接drop,如果设置为1则是只针对TCP包
net.inet.tcp.blackhole=2
#接收到一个已经关闭的端口发来的所有UDP包直接drop
net.inet.udp.blackhole=1
#为网络数据连接时提供缓冲
net.inet.tcp.inflight.enable=1
#如果打开的话每个目标地址一次转发成功以后它的数据都将被记录进路由表和arp数据表,节约路由的计算时间,但会需要大量的内核内存空间来保存路由表
net.inet.ip.fastforwarding=0
##kernel编译打开options POLLING功能,高负载情况下使用低负载不推荐
##SMP不能和polling一起用
#kern.polling.enable=1
#并发连接数,默认为128,推荐在1024-4096之间,数字越大占用内存也越大
kern.ipc.somaxconn=32768
#禁止用户查看其他用户的进程
security.bsd.see_other_uids=0
#设置kernel安全级别
kern.securelevel=0
#记录下任何TCP连接
net.inet.tcp.log_in_vain=1
#记录下任何UDP连接
net.inet.udp.log_in_vain=1
#防止不正确的udp包的***
net.inet.udp.checksum=1
#防止DOS***
net.inet.tcp.syncookies=1
#仅为线程提供物理内存支持,需要256兆以上内存
kern.ipc.shm_use_phys=1
# 线程可使用的最大共享内存
kern.ipc.shmmax=67108864
# 最大线程数量
kern.ipc.shmall=32768
# 程序崩溃时不记录
kern.coredump=0
# lo本地数据流接收和发送空间
net.local.stream.recvspace=65536
net.local.dgram.maxdgram=16384
net.local.dgram.recvspace=65536
# 数据包数据段大小,ADSL为1452。
net.inet.tcp.mssdflt=1460
# 为网络数据连接时提供缓冲
net.inet.tcp.inflight_enable=1
# 数据包数据段最小值,ADSL为1452
net.inet.tcp.minmss=1460
# 本地数据最大数量
net.inet.raw.maxdgram=65536
# 本地数据流接收空间
net.inet.raw.recvspace=65536
#ipfw防火墙动态规则数量,默认为4096,增大该值可以防止某些病毒发送大量TCP连接,导致不能建立正常连接
net.inet.ip.fw.dyn_max=65535
#设置ipf防火墙TCP连接空闲保留时间,默认8640000(120小时)
net.inet.ipf.fr_tcpidletimeout=864000
2.选择键盘‘USA ISO’
3.开始安装选择‘Standard’进行标准安装
4.磁盘建立 slice选择‘a’自动将所有空间分配给FB使用
5.多重引导管理程序选择'Custom'
6.规划 label
/ 1024m
swap 1024m
/var 3072m
/tmp 1024m
/home 3072m
/usr
7.选择安装的软件包
Custom-----ports、man
Custom-----src----base、sys
8.选择安装使用的媒体‘CD/DVD’
#
# GENERIC -- Generic kernel configuration file for FreeBSD/i386 # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # [url]http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html[/url] # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # FreeBSD World Wide Web server ([url]http://www.FreeBSD.org/[/url]) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ../../conf/NOTES and NOTES files. # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.429.2.14 2007/03/27 02:33:00 yongari Exp $ machine i386 # To statically compile in device wiring instead of /boot/device.hints makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols options SCHED_4BSD # 4BSD scheduler device apic # I/O APIC # Bus support. # Floppy drives # ATA and ATAPI devices # SCSI Controllers #device adv # Advansys SCSI adapters #device ncv # NCR 53C500 # SCSI peripherals # RAID controllers interfaced to the SCSI subsystem # RAID controllers # atkbdc0 controls both the keyboard and the PS/2 mouse device kbdmux # keyboard multiplexer device vga # VGA video card driver #device splash # Splash screen and screen saver support # syscons is the default console driver, resembling an SCO console # Enable this for the pcvt (VT220 compatible) console driver device agp # support several AGP chipsets # Power management support (see NOTES for more options) # PCCARD (PCMCIA) support # Serial (COM) ports # Parallel port # If you've got a "dumb" serial or parallel PCI card that is # PCI Ethernet NICs. # PCI Ethernet NICs that use the common MII bus controller code. # ISA Ethernet NICs. pccard NICs included. # Wireless NIC cards # Pseudo devices. # The `bpf' device enables the Berkeley Packet Filter. # USB support # FireWire support device pf options ALTQ |
# cd /usr/src/sys/i386/conf# mkdir /root/kernels# cp GENERIC /root/kernels/# ln -s /root/kernels/
注意: 如果您需要一份包含所有选项的文件, 例如用于测试目的, 则应以 root 身份执行下列命令:# cd /usr/src/sys/i386/conf && make LINT
machine i386
cpu I486_CPUcpu I586_CPUcpu I686_CPU
ident
#To statically compile in device wiring instead of /boot/device.hints#hints "GENERIC.hints" # Default places to look for devices.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
-g
选项时, 由于此选项将传递给 gcc(1) 表示加入调试信息, 因此会将调试符号也包含进来。 如果您使用 “旧式的” 方法来联编内核, 通过使用 config(8) 的 -g
选项, 也可以达到类似的目的。 (参见 第 8.3 节 了解进一步的信息)。
options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS Soft Updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Clientoptions NFSSERVER # Network Filesystem Serveroptions NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
注意: ipcs(1) 命令的-p
选项可以显示出任何用到这些 System V 机制的进程。
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver.options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
device apic # I/O APIC
device eisa
device pci
# Floppy drivesdevice fdc
# ATA and ATAPI devicesdevice ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
options ATA_STATIC_ID # Static device numbering
# SCSI Controllersdevice ahb # EISA AHA1742 familydevice ahc # AHA2940 and onboard AIC7xxx devicesdevice ahd # AHA39320/29320 and onboard AIC79xx devicesdevice amd # AMD 53C974 (Teckram DC-390(T))device isp # Qlogic family#device ispfw # Firmware for QLogic HBAs- normally a moduledevice mpt # LSI-Logic MPT-Fusion#device ncr # NCR/Symbios Logicdevice sym # NCR/Symbios Logic (newer chipsets)device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adaptersdevice adw # Advansys wide SCSI adaptersdevice aha # Adaptec 154x SCSI adaptersdevice aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500device nsp # Workbit Ninja SCSI-3device stg # TMC 18C30/18C50
# SCSI peripheralsdevice scbus # SCSI bus (required for SCSI)device ch # SCSI media changersdevice da # Direct Access (disks)device sa # Sequential Access (tape etc)device cd # CDdevice pass # Passthrough device (direct SCSI access)device ses # SCSI Environmental Services (and SAF-TE)
注意: 目前系统提供的 USB umass(4) 以及少量其它驱动使用了 SCSI 子系统, 尽管它们并不是真的 SCSI 设备。 因此, 如果在内核配置使用了这类驱动程序, 请务必不要删除 SCSI 支持。
# RAID controllers interfaced to the SCSI subsystemdevice amr # AMI MegaRAIDdevice arcmsr # Areca SATA II RAIDdevice asr # DPT SmartRAID V, VI and Adaptec SCSI RAIDdevice ciss # Compaq Smart RAID 5*device dpt # DPT Smartcache III, IV - See NOTES for optionsdevice hptmv # Highpoint RocketRAID 182xdevice rr232x # Highpoint RocketRAID 232xdevice iir # Intel Integrated RAIDdevice ips # IBM (Adaptec) ServeRAIDdevice mly # Mylex AcceleRAID/eXtremeRAIDdevice twa # 3ware 9000 series PATA/SATA RAID # RAID controllersdevice aac # Adaptec FSA RAIDdevice aacp # SCSI passthrough for aac (requires CAM)device ida # Compaq Smart RAIDdevice mfi # LSI MegaRAID SASdevice mlx # Mylex DAC960 familydevice pst # Promise Supertrak SX6000device twe # 3ware ATA RAID
# atkbdc0 controls both the keyboard and the PS/2 mousedevice atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse
device kbdmux # keyboard multiplexer
device vga # VGA video card driver
device splash # Splash screen and screen saver support
# syscons is the default console driver, resembling an SCO consoledevice sc
# Enable this for the pcvt (VT220 compatible) console driver#device vt#options XSERVER # support for X server on a vt console#options FAT_CURSOR # start with block cursor
device agp
# 电源管理支持 (参见 NOTES 了解更多选项)#device apm
# 增加 i8254 的 挂起/恢复 支持。device pmtimer
# PCCARD (PCMCIA) support# PCMCIA and cardbus bridge supportdevice cbb # cardbus (yenta) bridgedevice pccard # PC Card (16-bit) busdevice cardbus # CardBus (32-bit) bus
# Serial (COM) portsdevice sio # 8250, 16[45]50 based serial ports
注意: 如果使用内置式的调制解调器, 并占用 COM4 而您另有一个串口在 COM2, 则必须把调制解调器的 IRQ 改为 2 (由于晦涩的技术原因, IRQ2 = IRQ 9) 才能够在 FreeBSD 中访问它。 如果有多口的串口卡, 请参考 sio(4) 以了解需要在 /boot/device.hints 中进行的设置。 某些显卡 (特别是基于 S3 芯片的卡) 使用形如 0x*2e8 的 IO 地址, 而许多廉价的串口卡不能够正确地对 16-位 IO 地址空间进行解码, 因此它们会产生冲突, 并造成 COM4 实际上无法使用。每一个串口都需要有一个唯一的 IRQ (除非您使用支持中断分享的串口卡), 因此默认的 COM3 和 COM4 IRQ 是不能使用的。
# Parallel portdevice ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
注意: 要使用并口打印机,就必须同时加入上面三行设置。
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da
#device puc
# PCI Ethernet NICs.device de # DEC/Intel DC21x4x (“Tulip”)device em # Intel PRO/1000 adapter Gigabit Ethernet Carddevice ixgb # Intel PRO/10GbE Ethernet Carddevice txp # 3Com 3cR990 (“Typhoon”)device vx # 3Com 3c590, 3c595 (“Vortex”)
# PCI Ethernet NICs that use the common MII bus controller code.# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!device miibus # MII bus support
device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernetdevice bfe # Broadcom BCM440x 10/100 Ethernetdevice bge # Broadcom BCM570xx Gigabit Ethernetdevice dc # DEC/Intel 21143 and various workalikesdevice fxp # Intel EtherExpress PRO/100B (82557, 82558)device lge # Level 1 LXT1001 gigabit ethernetdevice nge # NatSemi DP83820 gigabit ethernetdevice nve # nVidia nForce MCP on-board Ethernet Networkingdevice pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')device re # RealTek 8139C+/8169/8169S/8110Sdevice rl # RealTek 8129/8139device sf # Adaptec AIC-6915 (“Starfire”)device sis # Silicon Integrated Systems SiS 900/SiS 7016device sk # SysKonnect SK-984x & SK-982x gigabit Ethernetdevice ste # Sundance ST201 (D-Link DFE-550TX)device ti # Alteon Networks Tigon I/II gigabit Ethernetdevice tl # Texas Instruments ThunderLANdevice tx # SMC EtherPower II (83c170 “EPIC”)device vge # VIA VT612x gigabit ethernetdevice vr # VIA Rhine, Rhine IIdevice wb # Winbond W89C840Fdevice xl # 3Com 3c90x (“Boomerang”, “Cyclone”)
# ISA Ethernet NICs. pccard NICs included.device cs # Crystal Semiconductor CS89x0 NIC# 'device ed' requires 'device miibus'device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cardsdevice ex # Intel EtherExpress Pro/10 and Pro/10+device ep # Etherlink III based cardsdevice fe # Fujitsu MB8696x based cardsdevice ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.device lnc # NE2100, NE32-VL Lance Ethernet cardsdevice sn # SMC's 9000 series of Ethernet chipsdevice xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims#device le
# Wireless NIC cardsdevice wlan # 802.11 supportdevice an # Aironet 4500/4800 802.11 wireless NICs.device awi # BayStack 660 and othersdevice ral # Ralink Technology RT2500 wireless NICs.device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.#device wl # Older non 802.11 Wavelan wireless NIC.
# Pseudo devicesdevice loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device sl # Kernel SLIP
device ppp # Kernel PPP
device tun # Packet tunnel.
device pty # Pseudo-ttys (telnet etc)
device md # Memory “disks”
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
# The `bpf' device enables the Berkeley Packet Filter.# Be aware of the administrative consequences of enabling this!# Note that 'bpf' is required for DHCP.device bpf # Berkeley packet filter
注意: bpf(4) 设备也被用于 dhclient(8) 来获取默认路由器(网关)的 IP 地址。如果使用DHCP,就不要注释掉这行。
# USB supportdevice uhci # UHCI PCI->USB interfacedevice ohci # OHCI PCI->USB interface#device ehci # EHCI PCI->USB interface (USB 2.0)device usb # USB Bus (required)#device udbp # USB Double Bulk Pipe devicesdevice ugen # Genericdevice uhid # “Human Interface Devices”device ukbd # Keyboarddevice ulpt # Printerdevice umass # Disks/Mass storage - Requires scbus and dadevice ums # Mousedevice urio # Diamond Rio 500 MP3 playerdevice uscanner # Scanners# USB Ethernet, requires miidevice aue # ADMtek USB Ethernetdevice axe # ASIX Electronics USB Ethernetdevice cdce # Generic USB over Ethernetdevice cue # CATC USB Ethernetdevice kue # Kawasaki LSI USB Ethernetdevice rue # RealTek RTL8150 USB Ethernet
# FireWire supportdevice firewire # FireWire bus codedevice sbp # SCSI over FireWire (Requires scbus and da)device fwe # Ethernet over FireWire (non-standard!)
device pfdevice pflogdevice pfsync
options ALTQoptions ALTQ_CBQ # 基于分类的排列 (CBQ)options ALTQ_RED # 随机先期检测 (RED)options ALTQ_RIO # 对进入和发出的包进行 REDoptions ALTQ_HFSC # 带等级的包调度器 (HFSC)options ALTQ_PRIQ # 按优先级的排列 (PRIQ)options ALTQ_NOPCC # 在联编 SMP 内核时必须使用,禁止读时钟
- 进入 /usr/src 目录:
# cd /usr/src
- 编译内核:
# make buildkernel KERNCONF=
- 安装新内核:
# make installkernel KERNCONF=
注意: csup 是用 C 语言对 CVSup 软件的重写, 在 FreeBSD 6.2 和更高版本中, 作为系统的一部分提供。 您可以直接使用系统附带的 csup 而跳过 #1 这一步, 并将这份文档余下部分中的 cvsup 命令改为 csup。 对于较早版本而言, 可以使用 net/csup port 或预编译包来安装 csup。
- 运行 cvsup:将 cvsup.FreeBSD.org 改为离您较近的 CVSup 服务器。 请参见 CVSup 镜像 (第 A.5.7 节) 中的镜像站点完整列表。注意: 有时可能希望使用自己的 ports-supfile, 比如说, 不想每次都通过命令行来指定所使用的 CVSup 服务器。
- 这种情况下, 需要以 root 身份将 /usr/share/examples/cvsup/ports-supfile 复制到新的位置, 例如 /root 或您的主目录。
- 编辑 ports-supfile。
- 把 CHANGE_THIS.FreeBSD.org 修改成离您较近的 CVSup 服务器。 可以参考 CVSup 镜像 (第 A.5.7 节) 中的镜像站点完整列表。
- 接下来按如下的方式运行 cvsup:
- 此后运行 cvsup(1) 命令将下载最近所进行的改动, 并将它们应用到您的 Ports Collection 上, 不过这一过程并不重新联编您系统上的 ports。
安装SCREEN
# cd /usr/ports/sysutils/screen
# make install clean
# rehash
以后就可以这么做了:
ssh登陆
# screen
然后开始按照通常的操作啦
然后把网线拔掉
然后再来ssh登陆
# screen -r
如果需要更多的功能,则请看screen --help和man screen
有一点小疑问:
如果我要退出screen怎么办?
ctrl+c 退出现有的程序
exit即可退出
如果我要把这个screen暂时丢到后台,怎么办?
ctrl +a +d
如果我要启动多个screen怎么办?
ctrl+a+d
然后screen就可以开启了
我怎么恢复到多个screen之中得一个呢?
# screen -list
可以看到列表
# screen -r 对应的id即可。
如果看了man screen,则还可以给每个screen命名咧。
1、在 console 下操作时,由于屏幕显示有限,有时需看前面显示的资料,这时你可:
. 按一下 Pause or Scroll Lock键后,则可利用 PageUp PageDown Up Down Home End 等键来看前后显示的资料
. 再按一下 Pause or Scroll Lock则可回复等待输入画面.
2、 使用 pw 来管理你的帐号
在 FreeBSD 下使用 adduser 来新增帐号,有些时会满烦的,可用以下方式:
pw useradd -n <username> -g <group> -m -s /bin/csh
=> -m 代表建立使用者目录
●同时设密码
echo <password> | pw useradd -n <username> -g <group> -m -s /bin/csh -h 0
● 删除帐号
pw userdel -n <username> -r
=> -r 代表同时删除其 home 目录等相关资料
● 修改帐号
pw usermod -g <group> -s /bin/csh
PS:无法修改帐号名称
● lock 及 unlock 使用者帐号
pw lock <username>
pw unlock <username>
3、 加速你的按键速度..
相信使用 FreeBSD 的人很多都是在 console 下操作吧,有些时,要重复某一按键速度实在很慢..
另一个问题就是 cusror 的位置有些时不太明显..
可用以下方法来改善:
在 /etc/rc.conf 中加入以下资料..
keyrate="fast"
cursor="blink" 或 "destructive"
4、 一些 console 下使用的快速键..
相信大多使用 unix-like 的使用者,还是在 console 下执行你的日常维护工作吧,那有那些按键组合可帮我们提高效率呢..
以下按键皆适用于 tcsh 及 bash..
1. 快速移动光标
ctrl+a -> 到最前面
ctrl+e -> 到最后面
2. 编辑方面
ctrl+d -> 删除光标所在字符
ctrl+w -> 删除光标所在字前面的字符
ctrl+u -> bash:将光标前所有的字及字符删掉,tcsh:删除所有字
ctrl+k -> 将光标后所有字符删掉
ctrl+b -> 下个字符
ctrl+f -> 前一个字符
ctrl+m -> 和按下 enter 的结果一样
ctrl+h -> 和按下 del 或 backspace 键一样
del 或 backspace -> 删除前一个字符
如果对按键有研究兴趣者,不彷参考 /usr/share/syscons/keymaps/ 这个目录,其中 us.iso.kbd 是一般我们使用的按键..
5、 快速切换目录
在 FreeBSD 中常常需要切换目录,有时目录名称较长、或是有大小写、或是只记得前面几个字,怎么办..
其实只要输入部份字再加上 * 这个符号就可以了..
如我们要切换到 /usr/local/ 这个目录,只需输入 cd /usr/lo* 就可以了..
如果输入 cd /usr/l* 会如何呢?则会进到 /usr/lib/ 这个目录,这是因为 shell 找到第一个符合的条件便停止了..
6、 有关时间及时区的?#123;校
使用 FreeBSD 大多是拿来当做主机使用,那时间及时区的正确与否就非常重要了,以下介绍如何?#123;整时间及时区
● 时间?#123;整椒?br />
1. 使用 date 指令
格式 date [yymmdd]HHMM
说明:
yy 年数,如 02 代表 2002 年
mm 月份 01-12
dd 日数 01-31
HH 时数 01-59
MM 分钟 01-59
yy mm dd 皆可省略
例:
?#123;整日期为 2002-03-25
# date 022325
?#123;整时间为 14:20
# date 1420
2. 使用对时主机
# ntpdate clock.stdtime.gov.tw
这项需能连上网络,其中 clock.stdtime.gov.tw 是一标准时间的主机
● 时区的设定
1. 使用 tzsetup
2. 在 /etc/ 下有个档案 localtime,这个就是本机的时区设定档案,因此我们可用个取巧方式(不经由 tzsetup),如以下:
# cp /usr/share/zoneinfo/Asia/Taipei /etc/localtime
这样是不是比较快呢..
7、 如何清空档案内容..
有时我们需将一个档案内容清空,但需保留这个档案..
一般常见的用法是用文字编辑器,如 vi 将这个档案叫出来,再将其内容全部删掉,再存盘..
这样是不是有些烦呢?
有一个更好的方法,使用 true 指令..
如我们要将 /var/log/httpd-access.log 清空,则下以下指令..
# cd /var/log/
# true > httpd-access.log
8、 显示目录及档案 => tree
有时需显示某个目录下所有的目录及档案,虽使用 ls 可达到部份功能,但并不是很方便..
在 dos 中,有个 tree 指令,是不是满好用的..
其实在 FreeBSD 中也有类似的指令 => tree..
以下我们就透过 ports 来安装 tree
# cd /usr/ports/sysutils ; make install
如此会将 tree 这个指令安装在 /usr/local/bin/ 这个目录下..
使用例子:
1. 显示 /usr/ 下的目录及档案
# tree /usr
2. 只显示 /usr 下的目录
# tree -d /usr
详细用法请参考 man tree
PS:可透过管道 | 及 more 来显示
如 tree /usr | more..
9、 如何检视档案类型
由于 FreeBSD 并没有像 dos 或 windows 般有扩展名的观念,因此要如何检查一个档案的类型呢?
用 file 吧..
语法: file <file_name>
详细用法请参考 man file
10、 重复使用先前使用过的指令
你可以使用以下的方法来重复使用先前使用过的指令:
例如,我们先用 history 显示先前输入的指令:
# history
.
..
...
10 clear
11 cd /usr/local
12 ls
13 ls etc
14 cd ~
15 clear
1. 用 up down 可用上下一个指令,或是 ctrl+p ctrl+n 亦然
2. 配合 ! 的用法,例如以下(ps: 在<...>内代表要输入的东东)
!!
# !! => 重复执行上个一个指令
!<编号>
# !11 => 执行 cd /usr/local
!<指令> 可输入部份字,但前面部份需符合
# !cl
执行 15 clear 指令
!<?指令?> 输入部份字符,部份吻合
# !?etc?
执行 13 ls etc
以上指令在 tcsh 及 bash 下皆可使用,如此是不是可帮你省下许多时间..
11、 如何将 man 的档案印出来..
man 是大家学习 FreeBSD 的最佳资料参考来源,但在显示器上看到底不是很方便,有没有方法转成一般的文件档案呢?
使用 col 这个指令吧..
例我们要将 ssh2 转成 ssh2.txt,则使用以下语法:
# man ssh2 | col -b > ssh2.txt
12、 为何查不到正确的 ports 资料..
在 /usr/ports/ 下有着几千个 ports 的安装资料,有时我们可使用以下方式来查相关的 ports..
以下都是在 /usr/ports/ 这个目录下执行..
1. 先将 ports 资料转换成一个文字文件,如 index.txt
# make print-index > index.txt
2. 使用 make search key="...." 来查
3. 将 ports 内容转换成 README.html
# make readmes
用以上方法,可很容易的查到相关的 ports 资料,但很奇怪的是,为何我更新一个 ports 的资料后(或 ports tree),为何会查不到,查到的仍然是旧的资料..
原来,在 /usr/ports/ 中有一个 INDEX 檔,以上的查询方式都是在这个 INDEX 档中查询,当你更新 ports 资料时,这个 INDEX 档并不会随之更新..
所以为了查询方便,我们需以手动的方式来做..
# make index
做完后,再更新 index.txt 及 README.html..
不过更新 INDEX 档需要一些时间,大约 12-30 分钟..(视计算机等级而定).
13、 用 dig 及 host 来取代 nslookup
一般我们用来检查网络是否有问题,大多是用以下三个指令..
nslookup
ping
traceroute
其中 nsllokup 是用来检查 dns 的相关设定, ping 用来检查自己和对方网络是否通顺,而 traceroute 则是用来检查从自己的计算机到对方的计算机所经过的线路状况..
不过以 nslookup 而言,个人觉得不是很实用,有时我们只是想单纯的查一下某台主机或是 MX 记录,那使用 nslookup 就有点噜嗦了..
在此介绍二个好用的指令 host 及 dig,这二个指令很类似,不过效率较 nslookup 高
# host -a <主机名称> 或 <ip>
=> 输入主机名称显示 dns 正向解析的部份,输入 ip 则是显示反向(ptr)
# dig <主机名称或ip> <any a mx soa txt.. 任选一项>
如要显示 MX 记录
# dig 主机名称 mx
个人是觉得比 nslookup 方便多了,你觉得呢.. ^.^
当然功能不只这些,详情请 man dig 或 host..
14、 加快你的开机速度..
严格说起来,FreeBSD 的开机速度算满快的,不过中间会有个 10 秒的延迟时间(以便让你进入 boot 的 command prompt mode),如果你嫌这10秒还是太慢了,那你可将时间?#123;短一些..
FreeBSD 激活时会先去参考 /boot/defaults/loader.conf 档的设定,然后再参考 /boot/loader.conf,一般我们都不去?#123;整 /boot/defaults/loader.conf 这个档,而直接?#123;整 /boot/loader.conf..
只要在 /boot/loader.conf 中加上以下这一行即可
autoboot_delay="秒数" 即可,如
autoboot_delay="7" 代表7秒
这样开机是不是更快了..
另外建议,有时间可参考一下 /boot/defaults/loader.conf 这个档案的设定,其中有许多实用的设定哦..
15、 忘了 root 密码
如果你忘了 root 的密码怎么办,这在 FreeBSD 中满好解决的,请照以下 steps 来处理..
1. 进入单人模式
开机后,当出现
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 10 seconds...
按 space(或除了 enter 以外的键) 键则会进入 command prompt mode,同时出现一个 ok ..
这时请输入 boot -s 以进入单人模式
2. 选择 sh
进入单人模式后,系统会询问你要使用那个 sh,内定是 /bin/sh ,就使用这个吧,直接按 enter 跳过
3. 将所有的硬盘分割架起来
# mount -a
4. 更改密码
# passwd
长度要在 6 个以上,输入二次
5. 重新激活
# reboot
16、 有关 kernel 的激活..
kernel 对 unix-like 系统来说,是非常重要的一环,如果 kernel 损坏或编译出了问题,可能会导致严重的后果..
FreeBSD 一向以安全著称,在这方面有什么防护的措施呢?
FreeBSD 的 kernel 是放在 / 目录下,一般会有二个
kernel
kernel.GENERIC
如果你有编译过核心(kernel)的话,则原先的 kernel 会转换成 kernel.old,新的核心会变成 kernel,也就是在 / 下的 kernel 档案如下:
kernel => 新编译过的核心
kernel.GENERIC
kernel.old => 原先的核心
那 kernel.GENERIC 是什么呢,这个是系统安装时所装好的,一般都不会变动,即使编译过核心亦然,这个档案可说是救命核心,最好不要乱动,理由如下所言..
FreeBSD 激活时,会使用 kernel 这个核心,如果这个档案不存在,则会抓 kernel.old 这个档案..
如果这二个档案不幸都不在,那怎么办..这时则会进入 command prompt mode,你必需自行输入 kernel 的名称,如
boot <kernel 名称> 如
boot kernel.GENERIC
了解以上之后,在编译核心无法正常执行时,相信各位知道如何处理了..
17、 FreeBSD 在那激活程序..
一般 FreeBSD 激活后会依序执行以下位置的程序..
1. /etc/rc.conf 这个档案内的程序,如 sendmail、sshd .. 都是在此执行,另外要注意的是,在执行这个档案之前,会先参考 /etc/defaults/rc.conf 的设定
2. /usr/local/etc/rc.d 下的一些 .sh 檔,这些档案的权限都是被设定成 x ,如 apache samba .. 都是在此设定
3. /etc/rc.local 这里也可设定,如我要把 postfix 设定在此,只需在这个档案内加一行,如下
/use/local/sbin/postfix start &
加上 & ,就不会显示出讯息
4. 由 cron 所控制的一些档案,当时间到了,便会自动执行..
那心细的人可能会问, /etc/inetd.conf 内设定的呢?这些在第 1 项就执行了..
了解以上并时时注意是否有不明的程序在执行(可能是被人植入***程序),也是日常检视系统的重要工作..
18、 加快你的主机名称查询速度..
unix-like 系统,初期都是使用 hosts 这个设定文件来做主机的查询,因此有些程序在查主机名称时,都会参照这个设定档,像 sendmail 就是一个很好的例子..
系统内定第一个是会查 /etc/hosts 这个档案,因此如果里面设定有问题,则会影响到某些程序的执行..
典型的 hosts 档设定如下..以我本身的主机来说
127.0.0.1 localhost.cmlab.idv.tw localhost
61.219.230.5 cmlab.idv.tw cmlab
61.219.230.5 cmlab.idv.tw.
其中第一及第二行最后一个项目是 aliases 名称(主机别名),比如我们在主机
ping cmlab.idv.tw
和
ping cmlab
是同样的结果..
你可把一些常用的主机加到这个项目内,如有一台 mail.cmlab.idv.tw ,假设 IP 为 61.219.230.8
则在这个 hosts 中加入以下
61.219.230.8 mail.cmlab.idv.tw mail
61.219.230.8 mail.cmlab.idv.tw.
这样就行了..
另外如果有自行架设 dns server,请注意在 /etc/host.conf 这个档案,典型的档案如下:
# $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $
# First try the /etc/hosts file
hosts
# Now try the nameserver next.
bind
# If you have YP/NIS configured, uncomment the next line
# nis
由以上可以看得出来,在查询主机名称时的顺序,是先查 hosts 再查 bind 也就是 dns,你可视你的需要修改其顺序..
另外要注意的就是 /etc/resolv.conf 文件,这个是有关 dns 主机 search 的顺序,如以我的设定如下:
domain cmlab.idv.tw
nameserver 61.219.230.5
nameserver 168.95.1.1
nameserver 168.95.192.1
其中第一行是设定我的网域名称,第 2-4 行则是 dns 主机的设定,建议至少设二个以上,以免一个挂了,还有个备用的..
第2行是我的 dns 主机,3-4 行是 hinet 的 dns 主机..
了解以上并有正确的设定,是有助于主机的查询的及速度的提升..
19、 简单编辑你的文件档..
在 unix-like 中,标准的文字编辑器是 vi,不过 vi 对于初学者而言,并不是很容易上手..
而在 FreeBSD 中使用的是 ee ,这个文字编辑器,虽功能没 vi 这么强大,但使用简便..新手不妨初期时使用个编辑器..
其使用方式很简单,只要在 command line 下 ee 即可
# ee <要编辑的档案>
进入 ee 画面后,最上方是一些按键说明,如要取得相关的 ee 说明,可先按 ctrl+c 键,再输入 help,则会显示详细说明
有时可能只想在一个档案内加入一小部份的资料,那使用文字编辑器来处理,就显得没效率,其实我们可以利用 cat > [檔名]和 cat >> [檔名] 来做..
那这二个方式有何差异呢..
cat > [檔名] 时,如果档案不存在,则会自动产生一个档案;如档案存在则会将档案清空..
cat >> [檔名],档案不存在则自动建立此档,如存在则将所编辑的资料加在档案的最后..
举个例子,如我们要编辑 /etc/mail/access 这个是 sendmail 的 relay 设定档..
想在这个档案中加入 192.168.88.5 relay
则可用此方法(假设 access 档案已存在,故使用 cat >> .. 的方法) ..
# cat >> /etc/mail/access
192.168.88.5 RELAY
按 ctrl+d 存盘
如此则可将 192.168.88.5 relay 加到 access 的最后一行..
不过,建议大家,unix-like 的共通文字编辑器是 vi,有时间不妨好好的学一下 vi..
20、 FreeBSD 帐号及密码的注意事项
在架完 FreeBSD 后,再来就是新增人员(使用者)的资料了..
在设定帐号时,请注意以下事项:
1.其长度需在 1-16 个字符
2.使用英文小写字母、数字及 - _ 符号
在设定密码时,请注意以下事项
1. 密码可设可不设,但建议你一定要设
2. 长度最好在 6 个字以上,你知道据安全专家的说法,破解一个长度6及长度4密码,至少要多花 10 倍的时间
3. 请勿用你的生日、相关证照号码、电话..等资料,而使用大小写英文字母及混合特殊符号,如 ct!Home-12 就是一个相当不容易破解的密码
4. 长度最长我曾设到 16 位数(最大长度多少,有兴趣者可自行试试)
21、 有关系统的一些激活问题..
有时,会修改 FreeBSD 的一些设定,如一些网络参数、软件的 .conf 设定,或是 /etc/r.conf 檔,那么如何让设定值生效,是否一定要重新开机呢?
这可分为三方面来说..
1. 网络相关设定,如网络适配卡、hostname .. 等,只要执行以下指令就可以重新加载你的网络设定..
# sh /etc/netstart
netstart 是一个 script 档案,执行时会去参考 /etc/rc.network。因此只要执行这个指令就能够重新激活网络设定..
有兴趣者可参考一下 netstart 及 rc.network 这二个档的内容,研究看看到底做了些什么东东..
2. 修改了 rc.conf 中其它的设定
可参考以下三个 step 来做..
. 进入单人模式
# shutdown now
. 选择 sh,造内定值即可,即 /bin/sh
. 离开单人模式
# exit
这样就会重新激活系统了..
3. 软件的设定,如一些 *.conf 檔,像是修正了 apache sendmail .. 等
通常在 /etc/local/rc.d/ 这个目录中会有相关的 .sh 檔,直接执行就可以了,注意的是一般要加上参数,一般的参数有以下(视软件而定会有不同)..
start 激活
stop 停止
reload 或 restart 重新激活
第二种方法就是直接使用 killall,如我们要重新激活 inetd,可用以下方法:
# killall -1 inetd
或是
# killall -HUP inetd
这样就可以重新激活这个 daemon 了
22、 保护你的档案
在系统中,有许多档案或一些设定档是非常重要的,加上 FreeBSD (或是一般 unix-like)系统都没有类似 ms 的垃圾回收桶的功能,万一不幸删掉(或修改)某个重要的档案,可能会造成不小的困扰..
虽然,FreeBSD 对于档案的权限设定的非常严密,但有些时候,我们以 root 身份工作,仍会有此风险..
那要如何避免这种情形发生或是保护某些重要的档案呢?
我们可以用 chflags 来达成这个目的,顾名思义, chflags 是由二个字所组成,即 change 和 flags(档案的旗标)..
例如我们要保护 /etc/inetd.conf 这个档案,以免误删或被修改,则指令如下:
# chflags schg /etc/inetd.conf
这样就可以保护这些档案,如要显示这些档案的旗标(flag),可用 ls 来看..
# ls -lo /etc/inetd.conf => l 是小写的 L
-rw------- 1 root wheel schg 47 Mar 28 21:29 inetd.conf
要解除旗标设定,可用 unschg,也就是在 schg 前加 un ,如:
# chflags unschg /etc/inetd.conf
大部份我们进入主机都是以 root 身份执行,因此稍不小心,可能就..因此建议将一些重要的档案及设定档设定为 schg flags,以保护档案..
如 /bin、 /sbin、 /etc/.conf、 /usr/lcaol/etc/*.conf .. 这些档案最好都是定成 schg 旗标..
chflags 详细用法请参考 man chflags..
23、 谈谈软件的安装路径..
FreeBSD 对于档案目录的观念非常重,什么样的档案要放在那个目录都有规定,这也是有别于其它 unix-like 系统..
一般我们将软件安装分成二个部份,在这里来探讨一下软件到底都安装到那去了..
在安装软件时,通常会安装诸如 执行档、设定档、man file、doc 文件..
1. 安装系统时所安装的软件
执行档通常装在 /bin、/sbin、/usr/bin、/usr/sbin、/usr/libexec 下
设定文件通在在 /etc 目录下
man file 通常在 /usr/man 或 /usr/share/man
doc 文件通常在 /usr/share/doc 下
2. 经由 package 或 port 安装的软件
执行档通常装在 /usr/local/bin、/usr/local/sbin、/usr/local/libexec 下
设定文件通在在 /use/local/etc 目录下
man file 通常在 /usr/local/man ..
doc 文件通常在 /usr/share/doc 下
以上并不是绝对的(所以我用通常..^.^),因为有些特殊情况需视软件而定..
如此有时可能会造成些许困扰,因为如 ssh 、 bind .. 大多是在系统安统时就安装的,那如果升级新版时怎么办..
由于 FreeBSD 找寻执行档时会依照 $PATH 这个环境变量找寻,因为 /bin、/sbin、/usr/bin、/usr/sbin 比 /usr/local/bin 或 /usr/local/sbin 先,所以会先执行..也就是先抓到旧版的执行档..
因此在更新时要注意这种情况,以免更新了还是执行旧的程序..
那么如何看安时程序时的相关档案的安装路径呢?通常有以下方法
1. 看 port 的 pkg-plist 檔
2. 有时用 man [执行档名称] 可看到一些重要档案的位置
3. 看说明文件,通常在 /usr/local/share/doc 目录下
24、 如何在 FreeBSD 同一片网硌卡加一个 ip 地址
有的时候,需要在同一片网络卡上加 ip 以达到一些特殊的要求..
在 FreeBSD 这是非常简单的,假设原先网络卡的 ip 是 211.211.211.211,想加一个 211.211.211.212,使用的是 rl0 这片网络卡,则做法如下..
1. 在 /etc/rc.conf 加上这一行
ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255"
其中的 alias0 就是加装的第一个 ip,如要设定多个可在此修正,如 alias1、alias2.. aliasN
2. 重新激活网络卡,执行 /etc/netstart
# /etc/netstart
25、 简单的加密你的资料
在实务上我们常需要将某些敏感的资料加密,一般我们可使用 pgp 或在这里所介绍的 crypt 来达到这个功能..
crypt 是透过 | 这个管道转换功能及密码设定来达成加密的功能,也就是说将你所设的密码当做加密产生的种子随机数..
先说明一下 crypt 的使用方法:
crypt [-s] [-k] [password]
一般 -s 及 -k 参数可不予理会,password 是加密或解密的密码
在这里假设我们先产生一个 test.txt 档,内容为 test,然后用 1234 这个密码加密
# cat > test.txt
test
按 ctrl+d 存盘
先看看 test.txt 内容
# more test.txt
test
将 test.txt 这个档案用 1234 这个密码加密,需配合管道 | 及转向符号使用,加密后的文件名称为 test2.txt
# cat test.txt | crypt 1234 > test2.txt
如此则会产生一个加密后的档案 test2.txt,另外密码可先不输入,按 enter 键后会显示 enter key: 让你输入密码
我们来看看加密后的档案内容,原先是 test 结果变成了:
# more test2.txt
e<A8>&<A7>h => 已经不是原来的 test
接着来将 test2.txt 解开,如下,假设解开后的档名为 test3.txt:
# cyrpt 1234 < test2.txt > test3.txt
以上的意思是
1234 加密时的密码
< test2.txt 将加密的档案转给 crypt 处理
> test3.txt 解密后的资料转向到 test3.txt
再显示 test3.txt 的内容是否和原来一样,即 test
# more test3.txt
test
PS:
1. 加密或解密时档名如和源文件一样,则会将原来的档案取代
2. 另有一个指令 enigma 和 crypt 用法完全一样
参考资料 man crypt
26、用 telnet 简测你的服务器(Server)有无在跑
有时你可以用 telnet 测试你的 Server 有无正常的 run
例如:我要查看 ftpd 有无在跑
可下指令:# telnet localhost 21
若跑出类似以下的讯息, 表示有在跑
--------------------------------
Trying 127.0.0.1...
Connected to localhost.ahkun.
Escape character is '^]'.
220-=(<*> )=-.:. (( Welcome to PureFTPd 1.0.11 )) .:.-=(<*> )=-
220-You are user number 1 of 50 allowed
220-Local time is now 18:52 and the load is 0.06. Server port: 21.
220 You will be disconnected after 15 minutes of inactivity.
若跑出以下的讯息, 表示没在跑
------------------------------------------------
Trying 127.0.0.1...
telnet: connect to address 127.0.0.1: Connection refused
telnet: Unable to connect to remote host
同理你也可以用:
telnet localhost 25 测 stmpd
telnet localhost 110 测 pop3d
结论:
正确来讲是用 telnet 测 port 啦~
27、 如何防止别人登录到你的计算机
有时,我们并不想让别人直接登入到我们的主机或是只想限定某些人可使用,如 telnet、ssh..
或者是开放了些服务,如 ftp、smtpd ..等,由于这些都必需在主机端建有帐号,因此防止不相干的人登入到你的主机是非常重要的,也是一个安全上的考量..
但一般限定的方式都是使用 ip 或是 domain 的方式,那么有无方法可解决这个问题呢?
答案是可从 /etc/login.access 来着手,这个档案就是限定 login 的..
一个典型的设定如下,例如我们想限定只有 root 及 使用者 john 可登入到主机(含local 及 remote):
-:ALL EXCEPT root john:ALL
可分为三个项目,每个项目间以 : 分隔,说明如下:
1. + 或 - 代表允许或禁止
2. 设定的使用者或群组,可用 ALL EXCEPT 来强化限定的范围
3. 限定的来源,如 ALL 代表全部、61.219.230. 、LOCAL、console、.bad.com ..等
适当的设定,可让你的系统更加的安全..
详细用法可 man login.access..
28、 一个 ./ 的技巧
众所周知,在 nix-like 中执行目前目录中的可执行文件时,必需加上 ./ 这二个符号,很多 unix-like 的初学者都会感觉较不习惯,因为在 dos 或 windows 的 dos 窗口中并不是如此..
其实在 unix-like 中如此设定是有其安全考量的,在使用指令或执行文件时,一般是建议使用完整的目录,例如要使用 ls,则如下:
# /bin/ls
当然,你直接输入 ls 亦可正确的执行,这是因为你所使用的 shell 中环境变量 $PATH 的因素..
你可键入 echo $PATH,来看目前 $PATH 的设定,当我们执行一个指令时,系统会依照这个环境变量来搜寻这个执行档并加以执行..
内定 shell 不会将目前目录 . 加到 $PATH 中,因此如果你想在目前目录执行这个目录下的执行文件而不想加上 ./ 时,可在你的 shell 中将 . 加入..
如一般在 FreeBSD 都是使用 tcsh,你可编辑个人 home 目录下的 .cshrc 檔 set path = ( ........ ,在此加入 . 即可..
记得重新退出 shell 再登录,以便让你的新设定生效.
29、在提示列秀出 [使用者]目前工作目录 (可以少打很多次pwd)
# cd /root
编辑 .cshrc
# set prompt="'hostname -s'# " ### 找到这一行并 mark 起来
set prompt = "[%n]%/# " ### 新增此行并存盘离开
# logout
login: root ....重新登入
ps.其它user id 是否可照办? 我还没试过哩..刚装freebsd而已
30、rm 是 DEL 一个档案
rm -r 是 DEL 整个目录
31、介绍一些一些有用的参数(注意大小写)..
%B 代表高亮度
%n 代表用者名称
%m 主机名称
%/ 目前的目录
一般我们可能比较在意以上几点,如我要管理好几台 FreeBSD 主机,那么以上几个参数就很重要了..
举个实例来说,如我想把我的 prompt 改成这样,而且要高亮度显示:
使用者名称@主机名称[目录名称]>
则 prompt 的设定应该是这样的..
set prompt = "%B%n@%m[%/]> "
注意 = 左右都要有一个空白,否则会出错,导致无法登入,另外如果要统一所有使用者的 prompt 的话,除了更改 /home/使用者/.cshrc 外,最好也在 /etc/csh.cshrc 中设定这一行,另外如要新增新用者也用这种提示,则请在 /usr/share/skel/dot.cshrc 中也加上(或改成)这一行,这是因为:
tcsh 在使用时会先参考 /etc/csh.cshrc 这个档案,再依 user 去抓其 home 目录下的 .cshrc,而设定 /usr/share/skel/dot.cshrc 是让你新使用者时,自动将其 prompt 设定成 set prompt = "%B%n@%m[%/]> "
这种设法,当你在管理多台主机及切换目录时,就不易搞错而发生一些惨剧
问:更新了rc.conf,如何生效?
答:cd /etc && sh rc
问:修改更新.cshrc(或者类似文件)之后如何不退出登录立即生效?
答:$ source ~/.cshrc
问:我新装了程序在 path (/usr/bin /usr/local/bin etc.,)路径中,如何不重新登录就能直接使用?
答:$ rehash
问:csh中如何快速在命令行中移动?
答:移动到行首:^a,行尾:^e,清除:^u
问:如何看一个文件而不需要先解压?
答:zcat
问:我总是工作到很晚而忘了睡觉的时间怎么办?
答:leave +hhmm(hh小时,mm分钟)
问:如何清屏?
答:clear
问:怎么看滚上去的字?
答:按scroll lock,然后上下键翻动(这个最经典,因为没有用过这类系统或者没有做过图形设计的人,几乎100%不知道这个键是干吗的)
技巧:
·迅速建立文件:touch filename
·敲错字滴滴滴的烦死了,还总被家里人发现而强制睡觉: set nobeep(tcsh)
更新Ports Tree的方法有很多,例如匿名CVS、CVSup和CTM。
CVSup 是采用pull的方式来更新源码的。以CVSup为例,当用户(或cron)运行CVSup程序时,它会和远程的CVSupd服务器取得联系,然后更新文件。用户取回的更新文件是最新的,而且随时可以拿到这些文件。用户还可以限制更新动作,只更新自己感兴趣的某个文件或目录。更新动作由服务端根据用户的设定完成。
CTM有一个脚本文件专门用来辨别修改过的文件。这个脚本文件是由主CTM服务器来执行,每天比较几次,并把两次执行时间内修改过的文件加以压缩、编号,然后加以编码 (以可打印的ASCⅡ字符为主),最后以E-mail的方式寄出。当用户收到的时候,这些“CTM deltas”由ctm.rmail程序来处理。它可以自动解码和进行确认,并在用户的源代码上使用这些修改。如果用户不小心把部分程序清除掉了, CVSup会扫描出来,并自动为用户把不足的部分补齐。
更新Ports Tree
Ports Tree基本上是每天都在更新的,而且各种软件每天都有新的版本会推出,所以要及时更新Ports Tree。另外,一些Ports Tree有问题的地方也需要通过CVSup取得新的版本文件来修正。下面给出更新Ports Tree的方法。
如果用户系统中并没有安装Ports,那么请把光盘放入光驱中,用“/stand/sysinstall”命令,进入“Configure”中的“Distributions”,选择Ports来安装。具体更新操作如下:
一.)这种方式使用 sysinstall 手动安装Ports Collection。
1.以 root 用户身份, 运行 sysinstall (对于 FreeBSD 5.2 之前的版本, 应该是 /stand/sysinstall),如下所示:
# sysinstall
2. 选择 Configure, 按 Enter。
3. 选择 Distributions, 按 Enter。
4. 选择 ports, 按 Space。
5. 选择 Exit, 按 Enter。
6. 选择您的安装介质,就像CDROM,FTP,等等
7. 选择 Exit 并按 Enter。
8. 按 X 键退出 sysinstall。
二.)先安装 CVSup,输入下面的命令。
先在#后输入cd /usr/ports/net/cvsup-without-gui/
再在#后输入make install clean
三.)通过下面的命令在/etc中新增一个make.conf (其实有一个sample在/etc/default中,但现在不用它)文件。
% touch /etc/make.conf
3.参照下面的内容编辑make.conf。
SUPHOST=ftp.freebsdchina.org
SUPFILE= /usr/share/examples/cvsup/stable-supfile
PORTSSUPFILE= /root/ports-supfile
DOCSUPFILE= /usr/share/examples/cvsup/doc-supfile
MASTER_SITE_BACKUP?=\
[url]ftp://ftp.freebsd.org.cn/pub/FreeBSD/ports/distfiles/$[/url]{DIST_SUBDIR}/\
[url]ftp://freebsd.csie.nctu.edu.tw/pub/distfiles/$[/url]{DIST_SUBDIR}/\
[url]ftp://ftp.freebsdchina.org/pub/FreeBSD/ports/distfiles/$[/url]{DIST_SUBDIR}/
4.接着从/usr/share/examples/cvsup中复制一份ports-supfile到/usr中。这是为了日后使用方便,且维持原有范例不变。
% cp /usr/share/examples/cvsup/ports-supfile /usr
5.编辑ports-supfile。
6.把*default host=CHANGE_THIS.FreeBSD.org改为*default host=freebsd.org。
7.把ports-all注释掉。
8.把下面需要的Ports组件打开(把#号去掉)。
ports-base 基本的工具。
ports-archivers 关于文件压缩及解压缩的程序。
ports-astro 与天文学相关的程序。
......
ports-X11-servers X-Window系统服务器。
ports-X11-toolkits 以X-Window系统为基础的开发工具。
ports-X11-wm X-Window系统的管理工具。
9.因为刚安装好cvsup-without-gui-16.1g.tgz,所以必须先输入下面的命令,重新载入环境配置文件,才能让程序路径生效。不然在运行时会提示找不到文件。
% source ~/.cshrc
10.最后用下面的命令更新Ports-Tree。
% cvsup -g -L 2 /usr/ports-supfile
只要看到如下的结果,就表示Ports Tree更新成功了。
……
Shutting down connection to server
Finished successfully
结论
其实,并不是每个系统非得一定要对Ports Tree进行更新。但是为了使系统更加稳定地运行,减少系统自身的安全性带来的危害,建议还是更新FreeBSD系统的Ports Tree。
怎么更改bsd的ports网上升级的路径
修改/etc/make.conf,增加:
MASTER_SITE_BACKUP?= \
[url]ftp://ftp.cn.freebsd.org/pub/FreeBSD/ports/distfiles/$[/url]{DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}
修改成你要的地址,我的是[url]ftp://ftp.cn.freebsd.org[/url]
Freebsd怎么查看系统硬件配置?
$ less /var/run/dmesg.boot
查找ports
cd /usr/ports/
make search name=ports名
01.查看网络流量
a.systat -if 1 (1表示1s刷新屏幕一次)
b.netstat 1
# Traffic 流量 peak 峰值 average 平均值
02.查看硬盘信息
diskinfo -vt /dev/ad0
03.查看核心信息
vmstat 1
04.断电后系统无法启动
a.启动到sing user模式
b.fsck
c.reboot
05.硬盘分区时-shift+F -->NO可以使用全部空间
06.ctrl+alt+backspace 杀掉xwindows
07.alt+F1...F8 或 printscreensysr循环切换控制台
08.shutdown now 切换到单用户模式
shutdown -p now shutdown -hp now 关闭电源
shutdown -r now reboot 重新启动机器
09.升级内核后无法启动
a.重启机器到10秒读秒时按enter以外的任意键
b.unload
c.boot kernel.old 或其他可以启动的内核
10.挂载ntfs,fat32分区和u盘
ntfs: mount_ntfs -C eucCN /dev/ad0s5 /mnt/d
fat32:mount_msdos -L zh_CN.eucCN /dev/ad0s6 /mnt/e
u盘: mount_msdos -L zh_CN.eucCN /dev/da0s1 /mnt/u
11.卸载分区
umount /dev/ad0s5
umount -f /dev/ad0s5 (强制卸载)
12.查看进程
top ps auxww ps -ef |grep xxx
13.查看硬盘详细分区信息&读写状况
gstat
14.声卡
vi /boot/defaults/loader.conf
更改snd_ich_load="NO"->"YES" #intel ich
检测声卡 kldstat 或 dmesg |grep pcm
15.ls -G 显示颜色
16.sysctl sysctl -a 查看变量
17.丢失root密码
启动到单用户模式,执行 /sbin/mount -a,
然后拥passwd更改密码
18.查找程序或文件
whereis 程序名
locate 文件名
whatis xxx 要找东西但不知道它是什么
grep bpf /usr/src/sys/i386/conf/GENERIC 在文件中找指定文本
#只能对文本进行grep,如是命令,则
command |grep text
grep text filename
19.中文locale
zh_CN.eucCN zh_CN.GBK zh_CN.GB18030 zh_CN.euc
#语言代码_国家代码.字符编码
#查看环境变量 locale
20.xmms,mplayer 乱码问题
在用户目录下建立 .gtkrc.mine 文件.代码如下
style "gtk-default-zh-cn"{
fontset="-*-simsun-medium-r-normal--12-*-*-*-*-*-iso8859-1,
-*-simsun-medium-r-normal--12-*-*-*-*-*-gb2312.1980-0,*-r-*"
}
class "GtkWidget" style "gtk-default-zh-cn"
#前提是安装 simsun 字体,可参照以下方法安装。
#拷贝 Windows系统下的 simsun.ttc 字体文件到 /usr/X11R6/lib/X11/fonts/TrueType/,没有的话创建。
# mkfontdir /usr/X11R6/lib/X11/fonts/TrueType
# fc-cache -fv
21.停止sendmail
vi /etc/rc.conf 加入
sendmail_enable="NONE"
22.you have mail
mail 回车,输入1看第一封邮件...输入?看帮助
23.traceroute &ping的整合工具my traceroute /mtr
/usr/ports/net/mtr
使用: mtr [url]www.163.com[/url]
24.本地化设置,以系统默认的csh为例
vi /etc/csh.cshrc 加入
setenv LANG zh_CN.eucCN (语言设为中文)
setenv LC_ALL zh_CN.eucCN (所有本地子集设为中文)
setenv XMODIFIERS @im=fcitx (X下的中文输入法)
set prompt = "%B%m<%/>"(个性化控制台%B颜色%m主机%/目录)
set autolist (自动补齐扩展)
set nobeep (告诉应用程式避免发出哔哔声)
set filec (使档案名称在命令列被完成)
alias ls ls -FG (彩色化ls)
25.在/etc/fstab中挂载fat32分区
/dev/ad0s5 /mnt/d msdos rw,-L=zh_CN.eucCN 2 2
26.使用gnome2的gdm做桌面管理器
vi /etc/rc.conf 加入
gdm_enable="YES"
vi /root/.dmrc 更改Language=zh_CN.UTF8-->zh_CN.eucCN
27.远程连接windows终端
rdesktop [-a 16 -f] server'IP[:port]
28.播放APE格式音乐
/usr/ports/multimedia/xmms
/usr/ports/audio/xmms-mac
29.看图
/usr/ports/graphics/xnview
30.fcitx小企鹅输入法(有关步骤见24)
/usr/ports/chineses/fcitx
vi /root/.xinitrc 添加
exec fcitx& 到最前一行
31.apache22+php5+mysql+postgresql+ZendOptimizer
a,apache22:
cd /usr/ports/www/apache22
make install clean
b,php5:
cd /usr/ports/www/mod_php5
make install clean (勿选debug,否则不能装ZendOptimizer)
c,php5模块:
cd /usr/ports/lang/php5-extesions
make install [FORCE_PKG_REGISTER=yes] 强迫安装
make clean
(除预设项目还应选中CTYPE,EXIF,GD,ICONV,IMAP,PCRE,SESSION,ZLIB)
d,cp /usr/local/etc/php.ini.recommended /usr/local/etc/php.ini
e,ZendOptimizer
cd /usr/ports/devel/ZendOptimizer
make install clean
f,mysql:
cd /usr/ports/databases/mysql41-server
make WITH_CHARSET=gbk WITH_XCHARSET=all SKIP_DNS_CHECK=yes install clean
cd /usr/ports/databases/php5-mysql
make install clean
g,postgresql
cd /usr/ports/databases/postgresql81-server
make install clean
cd /usr/ports/databases/php5-pqsql
make install clean
32.怎样刷新环境变量值,而不用推出再登陆?
a,比如要重新设置环境变量ABC的值为abcdef
bash$ export ABC=abcdef
csh% setenv ABC abcdef
b,更新了PATH变量指定目录里可执行命令
rehash
c,更新配置文件
比如你编辑了.cshrc等文件,就需要用source命令
source .cshrc
33.磁盘空间使用情形 df 和 du
指令df用来查看整个档案系统的使用情形,如果您需要知道某个目录的使用情形用指令du。
df -h
du -h /etc
du -sh /etc
-s 参数来省略指定目录下的子目录
-h 表示使用GB、MB等易读的格式
34.检视软件间的关联
cd /usr/ports/sysutils/pkg_tree
make install clean
之后我们就可以使用 pkg_tree | more 来看各个软件之间的关系了
35.使用 portupgrade 更新软件
cd /usr/ports/sysutils/portupgrade
make install clean
如果您只想要升级某一个软件本身,而非所有相依的软件,只要使用 portupgrade "pkgname" 即可。
如果您要升级所有和该软件相依的其它软件,则可以加上参数 -r。如果您要更新包含相依软件的相依软件,
则可以使用参数 -R。另外,您可以使用参数 -m 来要求编译 (make) ports 时多传入一些参数,还可以
使用参数 -f 要求就算版本一样也强制更新。portupgrade 在更新软件时,会保留您原本的设定档。例如,
在更新 Apache 时,它会保留 httpd.conf 的设定。
假设我们要更新的软件是 perl-5.8,我们可以使用下列指令来更新:
# portupgrade -rf "perl-5.8.*" -m "ENABLE_SUIDPERL=yes"
36.ports安装失败提示
stop in /usr/ports/lang/ruby18/work
删除work目录下所有文件&文件夹再次安装即可.
37.ntop--网络监控软件
cd /usr/ports/net/ntop
make install clean
vi /etc/rc.conf 加入
ntop_enable="YES"
在地址栏中输入[url]http://x.x.x.x:3000[/url] 即出来管理界面.
38.修改/etc/rc.conf不重启生效
1.sh /etc/rc
2./etc/netstart
39.freebsd启动的时候停到blanktime的解决办法
可以试试 这个参数:blanktime="NO"
etc/rc.conf 中把 default_router 注释掉
#未验证!!!
40.Bsd 下的QQ
eva不错,运行速度飞快。
/usr/ports/net-im/eva
41.一次性把所有安装的ports删除掉
a.pkg_delete -a
b.安装pkg_cutleaves它会告诉你,哪些package没有人依赖,并让你决定要不要删除
42.pure-ftp安装
cd /usr/ports/ftp/pure-ftpd/
make WITH_LANG=simplified-chinese install clean
[X] BANNER Show pure-ftpd welcome upon session start
cd /usr/local/etc/
cp pure-ftpd.conf.sample pure-ftpd.conf
vi /etc/rc.conf -->加入pureftpd_enable="YES"
43.开机自动校准时间
vi /etc/rc.conf--->加入
ntpdate_enable="YES" # Run ntpdate to sync time on boot (or NO).
ntpdate_flags="207.46.232.189" # time.windows.com
44.用win2000的引导器启动FreeBSD
我在笔记本上装了双系统,win2000 和freebsd,装完 freebsd后 系统自动设置如下:
f1 dos
f2 freebsd
先起动到dos下,fdisk /mbr,再把FreeBSD光盘上的boot\boot1复制到c:\,再编辑c:\boot.ini
加一行c:\boot1="FreeBsd"
45.安装mplayer
make WITH_GUI=yes WITH_LANG=zh_CN WITH_FREETYPE=yes WITHOUT_RUNTIME_CPUDETECTION=yes install clean
升级源码树
安装cvsup
升级系统源码树及ports
重新编译内核
优化编译环境
升级操作系统
升级配置文件
重新编译内核
重新启动服务器
优化FREEBSD
检查升级情况
打开防火墙
优化内核参数
安装防火墙
安装数据库MYSQL
安装mysql40-server和mysql40-client
安装phpmyadmin
安装FTP服务器
安装ftp软件(使用pure-ftpd/)
安装pureftpd_php_manager
安装APACHE服务器
安装apache13-modssl
安装PHP语言
安装php
安装ZendOptimizer
安装APACHE其它整合软件
安装mod_bandwidth
安装mod_fastcgi
安装mod_gzip
安装mod_limitipconn
安装mod_perl
安装mod_throttle
安装mod_watch
安装APACHE第三方软件
安装限制每个虚拟主机的并发数软件
安装防止ddos***的软件
其它需要安装的软件﹔
安装MRTG
安装net-snmp
安装mrtg
设置虚空间的mrtg和流量分析
安装BIND 9
安装bind9
安装邮件服务器
安装qmail邮件系统
安装WEBMIN和USERMIN
安装webmin
安装usermin
结束语
本文的目的是使新手可以根据此文章的步骤和方法,架设一台专业,高效,安全的FREEBSD出来,并且可以立即投入实际运用,故文章中对运用及命令的使用 多于理论化的知识点的描述,如果您不明白命令有何作用,建议您查查相关资料。
本文假设已经架设好或者新安装了一台FREEBSD系统主机。
本文中引用了很多FREEBSD官方站数据及网上数据,还有更多的是自己在实际工作中的经验,当然,里面的参数并不一定完全适合您,所以请您在使用时,尽 可能根据您的实际需要调整一些参数,使您的SERVER的性能完全的发挥出来。本文只是一个总的线索,如果我要拆开来一个一个详细解释,我想会花更多的篇 幅来写的,因为我忙着04年1月的自考,只写了实际中的运作情况,请各位朋友见谅。
进入:/usr/ports/net/cvsup
make deinstall
make install
make clean
更新/etc/make.conf文件,做适当的编译优化,我的CPU是Intel的:
CFLAGS= -O3 -pipe
COPTFLAGS= -O3 -pipe
执行make world
整个过程很久,需要2小时左右。
options SC_DISABLE_REBOOT
options QUOTA
options IPFIREWALL
options DUMMYNET
options HZ=3000
options IPDIVERT
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=100
options IPSTEALTH
options TCP_DROP_SYNFIN
options IPFIREWALL_DEFAULT_TO_ACCEPT
options ICMP_BANDLIM
options ACCEPT_FILTER_HTTP
#options IPFILTER
#options IPFILTER_LOG
#options IPFILTER_DEFAULT_BLOCK
cd ../../compile/onlinecq
make depend
make
make install
reboot
使用ssh进入系统,使用uname –a 可以查到是否升级成功﹔
#check_quotas="YES"
firewall_enable="YES"
firewall_script="/etc/rc.firewall"
firewall_type="/etc/ipfw.rules" #create it!
firewall_quiet="NO"
firewall_logging_enable="YES"
log_in_vain="NO"
tcp_drop_synfin="NO"
tcp_restrict_rst="YES"
icmp_drop_redirect="YES"
kern.ipc.maxsockbuf=2097152
kern.maxfilesperproc=32768
kern.maxfiles=65536
kern.securelevel=-1
net.inet.tcp.sendspace=65536
net.inet.tcp.recvspace=32768
net.inet.udp.maxdgram=57344
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=0
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0
net.inet.icmp.icmplim=100
net.inet.tcp.always_keepalive=0
net.inet.tcp.delayed_ack=0
net.inet.tcp.log_in_vain=0
net.inet.udp.log_in_vain=0
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
net.local.stream.sendspace=65535
net.local.stream.recvspace=32768
net.inet.ip.fastforwarding=1
vfs.vmiodirenable=1
允许所有IP通过,免得把自己给挡在外面了。
ipfw add all from any to any
vi /etc/ipfw.rules
里面,语法规则同ipfw。
进入/usr/ports/databases/mysql40-server
执行:
make deinstall
make WITH_OPENSSL=yes WITH_LINUXTHREADS=yes BUILD_OPTIMIZED=yes install
编译成静态执行版本
make clean
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
skip-innodb
skip-locking
skip-networking
set-variable = port=3306
set-variable = socket=/tmp/mysql.sock
set-variable = back_log=50
set-variable = connect_timeout=3
set-variable = key_buffer=128M
set-variable = max_connections=1000
set-variable = max_allowed_packet=1M
set-variable = net_buffer_length=8K
set-variable = wait_timeout=3
set-variable = read_buffer_size=1M
set-variable = sort_buffer_size=1M
set-variable = table_cache=256
set-variable = myisam_sort_buffer_size=32M
set-variable = log_slow_queries=/var/log/log_slow_queries.log
#log-bin
server-id = 1
quick
set-variable = max_allowed_packet=16M
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
interactive-timeout
进入/usr/ports/databases/phpmyadmin
执行:
make deinstall
make install
make clean
进入/usr/ports/ftp/pufe-ftpd
执行:
make deinstall
make WITH_MYSQL=1 install
使用简体中文语言包
cp /usr/local/etc/pureftpd-mysql.conf.sample /usr/local/etc/pureftpd-mysql.conf
MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf
MYSQLUser demo
# Mandatory : user password. You must have a password.
MYSQLPassword demo
# Mandatory : database to open.
MYSQLDatabase demo
使用如下命令建立新表:
DROP TABLE IF EXISTS users;
CREATE TABLE users (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
Password varchar(64) NOT NULL default '',
Uid varchar(11) NOT NULL default '-1',
Gid varchar(11) NOT NULL default '-1',
Dir varchar(128) NOT NULL default '',
ULBandwidth smallint(5) NOT NULL default '0',
DLBandwidth smallint(5) NOT NULL default '0',
comment tinytext NOT NULL,
ipaccess varchar(15) NOT NULL default '*',
QuotaSize smallint(5) NOT NULL default '0',
QuotaFiles int(11) NOT NULL default 0,
PRIMARY KEY (User),
UNIQUE KEY User (User)
) TYPE=MyISAM;
解压并放到指定的目录里面,比如:
chmod –R 755 /usr/local/www/data/pureftpd_php_manager
pw useradd ftpuser –g ftpusers –s /sbin/nologin
更改里面的如下行:
$DefaultPass = ""; # Default User Password^M
$DefaultUid = "1002"; # Default User ID ( must be a re
al user acct )^M
$DefaultGid = "1001"; # Default Group ID ( must be a r
eal group acct )^M
$DefaultDir = "/home"; # Default User Dir ( use
/./ at the end to chroot )^M
$DefaultUL = "0"; # Default Upload Throttl
e ( 0 disables it )^M
$DefaultDL = "0"; # Default Download Throt
tle ( 0 disables it )^M
$Defaultip = "*"; # Default IP restriction
s ( * = any IP )^M
$DefaultQS = "200"; # Default Quota Size ( 0 disable
s it )^M
$Defaultcmt = ""; # Default Comment for us
er^M
^M
// UA^M
$DefaultQF = "0"; # Default Quota Files ( 0 disabl
进入/usr/ports/www/apache13-modssl
执行:
make deinstall
make WITH_APACHE_SUEXEC=yes APACHE_HARD_SERVER_LIMIT=1024 APACHE_PERF_TUNING=yes install
Make clean
设置KeepAlive Off
进入/usr/ports/www/mod_php4
执行:
make deinstall
make install
AddType application/x-httpd-php-source .phps
DirectoryIndex index.html index.htm index.wml index.cgi index.shtml index.jsp index.js index.jp index.php4 index.php3 index.php index.phtml default.htm default.html home.htm
</IfModule>
以及修改php.ini里面的参数
vi /etc/php.ini
修改下面两处为:
magic_quotes_gpc = On
再执行
cd ZendOptimizer-2.1.0b-FreeBSD4.0-i386
sh setup
注意:此时您的php.ini配置文件,一般会移到
/usr/loca/Zend/etc/php.ini
并且底部会增加以下几行:
zend_optimizer.optimization_level=15
zend_extension_manager.optimizer=/usr/local/Zend/lib/Optimizer-2.1.0
zend_extension_manager.optimizer_ts=/usr/local/Zend/lib/Optimizer_TS-2.1.0
zend_extension=/usr/local/Zend/lib/ZendExtensionManager.so
zend_extension_ts=/usr/local/Zend/lib/ZendExtensionManager_TS.so
进入/usr/ports/www/mod_bandwidth
执行:
make deinstall
make install
LoadModule bandwidth_module libexec/apache/mod_bandwidth.so
AddModule mod_bandwidth.c
make clean
* BandWidthModule
该模块的开关,可以对每个Server进行配置
设定计时单位,MS(微秒),建议为:1000000 (1秒)
可以针对特定来源的对象控制流,rate以字节为单位,但当rate为0时,为不限制流速。
例子:
BandWidth 138.195 0
BandWidth all 1024
当传送一个大于等于filesize KB大小的档时,设定一个最大流速(字节/秒),当rate
为0的时候,不限速。
例子:
LargeFileLimit 1024 2048
限速3072 B/s,大于1024KB的文件将会被限速2048 B/s.
设定每个连接传送数据的基本带宽占用,以Byte为单位。默认值:256 B/s。
当rate设定为0时,使用默认带宽限制。
安装mod_fastcgi
进入/usr/ports/www/mod_ fastcgi
执行:
make deinstall
make install
LoadModule fastcgi_module libexec/apache/mod_fastcgi.so
AddModule mod_fastcgi.c
AddHandler fastcgi-script fcgi fcgi fpl
make clean
进入/usr/ports/www/mod_gzip
执行:
make deinstall
make install
LoadModule gzip_module libexec/apache/mod_gzip.so
AddModule mod_gzip.c make clean
进入/usr/ports/www/mod_limitipconn
执行:
make deinstall
make install
vi /usr/local/etc/apache/httpd.conf
LoadModule limitipconn_module libexec/apache/mod_limitipconn.so
AddModule mod_limitipconn.c
执行:
make deinstall
make install
LoadModule perl_module libexec/apache/mod_perl.so
AddModule mod_perl.c
执行:
make clean
make deinstall
make install
LoadModule throttle_module libexec/apache/mod_throttle.so
AddModule mod_throttle.c
进入/usr/ports/www/mod_watch
执行:
make deinstall
make install
LoadModule watch_module libexec/apache/mod_watch.so
AddModule mod_watch.c
mod_vhost_limit
安装:
AddModule mod_vhost_limit.c
ExtendedStatus On
NameVirtualHost *
<VirtualHost *>
ServerName server1
DocumentRoot /some/where/1
MaxVhostClients 100
</VirtualHost>
<VirtualHost *>
ServerName server2
DocumentRoot /some/where/2
MaxVhostClients 30
</VirtualHost>
<VirtualHost *>
ServerName server3
DocumentRoot /some/where/3
</VirtualHost>
如超出限制的并发数在客户端就会出现503错误:
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
--------------------------------------------------------------------------------
[Mon Jun 23 15:22:24 2003] [error] client access to server1 deferred, MaxVhostClients 100 exceeded
dosevasive1.8.tar.gz
安装方法:
cd dosevasive/
/usr/local/apache/bin/apxs -i -c mod_dosevasive.c
vi /usr/local/apache/conf/httpd.conf
AddModule mod_dosevasive.c
<IfModule mod_dosevasive.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
CPU温度监控软件
CPU负载监控软件
封包流量监控软件
……
进入/usr/ports/net/net-snmp
执行:
make deinstall
make install
make clean
进入/usr/ports/net/mrtg
执行:
make deinstall
make install
make clean
生成流量控制檔:
Options[_]: growright,bits
#Language: gb2312
PageTop[^]: <H1>Traffic Stats for OnlineCQ.COM User</H1><HR>
#PageTop[$]: Contact QQ: 151482576<HR>
PageFoot[^]: [url]WWW.OnlineCQ.COM[/url] MSN: [email]cqfanli@hotmail.com[/email] QQ:151482576
*/15 * * * * root /usr/local/bin/mrtg /usr/local/e
tc/apache/mod_watch.cfg
这是一套域名解析系统,可以让您的SERVER做DNS SERVER,非常不错的!
进入/usr/ports/dns/bind9
make deinstall
make install
make clean
使用iceblood的安装包,傻瓜式的安装就可以了!注意第一次安装时,多看几遍它的说明,不要弄错了!
安装完成后,自己再加上qmailadmin,它可以让您在一台主机上面,开多个域名的企业邮局!
先下载webmin最新版
再解压:
sh setup.sh
并且请设置为自动启动,以便以后可以通过此来管理。
安装完成后,可以通过如下方式访问:
[url]http://IP:10000/[/url]
注意,默认埠是10000
再解压:
进入目录开始安装:
cd usermin-1.030
sh setup.sh
安装完成后,可以通过如下方式访问:
[url]http://IP:20000/[/url]
注意,默认埠是20000。
Usermin会自动和webmin整合的,使用webmin的管理员密码,并且可以在webmin里面启动它。
如果在安装过程中出现错误,您可以先检查完错误,再接着安装下去。或者你可以选择你感兴趣的某些部份安装!
当然因为时间仓促,涉及到的知识太广,加上本人能力有限,其中错误在所难免,恳请各位读者提出来,大家共同提高,共同进步!
- 启动选项
用指定的内核启动:
boot kernel.GENERIC 忘记root密码(开机boot -s进入单用户模式,5.x按4):mount -a; csh; passwd; exit; exit 启动等待时间(/boot/loader.conf):autoboot_delay="2" 单网卡绑定多个IP(/etc/rc.conf):ifconfig_rl0_alias0="inet 192.168.0.10 netmask 255.255.255.0"
ifconfig_rl0_alias1="inet 192.168.0.20 netmask 255.255.255.0"停用sendmail(/etc/rc.conf):sendmail_enable="NONE" 控制台鼠标,两键模拟三键粘贴(/etc/rc.conf):moused_enable="YES"
moused_flags="-3"
- 用户环境
彩色ls(~/.cshrc):
alias ls ls -GF 命令提示符(~/.cshrc):set prompt = '%B[%n@%m]:%$PWD\n%b#' 按TAB键显示文件(~/.cshrc):set autolist 中文环境(~/.cshrc):setenv LANG zh_CN.eucCN
setenv LC_ALL zh_CN.eucCN
- 基本操作
查看硬盘空间和节点使用率:
df -h
df -ih
du -sh /dir
du -sh /dir/*显示文件类型:file /dir/file.txt 显示目录结构:#pkg_add -r tree; rehash
tree -L <level> <dir>清空文件:true > /dir/file.txt 保存man输出:man <command> | col -b > file.txt 命令安装后马上生效:rehash 执行历史命令:h -> 查寻历史命令
!<number> -> 执行第n个历史命令
!<pattern> -> 匹配开头字符
!?<pattern>? -> 匹配输入字符Console快捷键:ctrl+d -> 删除光标所在字符
ctrl+w -> 删除光标所在字前面的字符
ctrl+u -> bash:将光标前所有的字及字符删掉,tcsh:删除所有字
ctrl+k -> 将光标后所有字符删掉
ctrl+b -> 下个字符
ctrl+f -> 前一个字符
ctrl+m -> 和按下 enter 的结果一样
ctrl+h -> 和按下 del 或 backspace 键一样
del 或 backspace -> 删除前一个字符
- 系统管理
允许root使用密码登录(/etc/ssh/sshd_config):
PermitRootLogin yes
PasswordAuthentication yes创建用户时设置密码:echo <password> | pw useradd <username> -u <uid> -g <group> -m -d <userdir> -s /bin/csh -h 0 增加man路径(/etc/manpath.config):OPTIONAL_MANPATH /dir/man 重启服务:killall -HUP <process> 重启网络:/etc/netstart 查看硬件信息:#pkg_add -r dmidecode; rehash
dmidecode
- 系统监测
进程:
ps -aux 网络:netstat -an
netstat -r
netstat -m
netstat 1
systat -if性能:top
vmstat
systat -vm
- 系统安全
禁止/允许修改文件:
chflags schg *.conf
ls -lo *.conf
chflags noschg *.conf加密/解密文件(crypt/enigma/pgp):cat file1.txt | crypt <password> > file2.txt
cyrpt <password> < file2.txt > file3.txt限制登录(/etc/login.access):-:ALL EXCEPT wheel shutdown sync:console
-:wheel:ALL EXCEPT LOCAL .funbsd.net
-:deny_user1 deny_user2 deny_user3:ALL
+:allow_user1 allow_user2 allow_user3:ALL
#-:ALL EXCEPT root oracle:ALL
halt -p和shutdown -p now .这两个命令可以直接关掉电源.
查看用户:
pw usershow –a
查看当前路径:
pwd
命令:
portupgrade -arPP
portupgrade软件的路径:
/usr/ports/sysutils/portupgrade
portupgrade 是一个软件,用于快捷便利地升级软件
cd /usr/ports/sysutils/portupgrade
make install clean
安装上它
然后用cvsup更新ports树
然后运行
portupgrade -r pkg_name 升级单个软件和与其相关的
其中 pkg_name 是 pkg_info 中显示的名字
portupgrade -ar 就会自动更新全部了。
如果加上 P 参数,则先看是否有已经编译好的 pkg 下载,直接从 pkg 升级,省去自己编译。
下载站点可以通过修改 /usr/local/etc/pkgtools.conf 更改
portupgrade -arR 升级所有已经安装的软件,并且检查依赖关系
我的mysql 是4.1.7版本的,有bug,先用pkg_info查到mysql包的名字
然后portupgrade -r mysqlx.x.x
然后就全搞定了,mysql,apache都没有停止,升级完了后,它自动把mysql
shutdown了,需要手工重启一下。
修改用户密码
# passwd username
最近在测FREEBSD平台下ISP邮件系统前的准备知识摘录相关推荐
- Linux系列-Red Hat5平台下的DHCP服务搭建
Linux操作系统已经在企业中得到广泛应用,Red Hat5在企业中的应用也逐渐取代Red Hat4,成为当今企业中应用最多的操作系统之一.它致力于解决以Internet为中心的服务应用及企业中服务的 ...
- Linux 平台下PCI 接口视频采集卡的驱动程序编写技术
转自http://publishblog.blogchina.com/blog/tb.b?diaryID=2424186 Linux 平台下PCI 接口视频采集卡的驱动程序编写技术 李根深 邢汉承 0 ...
- 支持linux的热门游戏,Linux_2007年Linux平台下的8款最佳游戏(图),Linux游戏支持情况糟糕一直是 - phpStudy...
2007年Linux平台下的8款最佳游戏(图) Linux游戏支持情况糟糕一直是广为诟病的问题,不过07年的这8款游戏相当精彩,具有可玩性,并且最重要的是,这八款游戏不需要Wine就可以直接运行,当然 ...
- idea java jni 调试_IntelliJ IDEA平台下JNI编程(一)—HelloWorld篇
JNI(Java Native Interface),出于学习JNI的目的,为了能够更方便快速地运行程序.本文的是在IDEA中进行,而不在AndroidStudio,这样能够对NDK的工作过程有个更深 ...
- Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy
Linux平台下QtCreator集成代码静态分析工具clang-tidy和Clazy 原文连接: https://blog.csdn.net/wsj18808050/article/details/ ...
- linux平台下QtCreator中集成Valgrind系列工具
linux平台下QtCreator中集成Valgrind系列工具 ###1.valgrind 安装 valgrind 安装 2.打开QtCreator >> Analyze 你就会发现 这 ...
- linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)
有个童鞋问rman的自动备份脚本程序,我之前有写过exp备份指定方案自动备份案例(Linux平台下的Oracle自动备份案例(使用exp工具) http://www.linuxidc.com/Lin ...
- windows平台下vlc编译之十三:vlc1.1.0编译
请移步https://higoge.github.io/,所有下载资料在那个博客都能找到.谢谢. --------------------------------------------------- ...
- Linux平台下Eclipse的安装
Linux平台下Eclipse的安装(2007-06-26 09:50:22) 分类:他山之石 Linux平台下Eclipse的安装 Linux平台下Eclipse的安装2007年06月15日 星 ...
- linux hadoop etc目录,题目Linux平台下Hadoop的安装配置
1Linux平台下Hadoop的安装配置 以下操作均是在虚拟机VWMare10.0平台上安装ubuntu12.04实现.首先要在ubuntu下穿件Hadoop用户. Ubuntulinux查看系统版本 ...
最新文章
- Python 函数的可变参数(*paramter与**paramter)的使用
- 36所高校强基计划大学的计算机专业排名,36所强基计划大学,综合实力大排名!高校专业怎么选?...
- PHP实现MVC开发: 一个简单的MVC(转)
- CentOs7下systemd管理知识要点
- C和指针之字符操作(<ctype.h>)
- 如何与深度学习服务器优雅的交互?(长期更新)
- ntp-redhat 同步时间配置
- Android学习笔记(六)——CheckBox复选框
- 如何判断cin输入结束~
- linux远程日志rsyslog服务端和客户端安装(亲测)--自定义接收日志格式
- VO、DTO、DO、PO的概念
- HTML5期末大作业:游戏设计网站设计——游戏介绍(5页) 大学生游戏网页设计作业模板下载 网游网页设计作业成品 静态HTML手游网页制作下载_网页设计代码
- 电脑端Ins图片保存
- Android Studio中如何隐藏顶部状态栏和标题栏
- Pytorch实现CT图像正投影(FP)与反投影(FBP)的模块
- 2023武汉理工大学计算机考研信息汇总
- 计算机快捷方式后缀名,电脑快捷键-文件扩展名详解.doc
- 计算机数据恢复视频教程,手机视频误删怎么恢复 互盾数据恢复教程
- 从云原生到智能化,深度解读行业首个「视频直播技术最佳实践图谱」
- 电视剧里最肉麻恶心的俗套对白