Linux学习

Posted <?ph7?>

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习相关的知识,希望对你有一定的参考价值。

前一章主要学习了Linux的命令基础和网络搭配,下面继续学习服务的搭建,该文章注重LInux的使用,linux可以做哪些事情,了解大局为重,不注重细节知识。其实linux 最简单的是安装,其次是配置,最困难的是优化,深入理解并完善。这才是最难的点。但对于初学者,初期我只要知道它是个什么鬼,能搞什么东西,等真的要做这样的事情了,才不会一脸懵逼反而会会恍然大悟。哇~

一、构建 NTP 时间服务器

  NTP 服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,某些应用对事迹实时性要求高的必须统一时间。

  (也就是说,假使我们公司有几百台服务器,几百台服务器内部都有联系的,那如何保证让这些服务器的时间保持一致呢? 那我们可以在局域网内搭建一台时间服务器,那几百台服务器只要链接这台时间服务器,就可以跟这台时间服务器的时间保持一致了,然而这台时间服务器跟外网的权威的时间保持一致就可以了)

  互联网的时间服务器也有很多,例如: ntpdate ntp.fudan.edu.cn  复旦大学的 NTP 免费提供互联网时间同步。

  NTP服务器监听端口为 UDP 的 123,那就需要在本地防火墙开启运行客户端访问 123 端口

  vi  /etc/sysconfig/iptables  添加如下规则:

    -A INPUT -m state --state NEW -m udp -p udp --dport 123 -j ACCEPT

  1、NTP 时间服务器配置:

    yum install ntp ntpdate -y 即可!

  修改 ntp.conf 配置文件 (其实什么都不用改)

    cp  /etp/ntp.conf/etc/ntp.conf.bak

  重启:/etc/init.d/ntpd restart

  然后: ntpq -p

  ntpq用来监视ntpd操作,ntpq -p查询网络中的NTP服务器,同时显示客户端和每个服务器的关系

[root@localhost /]# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+61-216-153-104. 211.22.103.157   3 u   30   64    1  112.799  102.310  95.085
 gus.buptnet.edu .INIT.          16 u   30   64    0    0.000    0.000   0.000
*time6.aliyun.co 10.137.38.86     2 u   31   64    1   25.873  127.684   0.640
 202.120.2.101.d .STEP.          16 u    -   64    0    0.000    0.000   0.000
[root@localhost /]#   

注意:ntpd 启动以后,客户机需要等几分钟再与其进行时间同步,否则会提示“no server suitable for synchronization found” 错误。

  2、配置时间同步客户机

  crontab -e    //计划任务

  增加一行,在每天的 6 点 10 分与时间同步服务器进行同步

  10 06 * * * /usr/sbin/ntpdate ntp-server 的 ip>>/usr/local/logs/crontab/ntpdate.log

  备注:如果客户机没有ntpdate, 可以 yum -y install ntp 即可!

  以下是 ntp 服务器配置文件内容 (局域网 NTP, 如果需要跟外网同步,添加外网 server 即可)

  driftfile /var/lib/ntp/drift

  restrict default kod nomodify notrap nopeer noquery

  restrict -6 default kod nomodify notrap nopeer noquery  

  restrict 127.0.0.1

  restrict -6 ::1

  server      127.127.1.0      #local clock

  fudge       127.127.1.0   stratum 10

  includefile  /etc/ntp/crypto/pw

  keys  /etc/ntp/keys

  下面是参数详解:

  记录在 driftfile 参数后面的文件内;

 broadcastdelay 0.008    #广播延迟时间  

 自此 NTP 服务搭建完毕,然后在所有客户端 crontab 里面添加如下语句:

 0 0 * * * /usr/sbin/ntpdate  10.0.0.155 >> /data/logs/ntp.log 2>&1

二、构建 DHCP服务器

  DHCP (Dynamic Host Configuration Protocol , 动态主机配置协议) 是一个局域网的网络协议,使用UDP协议工作,主要用途:给内部网络或网络服务供应商自动分配 IP 地址, DHCP 有 3 个端口,其中 UDP67 和 UDP68 为正常的 DHCP 服务端口, 分别作为 DHCP Server 和 DHCP Client 的端口服务。

  DHCP 可以部署在服务器,交换机或者服务端,可以控制一段IP 地址范围,客户机登陆服务器时就可以自动获取 DHCP 服务器分配的IP地址 和子网掩码, 其中 DHCP 所在服务器的需要安装 TPC/IP 协议, 需要设置静态  IP 地址,子网掩码,默认网关。

  1、正式安装 DHCP 服务

  yum  install  dhcp  dhcp-devel  -y 即可, 

  然后修改 DHCP   /etc/dhcpd.conf 配置文件内容如下:

  ddns-update-style  interim;

  ignore client-updates;

  next-server  192.168.0.79;

  filename "pxelinux.0";

  allow booting;

 

  allow bootp;

  subnet 192.168.217.0 netmask 255.255.255.0{

  # --- default gateway

    option routers     192.168.217.2;

    option subnet-mask      255.255.252.0;

  #     option  nis-domain   "domain.org";

  #     option  domain-name  "192.168.0.10";

  #     option  domain-name-servers   192.168.0.10;

  

      option time-offset  -18000;   # Eastern  starndard  Time

  #  option ntp-servers  192.168.1.1;

  #  option netbios-name-servers  192.168.1.1;

  #  --- selects point-to-point  node (default  is  hybrid).  Don\'t change this  unless

  #  -- you understand  Netbios very well

  #   option netbios-node-type  2;

    range dynamic-bootp 192.168.217.100  192.168.217.200;

    host ns {

      hardware ethernet  00:1a:a0:2b:38:81;

      fixed-address 192.168.217.101; }

    host ns1 {

      hardware ethernet  00:0c:29:2b:90:67;

      fixed-address  192.168.217.102;}

  }

  修改保持完毕,重启:/etc/init.d/dhcpd  restart

  参数说明:

       客户端要从这个 DHCP 服务器获取IP, 需要做简单的设置,如果是linux 需要把 

  /etc/sysconfig/network-scritps/ifcfg-eth0  里 BOOTPROTO 改成 dhcp 即可,windows 机器的化需要修改本地链接,把它设置成自动获取 IP 即可。

  BOOTPROTO = dhcp

  以上操作不做练习,仅供我学习理解。

 三、搭建 Samba 服务器

  Samba 是Linux 和 UNIX 系统上实现 SMB协议的一个免费软件,由 服务器及客户端程序构成,SMB(Server Messages Block , 信息服务块 ) 是一种在局域网上共享文件和打印的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

  SMB 协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统,打印机及其他资源,通过设置"NetBios over TCP/IP" 使得 Samba 不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

  1、安装SAMBA 服务器

    yum install samba -y

  安装完毕,然后做如下设置 (通过#号行、空行如下命令)

  cp  /etc/samba/smb.conf    /etc/samba/smb.conf.bak   ;  egrep -v"#|^$"  /etc/samba/smb.conf.bak |grep-v"^;">    /etc/samba/smb.conf

  配置内容:

  

  参数分析:

在浏览器里面访问方式为:\\\\192.168.149.128 ( SMB 文件共享服务端 IP) 如果没有权限访问,需要注意防火墙和selinux 设置,可以使用如下命令关闭:

  /etc/init.d/iptables  stop;     sed   -i   \'/SELINUX/s/enforcing/disabled\'     /etc/sysconfig/selinux

四、搭建 NFS 服务器

  NFS 是 Network File System 的缩写,即网络文件系统,一种使用于分散文件系统的协定,由Sun公司开发,于1984年向外公布,功能是通过网络让不同的机器,不同的操作系统能够彼此分享个别数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类 Unix 系统间实现磁盘文件共享的一种方法。

  NFS 在文件传送或者信息传送的过程中依赖于RPC协议。 RPC 即 远程过程调用。是能使客户端执行其他系统程序中的一种机制。NFS本身是没有提供信息传输的协议和功能的。

  NFS应用场景,常用于高可用文件共享,多台服务器共享同样的数据,可扩展性比较差,本身高可用方案不完善,取而呆滞的数据量比较大的可以采用 MFS, TFS, HDFS 等分布式文件系统

  1、NFS 安装配置

    yum install nfs*  portmap  -y 

  NFS 安装完毕,需要创建共享目录,共享目录在 /etc/exports 文件里面配置,可配置参数如下;

    /data/  192.168.149.129(rw,sync,no_hide,no_all_squash)  

  在配置文件中添加上一行,然后重启 Portmap, NFS 服务即可

    /etc/init.d/portmap  restart

    /etc/init.d/restart

  参数说明:

    第一列 /data/  表示需要共享的目录

    IP  表示允许那个客户端访问 (* 代表所有)

    IP  后括号里的设置,表示对该共享文件的权限

    

  Linux 客户端,如何想使用这个NFS 文件系统,需要在客户端挂载,挂载命令为:

    mount -t   nfs  192.168.149.128:/data/   /mnt/   即可。

  如果由报错根据错误信息排除,常见问题有 RPC 服务没有启动,防火墙没有关闭,selinux 未关闭等问题。(有兴趣可以研究MFS  分布式文件系统。)

五、搭建 FTP 服务器

  FTP 是文件传输协议,正是由于这种协议使得主机间可以共享文件,FTP使用TCP生成一个虚拟链接用控制信息,然后再生成一个单独的TCP 链接用数据传输。

  vsftpd 是一款在LInux 发行版中最主流的  FTP 服务器程序,特点是小巧轻快,安全易用,能让其自身特点发挥。

  目前在开源操作系统中常用的 FTP 服务器程序主要有 vsftpd,  ProFTPD, PureFTPd  和 wuftpd 等,那么多FTP 服务器程序,关键在于自己熟练,今天介绍VSFTPD 的简单安装和使用。

  1、安装命令: 

    yum install  vsftpd*  -y

  启动: /etc/init.d/vsftpd   restart

  修改配置文件如下: vi    /etc/vsftpd/vsftpd.conf

  FTP登陆的方式有2种

  1) 第一种方法就是使用系统用户登陆FTP, 但是比较危险,先测试系统用户登陆FTP, 在linux 系统上创建 useradd  test 用户,并为其设置名,然后在客户端打开我的电脑资源里面访问  ftp://192.168.149.128  输入用户名和密码即可访问,进行创建和删除操作。

  2) 第二种方法比较安全,配置相对复杂,就是使用 vsftpd 虚拟用户登陆 FTP 服务器进行常见的操作。

    1.首先安装 FTP 虚拟用户需要用到的软件及认证模块

      yum  install  pam*  db4*  --skip-broken -y

    创建并生成 vsftpd  数据库文件,   vi  /etc/vsftpd/ftpusers.txt   内容如下:

    第一行为FTP虚拟用户,登陆用户名,第二行为密码,第三行为用户名,依次类推。

    wugk

    1

    wugk1

    1

    2、生成数据库文件命令:

      db_load -T -t hash -f   /etc/vsftpd/ftpusers.txt   /etc/vsftpd/vsftpd_login.db

      chmod  700  /etc/vsftpd/vsftpd_login.db

    3、配置PAM 验证文件:

      在配置文件 vi   /etc/pam.d/vsftpd    行首加入如下两行认证语句:(如果是32位,lib64 需要改成 lib,  如果RedHat,  加入的语句不一样,需注意)

      auth   sufficient    /lib64/security/pam_userdb.so          db = /etc/vsftpd/vsftpd_login

      auth   sufficient    /lib64/security/pam_userdb.so     db = /etc/vsftpd/vsftpd_login

    4、创建 vsftpd  映射到本地用户

      所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码,也不需要登陆。主要用来做虚拟用户映射使用。

      useradd  -d /home/ftpuser -s /sbin/nologin ftpuser

    5、修改完整版 vsftpd.conf 配置文件内容如下:

      

      保存重启, /etc/init.d/vsftpd  restart  即可使用虚拟用户登陆,这个时候所有的虚拟用户共同使用 /home/ftpuser 目录上传下载,如果想使用自己独立的目录,可以在 /etc/vsftpd/vsftpd_user_conf  目录创建各自的配置文件, 如给 wugk创建独立的配置文件:

    vi   /etc/vsftpd/vsftpd_user_conf/wugk ,  内容如下,创建自己的FTP目录。

    

    重启,使用客户端登陆FTP, 测试即可。

 

以上是关于Linux学习的主要内容,如果未能解决你的问题,请参考以下文章

[linux][c/c++]代码片段01

[linux][c/c++]代码片段02

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?