×

linux实战小项目 实战 服务器搭建

Linux服务器搭建实战详解的目录?webrtc服务器需要多少带宽

admin admin 发表于2022-07-16 13:11:21 浏览80 评论0

抢沙发发表评论

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

第1章 Linux系统概述 11.1 Linux的发展 11.2 Linux常见版本 21.2.1 Red Hat Linux 21.2.2 Debian Linux 21.2.3 Ubuntu Linux 31.3 Linux操作系统 31.3.1 Linux操作系统结构 31.3.2 Linux操作系统特点 51.3.3 Linux操作系统的应用领域 61.3.4 Red Hat Enterprise Linux 5 71.4 Red Hat Enterprise Linux 5的两个版本 81.5 安装和管理Red Hat Enterprise Linux 81.5.1 安装前的准备 81.5.2 与其他操作系统并存的问题 101.5.3 Red Hat Enterprise Linux的安装阶段 111.6 Linux操作系统的引导与登录 191.6.1 多系统引导管理器——GRUB及LILO 191.6.2 Linux的启动过程 201.6.3 Linux的关闭与重新引导 201.6.4 Linux系统的登录和退出 201.7 GNOME和KDE桌面管理器 221.7.1 GNOME桌面环境 231.7.2 KDE桌面环境 311.7.3 定制自己的桌面 42第2章 FTP服务器 452.1 FTP服务简介 452.1.1 FTP工作原理 452.1.2 匿名用户访问的产生 462.1.3 FTP服务的连接模式 462.1.4 几种流行的FTP服务器软件 482.2 安装vsFTPd服务 492.2.1 安装vsFTPd软件 492.2.2 FTP服务的启动与关闭 502.3 vsFTPd的相关配置 522.3.1 配置匿名用户登录环境 532.3.2 监听地址与控制端口 532.3.3 FTP模式与数据端口 542.3.4 ASCII模式 552.3.5 超时选项 552.3.6 负载控制 552.3.7 用户设置 562.3.8 用户登录控制 572.3.9 目录访问控制 572.3.10 文件操作控制 582.3.11 新增文件权限设置 582.3.12 日志设置 582.4 安装与配置PureFTPD服务器的 592.4.1 安装Apache服务 592.4.2 安装MySQL数据库 612.4.3 安装PureFTPD 622.4.4 生成PureFTPD服务管理脚本 642.4.5 配置匿名用户登录环境 642.4.6 安装Zend Optimizer 652.4.7 WebPureFTP的安装与配置 662.4.8 生成MySQL数据库 672.4.9 生成pure-ftpd数据库配置文件 682.4.10 使用webpureftp管理虚拟用户 682.5 FTP服务器的访问 692.5.1 Linux环境下访问FTP服务器 692.5.2 Windows环境下访问FTP服务器 70第3章 电子邮件服务器 713.1 电子邮件服务概述 713.1.1 电子邮件服务简介 713.1.2 邮件专有名词解释 723.1.3 POP3与SMTP协议 733.2 Postfix邮件服务器 743.2.1 安装Postfix邮件服务器 743.2.2 Postfix配置文件 763.2.3 Postfix基本配置 773.2.4 虚拟别名域 803.2.5 用户别名 803.2.6 SMTP认证 813.2.7 启动和停止Postfix服务 833.2.8 配置与访问电子邮件客户端 843.3 POP和IMAP邮件服务 873.3.1 dovecot服务 873.3.2 CyrusImapd服务 883.4 Web支持电子邮件 923.4.1 Squirrelmail的安装与配置 923.4.2 登录Squirrelmail 94第4章 Web服务器 954.1 Web概述 954.1.1 Web服务简介 954.1.2 HTTP协议简介 964.1.3 Web服务器软件 994.2 Apache概述 994.2.1 Apache的诞生 1004.2.2 安装Apache服务 1014.3 启动与停止Apache服务 1034.4 Apache服务的基本配置方法 1064.4.1 httpd.conf配置文件 1064.4.2 Apache服务主配置文件的构成 1074.5 Apache服务器控制存取的方式 1124.5.1 Options选项 1134.5.2 浏览权限的设置 1134.6 Apache服务的高级配置 1164.6.1 虚拟目录简介 1164.6.2 配置与管理虚拟主机 1174.6.3 用户认证和授权 1194.6.4 配置SSI 1234.6.5 MIME类型简介 1244.7 创建并配置动态网站 1244.7.1 创建并配置JSP动态网站 1244.7.2 创建并配置CGI动态网站 131第5章 DHCP服务器 1335.1 DHCP服务概述 1335.1.1 DHCP服务的实现原理 1335.1.2 IP地址租约和更新 1345.1.3 DHCP服务器分配的IP地址类型 1355.2 安装DHCP服务 1375.2.1 做好DHCP服务器安装前的准备 1375.2.2 安装DHCP服务的方法 1385.2.3 启动及停止DHCP服务 1415.3 配置DHCP服务 1425.3.1 DHCP配置文件及格式 1425.3.2 配置IP作用域 1455.3.3 配置客户机的IP 选项 1465.3.4 设置租约期限 1475.3.5 保留特定的IP地址 1475.3.6 多网段的IP地址的分配 1485.3.7 DHCP服务器配置实例 1495.4 配置DHCP客户机 1505.4.1 以Linux操作系统作为客户端配置 1505.4.2 以Windows操作系统作为客户端配置 152第6章 DNS服务器 1556.1 DNS服务概述 1556.1.1 DNS服务简介 1556.1.2 DNS提供的服务 1566.1.3 DNS查询原理和规划 1566.1.4 DNS域名解析 1586.2 DNS服务的安装 1586.2.1 安装DNS服务 1596.2.2 安装Chroot软件包 1596.2.3 DNS服务的启动与停止 1606.3 配置主要名称服务器 1616.3.1 主配置文件 1616.3.2 设置根区域和主区域 1626.3.3 设置反向解析区域 1656.3.4 根服务器信息文件 1666.3.5 区域文件 1666.3.6 反向解析区域文件 1696.3.7 功能实现 1706.3.8 测试DNS服务器 1706.4 配置辅助DNS服务器 1746.5 配置缓存Cache-only服务器 1756.6 DNS客户端的配置 1766.6.1 在Linux下配置DNS客户端 1766.6.2 在Windows下配置DNS客户端 177第7章 代理服务器 1797.1 代理服务器概述 1797.1.1 代理服务器的工作流程 1797.1.2 代理服务器的作用及相关应用 1807.2 安装Squid Server 1817.2.1 Squid简介 1817.2.2 Squid Server的安装 1827.3 Squid Server的基本配置 1847.3.1 设置监听的IP和端口 1847.3.2 设置缓存大小 1847.3.3 访问控制设置 1867.3.4 指定Squid可以使用内存的理想值 1887.3.5 其他参数设置 1887.3.6 设置错误提示为中文 1897.3.7 初始化Squid Server 1897.4 启动与停止代理服务器 1927.4.1 设置Squid服务随系统的启动而自动启动 1937.4.2 重新载入配置文件 1957.5 Squid Server高级配置 1957.5.1 实现透明代理 1957.5.2 Squid安全设置 1977.5.3 Squid外部程序支持选项 1997.6 Squid日志管理 1997.6.1 日志选项 1997.6.2 Squid代理服务器日志系统的构成 1997.6.3 日志及流量分析软件——Webalizer 2007.6.4 Webalizer软件的应用 2047.7 不同环境下的代理客户端的配置 2057.7.1 Linux系统下Firefox代理设置 2057.7.2 Windows系统下IE代理配置 207第8章 Samba服务器 2098.1 Samba服务概述 2098.1.1 Samba服务简介 2098.1.2 Samba服务的安装 2098.1.3 Samba服务的图形化配置方法 2128.1.4 启动、停止和重启Samba服务 2168.2 Samba服务的配置文件 2168.2.1 Samba服务的主要配置文件 2178.2.2 Samba服务的密码文件 2178.2.3 Samba服务的日志文件 2188.3 smb.conf文件详解 2188.3.1 smb.conf文件结构 2198.3.2 smb.conf文件的语法和变量 2208.3.3 smb.conf文件详解 2208.3.4 smb.conf文件中的段 2238.3.5 Samba服务具体参数设置 2238.4 Samba服务功能实现 2258.4.1 指定Samba所要加入的工作组 2258.4.2 注释说明服务器 2268.4.3 限制可访问服务器IP地址的范围 2268.4.4 打印机设置 2278.4.5 设置guest账号匿名登录 2288.4.6 设置日志文件名、存放路径及大小 2288.4.7 服务器安全设置 2298.4.8 具体的共享设置 2328.5 共享的资源访问 2348.5.1 不同客户端主机的资源访问 2348.5.2 本机Windows分区和Linux分区的资源互访 235第9章 NFS服务器 2379.1 NFS服务简介 2379.1.1 使用NFS的优势 2379.1.2 NFS服务的组件 2389.2 RPC简介 2389.3 安装并配置NFS服务 2399.3.1 安装NFS服务 2399.3.2 配置NFS服务 2409.3.3 NFS文件的存取权限 2429.4 启动与停止NFS服务 2439.5 在客户端挂载NFS文件系统 2449.5.1 查看NFS服务器信息 2449.5.2 加载NFS服务器共享目录 2459.5.3 自动挂接NFS文件系统 246第10章 LDAP目录服务 24710.1 目录服务概述 24710.1.1 X.500简介 24710.1.2 初识LDAP 24810.1.3 X.500与LDAP 25110.1.4 流行的目录服务产品 25210.2 深入认识LDAP 25410.2.1 LDAP的几种基本模型 25410.2.2 如何规划目录树 25610.2.3 LDAP的应用领域 25710.3 安装LDAP 25710.3.1 安装Berkeley DB 25710.3.2 安装OpenLDAP 26010.4 配置OpenLDAP 26110.4.1 OpenLDAP的基本配置 26110.4.2 启动OpenLDAP服务器 26210.5 为OpenLDAP建立初始化数据 26310.6 LDAP图形界面管理工具简介 26410.6.1 主要的LDAP图形界面管理工具 26410.6.2 安装phpLDAPadmin 26610.7 配置phpLDAPadmin 26810.7.1 生成phpLDAPadmin主配置文件 26810.7.2 phpLDAPadmin的基本配置 26810.8 使用OpenLDAPadmin管理目录树 27110.8.1 进入phpLDAPadmin 27110.8.2 创建组织单元 27210.8.3 创建用户组 27410.8.4 创建用户账号 27610.9 实现LDAP服务的身份验证 27710.9.1 实现Linux系统用户验证 27710.9.2 实现FTP用户验证 27910.9.3 实现Web用户验证 280第11章 SSH服务器 28111.1 SSH服务概述 28111.1.1 SSH服务简介 28111.1.2 公钥加密体系结构 28211.2 SSH服务的安装 28311.3 配置SSH服务器 28311.4 SSH服务的启动和停止 28611.4.1 启动SSH服务 28611.4.2 重启SSH服务 28711.4.3 自动启动SSH服务 28711.4.4 停止SSH服务 28811.5 使用SSH客户端 28811.5.1 SSH客户端在Windows平台下的使用 28811.5.2 SSH客户端在Linux平台下的使用 289第12章 MySQL数据库的配置 29312.1 MySQL概述 29312.1.1 MySQL简介 29312.1.2 MySQL的应用领域 29412.2 安装MySQL 29512.2.1 安装前的准备 29512.2.2 MySQL的具体安装过程 29512.3 启动与停止MySQLD服务 29812.4 配置及使用MySQL服务 29812.4.1 修改MySQL管理员的口令 29912.4.2 MySQL数据库的创建和使用 29912.4.3 MySQL数据表的创建和使用 30012.4.4 索引的创建和删除 30412.4.5 用户的创建和删除 30512.4.6 用户权限的设置 30612.5 图形化配置MySQL 30912.5.1 安装phpMyAdmin 30912.5.2 配置phpMyAdmin虚拟目录 31012.5.3 使用phpMyAdmin 311第13章 使用Webmin配置各种服务 31313.1 Webmin的概述 31313.1.1 Webmin简介 31313.1.2 Webmin特性 31313.1.3 Webmin主要功能 31413.2 安装和配置Webmin 31713.2.1 Perl语言解释器的安装 31813.2.2 Net-SSLeay perl和OpenSSL的安装 31813.2.3 安装与访问Webmin 31913.2.4 设置Webmin为中文界面 32113.2.5 停止和启动Webmin服务 32213.3 用Webmin配置服务 32313.3.1 Samba服务的配置 32313.3.2 NFS服务的配置 32713.3.3 DNS服务的配置 32813.3.4 Web服务的配置 33113.3.5 网络防火墙与NAT服务配置 33613.3.6 代理服务配置 34213.3.7 SSH服务的配置 349第14章 Linux命令行 35114.1 Linux Shell概述 35114.1.1 Linux Shell简介 35114.1.2 系统默认Shell——Bash Shell 35114.1.3 设置使用其他Shell 35214.2 启动Shell 35314.2.1 终端启动Shell 35314.2.2 直接启用Shell 35414.2.3 直接启动命令行窗口 35414.3 Shell指令详解 35514.3.1 目录及文件管理指令 35514.3.2 信息显示指令 36014.3.3 网络基本配置指令 36314.3.4 关机和注销指令 36614.4 配置Shell环境 36714.4.1 Shell环境变量 36714.4.2 环境变量设置 36914.4.3 Shell环境配置文件 37014.5 使用vim文本器 37114.5.1 vim器简介 37114.5.2 常用vim指令 37214.5.3 vim的定制 376第15章 Linux操作系统中的 网络连通性测试 37715.1 网络线路的连通性测试 37715.1.1 双绞线的线芯 37715.1.2 测试直通双绞线 37815.1.3 测试交叉双绞线 37815.1.4 利用ping命令测试网络连通性 37915.2 路由跟踪 38215.2.1 traceroute命令 38215.2.2 traceroute显示代码 38315.2.3 traceroute命令选项的应用 38415.3 Linux图形界面下测试网络 38615.3.1 进入“Network Tools”窗口 38615.3.2 网络设备查询 38715.3.3 网络连通性测试 38715.3.4 网络信息统计 38815.3.5 网络路由跟踪 38815.3.6 网络端口扫描 38915.3.7 网络查阅 38915.3.8 查询登录用户的信息 39015.3.9 域名查询工具 390第16章 Linux网络管理 39116.1 静态IP地址管理工具 39116.1.1 IP地址 39116.1.2 子网掩码 39216.1.3 TCP/IP配置文件 39216.1.4 在图形界面下配置以太网络 39216.1.5 在命令模式下配置以太网 39716.2 动态IP地址分配工具 40016.2.1 获取动态IP地址 40016.2.2 安装DHCP服务 40116.2.3 DHCP服务的启动与停止 40416.2.4 DHCP服务的配置 40516.3 网络地址表管理工具 40716.3.1 显示ARP缓存 40716.3.2 管理ARP缓存 408第17章 软件基础管理 40917.1 Kickstart简介 40917.1.1 安装Kickstart 40917.1.2 Debian/Ubuntu的自动化安装 41917.2 Linux操作系统中的软件包管理 42017.2.1 RPM简介 42017.2.2 RPM软件包管理系统的应用 42317.3 Debian的软件包管理系统 43417.3.1 DPKG简介 43417.3.2 DPKG软件包管理系统应用 435第18章 软件包高级管理 44118.1 APT——高级软件包管理 44118.1.1 APT概述 44118.1.2 应用APT软件包管理系统 44218.2 YUM——智能化的RPM软件包管理 45218.2.1 YUM概述 45218.2.2 应用YUM软件包管理系统 45318.3 Linux内核的升级 46218.3.1 获取内核源代码 46318.3.2 配置内核 46418.3.3 编译内核 46718.3.4 安装内核 469第19章 用户和进程管理 47119.1 用户管理 47119.1.1 用户账号文件 47119.1.2 用户群组文件 47419.1.3 命令行方式的用户管理 47619.1.4 图形界面方式的用户管理 48619.1.5 命令行方式的群组管理 48619.2 进程管理 49019.2.1 进程及作业 49019.2.2 进程控制 49019.2.3 作业控制 494第20章 管理Linux文件系统及磁盘 49720.1 管理Linux文件系统 49720.1.1 Linux文件系统结构 49720.1.2 常见的文件系统 49720.1.3 文件类型 49820.1.4 文件压缩与归档 49820.1.5 文件链接 50320.1.6 安装文件系统 50520.2 磁盘管理 50720.2.1 硬盘简介 50720.2.2 管理磁盘分区 50920.2.3 使用磁盘管理命令 52920.2.4 磁盘配额管理问题 539第21章 Linux系统安全 54921.1 系统安全基础设置 54921.1.1 BIOS安全 54921.1.2 账号安全 54921.2 系统安全高级设置 55221.2.1 重要文件 55221.2.2 防止攻击系统 55321.2.3 开启安全服务 55521.2.4 审计日志 55621.2.5 文件和目录许可 558

webrtc服务器需要多少带宽


webrtc中的带宽自适应算法分为两种:
1, 发端带宽控制, 原理是由rtcp中的丢包统计来动态的增加或减少带宽,在减少带宽时使用TFRC算法来增加平滑度。
2, 收端带宽估算, 原理是并由收到rtp数据,估出带宽; 用卡尔曼滤波,对每一帧的发送时间和接收时间进行分析, 从而得出网络带宽利用情况,修正估出的带宽。
两种算法相辅相成, 收端将估算的带宽发送给发端, 发端结合收到的带宽以及丢包率,调整发送的带宽。
下面具体分析两种算法:
2, 接收端带宽估算算法分析
结合文档
接下来具体看一下代码:
view
plaincopy
void OveruseDetector::UpdateKalman(int64_t t_delta,
double ts_delta,
uint32_t frame_size,
uint32_t prev_frame_size) {
const double min_frame_period = UpdateMinFramePeriod(ts_delta);
const double drift = CurrentDrift();
// Compensate for drift
const double t_ts_delta = t_delta - ts_delta / drift; //即d(i)
double fs_delta = static_cast《double》(frame_size) - prev_frame_size;

// Update the Kalman filter
const double scale_factor = min_frame_period / (1000.0 / 30.0);
E_ * scale_factor;
E_ * scale_factor;

if ((hypothesis_ == kBwOverusing && offset_ 《 prev_offset_) ||
(hypothesis_ == kBwUnderusing && offset_ 》 prev_offset_)) {
E_ * scale_factor;
}

const double h = {fs_delta, 1.0}; //即h_bar
const double Eh,
E_};

const double residual = t_ts_delta - slope_*h - offset_; //即z(i), slope为1/C

const bool stable_state =
(BWE_MIN(num_of_deltas_, 60) * fabsf(offset_) 《 threshold_);
// We try to filter out very late frames. For instance periodic key
// frames doesn’t fit the Gaussian model well.
if (fabsf(residual) 《 3 * sqrt(var_noise_)) {
UpdateNoiseEstimate(residual, min_frame_period, stable_state);
} else {
UpdateNoiseEstimate(3 * sqrt(var_noise_), min_frame_period, stable_state);
}

const double denom = var_noise_ + h;

const double K / denom,
Eh / denom}; //即k_bar

const double IKh},
{-K}};
const double e00 = E_;
const double e01 = E_;

// Update state
E_;
E_;
E_;
E_;

// Covariance matrix, must be positive semi-definite
assert(E_ 》= 0 &&
E_ 》= 0 &&
E_ 》= 0);
slope_ = slope_ + K * residual; //1/C
prev_offset_ = offset_;
offset_ = offset_ + K * residual; //theta_hat(i)

Detect(ts_delta);
}
view
plaincopy
BandwidthUsage OveruseDetector::Detect(double ts_delta) {
if (num_of_deltas_ 《 2) {
return kBwNormal;
}
const double T = BWE_MIN(num_of_deltas_, 60) * offset_; //即gamma_1
if (fabsf(T) 》 threshold_) {
if (offset_ 》 0) {
if (time_over_using_ == -1) {
// Initialize the timer. Assume that we’ve been
// over-using half of the time since the previous
// sample.
time_over_using_ = ts_delta / 2;
} else {
// Increment timer
time_over_using_ += ts_delta;
}
over_use_counter_++;
if (time_over_using_ 》 kOverUsingTimeThreshold //kOverUsingTimeThreshold是gamma_2, gamama_3=1
&& over_use_counter_ 》 1) {
if (offset_ 》= prev_offset_) {
time_over_using_ = 0;
over_use_counter_ = 0;
hypothesis_ = kBwOverusing;
}
}
} else {
time_over_using_ = -1;
over_use_counter_ = 0;
hypothesis_ = kBwUnderusing;
}
} else {
time_over_using_ = -1;
over_use_counter_ = 0;
hypothesis_ = kBwNormal;
}
return hypothesis_;
}

Linux课程主要讲什么内容


Linux学习,主要学以下内容:
第一阶段:linux基础入门
1. 开班课程介绍-规章制度介绍-破冰活动;
2. Linux硬件基础/Linux发展历史;
3. Linux系统安装/xshell连接/xshell优化/SSH远程连接故障问题排查
4. 第一关一大波命令及特殊字符知识考试题讲解
5. Linux基础优化
6. Linux目录结构知识精讲
7. 第二关一大波命令及特殊
知识考试题讲解(上)
8. 第二关一大波命令及特殊知识考试题讲解(下)
9. Linux文件属性一大堆知识精讲
10. Linux通配符/正则表达式
11. 第三关一大波命令及重要知识考试题讲解(上)
12. 第三关一大波命令及重要知识考试题讲解(下)
13. Linux系统权限(上)
14. Linux系统权限(下)
15. 第一阶段结束需要导师或讲师对整体课程进行回顾
第二阶段:linux系统管理进阶
1. Linux定时任务
2. Linux用户管理
3. Linux磁盘与文件系统(上)
4. Linux磁盘与文件系统(中下)
5. Linux三剑客之sed命令
第三阶段:Linux Shell基础
1. Shell编程基础1
2. Shell编程基础234
3. Linux三剑客之awk命令
第四阶段:Linux网络基础
1. 计算机网络基础上
2. 计算机网络基础下
3. 第二阶段结束需要导师或讲师对整体课程进行回顾。
第五阶段:Linux网络服务
1. 集群实战架构开始及环境准备
2. rsync数据同步服务
3. Linux全网备份项目案例精讲
4. nfs网络存储服务精讲
5. inotify/sersync实时数据同步/nfs存储实时备份项目案例精讲
第六阶段:Linux重要网络服务
1. http协议/www服务基础
2. nginx web介绍及基础实践
3. nginx web精讲结束
4. lnmp环境部署/数据库异机迁移/共享数据异机迁移到NFS系统
5. nginx负载均衡深入透彻
6. keepalived高可用深入透彻
第七阶段:Linux中小规模集群构建与优化(50台)
1. 期中架构开战说明+期中架构部署回顾
2. 全体昼夜兼程部署期中架构并完成上台述职演讲(加上两个周末共9天)
3. kickstart cobbler 批量自动安装系统
4. pptp vpn与ntp服务
5. memcached原理及部署/作为缓存及session会话共享
第八阶段:Ansible自动化运维与Zabbix监控
1. SSH服务秘钥认证
2. ansible批量自动化管理集群(入门及深入)
3. zabbix监控
第九阶段:大规模集群高可用服务(Lvs、Keepalived)
1. Centos7系统自行安装/centos6与7区别
2. lvs负载均衡集群/keepalived管理LVS集群
第十阶段:Java Tomcat服务及防火墙Iptables
1. iptables防火墙精讲上
2. iptables防火墙精讲下
3. tomcat java应用服务/nginx配合tomcat服务部署及优化
第十一阶段:MySQL DBA高级应用实践
1. MySQL数据库入门基础命令
2. MySQL数据库进阶备份恢复
3. MySQL数据库深入事务引擎
4. MySQL数据库优化SQL语句优化
5. MySQL数据库集群主从复制/读写分离
6. MySQL数据库高可用/mha/keepalved
第十二阶段:高性能数据库Redis和Memcached课程
第十三阶段:Linux大规模集群架构构建(200台)
第十四阶段:Linux Shell编程企业案例实战
第十五阶段:企业级代码发布上线方案(SVN和Git)
1. GIT管理
2. 代码上线项目案例
第十六阶段企业级Kvm虚拟化与OpenStack云计算
1. KVM虚拟化企业级实战
2. OpenStack云计算企业级实战
第十七阶段公有云阿里云8大组件构建集群实战
第十八阶段:Docker技术企业应用实践
1. Docker容器与微服务深入实践
2. 大数据Hadoop生态体系及实践
第十九阶段:Python自动化入门及进阶
第二十阶段:职业规划与高薪就业指导
-服务器搭建