金億温馨 發表於 2014-7-20 12:47:23

freebsd用法配置汇总

<strong>FreeBSD</strong><strong>中文wiki<br /><br /></strong>http://wiki.freebsdchina.org
<p><strong>制作FreeBSD-USB安装盘</strong></p>
<p>IMG映像文件下载:<a target="_blank" href="ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/7.4-RELEASE/floppies/" rel="external nofollow" >ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/7.4-RELEASE/floppies/</a>。</p>
<p>在当前目录下执行,#dd if=FreeBSD-8.2-RELEASE-i386-memstick.img of=/dev/da0[设备名] bs=64k</p>
<p><strong>如何设定网络</strong></p>
<p>修改/etc/rc.conf,需要/etc/rc.d/netif重起,或reboot才能生效。</p>
<p>ifconfig_re0=&quot;inet 192.168.0.76 netmask 255.255.254.0&quot;</p>
<p>增加第二个&nbsp;IP</p>
<p>ifconfig_re0_alias0=&quot;inet 192.168.0.76 netmask 255.255.254.0&quot;</p>
<p><strong>直接使用ifconfig,立刻生效</strong></p>
<p># ifconfig re0 192.168.0.76 255.255.254.0</p>
<p><strong>设定系统默认网关</strong></p>
<p>修改&nbsp;/etc/rc.conf</p>
<p>defaultrouter=&quot;192.168.0.1&quot;</p>
<p>使用route命令,即时生效</p>
<p>route add default 192.168.0.1</p>
<p><strong>设定系统默认域名服务器</strong></p>
<p>修改&nbsp;/etc/resolv.conf&nbsp;文件到如下内容,如果这个文件不存在,可以直接创建。</p>
<p>nameserver 192.168.0.1</p>
<p>更复杂的设定可以参考这个文件的&nbsp;man&nbsp;文档。</p>
<p><strong>/etc/hosts&nbsp;</strong><strong>文件的作用</strong></p>
<p>系统默认查询域名的顺寻是,先从&nbsp;/etc/hosts&nbsp;查询,如果查不到就从&nbsp;dns&nbsp;服务器查询。因此,你可以把一些常用的 域名-IP&nbsp;地址对应写到&nbsp;/etc/hosts&nbsp;里面以加快网络速度。</p>
<p><strong>FTP</strong><strong>访问相关</strong></p>
<p>&nbsp;&nbsp;&nbsp; # ftp 192.168.1.248 Enter //# lftp lipengfei:wocuole@192.168.1.249 Enter<br />&nbsp;&nbsp;&nbsp; #&nbsp;用户名&nbsp;Enter<br />&nbsp;&nbsp;&nbsp; # passwd Enter<br />&nbsp;&nbsp;&nbsp; # get file(文件名)即可下载文件到用户目录<br />&nbsp;&nbsp;&nbsp; #&nbsp;匿名服务器&nbsp;anonymous&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</p>
<p><br /><strong>4.</strong><strong>启动putty并使root可ssh登录</strong></p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;首先vi编辑/etc/inetd.conf,去掉ssh前的#,保存退出<br />&nbsp;&nbsp;&nbsp;&nbsp;编辑/etc/rc.conf<br />&nbsp;&nbsp;&nbsp;&nbsp;最后加入:sshd_enable=&quot;yes&quot;即可<br />&nbsp;&nbsp;&nbsp;&nbsp;激活sshd服务:<br />&nbsp;&nbsp;&nbsp; techo#/etc/rc.d/sshd start<br />&nbsp;&nbsp;&nbsp;&nbsp;用下面命令检查服务是否启动,在22端口应该有监听。<br />&nbsp;&nbsp;&nbsp; #netstat -an ## check port number 22<br />&nbsp;&nbsp;&nbsp;&nbsp;最后<br />&nbsp;&nbsp;&nbsp; vi /etc/ssh/sshd_config,<br />&nbsp;&nbsp;&nbsp;&nbsp;修改下列一行<br />&nbsp;&nbsp;&nbsp; #PermitRootLogin yes #允许root登录<br />&nbsp;&nbsp;&nbsp;&nbsp;修改完配置文件后,重新启动sshd服务器(/etc/rc.d/sshd restart)即可。</p>
<p><strong>解决安装后声卡无法识别问题</strong></p>
<p># vi /boot/loader.conf</p>
<p>添加</p>
<p>snd_hda_load=&quot;YES&quot;</p>
<p>保存,reboot.即可。</p>
<p><strong>Grub4dos</strong><strong>引导</strong><strong>FreeBSD</strong><strong>系统</strong></p>
<p>title FreeBSD</p>
<p>root (hd0,x,y)</p>
<p>kernel /boo/loader \\其中,x为你的FreeBSD的分区,y为FreeBSD/所在的SLICE.</p>
<p><strong>Grub2</strong><strong>引导</strong><strong>FreeBSD</strong></p>
<p>menuentry &quot;FreeBSD2&quot; {</p>
<p>insmod ufs2</p>
<p>set root=(hd0,2)</p>
<p>kfreebsd /boot/kernel/kernel</p>
<p>}</p>
<p>设备标示</p>
<p>ad ATAPI (IDE)&nbsp;磁盘</p>
<p>da SCSI&nbsp;直接存取磁盘</p>
<p>acd ATAPI (IDE)&nbsp;光驱</p>
<p>cd SCSI&nbsp;光驱</p>
<p>fd&nbsp;软驱<br /><strong>软件包管理</strong></p>
<p>1.查询</p>
<p>pkg_info -r joe-(version).tgz #查询指点套件所依赖软件包</p>
<p>pkg_info #查询所有套件</p>
<p>pkg_info | grep * #查询目前系统与*相关的套件</p>
<p>pkg_info -W /usr/local/bin/joe #查询joe属于哪个套件,若没有回执则说明joe属FreeBSD内建的。</p>
<p>pkg_info -L /var/db/pkg/joe-(version) #查询某个套件安装了那些档案</p>
<p>pkg_version(1) #是一个用来统计所有安装的软件包版本的工具。它可以用来比较本地&nbsp;package&nbsp;的版本与&nbsp;ports&nbsp;目录中的当前版本是否一致。在第二列的符号指出了安装版本的相关时间和本地ports目录树中可用的版本。</p>
<p>符号 含义</p>
<p>=&nbsp;在本地ports树中与已安装的软件包版本相匹配。</p>
<p>&lt;&nbsp;已安装的版本要比在ports树中的版本旧。</p>
<p>&gt;&nbsp;已安装的版本要比在ports树中的版本新&nbsp;(本地的port树可能没有更新)。</p>
<p>?&nbsp;已安装的软件包无法在ports索引中找到。&nbsp;(可能发生这种事情,举个例子, 您早先安装的一个&nbsp;port&nbsp;从&nbsp;port&nbsp;树中移出或改名了)</p>
<p>*&nbsp;软件包有很多版本。</p>
<p>&nbsp;&nbsp;&nbsp;2.安装</p>
<p>pkg_add -r joe-(version).tgz #安装指定套件</p>
<p>pkg_add -f joe-(version).tgz #强制安装指定套件,不考虑依赖问题</p>
<p>pkg_version -c #自行整理并提供可升级套件列表</p>
<p>&nbsp;&nbsp;&nbsp;3.卸载</p>
<p>cd /usr/ports/editors/joe</p>
<p>make deinstall #移除软件</p>
<p>pkg_delete -f joe-(version) #强制移除</p>
<p>make deinstall-depends(软件包名) #一并移除相依赖软件</p>
<p>pkg_delete joe-(version) #一并移除相依赖软件</p>
<p>pkg_delete xchat\* #这时, 所有名字以&nbsp;xchat&nbsp;开头的&nbsp;package&nbsp;都会被删掉。</p>
<p><strong>Debian Linux</strong><strong>下挂在FreeBSD分区</strong><strong>UFS</strong><br /># fdisk -l //可以看出FreeBSD的UFS分区在linux被识别为/dev/sda2</p>
<p># cd /mnt &amp;&amp; mkdir sda2 //创建UFS分区挂载点/mnt/sda2</p>
<p># mount -rt ufs -o ufstype=ufs2 /dev/sda2 /mnt/sda2/ //执行挂在命令</p>
<p># mount -t ufs -o ro,ufstype=ufs2 /dev/sda2 /mnt/mnt/</p>
<p>OK</p>
<p>如果希望启动后自动挂载则在/etc/fstab添加</p>
<p>/dev/hda9 /mnt/bsd ufs ro,ufstype=ufs2 0 0</p>
<p><strong>启用FreeBSD系统自带FTP服务</strong></p>
<p># vi /etc/inetd.conf</p>
<p>去掉ftp stream tcp nowait root /usr/libexec/ftpd前面的#删除。(开启ftp服务)</p>
<p># vi /etc/rc.conf</p>
<p>添加</p>
<p>ftpd_enable=&rdquo;YES&rdquo;</p>
<p>将ftpd服务加入自启动</p>
<p>/etc/rc.d/ftpd start</p>
<p>启动ftp服务</p>
<p><span style="FONT-FAMILY: &quot;Courier New&quot;">/etc/ftpusers&nbsp;不可使用来登陆ftp的用户,指黑名单列表设定</span></p>
<p><span style="FONT-FAMILY: &quot;Courier New&quot;">/etc/ftpchroot&nbsp;需要做chroot&nbsp;的账号和群组列表</span></p>
<p><span style="FONT-FAMILY: &quot;Courier New&quot;">/etc/ftphosts&nbsp;虚拟机站点的设定</span></p>
<p><span style="FONT-FAMILY: &quot;Courier New&quot;">/etc/ftpwelcome&nbsp;进行ftp的欢迎信息</span></p>
<p><span style="FONT-FAMILY: &quot;Courier New&quot;">/etc/ftpmotd&nbsp;登陆后自动的提示信息</span></p>
<p><span style="FONT-FAMILY: &quot;Courier New&quot;">/var/run/nologin&nbsp;拒绝登陆后的显示信息</span></p>
<p><span style="FONT-FAMILY: &quot;Courier New&quot;">/var/log/ftpd&nbsp;记录用匿名方式登陆时的传输情况</span></p>
<p><strong>解决</strong><strong>freebsd</strong><strong>下普通用户无法</strong><strong>su</strong><strong>至</strong><strong>root</strong></p>
<p>vi /etc/group //编辑group文件</p>
<p>wheel:*:0:root //修改第一行</p>
<p>wheel:*:0:root,xiaopang //给wheel用户组添加xiaopang用户</p>
<p>然后就可以通过普通用户xiaopang su&nbsp;到root了</p>
<p>设置FreeBSD登陆提示信息</p>
<p># vi etc/motd //写入需要提示内容即可</p>
<p>ports使用技巧</p>
<p><strong>下载指定软件tarball</strong><br /># make fetch<br /><br /><strong>下载安装指定ports所需其他ports的tarball</strong><br /># make retch-recursive<br /><br /><strong>如果希望下载所有ports的tarball</strong><br /># cd /usr/ports<br /># make fetch<br />会将所有tarball下载到/usr/ports/distfiles/目录下<br /><br /><strong>抓取ftp下所有ports的ports的tarball,则:</strong><br /># cd /usr/ports/ftp<br /># make fetch</p>
<p># dmesg | grep attached &nbsp;&nbsp;&nbsp;&nbsp;//可查看那些设备没有被驱动</p>
<p># pciconf -lv &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp;//可查看具体信息</p>
<p># /var/run/dmesg.boo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//也是个不错的排错参考之一</p>
<p># ntpdate time.windows.com&nbsp;&nbsp;//网络校时</p>
<p><strong>改变ports安装软件下载地址,在/etc/make.conf中加入</strong></p>
<p>MASTER_SITE_BACKUP?=http://mirrors.163.com/FreeBSD/distfiles/${DIST_SUBDIR}/</p>
<p>MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}</p>
<p><strong>Packages</strong><strong>更改软件库下载地址</strong></p>
<p>setenv PACKAGESITE http://mirrors.163.com/FreeBSD/releases/i386/8.1-</p>
<p>RELEASE/packages/Latest/</p>
<p>pkg_add -r package #package为要安装的软件名</p>
<p><strong>启动NFS客户端</strong></p>
<p>1.修改/etc/rc.conf</p>
<p>nfs_client_enable=&quot;YES&quot;</p>
<p>2.修改/etc/fstab,添加远程nfs分区,例如</p>
<p>remote_server:/path/to/export /local/mount/point nfs rw,late 0 0</p>
<p>注: 选项&nbsp;late&nbsp;也可以不添加。如果添加了,就可以用&nbsp;/etc/rc.d/mountlate&nbsp;来挂载启动时没</p>
<p>有挂载或挂载失败的&nbsp;nfs&nbsp;分区。</p>
<p>3.执行/etc/rc.d/nfsclient</p>
<p># /etc/rc.d/nfsclient start</p>
<p><strong>挂在iso镜像</strong></p>
<p>mount -t cd9660 /dev/`mdconfig -f cdimage.iso` /mnt</p>
<p><strong>挂在ext3/ext2分区</strong></p>
<p>mount -t ext2fs /dev/ad0s1 /mnt/ad0s1</p>
<p><strong>如何查看当前用户默认的shell</strong></p>
<p>echo $SHELL</p>
<p><strong>&nbsp;</strong></p>
<p><strong>查询Ports中是否含有某个软件包</strong></p>
<p>$ /usr/ports</p>
<p>$ make search key=pidgin</p>
<p>同样也可以使用</p>
<p>$ cd /usr/ports</p>
<p>$ make search name=pidgin</p>
<p>用上面两种方法查询时,显示的信息比较详细,包括维护者、依赖包、主页等内容。如果只想显示所在的路径和软件名称,则可以用</p>
<p>$cd /usr/ports</p>
<p>$make quicksearch name=php</p>
<p><strong>安装fcitx-googlepinyin输入法</strong></p>
<p># cd /usr/ports/chinese/fcitx-googlepinyin/ &amp;&amp; make install clean</p>
<p>在.cshrc里加入</p>
<p>setenv XMODIFIERS @im=fcitx</p>
<p>setenv GTK_IM_MODULE xim</p>
<p>setenv QT_IM_MODULE xim</p>
<p>在.xinitrc里加入</p>
<p>fcitx &amp; &nbsp; &nbsp;注意:这个一定要写在/usr/local/bin/startxfce4的前面。</p>
<p><strong>&nbsp;</strong></p>
<p><strong>更新ports的方法</strong></p>
<p>portsnap fetch extract update</p>
<p><strong>更改用户shell</strong></p>
<p># vipw&nbsp;或&nbsp;chsh</p>
<p><strong>如何让csh显示彩色文件列表</strong></p>
<p>编辑/etc/csh.cshrc加入以下代码</p>
<p>setenv LSCOLORS ExGxFxdxCxegedabagExEx&nbsp;<br />setenv CLICOLOR yes</p>
<p>然后执行</p>
<p># sed -i.bak -E s/set\ prompt/#set\ prompt/g /root/.cshrc</p>
<p><strong>如何让</strong><strong>csh</strong><strong>想</strong><strong>bash</strong><strong>那样按</strong><strong>TAB</strong><strong>自动列出无法补全的候选文件</strong>,</p>
<p>标准方法是按Ctrl+D,但如果一定要用TAB的话,在/etc/csh.cshrc中加入;</p>
<p>set autolist</p>
<p>如何让FreeBSD的csh显示类似~这样的提示符号?</p>
<p>在/etc/csh.cshrc中加入;</p>
<p>set prompt = '[%B%n@%m%b] %B%~%b%# '</p>
<p>然后执行;</p>
<p># sed -i.bak -E s/set\ prompt/#set\ prompt/g /root/.cshrc</p>
<p>&nbsp;</p>
<p><strong>搭建samba服务器</strong></p>
<p># cd /usr/ports/net/samba46 &amp;&amp; make install</p>
<p>出现选择,依照内定预设值,按TAB选择OK,再按Enter.</p>
<p>Options for samba 3.0.24,1</p>
<p> LDAP &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With LDAP support</p>
<p> ADS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With Active Directory support</p>
<p> CUPS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With CUPS printing support</p>
<p> WINBIND &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With WinBIND support</p>
<p> ACL_SUPPORT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With ACL support</p>
<p>[ ] FAM_SUPPORT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With File Alteration Monitor</p>
<p> SYSLOG &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With Syslog support</p>
<p>[ ] QUOTAS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With Disk quota support</p>
<p> UTMP &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With UTMP accounting support</p>
<p>[ ] MSDFS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With MSDFS support</p>
<p>[ ] PAM_SMBPASS &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With PAM authentication vs passdb backends</p>
<p>[ ] CLUSTER &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With experimental cluster support</p>
<p>[ ] EXP_MODULES &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With experimental modules</p>
<p> POPT &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; With system-wide POPT library</p>
<p>[ ] MAX_DEBUG &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;With maximum debuging</p>
<p>&nbsp;</p>
<p># cp /usr/local/etc/smb.conf.default /usr/local/etc/samba.conf \\复制Samba.conf配置文件</p>
<p>########################以下内容可实现用户自动登录home目录##########################</p>
<p>workgroup = WORKGROUP</p>
<p>server string = %h Samba Server</p>
<p>log file = /var/log/samba/%m.log</p>
<p></p>
<p>&nbsp; &nbsp;comment = Home directory for %u on %h</p>
<p>&nbsp; &nbsp;browseable = no</p>
<p>&nbsp; &nbsp;writable = yes</p>
<p>&nbsp; &nbsp;path = /usr/home/%u/</p>
<p>&nbsp; &nbsp;valid users = %S</p>
<p>##################################################################</p>
<p>编辑/etc/rc.conf添加</p>
<p>winbindd_enable=&quot;YES&quot;</p>
<p>samba_enable=&quot;YES&quot;</p>
<p>然后添加使用者账号</p>
<p># adduser username</p>
<p>设定samba user database (samba的使用者账号):</p>
<p># smbpasswd -a username</p>
<p>/usr/local/etc/rc.d/samba start &nbsp;//启动samba服务&nbsp;</p>
<p><strong>安装Apache22</strong></p>
<p>1.可以使用ports安装 <br /><br />cd /usr/ports/www/apache22 <br />make install clean <br /><br />第一次安装由于没有配置config,所以会弹出窗口让你选择模块,选择所需要的模块进行安装 <br /><br />2.使用编译好的包远程安装 <br />pkg_add -rv apache22 <br /><br />3.配置apache <br /><br />apache的主配置文件是/usr/local/etc/apache22/httpd.conf,可以根据实际情况修改,主要并且重要的参考:http://lamp.linux.gov.cn/Apache/ApacheMenu/index.html <br /><br />4.启动apache <br /><br />echo 'apache22_enable=&quot;YES&quot;' &gt;&gt; /etc/rc.conf <br />/usr/local/etc/rc.d/apache22 start <br /><br /><strong>FreeBSD 9.0 vncserver 安装与配置<br /></strong><br /><br><div class="msgheader"><div class="right"><span style="CURSOR: pointer" class="copybut"><u>复制代码</u></span></div>代码如下:</div><div class="msgborder" id="phpcode21"><br /># cd /usr/ports/net/vnc<br /># make<br /># make install\\查看vncserver路径<br /># which vncserver<br />/usr/local/bin/vncserver<br /># mkdir .vnc<br /># cd .vnc<br /># vncserver\\启动vnc第一次启动会要求输入密码<br /># vncserver -kill :1<br /># vi xstartup\\修改xstartup为以下内容<br />####################################################<br />#!/bin/sh<br />[ -r $HOME/.Xresources ] &amp;&amp; xrdb $HOME/.Xresources<br />xsetroot -solid grey<br />vncconfig -iconic &amp;<br /># 下面的2行是vncserver第一次启动的时候产生的,为了使用Gnome,我把它们给<br /># 注释掉了<br /># xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &amp;<br /># twm &amp;<br />fvwm &amp;<br />##################################################### <br /># vncserver //重新启动vncserver,服务端配置完毕。<br /></div></p>
<p>在客户端启动vnc viewer 输入:&ldquo;192.168.1.111:1&rdquo;,确认并输入密码即可远程登陆。</p>
頁: [1]
查看完整版本: freebsd用法配置汇总