当前位置:首页 » 云服务器 » Linux系统服务器搭建与实现

Linux系统服务器搭建与实现

发布时间: 2022-07-20 15:55:13

A. 如何搭建一台linux开发服务器

在开发过程中,必然会出现多人同时工作、协着的情况,在嵌入式开发项目中更为平常,这样可以加快项目周期,为产品上市占得时间先机。目前,使用Linux作为开发产品的操作系统情况越来越多,使用越来越广泛。为了交叉编译,为了最接近开发目标,我们一般都会自己搭建一台Linux开发服务器。Linux开发服务器一些常用的功能必须支持,比如Samba、nfs、tftp、httpd等。 首先我们需要选择合适的Linux操作系统作为服务器的系统,推荐使用Fedora8、Fedora10等,笔者在长期使用的过程中觉得比较稳定吧!如何安装该操作系统就不多说了。 装好系统后,需要增加Linux OS用户,可以使用命令#adser XXX;增加XXX用户,#passwd XXX给其设置登录密码。当然使用图形化创建用户也很直观、方便。在这个环节值得注意的一定要设置好该用户的home目录,一般都会设置到该用户的工作目录,各个用户的工作目录需要私有化、独立开来,这样方便些、安全些。 多用户的账户有了,我们应该来打通网络功能了,Fedora有bug,在图形化配置GATEWAY什么的会不成功,请安装如下方法修改: # cd cd /etc/sysconfig/network-scripts/ # vi ifcfg-eth0 修改配置文件如下: # Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller DEVICE=eth0 HWADDR=00:16:e6:db:c2:96 ONBOOT=yes BOOTPROTO=static //这个应该是“static”,而不是“dhcp”或“none”; USERCTL=yes PEERDNS=yes IPV6INIT=no NM_CONTROLLED=yes//这个应该是“yes”,如不修改,链接仍是disconnected; TYPE=Ethernet NETMASK=***.***.***.*** IPADDR=***.***.***.*** DNS1=***.***.***.*** DNS2=***.***.***.*** GATEWAY=***.***.***.*** step 3: # service network restart 接下来就需要调试一下Samba功能了,这样在windows下编辑Linux下的代码将非常的便利。命令行下操作方法如下: Vim /etc/samba/smbusers # Unix_name = SMB_name1 SMB_name2 … root = administrator admin nobody = guest pcguest smbguest dssun = dssun hmchen = hmchen 增加Samba用户; Vim /etc/samba/smb.conf [dssun] comment = * path = /opt/STM/STLinux-2.3/devkit/dtvkit/dssun writeable = yes ; browseable = yes valid users = bluo, dssun, hmchen, hqian, sbxiang, tsfu, yrli 设置工作路径,可读写性、有效访问的用户等。 在图形化下也有配置菜单,这个就很简单了,不再叙述。 有了Samba就方便很多了!编译编辑都很不错了!接下来要着手你的开发平台软件,这个对于不同平台的SDK有不同的处理方法,根据自己的SDK来处理。 有了SDK后,我们编译通过后,一般都会进行调试,如何方便的调试呢?一般都会想到使用nfs调试。 以Fedora为例,一般默认安装的没有包括tftp功能,可以使用yum来安装,方便! #yum install tftp; #yum install tftp-server 还需要更改一下tftp的配置,如下: vim /etc/xinetd.d/tftp 修改server_args = -s /tftpboot -c,这里的-c一定要加上,否则只能下载不能上传!!! service tftp { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot -c per_source = 11 cps = 100 2 flags = IPv4 } # mkdir /tftpboot # chmod 777 -R /tftpboot/ # service xinetd restart 记得要关闭防火墙、seLinux.不disabled seLinux,Samba有可能只能读不能写,切记。

B. 如何实现在Linux下创建服务程序

Linux系统能提供强大可靠的网络服务,并有管理程序对服务进行管理。例如我们熟悉的Web、FTP和电子邮件等,它们既可以单独运行,也可以被守护进程inetd调用,而且运行得都非常好。但我们不能仅停留在赞叹中,下面就给出两个服务程序程序和一个客户程序的例子,介绍服务程序和客户程序之间是如何沟通的。另外还要编辑配置一些文件,让服务程序也能接受服务管理程序管理。

这两个服务程序功能相同,但一个是独立服务程序,另一个是被inetd调用的服务程序。这是TCP/IP网络服务的两大类,这里将两个程序放在一起是为了比较程序结构和运行方式。两服务程序都在Red Hat Linux 7.1和TurboLinux 7.0上调试通过。

独立服务器

TCP和UDP是两大TCP/IP数据传输方式,套接口是建立服务器客户机连接的机制,首先介绍它们建立通信联系的过程,然后给出一个TCP服务程序例子。

1.TCP套接口通信方式

对于TCP服务器端,服务程序首先调用建立套接口的函数socket(),然后调用绑定服务IP地址和协议端口号函数bind()。绑定成功后调用被动监听函数listen()等待客户连接,还要调用获取连接请求函数accept(),并一直阻塞到客户连接请求的到达,这个函数获取客户机IP地址和协议端口号。

对于TCP客户端,客户程序启动后后调用建立套接口函数socket(),然后调用连接函数connect(),此函数与服务器通过三次握手建立连接。

服务器和客户机建立连接后,就可以使用读函数read()和写函数write()收发数据了。数据交换完成后便各自调用关闭套接口函数close()删除套接口。TCP套接口通信方式见图1所示。

图1 TCP套接口通信方式

2.UDP套接口通信方式

UDP程序与TCP的区别是无需建立连接。服务器首先启动,然后等待用户请求。客户机启动后便直接向服务器请求服务,服务器接到请求后给出应答。

对于UDP服务器端,服务程序首先调用套接口函数socket(),然后调用绑定IP地址和协议端口号函数bind()。之后调用函数recvfrom()接收客户数据,调用sendto()向客户发送数据。

对于UDP客户端,客户机程序启动后调用套接口函数socket(),然后调用sendto()向服务器发送数据,调用recvfrom()接收服务器数据。

双方数据交换成功后,各自调用关闭套接口函数close()关闭套接口。UDP套接口通信方式见图2所示。

图2 UDP套接口通信方式

下面给出独立服务程序的例子。这个程序虽然简单,但是与复杂程序有着相同的结构。

//程序名:server.c
//功能:服务器从客户机读入一个字符,并将排在此字符后面的字符回送客户机
//服务器端口:9000
#include "sys/types.h"
#include "sys/socket.h"
#include "stdio.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "unistd.h"
int main()
{
int pid; //用于存放fork()执行结果
int server_sockfd,client_sockfd; //用于服务器和客户机套接口描述符
int bind_flag,listen_flag; //用于存放bind()和listen()执行结果
int server_address_length,client_address_length; //作为服务器客户机地址长变量
struct sockaddr_in server_address; //作为服务器地址结构变量(含地址和端口)
struct sockaddr_in client_address; //作为客户机地址结构变量(含地址和端口)
if((pid=fork())!=0) //用fork()产生新进程
exit(0) ;
setsid() ; //以子进程开始下面的程序

函数socket(),创建一个套接口,成功则返回套接口描述符。

server_sockfd=socket(AF_INET,SOCK_STREAM,0);
if(server_sockfd<0)
{
printf(“socket error /n”);
exit(1);
}
server_address.sin_family=AF_INET;

函数htonl()用于将32位主机字节顺序转换为网络字节顺序,其中参数INADDR_ANY表示任何IP地址。

server_address.sin_addr.s_addr=htonl(INADDR_ANY);

函数htons()用于将16位主机字节顺序转换为网络字节顺序,其中的参数是绑定的端口号,读者可根据环境自行改动,目的是不与其它服务端口冲突。

server_address.sin_port=htons(9000);
server_address_length=sizeof(server_address);

函数bind()用于绑定本地地址和服务端口号,若调用成功返回值为0。

bind_flag=bind(server_sockfd,/
(struct sockaddr *)&server_address,/
server_address_length);
if(bind_flag<0)
{
printf(“bind error /n”);
exit(1);
}

函数listen(),指明服务器的队列长度,被动等待客户连接,调用成功返回值为0。

listen_flag=listen(server_sockfd,5);
if(listen_flag<0)
{
printf(“listen error /n”);
exit(1);
}

while(1)
{
char ch;

函数accept()等待和获取用户请求,为每个新连接请求创建一个新的套接口,调用成功返回新套接口描述符。

client_sockfd=accept(server_sockfd,/
(struct sockaddr *)&client_address,/
&client_address_length);

函数read()和write()用于在服务器和客户机之间传送数据,调用成功返回读和写的字节数。

函数close(),用于程序使用完一个套接口后关闭套接口,调用成功返回值0。其中的参数为accept()创建的套接口的描述符client_sockfd。

read(client_sockfd,&ch,1);
printf(“cli_ch=%c”,ch);
ch++;
write(client_sockfd,&ch,1);

close(client_sockfd);
}
}

程序完成后就可以使用命令进行编译。在命令行中输入“gcc -o server server.c”,将server.c编译成可执行程序server,这时便可用客户程序进行测试。在命令行执行“./server”启动服务程序,执行“netstat -na”查看有无server的服务端口。如果存在,则执行下面编写的客户程序“./client”。不过这仅是手工启动的方法,下面给出用服务管理程序管理server程序的方法。只要在目录/etc/rc.d/init.d下放入服务程序的脚本就能被服务程序读到。在命令行执行“touch server”创建文件server,并将文件属性改成可执行。在管理程序中并不能看到此服务名,脚本文件必须有一些结构才能被管理程序认为是服务程序脚本。

为了减少工作量,拷贝/etc/rc.d/init.d下脚本httpd,将拷贝脚本名命名为server,然后对其编辑。

(1)执行“cp httpd server”。

(2)用文本编辑器vi(其它编辑器亦可)将server打开进入编辑状态。首先用字符串server替换httpd。然后找到daemon server行,如果编写的程序放在变量PATH目录中,不需要修改此行;如果把服务程序放在其它目录中,就要写服务的全路径。例如程序在/root的目录中,就要写成daemon /root/server,还要删除“rm -f /var/run/server.pid”这一行。

(3)执行“chmod 755 server”,将server属性设定为可执行。

此时就可以用chkconfig、ntsysv等工具,在希望的运行级中增加这个新服务程序,然后测试客户机与服务器能否通信。

被xinetd调用的服务程序

在Linux系统中,有很多服务是被xinetd(较早版本使用的是inetd)超级守护服务器启动的。其实凡是基于TCP和UDP的服务都可使用超级守护进程启动,只是在服务量很大影响效率的情况下不被采用。

1.依赖xinetd启动的服务建立通信过程

为了与独立服务器程序比较,我们看一下依赖xinetd的服务器是如何启动的。

(1)xinetd启动时读取/etc/xinetd目录中的文件(早期版本为/etc/inetd文件),根据其中的内容给所有允许启动的服务创建一个指定类型的套接口,并将套接口放入select()中的描述符集合中。

(2)对每个套接口绑定bind(),所用的端口号和其它参数来自/etc/xinetd目录下每个服务的配置文件。

(3)如果是TCP套接口就调用函数listen(),等待用户连接。如果是UDP套接口,就不需调用此函数。

(4)所有套接口建立后,调用函数select()检查哪些套接口是活动的。

(5)若select()返回TCP套接口,就调用accept()接收这个连接。如果为UDP,就不需调用此函数。

(6)xinetd调用fork()创建子进程,由子进程处理连接请求。

◆ 子进程关闭所有其它描述符,只剩下套接口描述符。这个套接口描述符对于TCP是accept()返回的套接口,对于UDP为最初建立的套接口。然后子进程连续三次p()函数,将套接口描述符复制到0、1和2,它们分别对应标准输入、标准输出和标准错误输出,并关闭套接口描述符。

◆ 子进程查看/etc/xinetd下文件中的用户,如果不是root用户,就用调用命令setuid和setgid将用户ID和组ID改成文件中指定的用户。

(7)对于TCP套接口,与用户交流结束后父进程需要关闭已连接套接口。父进程重新处于select()状态,等待下一个可读的套接口。

最后调用配置文件中指定的外部服务程序,外部程序启动后就可与用户进行信息传递了。

2.为xinetd编写专门的服务程序

除了独立服务程序能被xinetd启动外,还可以为xinetd编写专门的程序。此处的例子程序与上面server.c功能相同。不过两者的程序区别是很大的,此例的代码仅相当于上面传输数据的部分。我们还将程序名定为server.c,所以不能放在相同目录中,同名仅是为了和上面程序对照。

#include "unistd.h"
int main()
{
char ch;
read(0,&ch,1);
ch++;
write(1,&ch,1);
}

将程序编译成可执行文件,并做些设置就可被xinetd启动。注意不要和上面的独立服务程序server一起启动,因为客户程序写得比较简单,访问的是固定端口,服务器都设成了相同的端口号。

(1)编辑/etc/services文件,在行末增加一条记录:

server 9000/tcp

(2)在目录/etc/xinetd.d下编写文件server,内容为:

service server
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /home/test/server (此处设置成自己程序所在的目录)
}

如果使用的是较早版本,则需在/etc/inetd.conf文件中添加下面的行:

server tcp nowait root /path/to/yourdirectory/server

(3)执行/etc/rc.d/initd.d/xinetd restart重新启动xinetd服务器。早期版本执行/etc/rc.d/initd.d/inetd restart重新启动inetd。

(4)执行netstat -an查看有没有server程序使用的端口号,如果有就可使用下面客户机程序进行测试了。

客户机程序

下面就客户机函数做一简单介绍。

//程序名client.c
/*功能:从客户的控制台输入一个字符,然后将这个字符送到服务器,并将服务器返回的字符显示出来*/
#include "sys/types.h"
#include "sys/socket.h"
#include "stdio.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "unistd.h"
int main()
{
int sockfd;//
int address_len;
int connect_flag;
struct sockaddr_in address;
int connect_result;
char client_ch,server_ch;

函数socket()用于建立一个套接口,创建成功返回套接口描述符。

sockfd=socket(AF_INET,SOCK_STREAM,0);
if(sockfd<0)
{
printf(“sockfd error /n”);
}
address.sin_family=AF_INET;
address.sin_addr.s_addr=inet_addr(“192.168.0.1”);/*读者根据自己环境改成服务器地址*/
address.sin_port=htons(9000);

address_len=sizeof(address);

函数connect()用于与服务器建立一个主动连接,调用成功返回值为0。

connect_flag=connect(sockfd,(struct sockaddr *)&address,address_len);

if(connect_flag==-1)
{
perror(“client”);
exit(1);
}
printf(“Input a character :”);

函数scanf()用于从控制台输入一个字符,并将字符存入client_ch的地址。函数write()和read()用于传输数据。函数printf()在客户机屏幕上显示服务器传回的字符。函数close()关闭套接口。

scanf(“%c”,&client_ch);
write(sockfd,&client_ch,1);
read(sockfd,&server_ch,1);
printf(“character from server : %c/n”,server_ch);
close(sockfd);
exit(0);
}

执行命令“gcc -o client client.c”,将client.c编译成client。执行“./client”,在程序提示下输入一个字符,就能看到服务器传回的字符。

以上介绍的仅是简单的例子。平时见到的服务程序远比它复杂,而且很多是多协议服务程序或是多协议多服务程序。多协议服务程序就是在main()中分别创建供服务的TCP和UDP套接口。为每个服务分别写出相应程序好处是便于控制,但是这样每个服务都启动两个服务器,而它们的算法响应是一样的,就要耗费不必要的资源,并且出了问题排错也较困难。多服务是将不同的服务集成在一起由一个程序完成,可用一个数组表示服务,数组中的每一项表示某协议某服务的一种,这样很容易扩展程序的服务功能。

C. 如何搭建一个linux服务器

在开发过程中,必然会出现多人同时工作、协着的情况,在嵌入式开发项目中更为平常,这样可以加快项目周期,为产品上市占得时间先机。目前,使用Linux作为开发产品的操作系统情况越来越多,使用越来越广泛。为了交叉编译,为了最接近开发目标,我们一般都会自己搭建一台Linux开发服务器。Linux开发服务器一些常用的功能必须支持,比如Samba、nfs、tftp、httpd等。
首先我们需要选择合适的Linux操作系统作为服务器的系统,推荐使用Fedora8、Fedora10等,笔者在长期使用的过程中觉得比较稳定吧!如何安装该操作系统就不多说了。 装好系统后,需要增加Linux OS用户,可以使用命令#adser XXX;增加XXX用户,

D. 如何最快搭建LINUX服务器集群

1.2.并行技术
这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.使用MPICH构建一个四节点的集群系统
这是一个非常简单的建造四节点的小集群系统的例子,它是构建在Linux操作系统上,通过MPICH软件包实现的,希望这个小例子能让大家对集群系统的构建有一个最基本的了解。
2.1 所需设备
1).4台采用Pentium II处理器的PC机,每台配
置64M内存,2GB以上的硬盘,和EIDE接口的光盘驱动器。
2).5块100M快速以太网卡,如SMC 9332 EtherPower 10/100(其中四块卡用于连接集群中的结点,另外一块用于将集群中的其中的一个节点与其它网络连接。)
3).5根足够连接集群系统中每个节点的,使用5类非屏蔽双绞线制作的RJ45缆线
4).1个快速以太网(100BASE-Tx)的集线器或交换机
5).1张Linux安装盘
2.2 构建说明
对计算机硬件不熟的人,实施以下这些构建步骤会感到吃力。如果是这样,请找一些有经验的专业人士寻求帮助。
1. 准备好要使用的采用Pentium II处理器的PC机。确信所有的PC机都还没有接上电源,打开PC机的机箱,在准备与网络上的其它设备连接的PC机上安装上两块快速以太网卡,在其它的 PC机上安装上一块快速以太网卡。当然别忘了要加上附加的内存。确定完成后盖上机箱,接上电源。
2. 使用4根RJ45线缆将四台PC机连到快速以太网的集线器或交换机上。使用剩下的1根RJ45线将额外的以太网卡(用于与其它网络相连的那块,这样机构就可以用上集群)连接到机构的局域网上(假定你的机构局域网也是快速以太网),然后打开电源。
3. 使用LINUX安装盘在每一台PC机上安装。请确信在LINUX系统中安装了C编译器和C的LIB库。当你配置TCP/IP时,建议你为四台PC分别指定为192.168.1.1、192.168.1.2、192.168.1.3、192.168.1.4。第一台PC为你的服务器节点(拥有两块网卡的那台)。在这个服务器节点上的那块与机构局域网相连的网卡,你应该为其指定一个与机构局域网吻合的IP地址。
4.当所有PC都装好Linux系统后,编辑每台机器的/etc/hosts文件,让其包含以下几行:
192.168.1.1 node1 server
192.168.1.2 node2
192.168.1.3 node3
192.168.1.4 node4
编辑每台机器的/etc/hosts.equiv文件,使其包含以下几行:
node1
node2
node3
node4
$p#
以下的这些配置是为了让其能使用MPICH’s p4策略去执行分布式的并行处理应用。
1. 在服务器节点
,建一个/mirror目录,并将其配置成为NFS服务器,并在/etc/exports文件中增加一行:
/mirror node1(rw) node2(rw) node3(rw) node4(rw)
2. 在其他节点上,也建一个/mirror目录,关在/etc/fstab文件中增加一行:
server:/mirror /mirror nfs rw,bg,soft 0 0
3. /mirror这个目录从服务器上输出,装载在各个客户端,以便在各个节点间进行软件任务的分发。
4. 在服务器节点上,安装MPICH。MPICH的文档可在
5.任何一个集群用户(你必须在每一个节点新建一个相同的用户),必须在/mirror目录下建一个属于它的子目录,如 /mirror/username,用来存放MPI程序和共享数据文件。这种情况,用户仅仅需要在服务器节点上编译MPI程序,然后将编译后的程序拷贝到在/mirror目录下属于它的的子目录中,然后从他在/mirror目录下属于它的的子目录下使用p4 MPI策略运行MPI程序。
2.3 MPICH安装指南
1.如果你有gunzip,就d下载mpich.tar.gz,要不然就下载mpich.tar.Z。你可以到http://www.mcs.anl.gov/mpi/mpich/downloa下载,也可以使用匿名FTP到ftp.mcs.anl.gov的pub/mpi目录拿。(如果你觉得这个东西太大,你可以到pub/mpi/mpisplit中取分隔成块的几个小包,然后用cat命令将它们合并)
2.解压:gunzip ;c mpich.tar.gz tar xovf-(或zcat mpich.tar.Ztar xovf-)
3.进入mpich目录
4.执行:./configure为MPICH选择一套适合你的实际软硬件环境的参数组,如果你对这些默认选择的参数不满意,可以自己进行配置(具体参见MPICH的配置文档)。最好选择一个指定的目录来安装和配置MPICH,例如:
./configure -prefix=/usr/local/mpich-1.2.0
5.执行:make >&make.log 这会花一段较长的时间,不同的硬件环境花的时间也就不同,可能从10分钟到1个小时,甚至更多。
6.(可选)在工作站网络,或是一台单独的工作站,编辑mpich/util/machines/machines.xxx(xxx是MPICH对你机器体系结构取的名称,你能很容易的认出来)以反映你工作站的当地主机名。你完全可以跳过这一步。在集群中,这一步不需要。
7.(可选)编译、运行一个简单的测试程序:
cd examples/basic
make cpi
ln ;s ../../bin/mpirun mpirun
./mpirun ;np 4 cpi
此时,你就在你的系统上运行了一个MPI程序。
8.(可选)构建MPICH其余的环境,为ch_p4策略使
用安全的服务会使得任何启动速度加快,你可以执行以下命令构建:
make serv_p4
(serv_p4是一个较新的P4安全服务的版本,它包含在MPICH 1.2.0版中),nupshot程序是upshot程序的一个更快版本,但他需要tk 3.6版的源代码。如果你有这个包,你就用以下命令可以构建它:
make nupshot
9.(可选)如果你想将MPICH安装到一个公用的地方让其它人使用它,你可以执行:
make install 或 bin/mpiinstall
你可以使用-prefix选项指定MPICH安装目录。安装后将生成include、lib、bin、sbin、www和man目录以及一个小小的示例目录,
到此你可以通告所有的用户如何编译、执行一个MPI程序。

E. Linux系统怎么搭建DHCP服务器呀

打开系统,挂载光盘。(小白可在桌面模式下,建议在命令行界面操作)
设置IP地址,主机与服务器相互ping通
安装DHCP服务器(我的是用yum安装的,也可以用rpm),yum install -y dhcp
将范本配置文件复制到/etc/dhcp目录下替换掉空白的dhcpd.conf的主配置文件
dhcpd.conf配置文件:常用参数
ddns-update-style (none|interim|ad-hoc):定义所支持的DNS动态更新类型
ignore client-updates:忽略客户端更新
default-less-time number(数字):定义默认IP租约时间
max-lease-time number(数字):定义客户端IP租约时间的最大值
subnet 192.168.100.0 netmask 255.255.255.0{(定义作用域)
range 192.168.100.10 192.168.100.100;(指定动态IP地址范围)
option routers 192.168.100.254;(网关)
option subnet-mask 255.255.255.0;(子网掩码)
option domain-name"liunx65.com";(客户端名称)
option domain-name-servers 192.168.100.32;(DNS服务器地址)
option broadcast-address 192.168.100.255;(广播地址)
}
配置完成后保存退出并重启DHCP服务,测试
设置DHCP自启动(chkconfig --level 3 dhcp on)

F. linux服务器怎么搭建

方法一:安装linux下的xampp,假如你不能离开管理工具,不习惯命令的话。方法二:单独安装包。如在redhatenterprise5.4下利用yum命令逐个安装apache、mysqlphp。安装这三个就完成了LAMP完整的web服务器结构。至于你说的GD库是php内的一个库,安装php的时候应该都配备完全了,假如没有你可以自己再下载添加。

G. linux服务器怎么搭建p

最近要涉及到服务器的部署,用linux,所以新潮热血,学了点linux服务器的部署,配置,搭建,这里总结一下,不为别的,反正是日后留着来回顾一下就够了,回忆一下大体步骤:
准备食材:
虚拟机:VMware_workstation_full_12.5.2
linux镜像文件:ubuntu-14.04.1-desktop-amd64.iso
jdk1.8:jdk-8u11-linux-x64.tar.gz
tomcat:apache-tomcat-8.0.39-windows-x64.zip
首先,我需要一台虚拟机来构建自己的linux服务器,于是搜索网上下载了VMvare,有很多,下了个最新的试试,感觉不错,然后,再下个linux镜像文件,在网上搜索下,虚拟机的安装教程,一步一步的装上,这里用了两三天,主要是软件问题,找了好多路子,但回头一看,就用网上什么系统之家,脚本之家,或者推荐的就行,从CSDN下载的一个也用不了,浪费了好多积分,让我对它失望了一点,本来以为它是万能的,不过没事,路子多。也搜了好多文章,遇到点问题,如:系统不兼容,版本不匹配啥的,反正不好使就从来,一步一步,最后可算安成了,初次欣喜。
然后就是接下来重要的了,linux系统有了,可以先下个linux命令文档,先敲一敲,因为我主要就是部署一下,也不用太多的命令,所以就学几页就不往下看了,以后有机会可以继续看看。
炝锅准备:先安装个jdk,用得1.8,最新的,不过版本不重要,除非项目需要的jdk版本高,安装好的linux很全,里面的浏览器就可以下,注意是linux for jdk,要不然可不行。然后新建一个java文件夹在根目录的(这里的根目录要通过cd 再接/usr/进入,而不是home/xxx,可以通过pwd查看当前所在路径)/usr/下,用来放置解压后的jdk文件,这里因为后缀名是tar.gz所以直接用tar -xf 命令解压,命令都是最简单的,具体的中间-xf可以网络一下,不做详解。
切菜:配置JDK的环境变量,这里用了点时间,因为感觉这个有点别扭,跟windows下不一样,配置环境变量需要注意,自己的用户可能没有权限,需要使用root权限,而我刚开始权限密码不知道,就通过sudo passwd设置一下初始密码,然后通过su root输入密码才进去的,当然密码是看不见的。进去之后,到/etc/文件夹找到profile文件,通过文件编辑命令vi profile在文件的末尾加上变量参数:
JAVA_HOME=/usr/java/jdk1.8.0_11
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
这里是有不同,不用怀疑,比如说那个PATH,加进去之后:wq保存退出,然后可以查看一下,echo $PATH查看PATH,这时是没有配上的,需要命令:source profile激活一下,把环境变量保存在profile里需要每次进来都要通过source激活一下,如果想只看不编辑文件的话可以输入cat+文件名来查看。
炒菜:这下可以把下好的tomcat解压到自定义的一个文件夹里了,我的是home/pengyy/tomcat/下,到config文件里修改一下端口号,vi命令编辑server.xml,里面后来启动的时候8005那个端口有冲突,我直接改了8088,然后又把http请求的端口改成了8001,OK,tomcat配置完成,没什么过多的步骤。
上菜:将一个完成的web项目打成war包,放在tomcat下的webapps里解压,网上说,tomcat启动情况下,放进去可以自动解压,不过我的没发生,不知道为啥,所以就人工解压了,新建个文件夹,和项目根路径相同,然后用jar -xvf xxx.war 命令解压,不过如果报jar命令没有找到,则是因为jdk环境变量,没有激活的原因,这个地方我卡了好久,因为jar命令是基于jdk里的,除非你用unzip命令解压,unzip命令的好处可以解压并新建文件夹。不过我用着不好使,所以就用jar了,是麻烦了一点。
开吃:进入到tomcat下的bin目录,输入命令启动:./start.sh&,终止命令是./shutdown.sh&,按TAB键时可以提示的哈,其实(./)是当前路径的意思,可以不加&,如果加了,启动或终止完事需要按ctrl+c返回到命令行。这样项目就启动了,可以查看日志,去tomcat的logs目录底下查看catalina.out日志文件,可以通过cat查看文件命令,也可以tail -f(倒数多少行可以为数字) catalina.out来查看。如果端口号被占用,可以用命令lsof -i:端口号 来查看端口号被占用的进程号,或者停止该进程,或者修改tomcat的端口号都可以。而当你不确定是否终止了哪个项目的时候,可以通过输入命令ps -ef|grep java来查看一下是否有在运行的项目,通过kill -9 进程号就可以干掉哪个正在运行的项目了。最后通过ifconfig或者ip命令获取虚拟机的Ip地址,在主机上通过ip+端口号+项目根路径的方式访问即可。
吃后感:感觉已经很详细了,虽然有点啰嗦,但因为第一次写,不仅是为了回顾一下,也是为了练练自己的总结能力,如果有太多错误的地方请及时指出,我会多加修改的,通过这次学习,感觉自己得到的好处真的不少,以前对这真是一窍不通,但,从安装到遇到问题,到解决,到最后成功运行,帮助自己了解了太多的细节和不懂的地方,也许不是那么精通,但已经比以前进步太多了。希望所有人都不只是去看一个东西,要多实践才能往前走得更远,加油!小小程序员。
附加甜点(命令):
cat(查看文本),
vi编辑文本命令:a(在字符右侧插入),i(在字符左侧插入),:wq,ZZ(保存退出),:q,q!(不保存退出) :w(保存继续编辑),ctrl+F(翻页),/字符(向后查找),?字符(向前查找),:!bash(退出,执行命令,exit返回继续编辑),x(删除单个字符),dd(删除正行),u(回退修改)
mv file fileFolder(移动文件)
cp file fileFolder(复制文件)
rm -rf/f file(删除文件夹/文件)
ls(查看文件目录)
ls -a(查看所有文件包括隐藏)
ll(列出所有文件包括权限等内容)

H. linux 文件服务器怎么搭建

在前面一个章节学习的FTP文件传输服务确确实实让咱们在主机之间传输文件变得非常方便,但FTP协议的本质是传输文件,并不是共享文件,要想让客户端能够直接在服务端上面修改文件内容还是比较麻烦的事情。于是在1987年时,由微软和英特尔公司共同制订了SMB服务器通信协议(Server MessagesBlock),这项技术的诞生是为了解决局域网内的文件或打印机等资源的共享服务问题,让多个主机之间共享文件变成越来越简单。

后来到了1991年,当年还在读大学的学生Tridgwell为了解决Linux与Windows系统之间的文件共享问题,便基于了这项SMB技术协议开发出了SMBserver这一款服务程序,SMBserver服务程序是一款基于SMB协议并由服务端和客户端组成的开源文件共享软件,通过非常简单的配置就能够实现Linux系统与Windows系统之间的文件共享工作。当时还在上学的Tridgwell想要把这款SMBServer软件注册成为商标,但却被商标局以SMB是没有意义的字符而拒绝了他的申请,经过Tridgwell不断的翻看词典,突然看到一个拉丁舞蹈的名字——SAMBA,如图12-1所示,这个热情洋溢的舞蹈名字中又恰好包含了SMB(SAMBA),于是这便是Samba服务程序名字的由来,现在已经成为了Linux系统与Windows系统之间共享文件的最佳选择。

Samba服务程序的配置方法跟咱们以前学习过的服务很相似,首先咱们需要先通过yum软件仓库来安装samba服务程序,这款软件也恰巧是软件包的名字,很好记吧~:

[root@linuxprobe~]#yuminstallsamba
Loadedplugins:langpacks,proct-id,subscription-manager
………………省略部分输出信息………………
Installing:
sambax86_644.1.1-31.el7rhel527k
TransactionSummary
================================================================================
Install1Package
Totaldownloadsize:527k
Installedsize:1.5M
Isthisok[y/d/N]:y
Downloadingpackages:
Runningtransactioncheck
Runningtransactiontest
Transactiontestsucceeded
Runningtransaction
Installing:samba-4.1.1-31.el7.x86_641/1
Verifying:samba-4.1.1-31.el7.x86_641/1
Installed:
samba.x86_640:4.1.1-31.el7
Complete!


安装后打开Samba服务程序的主配置后发现竟然有320行呢!有没有被吓到?但仔细一看发现其实大多都是以#(井号)开头的注释信息行,既然您手中已经拥有了刘遄老师的经验之书,就肯定不会让您去“死啃”这些东东的~:

[root@linuxprobe ~]# cat /etc/samba/smb.conf
# This is the main Samba configuration file. For detailed information about the
# options listed here, refer to the smb.conf(5) manual page. Samba has a huge
# number of configurable options, most of which are not shown in this example.
#
# The Official Samba 3.2.x HOWTO and Reference Guide contains step-by-step
# guides for installing, configuring, and using Samba:
# http://www.samba.org/samba/docs/Samba-HOWTO-Collection.pdf
#
# The Samba-3 by Example guide has working examples for smb.conf. This guide is
# generated daily: http://www.samba.org/samba/docs/Samba-Guide.pdf
#
# In this file, lines starting with a semicolon (;) or a hash (#) are
# comments and are ignored. This file uses hashes to denote commentary and
# semicolons for parts of the file you may wish to configure.
#
# Note: Run the "testparm" command after modifying this file to check for basic
# syntax errors.
#linuxprobe.com
………………省略部分输出信息………………

由于这次配置文件中的注释信息行实在太多,不便于分析里面的重要参数,因此咱们可以先将配置文件改个名字,然后使用cat命令读入主配置文件内容后通过grep命令-v参数(反向选择)分别去掉所有以#(井号)和;(分号)开头的注释信息行,对于剩余的空白行可以再用^$来表示并反选过滤,最后将过滤后的可用参数信息通过重定向符覆盖写入到原始文件名称中即可。samba服务程序过滤后的参数并不复杂,为了更方便同学们查阅参数功能,刘遄老师在重要参数行后面都写上了注释说明:

[root@linuxprobe~]#mv/etc/samba/smb.conf/etc/samba/smb.conf.bak
[root@linuxprobe~]#cat/etc/samba/smb.conf.bak|grep-v"#"|grep-v";"|grep-v"^$">/etc/samba/smb.conf
[root@linuxprobe~]#cat/etc/samba/smb.conf

I. Linux服务器搭建实战详解的目录

第1章 Linux系统概述 1
1.1 Linux的发展 1
1.2 Linux常见版本 2
1.2.1 Red Hat Linux 2
1.2.2 Debian Linux 2
1.2.3 Ubuntu Linux 3
1.3 Linux操作系统 3
1.3.1 Linux操作系统结构 3
1.3.2 Linux操作系统特点 5
1.3.3 Linux操作系统的应用领域 6
1.3.4 Red Hat Enterprise Linux 5 7
1.4 Red Hat Enterprise Linux 5的两个版本 8
1.5 安装和管理Red Hat Enterprise Linux 8
1.5.1 安装前的准备 8
1.5.2 与其他操作系统并存的问题 10
1.5.3 Red Hat Enterprise Linux的安装阶段 11
1.6 Linux操作系统的引导与登录 19
1.6.1 多系统引导管理器——GRUB及LILO 19
1.6.2 Linux的启动过程 20
1.6.3 Linux的关闭与重新引导 20
1.6.4 Linux系统的登录和退出 20
1.7 GNOME和KDE桌面管理器 22
1.7.1 GNOME桌面环境 23
1.7.2 KDE桌面环境 31
1.7.3 定制自己的桌面 42
第2章 FTP服务器 45
2.1 FTP服务简介 45
2.1.1 FTP工作原理 45
2.1.2 匿名用户访问的产生 46
2.1.3 FTP服务的连接模式 46
2.1.4 几种流行的FTP服务器软件 48
2.2 安装vsFTPd服务 49
2.2.1 安装vsFTPd软件 49
2.2.2 FTP服务的启动与关闭 50
2.3 vsFTPd的相关配置 52
2.3.1 配置匿名用户登录环境 53
2.3.2 监听地址与控制端口 53
2.3.3 FTP模式与数据端口 54
2.3.4 ASCII模式 55
2.3.5 超时选项 55
2.3.6 负载控制 55
2.3.7 用户设置 56
2.3.8 用户登录控制 57
2.3.9 目录访问控制 57
2.3.10 文件操作控制 58
2.3.11 新增文件权限设置 58
2.3.12 日志设置 58
2.4 安装与配置PureFTPD服务器的 59
2.4.1 安装Apache服务 59
2.4.2 安装MySQL数据库 61
2.4.3 安装PureFTPD 62
2.4.4 生成PureFTPD服务管理脚本 64
2.4.5 配置匿名用户登录环境 64
2.4.6 安装Zend Optimizer 65
2.4.7 WebPureFTP的安装与配置 66
2.4.8 生成MySQL数据库 67
2.4.9 生成pure-ftpd数据库配置文件 68
2.4.10 使用webpureftp管理虚拟用户 68
2.5 FTP服务器的访问 69
2.5.1 Linux环境下访问FTP服务器 69
2.5.2 Windows环境下访问FTP服务器 70
第3章 电子邮件服务器 71
3.1 电子邮件服务概述 71
3.1.1 电子邮件服务简介 71
3.1.2 邮件专有名词解释 72
3.1.3 POP3与SMTP协议 73
3.2 Postfix邮件服务器 74
3.2.1 安装Postfix邮件服务器 74
3.2.2 Postfix配置文件 76
3.2.3 Postfix基本配置 77
3.2.4 虚拟别名域 80
3.2.5 用户别名 80
3.2.6 SMTP认证 81
3.2.7 启动和停止Postfix服务 83
3.2.8 配置与访问电子邮件客户端 84
3.3 POP和IMAP邮件服务 87
3.3.1 dovecot服务 87
3.3.2 CyrusImapd服务 88
3.4 Web支持电子邮件 92
3.4.1 Squirrelmail的安装与配置 92
3.4.2 登录Squirrelmail 94
第4章 Web服务器 95
4.1 Web概述 95
4.1.1 Web服务简介 95
4.1.2 HTTP协议简介 96
4.1.3 Web服务器软件 99
4.2 Apache概述 99
4.2.1 Apache的诞生 100
4.2.2 安装Apache服务 101
4.3 启动与停止Apache服务 103
4.4 Apache服务的基本配置方法 106
4.4.1 httpd.conf配置文件 106
4.4.2 Apache服务主配置文件的构成 107
4.5 Apache服务器控制存取的方式 112
4.5.1 Options选项 113
4.5.2 浏览权限的设置 113
4.6 Apache服务的高级配置 116
4.6.1 虚拟目录简介 116
4.6.2 配置与管理虚拟主机 117
4.6.3 用户认证和授权 119
4.6.4 配置SSI 123
4.6.5 MIME类型简介 124
4.7 创建并配置动态网站 124
4.7.1 创建并配置JSP动态网站 124
4.7.2 创建并配置CGI动态网站 131
第5章 DHCP服务器 133
5.1 DHCP服务概述 133
5.1.1 DHCP服务的实现原理 133
5.1.2 IP地址租约和更新 134
5.1.3 DHCP服务器分配的IP地址类型 135
5.2 安装DHCP服务 137
5.2.1 做好DHCP服务器安装前的准备 137
5.2.2 安装DHCP服务的方法 138
5.2.3 启动及停止DHCP服务 141
5.3 配置DHCP服务 142
5.3.1 DHCP配置文件及格式 142
5.3.2 配置IP作用域 145
5.3.3 配置客户机的IP 选项 146
5.3.4 设置租约期限 147
5.3.5 保留特定的IP地址 147
5.3.6 多网段的IP地址的分配 148
5.3.7 DHCP服务器配置实例 149
5.4 配置DHCP客户机 150
5.4.1 以Linux操作系统作为客户端配置 150
5.4.2 以Windows操作系统作为客户端配置 152
第6章 DNS服务器 155
6.1 DNS服务概述 155
6.1.1 DNS服务简介 155
6.1.2 DNS提供的服务 156
6.1.3 DNS查询原理和规划 156
6.1.4 DNS域名解析 158
6.2 DNS服务的安装 158
6.2.1 安装DNS服务 159
6.2.2 安装Chroot软件包 159
6.2.3 DNS服务的启动与停止 160
6.3 配置主要名称服务器 161
6.3.1 主配置文件 161
6.3.2 设置根区域和主区域 162
6.3.3 设置反向解析区域 165
6.3.4 根服务器信息文件 166
6.3.5 区域文件 166
6.3.6 反向解析区域文件 169
6.3.7 功能实现 170
6.3.8 测试DNS服务器 170
6.4 配置辅助DNS服务器 174
6.5 配置缓存Cache-only服务器 175
6.6 DNS客户端的配置 176
6.6.1 在Linux下配置DNS客户端 176
6.6.2 在Windows下配置DNS客户端 177
第7章 代理服务器 179
7.1 代理服务器概述 179
7.1.1 代理服务器的工作流程 179
7.1.2 代理服务器的作用及相关应用 180
7.2 安装Squid Server 181
7.2.1 Squid简介 181
7.2.2 Squid Server的安装 182
7.3 Squid Server的基本配置 184
7.3.1 设置监听的IP和端口 184
7.3.2 设置缓存大小 184
7.3.3 访问控制设置 186
7.3.4 指定Squid可以使用内存的理想值 188
7.3.5 其他参数设置 188
7.3.6 设置错误提示为中文 189
7.3.7 初始化Squid Server 189
7.4 启动与停止代理服务器 192
7.4.1 设置Squid服务随系统的启动而自动启动 193
7.4.2 重新载入配置文件 195
7.5 Squid Server高级配置 195
7.5.1 实现透明代理 195
7.5.2 Squid安全设置 197
7.5.3 Squid外部程序支持选项 199
7.6 Squid日志管理 199
7.6.1 日志选项 199
7.6.2 Squid代理服务器日志系统的构成 199
7.6.3 日志及流量分析软件——Webalizer 200
7.6.4 Webalizer软件的应用 204
7.7 不同环境下的代理客户端的配置 205
7.7.1 Linux系统下Firefox代理设置 205
7.7.2 Windows系统下IE代理配置 207
第8章 Samba服务器 209
8.1 Samba服务概述 209
8.1.1 Samba服务简介 209
8.1.2 Samba服务的安装 209
8.1.3 Samba服务的图形化配置方法 212
8.1.4 启动、停止和重启Samba服务 216
8.2 Samba服务的配置文件 216
8.2.1 Samba服务的主要配置文件 217
8.2.2 Samba服务的密码文件 217
8.2.3 Samba服务的日志文件 218
8.3 smb.conf文件详解 218
8.3.1 smb.conf文件结构 219
8.3.2 smb.conf文件的语法和变量 220
8.3.3 smb.conf文件详解 220
8.3.4 smb.conf文件中的段 223
8.3.5 Samba服务具体参数设置 223
8.4 Samba服务功能实现 225
8.4.1 指定Samba所要加入的工作组 225
8.4.2 注释说明服务器 226
8.4.3 限制可访问服务器IP地址的范围 226
8.4.4 打印机设置 227
8.4.5 设置guest账号匿名登录 228
8.4.6 设置日志文件名、存放路径及大小 228
8.4.7 服务器安全设置 229
8.4.8 具体的共享设置 232
8.5 共享的资源访问 234
8.5.1 不同客户端主机的资源访问 234
8.5.2 本机Windows分区和Linux分区的资源互访 235
第9章 NFS服务器 237
9.1 NFS服务简介 237
9.1.1 使用NFS的优势 237
9.1.2 NFS服务的组件 238
9.2 RPC简介 238
9.3 安装并配置NFS服务 239
9.3.1 安装NFS服务 239
9.3.2 配置NFS服务 240
9.3.3 NFS文件的存取权限 242
9.4 启动与停止NFS服务 243
9.5 在客户端挂载NFS文件系统 244
9.5.1 查看NFS服务器信息 244
9.5.2 加载NFS服务器共享目录 245
9.5.3 自动挂接NFS文件系统 246
第10章 LDAP目录服务 247
10.1 目录服务概述 247
10.1.1 X.500简介 247
10.1.2 初识LDAP 248
10.1.3 X.500与LDAP 251
10.1.4 流行的目录服务产品 252
10.2 深入认识LDAP 254
10.2.1 LDAP的几种基本模型 254
10.2.2 如何规划目录树 256
10.2.3 LDAP的应用领域 257
10.3 安装LDAP 257
10.3.1 安装Berkeley DB 257
10.3.2 安装OpenLDAP 260
10.4 配置OpenLDAP 261
10.4.1 OpenLDAP的基本配置 261
10.4.2 启动OpenLDAP服务器 262
10.5 为OpenLDAP建立初始化数据 263
10.6 LDAP图形界面管理工具简介 264
10.6.1 主要的LDAP图形界面管理工具 264
10.6.2 安装phpLDAPadmin 266
10.7 配置phpLDAPadmin 268
10.7.1 生成phpLDAPadmin主配置文件 268
10.7.2 phpLDAPadmin的基本配置 268
10.8 使用OpenLDAPadmin管理目录树 271
10.8.1 进入phpLDAPadmin 271
10.8.2 创建组织单元 272
10.8.3 创建用户组 274
10.8.4 创建用户账号 276
10.9 实现LDAP服务的身份验证 277
10.9.1 实现Linux系统用户验证 277
10.9.2 实现FTP用户验证 279
10.9.3 实现Web用户验证 280
第11章 SSH服务器 281
11.1 SSH服务概述 281
11.1.1 SSH服务简介 281
11.1.2 公钥加密体系结构 282
11.2 SSH服务的安装 283
11.3 配置SSH服务器 283
11.4 SSH服务的启动和停止 286
11.4.1 启动SSH服务 286
11.4.2 重启SSH服务 287
11.4.3 自动启动SSH服务 287
11.4.4 停止SSH服务 288
11.5 使用SSH客户端 288
11.5.1 SSH客户端在Windows平台下的使用 288
11.5.2 SSH客户端在Linux平台下的使用 289
第12章 MySQL数据库的配置 293
12.1 MySQL概述 293
12.1.1 MySQL简介 293
12.1.2 MySQL的应用领域 294
12.2 安装MySQL 295
12.2.1 安装前的准备 295
12.2.2 MySQL的具体安装过程 295
12.3 启动与停止MySQLD服务 298
12.4 配置及使用MySQL服务 298
12.4.1 修改MySQL管理员的口令 299
12.4.2 MySQL数据库的创建和使用 299
12.4.3 MySQL数据表的创建和使用 300
12.4.4 索引的创建和删除 304
12.4.5 用户的创建和删除 305
12.4.6 用户权限的设置 306
12.5 图形化配置MySQL 309
12.5.1 安装phpMyAdmin 309
12.5.2 配置phpMyAdmin虚拟目录 310
12.5.3 使用phpMyAdmin 311
第13章 使用Webmin配置各种服务 313
13.1 Webmin的概述 313
13.1.1 Webmin简介 313
13.1.2 Webmin特性 313
13.1.3 Webmin主要功能 314
13.2 安装和配置Webmin 317
13.2.1 Perl语言解释器的安装 318
13.2.2 Net-SSLeay perl和OpenSSL的安装 318
13.2.3 安装与访问Webmin 319
13.2.4 设置Webmin为中文界面 321
13.2.5 停止和启动Webmin服务 322
13.3 用Webmin配置服务 323
13.3.1 Samba服务的配置 323
13.3.2 NFS服务的配置 327
13.3.3 DNS服务的配置 328
13.3.4 Web服务的配置 331
13.3.5 网络防火墙与NAT服务配置 336
13.3.6 代理服务配置 342
13.3.7 SSH服务的配置 349
第14章 Linux命令行 351
14.1 Linux Shell概述 351
14.1.1 Linux Shell简介 351
14.1.2 系统默认Shell——Bash Shell 351
14.1.3 设置使用其他Shell 352
14.2 启动Shell 353
14.2.1 终端启动Shell 353
14.2.2 直接启用Shell 354
14.2.3 直接启动命令行窗口 354
14.3 Shell指令详解 355
14.3.1 目录及文件管理指令 355
14.3.2 信息显示指令 360
14.3.3 网络基本配置指令 363
14.3.4 关机和注销指令 366
14.4 配置Shell环境 367
14.4.1 Shell环境变量 367
14.4.2 环境变量设置 369
14.4.3 Shell环境配置文件 370
14.5 使用vim文本编辑器 371
14.5.1 vim编辑器简介 371
14.5.2 常用vim指令 372
14.5.3 vim的定制 376
第15章 Linux操作系统中的 网络连通性测试 377
15.1 网络线路的连通性测试 377
15.1.1 双绞线的线芯 377
15.1.2 测试直通双绞线 378
15.1.3 测试交叉双绞线 378
15.1.4 利用ping命令测试网络连通性 379
15.2 路由跟踪 382
15.2.1 traceroute命令 382
15.2.2 traceroute显示代码 383
15.2.3 traceroute命令选项的应用 384
15.3 Linux图形界面下测试网络 386
15.3.1 进入“Network Tools”窗口 386
15.3.2 网络设备查询 387
15.3.3 网络连通性测试 387
15.3.4 网络信息统计 388
15.3.5 网络路由跟踪 388
15.3.6 网络端口扫描 389
15.3.7 网络查阅 389
15.3.8 查询登录用户的信息 390
15.3.9 域名查询工具 390
第16章 Linux网络管理 391
16.1 静态IP地址管理工具 391
16.1.1 IP地址 391
16.1.2 子网掩码 392
16.1.3 TCP/IP配置文件 392
16.1.4 在图形界面下配置以太网络 392
16.1.5 在命令模式下配置以太网 397
16.2 动态IP地址分配工具 400
16.2.1 获取动态IP地址 400
16.2.2 安装DHCP服务 401
16.2.3 DHCP服务的启动与停止 404
16.2.4 DHCP服务的配置 405
16.3 网络地址表管理工具 407
16.3.1 显示ARP缓存 407
16.3.2 管理ARP缓存 408
第17章 软件基础管理 409
17.1 Kickstart简介 409
17.1.1 安装Kickstart 409
17.1.2 Debian/Ubuntu的自动化安装 419
17.2 Linux操作系统中的软件包管理 420
17.2.1 RPM简介 420
17.2.2 RPM软件包管理系统的应用 423
17.3 Debian的软件包管理系统 434
17.3.1 DPKG简介 434
17.3.2 DPKG软件包管理系统应用 435
第18章 软件包高级管理 441
18.1 APT——高级软件包管理 441
18.1.1 APT概述 441
18.1.2 应用APT软件包管理系统 442
18.2 YUM——智能化的RPM软件包管理 452
18.2.1 YUM概述 452
18.2.2 应用YUM软件包管理系统 453
18.3 Linux内核的升级 462
18.3.1 获取内核源代码 463
18.3.2 配置内核 464
18.3.3 编译内核 467
18.3.4 安装内核 469
第19章 用户和进程管理 471
19.1 用户管理 471
19.1.1 用户账号文件 471
19.1.2 用户群组文件 474
19.1.3 命令行方式的用户管理 476
19.1.4 图形界面方式的用户管理 486
19.1.5 命令行方式的群组管理 486
19.2 进程管理 490
19.2.1 进程及作业 490
19.2.2 进程控制 490
19.2.3 作业控制 494
第20章 管理Linux文件系统及磁盘 497
20.1 管理Linux文件系统 497
20.1.1 Linux文件系统结构 497
20.1.2 常见的文件系统 497
20.1.3 文件类型 498
20.1.4 文件压缩与归档 498
20.1.5 文件链接 503
20.1.6 安装文件系统 505
20.2 磁盘管理 507
20.2.1 硬盘简介 507
20.2.2 管理磁盘分区 509
20.2.3 使用磁盘管理命令 529
20.2.4 磁盘配额管理问题 539
第21章 Linux系统安全 549
21.1 系统安全基础设置 549
21.1.1 BIOS安全 549
21.1.2 账号安全 549
21.2 系统安全高级设置 552
21.2.1 重要文件 552
21.2.2 防止攻击系统 553
21.2.3 开启安全服务 555
21.2.4 审计日志 556
21.2.5 文件和目录许可 558

J. linux怎么搭建ftp服务器

FTP 是文件传输协议(File Transfer Protocol)的缩写。顾名思义,FTP用于计算机之间通过网络进行文件传输。你可以通过FTP在计算机账户间进行文件传输,也可以在账户和桌面计算机之间传输文件,或者访问在线软件归档。但是,需要注意的是多数的FTP站点的使用率非常高,可能需要多次重连才能连接上。 今天来说一下在RHEL5下使用VSftpd来搭建ftp服务器,在搭建之前首先要考虑自己的工作环境,我搭建ftp干什么,公司的具体要求是什么,然后再根据公司的需求来具体实施。下面是搭建的具体实验步骤: 一、首先确定系统中已经安装了VSftpd软件包,可以使用如下命令来查看并安装: liwei@linux# rpm -qagrep vsftpd (如果有的话执行第二条就行了,若没安装,可以使用如下命令来安装) liwei@linux# mount /dev/cdrom /media //挂载光盘到系统中 liwei@linux# rpm -vih /media/Server/vsftpd-版本号 //安装VSftpd 二、安装好VSftpd软件包后,然后就是给服务器配置一个静态IP地址,当然动态也可以,但一般服务器最好使用静态IP。配置IP地址的方法如下,我以配置192.168.0.1地址为例: liwei@linux# vi /etc/sysconfig/network-scritps/ifcfg-eth0 在打开的配置文件中修改: 复制代码代码如下: DEVICE=eth0 BOOTPROTO=static HAWADDR=00:0C:29:A2:8B:B8 ONBOOT=yes IPADDR=192.168.0.1 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 三、配置好IP地址后,然后就可以根据你自己的要求来修改vsftpd的配置文件来达到你的目标了,vsftpd的主配置文件为/etc/vsftpd/vsftpd.conf。下面用几个例子来说明一下vsftpd的各个配置选项的作用。 1.匿名用户配置: 在vsftpd.conf配置文件中,默认是允许匿名用户登录FTP服务器的,但不允许上传文件、不允许在服务器上创建目录,我们可以修改以下一些配置项来达到自己的要求: 复制代码代码如下: anonymous_enable=YES //接受匿名用户 no_anon_password=YES //匿名用户登录时不询问口令 anon_root=目录路径 //匿名用户登录后所在的位置,可以根据自己的实际需求来修改 write_enable=YES //可以上传(全局控制) file_open_mode=0666 //上传文件的权限,配合umask使用 anon_upload_enable=NO //匿名用户可以上传 anon_mkdir_write_enable=YES //匿名用户可以建立目录 anon_other_write_enable=YES //匿名用户可以重名名、删除等权限 anon_world_readable_only=YES //如果设为YES,匿名用户登入者会被允许下载可阅读的文档 chown_uploads=YES //所有匿名上传的文件的所属用户将会被更改为chown_username chown_username=user //匿名上传文件所属用户名 除了以上这些匿名用户的选项外我们还可以添加一些设置FTP服务器的公共选项,通过这些选项可以为FTP服务器设置一些不同的欢迎信息。 复制代码代码如下: ftpd_banner=Welcom to my FTP Server!!! //登录时显示的欢迎信息 dirmessage_enable=YES //允许为目录配置显示信息,显示每个目录下面message_file文件的内容 setproctitle_enable=YES //显示会话状态信息 下面来举个例子来说明一下匿名用户的应用: 为了公司的员工工作方便,公司决定搭建一台FTP服务器,要达到的功能如下: 1.允许公司的任何员工把自己的一些文档传上FTP服务器上保存起来以便下次使用, 2.允许员工自己创建目录 3.员工登录成功后显示欢迎信息 如果要达到以上的要求只需要在vsftpd.conf配置文件中修改以下选项就OK了,如果默认没有一些选项,可以自己手动添加: 复制代码代码如下: anonymous_enable=YES write_enable=YES anon_upload_enable=YES anon_mkdir_write_enable=YES ftpd_banner=Welcom to my FTP Server!!! 注意:如果只设置了anon_upload_enable=YES,但选项write_enabl未设置(或者设置成了NO),则匿名用户仍然不能上传文件。还有别忘记了修改FTP所处的文件夹的权限。 修改完以上配置文件后,使用命令service vsftpd restart重启一下vsftpd服务然后测试就OK了,其实上面这个例子很不安全,我只是举个例子,如果实际中使用,可以使用下面讲到的另两种方法都可以。 2.本地用户配置: 复制代码代码如下: local_enable=YES //启用本地用户 local_umask=022 //本地用户上传的文件的权限,可以参考linux权限部分来了解 local_root=目录路径 //本地用户登录FTP服务器后所处的目录 chroot_local_user=YES //限制本地用户的根目录为自己的主目录 chroot_list_enable=YES //如果启动这项功能,则所有列在chroot_list_file之中的使用者都不能更改根目录 chroot_list_file=限制的用户所处的文件路径 在FTP服务器上通常会有很多的本地用户,那么有时候我们希望一些用户可以登录FTP服务器,而有的用户我们不希望他们登录,遇到这种情况该怎么解决呢?可以使用如下选项来实现些功能: 复制代码代码如下: userlist_enable=YES //启用userlist功能模块 userlist_deny=YES //拒绝userlist文件中列出的用户登录FTP服务器 userlist_file=userlist文件的的路径 以上选项的意思就是我们假如不想让一部分人登录FTP服务器,那么我们可以写一个文件把这些用户加入到这个文件中去,然后把上面这个功能打开然后在userlist_file选项那指向这个文件的所在地,这样这个文件中的用户就不能登录FTP服务器了。相反假如我们userlist_deny设置成NO的话,意思就是userlist_file指向的那个文件里的用户可以登录FTP服务器,其它用户则不能登录FTP服务器。 本地用户的应用比较简单,只要系统中可以登录的用户要登录FTP服务器,直接输入系统的用户名和密码就可以登录了,默认登录后是在自己的家目录里,也就是/home/用户文件夹里。权限的控制就是修改这个目录的权限来控制就OK了。如果想控制某些用户禁止登录,则可以按照上面的userlist功能来进行限制就行了。 除了以上匿名用户和本地用户外的一些参数外还有网络和连接参数及下面会提到的日志功能配置。 四、网络和连接参数配置, 下面是一些常用的网络和连接参数: 复制代码代码如下: max_clients=1000 //可接受的最大连接数,可以根据自己的实际情况来修改 max_per_ip=5 //每个IP地址的最大连接数,可以根据自己的实际情况来修改 anon_max_rate=51200 //匿名用户的带宽(b/s) local_max_rate=5120000 //本地用户的带宽(b/s) idle_session_timeout=600 //空闲连接超时时间 data_connection_timeout=120 //数据传输超时时间 ACCEPT_TIMEOUT=60 //PAVS请求超时时间 connect_timeout=60 //PORT模式连接超时时间 connect_from_port_20=YES //使用标准的20端口来连接FTP listen_address=地址或网段 //绑定到某个IP或网段,其他IP不能访问该FTP listen_port=2121 //绑定到某个端口 ftp_data_port=2020 //数据传输端口 pasv_max_port=0 //PASV连接模式时可以使用port范围的上界,0表示任意。 pasv_min_port=0 //PASV连接模式时可以使用port范围的下界,0表示任意。 以上各个选项后都有说明,有需要的可以自己根据自己的情况来添加,这里就不再详述了。其中PORT模式是FTP工作模式中的主动模式,PASV模式是FTP工作模式中的被动模式。 五、日志功能配置 vsftpd可启用日志功能,这样,文件的上传与下载信息将被完整地记录在xferlog_file选项所设置的日志文件中,设置日志功能的选项如下: 复制代码代码如下: xferlog_enable=YES //开启日志功能 xferlog_file=文件路径 //日志文件的存放位置 xferlog_std_format=YES //使用标准格式记录日志 vsftpd的专用日志模式配置选项: 复制代码代码如下: al_log_enable=YES //采用vsftpd自己专用的日志记录方式 log_ftp_enable=YES //记录所有的FTP命令日志 vsftpd_log_file=文件路径 //指定vsftpd日志文件的位置 当以上两种日志功能都设置为NO时,还可以使用系统日志来记录FTP的日志,设置选项如下: syslog_enable=YES //启用后,默认的日志写入到/var/log/messages里 虽然可以使用这种方式来记录FTP日志,但是推荐使用最上面的两种,因为这样查看日志时候比较清楚,容易分析日志。 六、其他常用选项设置 复制代码代码如下: ascii_upload_enable=YES //用ASCII模式上传, ascii_download_enable=YES //用ASCII模式下载 dirmessage_enable=YES //设置每个子目录的欢迎信息。 banner_file=文件路径 //设置欢迎信息的文件 ls_recurse_enable=YES //允许用户使用ls -R命令 pam_service_name=vsftpd //定义PAM使用的名称,默认为vsftpd guest_enable=YES //将所有的非匿名用户都视为guest,即启用虚拟用户 guest_username=virtual //定义guest的使用者名称

热点内容
batsql语句 发布:2025-01-31 14:00:13 浏览:733
沈阳加密狗 发布:2025-01-31 13:54:58 浏览:705
联想服务器怎么装windows7 发布:2025-01-31 13:54:52 浏览:874
java二级考试历年真题 发布:2025-01-31 13:50:31 浏览:171
编程一刻 发布:2025-01-31 13:36:44 浏览:585
编程小草出土 发布:2025-01-31 13:33:27 浏览:579
如何设置服务器屏蔽你的ip 发布:2025-01-31 13:25:58 浏览:243
扣扣的独立密码是什么密码 发布:2025-01-31 13:23:42 浏览:132
pythonlist的用法 发布:2025-01-31 12:56:15 浏览:130
搭建美国节点服务器 发布:2025-01-31 12:55:27 浏览:858