develop
操作系统版本:Slackware 12.2
1 硬件
配置10块网卡,分别映射到/dev/vmnet0 - /dev/vmnet9。
2 安装基础系统
只安装a/目录下的软件包,全部安装。
配置lilo,安装在MBR中。
3 安装基本网络包
从光盘安装:
# mount /dev/cdrom /mnt # cd /mnt/slackware/n # installpkg iputils-s20070202-i486-2.tgz # installpkg net-tools-1.60-i486-2.tgz # installpkg network-scripts-12.2-noarch-4.tgz
4 配置网络
执行netconfig配置网络:
# netconfig
netconfig只能配置第一块网卡,其余9块编辑/etc/rc.d/rc.inet1.conf手工设置:
... # Config information for eth1: IPADDR[1]="10.10.10.240" NETMASK[1]="255.255.255.0" USE_DHCP[1]="" DHCP_HOSTNAME[1]="" # Config information for eth2: IPADDR[2]="10.10.20.240" NETMASK[2]="255.255.255.0" USE_DHCP[2]="" DHCP_HOSTNAME[2]="" # Config information for eth3: IPADDR[3]="172.16.0.240" NETMASK[3]="255.255.255.0" USE_DHCP[3]="" DHCP_HOSTNAME[3]="" # Config information for eth4: IPADDR[4]="10.20.10.240" NETMASK[4]="255.255.255.0" USE_DHCP[4]="" DHCP_HOSTNAME[4]="" # Config information for eth5: IPADDR[5]="10.20.20.240" NETMASK[5]="255.255.255.0" USE_DHCP[5]="" DHCP_HOSTNAME[5]="" # Config information for eth6: IPADDR[6]="172.17.0.240" NETMASK[6]="255.255.255.0" USE_DHCP[6]="" DHCP_HOSTNAME[6]="" # Config information for eth7: IPADDR[7]="192.168.0.240" NETMASK[7]="255.255.255.0" USE_DHCP[7]="" DHCP_HOSTNAME[7]="" # Config information for eth8: IPADDR[8]="192.168.1.240" NETMASK[8]="255.255.255.0" USE_DHCP[8]="" DHCP_HOSTNAME[8]="" # Config information for eth9: IPADDR[9]="172.18.0.240" NETMASK[9]="255.255.255.0" USE_DHCP[9]="" DHCP_HOSTNAME[9]="" ...
编辑/etc/rc.d/rc.inet1,修改网卡数量。将:
MAXNICS=${MAXNICS:-6}
改为:
MAXNICS=${MAXNICS:-10}
5 配置软件源
这里使用slackpkg工具来进行后续的软件包管理。
首先安装slackpkg和依赖的软件:
# mount /dev/cdrom /mnt # cd /mnt/slackware/ap # installpkg slackpkg-2.70.5-noarch-1.tgz # installpkg diffutils-2.8.1-i486-3.tgz # cd ../n # installpkg gnupg-1.4.9-i486-1.tgz # installpkg gnupg2-2.0.9-i486-1.tgz # installpkg wget-1.11.4-i486-1.tgz
编辑/etc/slackpkg/mirrors,添加本地镜像:
ftp://10.10.10.199/pub/slackware/slackware-12.2/
初始化:
# slackpkg update # slackpkg update gpg
修补当前系统:
# slackpkg upgrade-all
6 切换为generic内核
制作initrd:
# cd /boot # mkinitrd -c -k 2.6.27.7-smp -m ext3:scsi_transport_spi:mptbase:mptscsih:mptspi
编辑/etc/lilo.conf,添加启动项:
image = /boot/vmlinuz-generic-smp-2.6.27.7-smp initrd = /boot/initrd.gz root = /dev/sda1 label = Generic read-only
运行lilo,使之生效:
# /sbin/lilo
重启系统。
7 安装库文件
# slackpkg install zlib # slackpkg install glibc(包括glibc、glibc-i18n和glibc-profile) # slackpkg install ncurses
8 安装其他需要的网络软件
# slackpkg install iptables # slackpkg install tcpdump # slackpkg install openssl # slackpkg install openssh # slackpkg install mailx # slackpkg install bind # slackpkg install netkit-ftp # slackpkg install lftp
9 安装帮助包
# slackpkg install groff # slackpkg install man(包括man和man-pages) # slackpkg install texinfo
10 安装文件打开查看工具
# slackpkg install lsof
11 安装开发工具包
# slackpkg install autoconf # slackpkg install automake # slackpkg install binutils # slackpkg install bison # slackpkg install flex # slackpkg install gcc(包括gcc和gcc-g++) # slackpkg install gdb # slackpkg install gettext-tools # slackpkg install kernel-headers # slackpkg install libtool # slackpkg install m4 # slackpkg install make # slackpkg install perl # slackpkg install python(只选择python) # slackpkg install subversion
12 防火墙配置
有关各个iptables脚本的详细内容见:Iptables脚本。
这里使用客户机脚本,从本地服务器获得rc.iptalbes-client.ref、rc.ip6tables.ref和rc.S.ref。执行:
# cp rc.iptables-client.ref /etc/rc.d/rc.iptables # cp rc.ip6tables.ref /etc/rc.d/rc.ip6tables # cd /etc/rc.d # chmod +x rc.iptables # chmod +x rc.ip6tables
修改/etc/rc.d/rc.S文件,把rc.S.ref模板内容粘贴到rc.S的末尾。
13 设置内核参数
有关脚本的详细内容见:Sysctl脚本。
从本地服务器获得rc.sysctl.ref和rc.M.ref。执行:
# cp rc.sysctl.ref /etc/rc.d/rc.sysctl # cd /etc/rc.d # chmod +x rc.sysctl
编辑/etc/rc.d/rc.M,把rc.M.ref模板内容粘贴到rc.inet2的前面。
14 制作sshfs安装包
14.1 安装依赖包
编译sshfs,需要安装如下的软件包:
# slackpkg install fuse # slackpkg install glib2 # slackpkg install pkg-config
14.2 制作
从sshfs主页fuse.sourceforge.net获得源代码sshfs-fuse-2.2.tar.gz,并从SlackBuilds获得制作脚本sshfs-fuse.tar.gz,放到/sources目录下。
编译:
# cd /sources # tar xzvf sshfs-fuse.tar.gz # cd sshfs-fuse # mv ../sshfs-fuse-2.2.tar.gz . # ./sshfs-fuse.SlackBuild # cd /tmp # mv sshfs-fuse-2.2-i486-1_SBo.tgz /newpkg
14.3 简单使用方法
server端不需要安装sshfs,在client端安装即可。如果client没有安装fuse,则一并安装:
# slackpkg install fuse # installpkg sshfs-fuse-2.2-i486-1_SBo.tgz
mount:
$ sshfs hostname:directory mountpoint
umount:
$ fusermount -u mountpoint
更多使用方法可参见sshfs的man手册。在一些场合,可以使用sshfs代替nfs,从而避免nfs本身的一些缺陷。