光猫方式的MTU要如何设置,网络性能才会发挥至极致?

一级运营商的 MTU 都是标准的 1500,除去 pppoe 8 个字节的头开销就是 1492,很多二手宽带一级就是拨号所以 mtu 是 1484 以下,所以国产路由器很多默认都是 1480 为了更好的兼容性。

一般家用那么点压力 MTU 对齐的意义不大,少几个字节也不会影响多少效率。

windows 下

ping www.sina.com.cn -f -l 1464 1464 往下减,ping 通之后比如 1464+28=1492 如果是 1452 就是 1452+28=1480

查看 MTU 本地连接名称 netsh interface ipv4 show subinterfaces
修改 MTU: netsh interface ipv4 set subinterface “连接名” mtu=1480 store=persistent

LINUX 系统和路由器可以直接修改配置文件,或者把 ifconfig 网卡名如 eth0 mtu 1492 up 放到开机脚本里


https://www.v2ex.com/t/551784

GcmForMojo服务端架设

 GcmForMojo在酷安的介绍

这是一个GCM/小米/华为/魅族推送消息接受程序,需要将令牌写入服务端配合Mojo-Webqq和Mojo-Weixin一起使用。

将QQ和微信的消息通过FCM/GCM/MiPush/HwPush/MzPush推送到你的手机。

建议华为手机使用华为推送(可单独安装华为移动服务共享通道)、Miui系统使用MiPush、魅族Flyme使用MzPush时,使用写轮眼禁用其他的后台推送服务。

Continue reading “GcmForMojo服务端架设”

斐讯R1 AI音响安装乐播,进行airplay投送的操作(无屏安卓设备安装dlna服务端)

1、首先确定R1的端口开通情况,需要调用5555端口。我是通过adb进行设置的。
端口扫描可以通过以下方式进行:
linux:nmap
windows通过工具:ScanPort

2、确定了开放了5555端口在进行下一步,否则就不用往下看了,因为我也没有其他办法了。

3、工具准备:ADB调试工具、乐播投屏的apk软件(我的是电脑端下载的,直接改名了,嫌弃名太长:改成了hpplay.apk)。
下载下来后建议在D盘新建个文件夹然后解压到里面,找到adb_cmd.exe打开即可。

4、连接设备:
4.1:adb connect 192.168.2.231:5555
见下图即算登陆成功:

其他的ADB调试命令请查看帮助,自己研究。

4.2上传安装包:
4.2.1:通过直接安装的方式上传:如果此步骤提示成功,则无需下面的步骤,若失败则继续往下:
adb install hpplay.apk    (软件最好跟adb放在同一个文件夹下,就不用指定目录了)
查看软件包的缓存目录是否存在该软件:hpplay.apk
adb shell ls /data/local/tmp/
4.2.2:直接上传:adb push [-p] <local> <remote>
adb push hpplay.apk /data/local/tmp/     
4.3打开允许安装未知来源的软件:
adb shell settings put secure install_non_market_apps 1

adb shell settings get secure install_non_market_apps     (该命令返回数字1,即开启成功)

4.4安装软件:
adb shell /system/bin/pm install -t /data/local/tmp/hpplay.apk
出现success即成功
4.5:启动软件并运行:
乐播为例:其他的自行查找package进行调用启动。(百度adb启动软件即可)
adb shell am start com.hpplay.happyplay.aw/.WelcomeActivity
在iPhone上进行投屏输出应该就可以看到刚斐讯的音响了,名字各有不同,自行查阅。
可以重启试试,是否还生效,如果不生效再启动一遍软件。我的是自启,如果不自启,我也没办法,这个系统太封闭了。


原文有点罗嗦,简而言之:

  1. 下载乐播投屏接收端: http://www.hpplay.com.cn/
  2. 连接设备:adb connect 192.168.xx.xx
  3. 开启未知来源应用安装: adb shell settings put secure install_non_market_apps 1
  4. 安装:adb install hpplay.apk
  5. 重启检查应用是否自启动:adb reboot

https://bbs.hassbian.com/thread-5424-1-1.html

为wget使用代理

ubuntu-为wget使用代理

wget使用代理需要进行配置,而且目前不直接支持SOCKS5代理,需要运行辅助的软件,这里介绍有几种网上搜来的方法。不过,据试验,不是每种方法都好使,更具版本和网络环境而异,估计是这些软件都还不太成熟,只能说凑合了。

Continue reading “为wget使用代理”

电脑要什么显卡/GPU才能播放4K HDR电影视频

我们知道一台windows电脑要能完美的播放4k电影/4k视频,你电脑的显卡、CPU、内存和4K显示器缺一不可!那很多人就要问 我的CPU很强劲了,那要什么样配置的GPU才能硬解4K电影呢?首先得判断显卡是否有能力支持10bit视频的硬解。如果你的CPU足够强劲,那么可以使用软解来播放10bit视频,和硬解相比这也更不容易出错。
但是如果你觉得播放4K视频卡顿的话,那就需要考虑硬解了。我们知道硬解和GPU相关,那么要什么GPU才能正确硬解10bit视频呢?

Continue reading “电脑要什么显卡/GPU才能播放4K HDR电影视频”

Linux 上创建网络接入点的工具 create_ap

有些时候需要在自己的电脑,特别是笔记本上创建一个接入点将网络连接共享给其他设备。有时候是因为没有无线网络,有时候是因为无线网络有连接数限制……反正这么做是很方便的。特别是有了 create_ap 之后。

create_ap 算是个抽象出来的接口,它需要依赖现有的其它软件包来工作。它的作用仅仅是根据常规的使用方法来批处理完成某个特定任务的指令,而这些指令的完成需要其它软件包来提供。熟悉 Linux 的用户完全可以根据自己的需要来创建一个 bash 脚本自动执行类似的工作,或者一步步输入指令(比如按照这个 Raspberry PI 上的指导步骤)。但还是用 create_ap 更省事,不信看看作者最初发布 create_ap 时候的反响

Continue reading “Linux 上创建网络接入点的工具 create_ap”

linuxea:如何复现查看docker run参数命令

如果有这样以一个场景。我使用docker run启动了了一个redis容器,而docker run的参数有很多,由于时间太久,我已经忘记了当初的启动参数,也并没有使用docker-compose这样的编排工具。现在我如何进行重启,如何找回此前的启动命令?


  • 示例

使用docker run启动一个容器,

 docker run \
  --detach \
  --env REDIS_CONF=on \
  --env REQUIRE_PASS=OTdmOWI4ZTM4NTY1M2M4OTZh \
  --env MASTER_AUTH=OTdmOWI4ZTM4NTY1M2M4OTZh \
  --env MAXCLIENTS_NUM=30 \
  --net=host \
  --env MAXMEMORY_SIZE=1024M \
  --publish 6379:6379 \
  --volume linuxea_volume \
  --name linuxea_redis \
  --tty --interactive \
  marksugar/redis:5.0.0

I. docker COMMAND完整命令查看

首先,我们查看启动的脚本参数和完整的命令

使用 docker ps -a --no-trunc

docker ps -a --no-trunc可以打印docker ps -a的隐藏部分,但是这并不能看到我们run的参数

[[email protected]_25_50_250 ~]# docker ps -a --no-trunc
CONTAINER ID                                                       IMAGE                             COMMAND                CREATED             STATUS              PORTS               NAMES
c32bc1bba3a0f8d59e3bd96648838399287ee183ddbff1ca1293ccbc933c8ede   marksugar/redis:5.0.0             "/Initialization.sh"   8 minutes ago       Up 8 minutes                            linuxea_redis
1d848a10149325e6fb46ef5fa0624812ab12f28263535720d79aa564a5551e45   marksugar/nginx_createrepo:v0.2   "entrypoint.sh"        13 days ago         Up 13 days                              nginx_repo

II. docker inspect

此时,我们试图找回上述的docker run命令,使用docker inspect ,但是docker inspect打印的是json文件,我们需要挑选字段查看

[[email protected]_25_50_250 ~]# docker inspect -f "{{.Name}} {{.Path}} {{.Args}} {{.Config.Cmd}} {{.Config.Env}} {{.Config.Volumes}} {{.Config.Entrypoint}} {{.NetworkSettings.Networks}}" $(docker ps -a -q)
/linuxea_redis /Initialization.sh [] [] [REDIS_CONF=on REQUIRE_PASS=OTdmOWI4ZTM4NTY1M2M4OTZh MASTER_AUTH=OTdmOWI4ZTM4NTY1M2M4OTZh MAXCLIENTS_NUM=30 MAXMEMORY_SIZE=1024M PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin RS_VSON=5.0.0 RS_USER=redis RS_VSON_URL=http://download.redis.io/releases/redis-5.0.0.tar.gz BATADIR=/usr/local/redis DATADIR=/data/redis DATALOG=/data/logs DATACIG=/etc/redis] map[linuxea_volume:{}] [/Initialization.sh] map[host:0xc420182000]
/nginx_repo entrypoint.sh [] [] [USERNAME=marksugar FTPPASSWD=123 FTPDATA=/data/wwwroot SERVER_NAME=meftp.ds.com NGINX_PORT=80 WELCOME="welome to linuxea.com" PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin version=1.14.2 USER=www INSTALL_PATH=/usr/local WWWPATH=/data/wwwroot] map[/tmp/header.html:{} /data:{} /etc/localtime:{} /etc/nginx/nginx.conf:{} /etc/nginx/vhost:{} /tmp/footer.html:{}] [entrypoint.sh] map[host:0xc42044c000]

这样的显示并不直观。好在我发现了rekcodrunlike这两个逆转docker run命令,参见本章介绍和使用。runlike更漂亮些

III. rekcod

借助rekcod打印出更易读的格式,docker inspect→docker run

docker run从现有容器(via docker inspect)反向设计命令。

rekcod可以将以下任何内容转换为docker run命令:

  1. 容器ID /名称(rekcod将调用docker inspect
  2. 包含docker inspect输出的文件的路径
  3. 原始JSON(docker inspect直接传递输出)

每个docker run命令都可用于复制容器。

这不是非常强大,但它应该涵盖所需的大多数参数。请参阅下面支持的字段

传递容器ID /名称时,此模块docker inspect直接调用,运行它的用户也应该能够。

开始安装

  • install rekcod
yum install npm -y
npm i -g rekcod
  • 如果您只安装了Docker:
$ docker pull nexdrew/rekcod
$ alias rekcod="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nexdrew/rekcod"

或者你可以简单地运行它,不需要安装:

$ docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nexdrew/rekcod <container>

开始使用

以使用linuxea_redis容器为例,rekcod linuxea_redis,如下:

[[email protected]_25_50_250 ~]# docker ps -qa|rekcod

或者这样

[[email protected]_25_50_250 ~]#  rekcod linuxea_redis

docker run --name linuxea_redis --runtime runc -p 6379:6379/tcp --net host --restart no -h LinuxEA-Node172_25_50_250.cluster.com --expose 26379/tcp --expose 6379/tcp -e 'REDIS_CONF=on' -e 'REQUIRE_PASS=OTdmOWI4ZTM4NTY1M2M4OTZh' -e 'MASTER_AUTH=OTdmOWI4ZTM4NTY1M2M4OTZh' -e 'MAXCLIENTS_NUM=30' -e 'MAXMEMORY_SIZE=1024M' -e 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' -e 'RS_VSON=5.0.0' -e 'RS_USER=redis' -e 'RS_VSON_URL=http://download.redis.io/releases/redis-5.0.0.tar.gz' -e 'BATADIR=/usr/local/redis' -e 'DATADIR=/data/redis' -e 'DATALOG=/data/logs' -e 'DATACIG=/etc/redis' -d -t -i --entrypoint "/Initialization.sh" marksugar/redis:5.0.0

我将结果换行查看,并且进行启动[这里不得不说的是,在runlike中,可以使用-q自动换行.见下文]

docker run --name linuxea_redis \
-p 6379:6379/tcp \
--net host \
--restart no \
-h LinuxEA-Node172_25_50_250.cluster.com \
--expose 26379/tcp \
--expose 6379/tcp \
-e 'REDIS_CONF=on' \
-e 'REQUIRE_PASS=OTdmOWI4ZTM4NTY1M2M4OTZh' \
-e 'MASTER_AUTH=OTdmOWI4ZTM4NTY1M2M4OTZh' \
-e 'MAXCLIENTS_NUM=30' \
-e 'MAXMEMORY_SIZE=1024M' \
-e 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
-e 'RS_VSON=5.0.0' \
-e 'RS_USER=redis' \
-e 'RS_VSON_URL=http://download.redis.io/releases/redis-5.0.0.tar.gz' \
-e 'BATADIR=/usr/local/redis' \
-e 'DATADIR=/data/redis' \
-e 'DATALOG=/data/logs' \
-e 'DATACIG=/etc/redis' \
-d -t -i --entrypoint "/Initialization.sh" marksugar/redis:5.0.0

启动成功

[[email protected]_25_50_250 ~]# docker ps -a 
CONTAINER ID        IMAGE                             COMMAND                CREATED             STATUS              PORTS               NAMES
492f6cdc159c        marksugar/redis:5.0.0             "/Initialization.sh"   4 seconds ago       Up 3 seconds                            linuxea_redis
1d848a101493        marksugar/nginx_createrepo:v0.2   "entrypoint.sh"        13 days ago         Up 13 days                              nginx_repo
[[email protected]_25_50_250 ~]# docker logs linuxea_redis 
[i] Start configuration /etc/redis
[ok] /etc/redis/redis.conf config ready
[ok] Start variable substitution REDIS_CONF=on
[ok] Replace the maxclients=30 variable value
[ok] Replace the maxmemory=1024M variable value
[ok] Replace the requirepass=OTdmOWI4ZTM4NTY1M2M4OTZh variable value
[ok] Replace the masterauth=OTdmOWI4ZTM4NTY1M2M4OTZh variable value
[i] Start up /usr/local/bin/redis-server /etc/redis/redis.conf 

IV. runlike

我仍然要提一下runlike,和rekcod有一样的作用

本地安装使用

yum install python-pip
pip install runlike
  • 用法:
runlike <container-name>

这打印出你需要运行什么来获得类似的容器。你可以$(runlike container-name)一步完成其输出。如下:

[[email protected]_25_50_250 ~]# runlike linuxea_redis
docker run --name=linuxea_redis --hostname=LinuxEA-Node172_25_50_250.cluster.com --env=REDIS_CONF=on --env=REQUIRE_PASS=OTdmOWI4ZTM4NTY1M2M4OTZh --env=MASTER_AUTH=OTdmOWI4ZTM4NTY1M2M4OTZh --env=MAXCLIENTS_NUM=30 --env=MAXMEMORY_SIZE=1024M --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin --env=RS_VSON=5.0.0 --env=RS_USER=redis --env=RS_VSON_URL=http://download.redis.io/releases/redis-5.0.0.tar.gz --env=BATADIR=/usr/local/redis --env=DATADIR=/data/redis --env=DATALOG=/data/logs --env=DATACIG=/etc/redis --volume=linuxea_volume --network=host -p 6379:6379 --restart=no --detach=true -t marksugar/redis:5.0.0

-p将命令行分解为漂亮漂亮的行。例如:

[[email protected]_25_50_250 ~]# runlike -p linuxea_redis
docker run \
    --name=linuxea_redis \
    --hostname=LinuxEA-Node172_25_50_250.cluster.com \
    --env=REDIS_CONF=on \
    --env=REQUIRE_PASS=OTdmOWI4ZTM4NTY1M2M4OTZh \
    --env=MASTER_AUTH=OTdmOWI4ZTM4NTY1M2M4OTZh \
    --env=MAXCLIENTS_NUM=30 \
    --env=MAXMEMORY_SIZE=1024M \
    --env=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \
    --env=RS_VSON=5.0.0 \
    --env=RS_USER=redis \
    --env=RS_VSON_URL=http://download.redis.io/releases/redis-5.0.0.tar.gz \
    --env=BATADIR=/usr/local/redis \
    --env=DATADIR=/data/redis \
    --env=DATALOG=/data/logs \
    --env=DATACIG=/etc/redis \
    --volume=linuxea_volume \
    --network=host \
    -p 6379:6379 \
    --restart=no \
    --detach=true \
    -t \
    marksugar/redis:5.0.0

docker使用

runlike被封装为一个名为assaflavie / runlike的Docker镜像。

docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
    assaflavie/runlike YOUR-CONTAINER

或者您可以使用别名运行它,例如,将其保存在~/.profile或中~/.bashrc

alias runlike="docker run --rm -v /var/run/docker.sock:/var/run/docker.sock assaflavie/runlike"

然后您可以直接以本地命令运行

runlike YOUR-CONTAINER

V. docker-compose

事实上这样的方式,我并不推荐,你大可不必这样 麻烦,直接使用docker-compose就可以完成简单的编排,如下:

version: '2'
services:
  redis:
    image: marksugar/redis:5.0.0
    container_name: redis
    restart: always
    network_mode: "host"
    privileged: true
    environment:
    - REDIS_CONF=on
    - REQUIRE_PASS=OTdmOWI4ZTM4NTY1M2M4OTZh
    - MASTER_AUTH=OTdmOWI4ZTM4NTY1M2M4OTZh
    - MAXCLIENTS_NUM=600
    - MAXMEMORY_SIZE=4096M
    volumes:
    - /etc/localtime:/etc/localtime:ro
#    - /etc/redis:/etc/redis
    - /data/redis-data:/data/redis:Z
    - /data/logs:/data/logs

VI. 学习更多

学习如何使用Docker CLI命令,Dockerfile命令,使用这些命令可以帮助你更有效地使用Docker应用程序。查看Docker文档和我的其他帖子以了解更多信息。


除非另有说明,否则本站上的内容根据以下许可进行许可: CC署名-非商业性使用-相同方式共享4.0国际许可协议4.0进行许可
本文作者:www.linuxea.com for Mark
文章链接:https://www.linuxea.com/2270.html (转载请注明本文出处和本章链接)