# 课堂笔记 **Repository Path**: adiandroky/classroom-notes ## Basic Information - **Project Name**: 课堂笔记 - **Description**: 托普计网专业共享笔记 - **Primary Language**: HTML - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-03-13 - **Last Updated**: 2024-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README **Centos|Debian|Ubuntu** Command_README # 阅读,重要,写在前面! ## 1.这个是适用于计算机网络专业的CentOS笔记,包含了各种基础知识点,以及服务配置方式: - 0 NetWork 计算机网络的基础命令。 - 1 Roter 使用CentOS服务端作为路由器。 - 2 DHCP 使用CentOS服务端作为DHCP服务器,为客户机分配IP地址。 - 3 DNS 在CentOS内配置DNS服务,使IP和域名可以相互解析。 - 4 WEB 置Nginx或者Apache,发布WEB服务到客户机。 - 5 FTP 配置并发布FTP服务,使用客户机访问服务端的FTP目录。 - 6 NFS 配置并发布NFS服务,使得客户机可以挂载服务机的目录。 ## 2.共创人员: > 朱俊桦 > 王鑫 ## 3.感谢: > 彭丽艳老师 --- # 第 1 次课 CentOS基础命令 ## 一、额外备注 | 软件包名 | 服务名 | |:-:|:-:| | quagga | zebra.service | | vsftpd | vsftpd.service | | httpd | httpd.service | | dhcp | dhcpd.service | | bind | named.service | ## 二、挂载盘 ### a.临时挂载 ``` mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom ``` ### b.永久挂载 进入挂载配置文件 `vim /etc/fstab` ``` 在编辑窗口中添加以下内容: UUID=2018-11-25-23-54-16-00 /mnt/cdrom iso9660 defaults 0 0 ``` 最终效果: ``` UUID=049299c1-75a0-4016-894d-45ce9945a748 / xfs defaults 0 0 # 这些是默认的挂载点 UUID=2e4b3eb9-c412-480e-aa9e-53ce7c1cb487 /boot xfs defaults 0 0 # 这些是默认的挂载点 UUID=70fc8256-2169-4dce-9008-e24d7b41eed0 swap swap defaults 0 0 # 这些是默认的挂载点 UUID=2018-11-25-23-54-16-00 /mnt/cdrom iso9660 defaults 0 0 # 这个是新加的 ``` ## 三、卸载服务(程序) ### 使用 rpm -e 进行软件卸载 - `rpm -e` 是 `rpm --erase` 的简写,用于卸载指定的软件包。 - 这是RPM管理器卸载软件包的标准方式。 ### 示例用法: ```bash sudo rpm -e ``` ### 其他相关命令 示例用法: ```bash sudo yum remove ``` 或者在CentOS 8及更新版本上: ```bash sudo dnf remove ``` ## 四、安装程序/依赖程序 #### 1. 使用rpm命令安装 若是碰见了需要安装依赖的程序,则会很麻烦,推荐用yum命令安装。 ``` rpm -ivh # 注意(.so的先不管他) ``` #### 2. 使用yum命令 ``` yum install # yum源 etc/yum.repos.d yum update yum remove 注:更新所有软件为dnf update -y ``` #### 3. 检查是否安装服务 ``` rpm –qa|grep ``` ## 五、设置自启动 #### 1. 服务自启动 ``` systemctl start # 启动 systemctl enable # 自启动 systemctl disable # 关闭自启动 ``` #### 2. 程序自启动 ``` systemctl set-default ``` --- # 第 2 次课 CentOS网络基础命令Ⅰ ## 一、额外备注 |备注|详细 | :-: | :-: | tar |解压缩的命令 | rpm | 不能装网络源(yum可以) | df –h | 查看光盘挂载点 ## 二、网络相关参数 ``` 很简单的东西我也不知道为什么要用一个节来表示:) 网络相关参数:主机名、IP地址、子网掩码、网关、DNS服务器地址等。 ``` ## 三、网络配置 ### 1. 主机名的配置: #### (1) hostname ``` hostctl set-hostname # 配置或修改主机名 ``` #### (2) nmcli ``` nmcli general hostname # 修改 ``` #### (3) nmtui ``` 编辑连接 -> 网卡名[ens33] -> 使用TAB移动直接编辑 ``` #### (4) 直接修改配置文件: ``` /etc/hostname 这种要重启网卡(主机)systemctl restart network.service ``` ### 2. IP地址、GW 网关、MASK 子网掩码等其他配置 `注意这一节内容有些常用的我记得很详细,反之不详细。` #### (1) 使用网卡的配置文件配置网络(此方法适用于所有Linux版本)(最保险) | 名字 | 参数 | 用途 | |:-|:-|:-| |/etc/sysconfig/network-scripts/ifcfg-ensXXX|-|XXX生成跟mac地址有关 |TYPE=Ethernet |-|- |PROXY_METHOD=none |-|- |BROWSER_ONLY=no |-|- |BOOTPROTO=static|dhcp 通过DHCP自动获取IP地址
none 静态手动指定
static 静态手动指定|启动的时候采用的协议 |DEFROUTE=yes |-|- |IPV4_FAILURE_FATAL=no |-|- |IPV6INIT=yes |-|- |IPV6_AUTOCONF=yes |-|- |IPV6_DEFROUTE=yes |-|- |IPV6_FAILURE_FATAL=no |-|- |IPV6_ADDR_GEN_MODE=stable-privacy |-|- |NAME=ens33|-|设备名 |UUID=30c1bcff-ab7f-493e-b70e-54f0ba785b88|-|网卡的ID号 |DEVICE=ens33|-|硬件名 |ONBOOT=yes|yes 激活
no 不激活|是否开机激活网卡| |IPADDR=192.168.8.1|-|IP地址 |NETMASK=255.255.255.0 |-|前缀长度/子网掩码 |GATEWAY=192.168.8.254|-|网关 |HWADDR=X\:X\:X\:X\:X\:X|-|MAC地址 |PREFIX=24 |-|- |DNS1=114.114.114.114|-|DNS服务器地址 #### (2) 通过nmtui命令进入UI界面(命令行伪UI) ``` 编辑连接 -> 网卡名[ens33] -> 使用TAB移动直接编辑 systemctl restart network.service # 重启网卡 ifconfig enXXX # 查看是否生效 ``` #### (3) 通过nmcli编辑 ##### 查看网卡信息 ``` nmcli enXXX nmcli # 直接输入查看网卡信息 ``` ##### 更改网卡配置 ``` 一条命令,配置各种配置 nmcli connection modify ens33 ipv4.addresses X.X.X.X/X ipv4.method manual ipv4.gateway X.X.X.X ipv4.dns X.X.X.X ``` ##### 其他相关命令 ``` nmcli connection up enXXX # 设备名/地址立即生效 nmcli connection show enXXX # 查看网卡详细信息 ``` #### (4) 通过ip命令(不建议,因为重启消失) ``` ip addr show # 展示地址 ip addr add/del X.X.X/X dev ems33 # 添加地址 ``` --- # 第 3 次课 Centos网络基础命令Ⅱ ## 一、额外备注 |命令|备注| |:---:|---| |nmcli
nmtui|需要 Network Manager
Centos7 自带 8 不一定自带 |systemctl restart network.server|Centos7 一般不能用| |/etc/hosts | DNS 缓存文件 |/etc/resolv.conf|DNS 服务器地址配置文件 ## 二、Linux的常用配置命令 ### 1. 查看网卡信息 - (1) 查看当前网卡活动信息 ``` ifconfig # ens33 网卡 lo 回环 virbr0 虚拟 ifconfig # 查看当前活动网卡信息 ifconfig # 设置网卡的地址 ``` ### 2. 查看路由信息 - (1) 查看路由表 ``` route -n ``` (2) 添加/删除默认网关 ``` route add/del default gw 网关 IP dev 网卡设备名 ``` (3) 添加/删除静态路由 ``` route add/del -net 网段/前缀 gw ip dev 设备名 ``` (4) 红帽专有命令(伪图形化) ``` nmtui # 使用此方法更改网络参数后,需要重启网卡 ``` ### 3. 网络调试命令 - (1) 测试网络连通性 ``` ping [选项] [IP/域名] ``` (2) 显示各种与网络相关的状态信息 ``` netstat [options] # 网络连接状态 路由表信息 端口信息(0-1024是保留端口) -a 显示所有配置接口 -l 监听状态 -r 显示路由表 -t 显示TCP连接状态 ``` (3) 跟踪路由 ``` tanceroute [IP/域名] ``` (4) 地址解析 ``` nslookup [IP/域名] ``` --- # 第 4 次课 Linux 的路由配置 ## 一、实验环境搭建 - ### 1. 在 VMware 里创建 4 台设备,并分别添加网卡。 \# 你需要根据图示将VM2 VM3 VM4 分别添加到虚拟机。 ![alt text](273c17e3e780adb18a1bdcd4d2cabb66.png) - ### 2. 将 Windows 设备和 Linux 设备配置IP地址与掩码 ``` 一、配置 CentOS 的两个网卡(在网络中应该叫“接口”) 1. 使用 nmtui 命令进入 ens33 网卡 2. 根据图示,配置 ens33 网卡的 IP 地址和子网掩码 3. 同样方法配置另外一个网卡 4. 做好记得重启网卡 二、配置 Windows 的网络 5. 按下 Win+R 并输入 control 6. 找到网络配置,然后自己点,直到进入对应网卡的IPv4地址配置菜单 7. 做好记得重启网卡 三、重启后检查客户机是否能 ping 通网关 # 好简短的话,主要是默认阅读者均有 ENSP 或 H3C 网络配置经验 ``` ## 二、静态路由配置 - ### 1. 分别配置路由转发功能 ``` 一、CentOS 配置路由转发功能 1. 使用 vim 进入 sysctl 配置文件 vim /etc/sysctl.conf 2. 添加配置项 net.ipv4.ip_forward = 1 3. 检查配置是否生效 sysctl -p 4. 重启网卡 systemctl restart network # 重启生效 二、Windows 不用配置路由转发( 5. 顾名思义( ``` - ### 2. 在 CentOS 配置静态路由 ``` # 如何使用 route add -net 目标网段/前缀 gw 转发网关IP dev 网卡设备名 # 添加静态路由 route add -net 192.168.3.0/24 gw 192.168.4.2 dev ens36 # 删除静态路由 route del -net 192.168.3.0/24 gw 192.168.4.2 dev ens36 ``` - ### 3. 验证静态路由是否配置成功 ``` 1. 查看路由表 route -n # 检查是否有到对面的路由 2. 客户端互相 ping 通 ``` ## 三、动态路由配置 - ### 1. 安装 quagga 服务 - #### (1) 挂载装有软件包的光盘 这是必要的一步,没有网络且没有外部软件包的情况下,将无法安装软件包。 这时将使用光盘。 ``` 一、虚拟机设置里将光盘装入 # 不详解,自己点 二、在 CentOS 里将挂载点改一下 mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom ``` - #### (2) 修改 yum 配置文件 这也是必要的一步,因为yum使用之前必须配置一下源,否则将无法使用。 ``` 1. 进入配置文件 cd /etc/yum.repos.d/ 2. 修改配置文件 vim CentOS-Media.repo ``` ``` # 接上详解 ======================================================= baseurl= # 光盘挂载点路径 gpgcheck=0 # 用来检查GPG-KEY,0为不检查,1为检查 enabled=1 # 是否用该yum源,0为禁用,1为使用 ======================================================= ↓修改这三行 ======================================================= baseurl=file:///mnt/cdrom gpgcheck=1 enabled=1 ======================================================= ``` ``` !!!搞完记得看一下源激活没有!!! yum clean all # 清除 yum 缓存 yum list # 测试 yum 源配置 ``` - #### (3) 安装 quagga ``` 1. 安装quagga服务 //安装前请配置yum源 yum install quagga 2. 安装完成后 systemctl start zebra //启动服务 netstat -tnl //查看2601端口为监听状态,此端口为zebra运行端口 systemctl enable zebra //设置开机自启动(课堂非必要配置) ``` - #### (4) quagga 的配置 ``` 注:配置文件在/etc/quagga/ripd.conf 一、配置文件讲解: 1. 使用vim /etc/quagga/ripd.conf 2. 配置文件具体内容👇 ======================================== router rip network 192.168.x.0/24(第一张网卡) network 192.168.x.0/24(第二张网卡) version 2(使用ripv2协议) interface ens33 //第一张网卡 ip rip authentication mode text ip rip authentication password 123456 interface ens36 //第二张网卡 ip rip authentication mode text ip rip authentication password 123456 ======================================== ``` - ### 2. 启动rip服务,并且查看路由表: - (1) 关闭防火墙 ``` systemctl stop firewalld ``` (2) 启动rip服务 ``` systemctl start ripd ``` (3)查看2601端口为监听状态,此端口为zebra运行端口 ``` netstat -tnl ``` (4) 查看ripd服务是否正常 ``` ripd -d ``` (5) 客户机互ping ``` 然后就搞完了(王鑫自己把详细步骤加一下,我太累了) ``` ## OSPF ### 1. 安装Quagga 首先,需要安装Quagga软件包。可以使用`dnf`包管理器进行安装: ```bash sudo dnf install quagga ``` ### 2. 配置Quagga守护进程 Quagga有多个守护进程(如zebra、ospfd、bgpd等),你需要配置你所需的守护进程。配置文件位于`/etc/quagga/`目录下。以下是每个守护进程的基本配置步骤: #### 配置Zebra守护进程 Zebra是Quagga的核心守护进程,管理路由信息。 编辑`/etc/quagga/daemons`文件,确保`zebra=yes`: ```bash # /etc/quagga/daemons zebra=yes bgpd=no ospfd=no ospf6d=no ripd=no ripngd=no isisd=no ``` #### 配置OSPF守护进程 如果你需要使用OSPF协议,确保`ospfd=yes`: ```bash # /etc/quagga/daemons zebra=yes ospfd=yes ``` ### 3. 配置Quagga的配置文件 Quagga的配置文件通常位于`/etc/quagga/`目录下,并且以守护进程名称命名,例如`zebra.conf`、`ospfd.conf`等。 #### 配置Zebra 创建并编辑`/etc/quagga/zebra.conf`: ```bash sudo nano /etc/quagga/zebra.conf ``` 添加基本配置,例如: ```plaintext hostname zebra password zebra enable password zebra log file /var/log/quagga/zebra.log ``` #### 配置OSPF 创建并编辑`/etc/quagga/ospfd.conf`: ```bash sudo nano /etc/quagga/ospfd.conf ``` 添加OSPF配置,例如: ```plaintext hostname ospfd password zebra enable password zebra log file /var/log/quagga/ospfd.log router ospf ospf router-id 1.1.1.1 network 192.168.1.0/24 area 0.0.0.0 ``` ### 4. 设置文件权限 确保Quagga的配置文件具有正确的权限和所有者: ```bash sudo chown quagga:quagga /etc/quagga/*.conf sudo chmod 640 /etc/quagga/*.conf ``` ### 5. 启动并启用Quagga服务 启用并启动Quagga服务: ```bash sudo systemctl enable zebra sudo systemctl start zebra sudo systemctl enable ospfd sudo systemctl start ospfd ``` ### 6. 验证配置 验证Quagga是否正常运行并且配置是否生效: ```bash sudo systemctl status zebra sudo systemctl status ospfd vtysh ``` 在vtysh提示符下,可以输入Quagga的命令来查看状态,例如: ```plaintext show ip route show ip ospf neighbor ``` ### 7. 持续监控与维护 确保定期检查Quagga的日志文件,以便捕获和解决任何潜在问题: ```bash tail -f /var/log/quagga/zebra.log tail -f /var/log/quagga/ospfd.log ``` 完毕! --- # 第 5 次课 DHCP 服务 ## 1. 安装DHCP服务器 首先,需要安装DHCP服务器软件包: ```bash sudo yum install dhcp ``` ## 2. 配置DHCP服务器 安装完成后,需要编辑DHCP配置文件 `/etc/dhcp/dhcpd.conf`。以下是一个基本的配置示例: ```bash # 全局设置 default-lease-time 600; max-lease-time 7200; authoritative; # 网络设置 subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option routers 192.168.1.1; option subnet-mask 255.255.255.0; option domain-name-servers 8.8.8.8, 8.8.4.4; option domain-name "example.com"; } ``` ## 3. 设置DHCPD服务监听接口 编辑 `/etc/sysconfig/dhcpd` 文件,指定DHCP服务监听的接口。例如,如果你的网络接口是 `eth0`,添加如下内容: ```bash DHCPDARGS=eth0 ``` ## 4. 启动并启用DHCP服务 使用以下命令启动DHCP服务,并设置为开机启动: ```bash sudo systemctl start dhcpd sudo systemctl enable dhcpd ``` ## 5. 检查DHCP服务状态 确保DHCP服务正常运行: ```bash sudo systemctl status dhcpd ``` ## 6. 防火墙设置 如果启用了防火墙,需要允许DHCP服务的流量。运行以下命令: ```bash sudo firewall-cmd --add-service=dhcp --permanent sudo firewall-cmd --reload ``` ## 7. 验证配置 确保客户端可以从DHCP服务器获取IP地址。可以使用另一台机器配置为DHCP客户端,然后重启网络服务或直接重启机器,查看是否能够成功获取IP地址。 ## 8. 其他设置(可选) 如果需要更多高级设置,例如静态IP地址分配,可以在配置文件中添加类似以下的内容: ```bash host myhostname { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.1.50; } ``` 这样,具有特定MAC地址的设备将始终获取相同的IP地址。 --- # 第 6 次课 DNS 服务 在CentOS 7上配置DNS服务可以通过安装和配置 BIND来实现: ## 1. 安装BIND 首先,安装BIND软件包: ```bash sudo yum install bind bind-utils ``` ## 2. 配置BIND BIND的主配置文件是 `/etc/named.conf`,需要进行编辑以配置DNS服务器。以下是一个基本配置示例: ```bash options { listen-on port 53 { 127.0.0.1; any; }; listen-on-v6 port 53 { ::1; any; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; any; }; recursion yes; dnssec-enable yes; dnssec-validation yes; dnssec-lookaside auto; bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; zone "example.com" IN { type master; file "example.com.zone"; allow-update { none; }; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; ``` ## 3. 配置区域文件 接下来,创建区域文件 `/var/named/example.com.zone`。以下是一个基本的区域文件示例: ```bash $TTL 86400 @ IN SOA ns1.example.com. root.example.com. ( 2024061801 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL IN NS ns1.example.com. IN NS ns2.example.com. ns1 IN A 192.168.1.10 ns2 IN A 192.168.1.11 www IN A 192.168.1.100 ``` ## 4. 设置文件权限 确保BIND能够读取区域文件: ```bash sudo chown root:named /var/named/example.com.zone sudo chmod 640 /var/named/example.com.zone ``` ## 5. 启动并启用BIND服务 使用以下命令启动BIND服务,并设置为开机启动: ```bash sudo systemctl start named sudo systemctl enable named ``` ## 6. 检查BIND服务状态 确保BIND服务正常运行: ```bash sudo systemctl status named ``` ## 7. 防火墙设置 如果启用了防火墙,需要允许DNS服务的流量。运行以下命令: ```bash sudo firewall-cmd --add-service=dns --permanent sudo firewall-cmd --reload ``` 或者直接关闭防火墙 ``` systemctl stop firewalld ``` ## 8. 测试DNS解析 使用 `dig` 命令(或者nslookup)测试DNS解析,确保DNS服务器配置正确: ```bash dig @localhost example.com dig @localhost www.example.com ``` ## 9. 其他配置(可选) 如果需要配置反向解析区域,可以在 `/etc/named.conf` 中添加反向解析区域,并创建相应的区域文件。例如: ```bash zone "1.168.192.in-addr.arpa" IN { type master; file "1.168.192.in-addr.arpa.zone"; allow-update { none; }; }; ``` 然后,创建反向解析区域文件 `/var/named/1.168.192.in-addr.arpa.zone`: ```bash $TTL 86400 @ IN SOA ns1.example.com. root.example.com. ( 2024061801 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL IN NS ns1.example.com. 10 IN PTR ns1.example.com. 11 IN PTR ns2.example.com. 100 IN PTR www.example.com. ``` 完毕。 --- # 第 7 次课 WEB 服务 在CentOS 7上配置Nginx Web服务器可以通过以下步骤完成。以下是详细的配置指南: ## 1. 安装Nginx 首先,确保系统软件包是最新的 (实验可以跳过这一步,直接到"安装Nginx"步骤) ```bash sudo yum update ``` 然后安装EPEL存储库(Nginx包含在EPEL中)(实验跳过): ```bash sudo yum install epel-release ``` 安装Nginx: ```bash sudo yum install nginx ``` ## 2. 启动并启用Nginx服务 启动Nginx服务并设置为开机启动: ```bash sudo systemctl start nginx sudo systemctl enable nginx ``` ## 3. 配置防火墙 如果启用了防火墙,需要允许HTTP和HTTPS流量。运行以下命令: ```bash sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https sudo firewall-cmd --reload ``` 或者直接关闭防火墙 ```bash systemctl stop firewalld ``` ## 4. 配置Nginx Nginx的主配置文件是 `/etc/nginx/nginx.conf`。大多数情况下,默认配置已经足够,但如果需要自定义设置,可以编辑该文件。以下是一个基本的配置示例: ```nginx user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; include /etc/nginx/conf.d/*.conf; server { listen 80 default_server; listen [::]:80 default_server; server_name _; root /usr/share/nginx/html; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } } ``` ## 5. 创建网站配置文件 在 `/etc/nginx/conf.d/` 目录中创建一个新的配置文件,例如 `example.com.conf`: 写入以下server配置 ```nginx server { listen 80; server_name example.com www.example.com; root /var/www/example.com/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } } ``` ## 6. 创建网站目录和测试页面 创建网站目录并添加一个测试页面: ```bash sudo mkdir -p /var/www/example.com/html sudo chown -R $USER:$USER /var/www/example.com/html sudo chmod -R 755 /var/www echo " Welcome to example.com!

Success! The Nginx server block is working!

" | sudo tee /var/www/example.com/html/index.html ``` ## 7. 检查配置并重新启动Nginx 检查Nginx配置文件是否正确: ```bash sudo nginx -t ``` 如果没有错误,重新启动Nginx服务以应用更改: ```bash sudo systemctl restart nginx ``` ## 8. 测试Nginx 在浏览器中访问 `http://example.com`,应该能看到你创建的测试页面。 --- # 第 8 次课 FTP 服务 在CentOS 7上配置FTP服务可以通过安装并配置vsftpd(Very Secure FTP Daemon)来实现。以下是详细的步骤: ## 1. 安装vsftpd 首先,确保系统软件包是最新的: ```bash sudo yum update ``` 然后安装vsftpd软件包: ```bash sudo yum install vsftpd ``` ## 2. 启动并启用vsftpd服务 启动vsftpd服务并设置为开机启动: ```bash sudo systemctl start vsftpd sudo systemctl enable vsftpd ``` ## 3. 配置防火墙 如果启用了防火墙,需要允许FTP流量。运行以下命令: ```bash sudo firewall-cmd --permanent --zone=public --add-service=ftp sudo firewall-cmd --reload ``` 或直接关闭防火墙 ```bash systemctl stop firewalld systemctl disable firewalld ``` ## 4. 配置vsftpd 编辑vsftpd的主配置文件 `/etc/vsftpd/vsftpd.conf`。以下是一个基本的配置示例: ```conf # 禁用匿名访问 anonymous_enable=NO # 允许本地用户访问 local_enable=YES # 允许上传文件 write_enable=YES # 启用 chroot,限制用户访问自己的主目录 chroot_local_user=YES # 强制SSL连接(可选,如果需要安全的FTP) ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=YES force_local_logins_ssl=YES ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO rsa_cert_file=/etc/vsftpd/vsftpd.pem # 日志配置 xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES # 被动模式设置 pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000 ``` ## 5. 创建SSL证书(如果启用了SSL) 如果启用了SSL,需要创建一个SSL证书。可以使用以下命令生成一个自签名证书: ```bash sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/vsftpd/vsftpd.pem -out /etc/vsftpd/vsftpd.pem ``` ## 6. 创建FTP用户 创建一个新的用户以用于FTP访问: ```bash sudo adduser ftpuser # 账户 sudo passwd ftpuser # 密码 ``` 设置用户的FTP目录权限: ```bash sudo mkdir -p /home/ftpuser/ftp sudo chown nobody:nogroup /home/ftpuser/ftp sudo chmod a-w /home/ftpuser/ftp sudo mkdir -p /home/ftpuser/ftp/upload sudo chown ftpuser:ftpuser /home/ftpuser/ftp/upload ``` ## 7. 重启vsftpd服务 配置完成后,重启vsftpd服务以应用更改: ```bash sudo systemctl restart vsftpd ``` ## 8. 测试FTP访问 使用FTP客户端连接到FTP服务器。使用你创建的用户(如 `ftpuser`)进行登录,确保可以成功上传和下载文件。 --- # 第 9 次课 NFS 服务 在CentOS 7上配置NFS(Network File System)服务可以通过以下步骤完成。以下是详细的配置指南: ## 1. 安装NFS服务器软件包 首先,确保系统软件包是最新的: ```bash sudo yum update ``` 然后安装NFS服务器软件包: ```bash sudo yum install nfs-utils ``` ## 2. 配置NFS服务器 创建一个目录来共享。例如,创建一个 `/srv/nfs` 目录: ```bash sudo mkdir -p /srv/nfs sudo chown -R nfsnobody:nfsnobody /srv/nfs sudo chmod 755 /srv/nfs ``` 编辑 `/etc/exports` 文件,添加要共享的目录和访问权限。例如,允许特定子网中的客户端访问 `/srv/nfs` 目录: ```bash /srv/nfs 192.168.1.0/24(rw,sync,no_subtree_check) ``` 选项解释: - `rw`:读写权限。 - `sync`:同步写入到磁盘。 - `no_subtree_check`:不检查子目录,提高性能。 ## 3. 启动并启用NFS服务 启动NFS服务并设置为开机启动: ```bash sudo systemctl start nfs-server sudo systemctl enable nfs-server ``` ## 4. 配置防火墙 如果启用了防火墙,需要允许NFS流量。运行以下命令: ```bash sudo firewall-cmd --permanent --zone=public --add-service=nfs sudo firewall-cmd --permanent --zone=public --add-service=rpc-bind sudo firewall-cmd --permanent --zone=public --add-service=mountd sudo firewall-cmd --reload ``` ## 5. 检查NFS服务状态 确保NFS服务正常运行: ```bash sudo systemctl status nfs-server ``` ## 6. 配置NFS客户端 在客户端机器上,安装NFS客户端软件包: ```bash sudo yum install nfs-utils ``` 创建挂载点目录,例如 `/mnt/nfs`: ```bash sudo mkdir -p /mnt/nfs ``` 在客户端机器上编辑 `/etc/fstab` 文件,添加如下条目以自动挂载NFS共享: ```bash server_ip:/srv/nfs /mnt/nfs nfs defaults 0 0 ``` 用NFS服务器的IP地址替换 `server_ip`。 ## 7. 挂载NFS共享 手动挂载NFS共享以验证配置: ```bash sudo mount -t nfs server_ip:/srv/nfs /mnt/nfs ``` ## 8. 验证NFS共享 在客户端机器上,进入挂载点目录并创建一个测试文件,确保共享目录工作正常: ```bash cd /mnt/nfs touch testfile ls -l ``` ## 9. 高级配置(可选) #### 设置用户映射 默认情况下,NFS使用匿名用户(`nfsnobody`)进行访问。如果需要使用特定用户进行访问,可以编辑 `/etc/idmapd.conf` 文件配置用户映射: ```conf [Mapping] Nobody-User = nfsnobody Nobody-Group = nfsnobody ``` ### 配置Kerberos身份验证 为了更高的安全性,可以配置NFSv4与Kerberos集成。需要安装并配置Kerberos服务器和客户端,并在NFS服务器上配置Kerberos支持: ```bash sudo yum install nfs-utils libnfsidmap nfs4-acl-tools sudo systemctl start rpc-gssd rpc-rquotad sudo systemctl enable rpc-gssd rpc-rquotad ``` 通过以上步骤,您应该能够在CentOS 7上成功配置和运行NFS服务,并使客户端能够访问共享目录。