标签

Linux

Linux 2019-05-31

一个基于QT的多媒体播放器

这个播放器是大学时候做的毕业设计,使用qt+phonon实现,支持音视频播放,支持同步显示歌词。是无意中在电脑里翻出了这个项目的源码,然后在ubuntu机器中安装了下环境编译之后竟然能够成功运行,看着这个界面和源码真是感慨良多,转眼已经毕业好几年了,真的是物是人非。。。
为了不让它在电脑继续里吃灰,还是分享出来,希望可以帮到可以用到的人吧,下面大体介绍下编译方式。

安装方式:

以ubuntu为例:

安装依赖

sudo apt update
#安装qt环境:
sudo apt install qt4* -y
sudo apt install qtcreator -y
#安装phonon
sudo apt install build-essential phonon phonon-backend-gstreamer  phonon4qt5 phonon4qt5-backend-gstreamer -y
#安装解码器
sudo apt install ubuntu-restricted-extras -y

编译

终端进入项目目录,执行:

#生成Makrfile文件
qmake Player.pro
#编译
make
#运行
./Player

至此,你就可以看到启动界面了。

主界面:

启动界面: 主界面如下图:

同步显示歌词:

说明

phonon

因为phononqt...

13971 12
Linux 2018-09-18

使用Docker部署Ngrok实现内网穿透

以前写过一篇文章, ubuntu安装ngrok并使用nginx代理,介绍了在ubuntu上安装ngrok,但是是需要在系统中安装gvm等依赖,而且过程还是挺麻烦的,正好今天有时间,于是试着使用Docker来部署下,下面介绍下如何部署。

准备工作

域名解析

首先,需要在你的域名提供商处增加两条A记录解析到你的服务器,比如我的是 ngrok.lylinux.net*.ngrok.lylinux.net。这样你可以使用subdomain的方式,来实现穿透。

配置

目录结构如下图所示, 目录结构

可以看到,有必须的Dockerfile文件,build.sh是编译ngrok的脚本,config.yml是客户端使用的配置文件,下面分别介绍下。

Dockerfile

FROM golang:1.7.1-alpine
ADD build.sh /
RUN apk add --no-cache git make openssl
RUN git clone https://github.com/inconshreveable/ngrok.git --depth=1 /ngrok
RUN sh /build.sh
EXPOSE 8081
VOLUME [ "/ngrok" ]
CMD [ "/ngrok/bin/ngrokd"]

可以看到,我们是基于golang:1.7.1-alpine...

Linux 2018-08-27

openssl使用rsa加解密

生成公钥私钥

使用命令生成私钥:

openssl genrsa -out rsa_private_key.pem 1024  

参数:genrsa 生成密钥 -out 输出到文件 rsa_private_key.pem 文件名 1024 长度

从私钥中提取公钥:

openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

参数: rsa 提取公钥 -in 从文件中读入 rsa_private_key.pem 文件名 -pubout 输出 -out 到文件 rsa_public_key.pem 文件名

shell加解密

新建一个decrypt.txt 内容是lylinux 使用公钥加密:

openssl rsautl -encrypt -in decrypt.txt -inkey rsa_public_key.pem -pubin -out encrypt.data

参数: rsautl 加解密 -encrypt 加密 -in 从文件输入 decrypt.txt 文件名 -inkey 输入的密钥 rsa_public_key.pem 上一步生成的公钥 -pubin 表名输入是公钥文件 -out输出到文件 encrypt.data 输出文件名 使用私...

Linux 2018-04-30

tmux 简介

以前只是听说过tmux的大名,但是一直没有用过,今天试用了下发现简直是神器,再也不用傻傻的开窗口了,一个窗口就可以搞定了。

Tmux 简单来说就是终端里的『窗口管理器』,如果我使用终端登录到远程主机并运行前台程序,那么这个窗口等于就被占用了,想要看一下 CPU 的使用率,就得再连接一次。但是如果在远程主机上运行 tmux,那么就可以开启多个控制台(类似于窗口),相当高效。而窗口管理只是 tmux 功能的一小部分,另一个很有用的功能就是,连接到远程主机之后,一旦断开,那么当前账户登录的任务就被取消了,但是使用 tmux 可以在断开之后继续工作,下次登录可以查看,功能有点类似于screen。其他的功能还有: - 窗口切换,每个窗口里还可以分割面板 - 配置方便,可以使用脚本 - 类似 vim 的双层操作逻辑 - 复制粘贴缓冲区

安装的话也很简单,在 mac 下直接 brew install tmux(前提需要安装 homebrew),ubuntu 下则直接 sudo apt-get install tmux 在终端中输入tmux就可以打开一个新的 tmux session,tmux 的所有操作必须先使用一个前缀键(默认是 ctrl + b)进入命令模式,或者说进入控制台,就像 vim 中的 esc。

下面列出了一些常用的基本操作:

信息查询

  • tmux list-ke...
8487 0
Linux 2018-01-22

mysql修改root密码或者host后无法登陆解决办法

今天在树莓派上安装了mysql之后,发现无论输入密码是否正确,都会报错误:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

在网上找了好久的解决办法,终于成功了,过程如下:

首先将my.ini中在[mysqld]节点上加

skip-grant-tables //主要作用是:跳过表中的验证,可以无密码登陆。

保存并重启mysql 然后直接终端使用mysql命令登录之后查询plugin字段值:

mysql> use mysql;
mysql> select plugin from user where user = 'root';

执行结果plugin字段为空。

更新plugin字段为mysql默认值:

mysql> update user set plugin='mysql_native_password';

更新成功,继续执行更新密码操作:

mysql> update user set authentication_string=password('123456') where user='root' and host='localhost';

刷新权限:

mysql> flush privileges;

将my.ini中的

sk...
Linux 2017-09-29

Linode开启Google BBR

熟悉科学上网的同学可能会知道,由于境内外网络环境复杂,延迟高、丢包率高,许多基于TCP协议的翻墙工具会存在传输速度低且不稳定的问题。这在很大程度上是因为,TCP协议可以使用多种拥塞控制算法,而最常用的CUBIC算法存在着无法全速发送数据、易被丢包干扰、容易产生锯齿状波动等问题。因此,各种TCP单边加速工具层出不穷,如锐速(Appex)、ZetaTCP。但这些工具需要较高的运行权限且大部分是收费使用并不开源,因此从安全、成本和可靠性的角度会让使用者有更多顾虑。
好在,2016年09月,Google向Linux Kernel提交了Google BBR的Pull Request。Google BBR是一种新的TCP拥塞控制算法,在Google的内部广域网(B4)中已经进行了广泛的测试,该算法可以充分利用网络带宽,特别是可以在20%以内丢包率下保持较高的带宽。 bbr 下面介绍下如何在Linode上开启Google BBR加速。 1、进入Linode管理后台,点击VPS操作系统的“Edit”链接进入编辑界面: 在编辑界面修改“Boot Settings”中的“Kernel”选项,只要是4.9.0及其以上的内核都是支持Google BRR的: 保存之后重启VPS。

2、重启完成后,使用SSH登录VPS,执行以下命令

echo "net.core.default_qdisc=fq" >> ...
发现更多