ntzyz's space

∠( ᐛ 」∠)_

Category

  • Algorithm
  • Figures
  • Gameplay
  • Linux
  • Network
  • Other
  • Photos
  • Web

Tags

  • Linux
  • PS4
  • JavaScript
  • A6300
  • A7M3
  • OpenWrt
  • HTML5
  • FE55
  • node
  • Web
  • VPN
  • Arcaea
  • Tunnel
  • 猫
  • 手办
  • Network
  • iptables
  • 狗
  • systemd
  • AudioContext
  • PowerShell
  • 雪
  • CSharp
  • SQLite
  • NVMe
  • UglifyJS
  • PPTP
  • PHP
  • Surface
  • LeetCode
  • Routing
  • Highlight.js
  • CI
  • FE24105G
  • MediaSource
  • FromSoftware
  • MHW
  • Algorithm
  • WireGuard
  • SVP
  • IPv6
  • Highcharts.js
  • SDL
  • USB
  • Gaming
  • CAPCOM
  • iSCSI
  • GitHub
  • HDOJ
  • MPV
  • UEFI
  • HTML
  • Arch Linux
  • NAT
  • MySQL
  • Sekiro
  • WebAssembly
  • Node
  • Minecraft

Recent replies

  • ntzyz 发表于「CoreMark WebAssembly」
  • Hatsuroku 发表于「CoreMark WebAssembly」
  • Kyle 发表于「用 Elastic Stack 拯救 Telegram 的中文搜索」
  • ShellBin 发表于「Cinebench」
  • ntzyz 发表于「电子垃圾列表」
  • 帅粥 发表于「电子垃圾列表」
  • ntzyz 发表于「Windows 10 网络连接共享重启失效的临时解决方案」
  • Hughton 发表于「Windows 10 网络连接共享重启失效的临时解决方案」
  • Gaein nidb 发表于「使用 UEFI Shell 加载 NVMe 驱动」
  • ShellBin 发表于「DSC01764」

Links

About me
WordPress 存档
Cinebench 跑分记录
Coremark WebAssembly 跑分记录
Hpoi 手办维基 个人页
ZephRay
>Lithia's Core
业余无线电台 BD4SUR
Ferrets 家的 Wordpress
spinmry实验室
Yuno's Wonderland
notonokodds
春上冰月的博客
kasora's blog
徐靖峰 | 个人博客
蒋炜成 | 个人博客
Test2g
447f.Misaka
Project RC
Shell Bin
分类:Linux

土制服务器流量统计

2019 年 6 月 5 日分类:Linux#iptables#systemd#MySQL

假设某服务器有一个接口 eth0,并配置了三个 IP 地址 10.0.0.4, 10.0.0.5, 10.0.0.6。需求就是,如何知道这一台服务器每个 IP 的历史出网流量。

思路由 @a350063 提供,很简单,活用 iptables 的计数器就 OK 了。这种方法非常灵活,可以对任何能用 iptables 规则描述的流量数据进行统计,比如统计某个源地址指定端口的进出流量。首先我们使用 iptables 增加一些规则:

# iptables -I OUTPUT -s 10.0.0.4/32 -j ACCEPT
# iptables -I OUTPUT -s 10.0.0.5/32 -j ACCEPT
# iptables -I OUTPUT -s 10.0.0.6/32 -j ACCEPT

执行完成之后,就可以直接使用命令 iptables -nvxL OUTPUT 看到每个 IP 的出网流量了:

# iptables -nvxL OUTPUT
Chain OUTPUT (policy ACCEPT 3856 packets, 1914416 bytes)
    pkts      bytes target     prot opt in     out     source               destination         
   12880   11794276 ACCEPT     all  --  *      *       10.0.0.4             0.0.0.0/0           
    6850    5801012 ACCEPT     all  --  *      *       10.0.0.5             0.0.0.0/0           
     110       9315 ACCEPT     all  --  *      *       10.0.0.6             0.0.0.0/0
MORE

Linux 下双屏多 DPI 的一种思路

2019 年 4 月 15 日分类:Linux#Linux

很简单(粗暴),只要全部按照最高 DPI 去渲染,然后在低分辨率上压缩后呈现就行了。这种方案下低 DPI 的屏幕会被“超采样”,会有一点点模糊,但是比起让高分屏呈现低分辨率画面的方案,损失不算大。

具体怎么做的话,比如我这里是两个 27 寸的显示器,分别接驳在 DP1 和 HDMI2 上(可以使用 xrandr 查看)。其中,DP1 是一块 Dell 的 2K 显示器(2560x1440),HDMI 2 是联想的一个 FHD 显示器(1920x1080)。屏幕的位置关系的话,FHD 在左侧,2K 在右侧。

首先你需要禁用窗口管理器自带的多屏幕管理器(比如 KDE 有 Kscreen2),如果没有那就不用管了。之后,在 ~/.xinitrc ,或其他等效的 X11 启动脚本中,中添加以下命令:

xrandr \
  --output HDMI2 \
    --panning 2400x1350 \ # 左侧屏幕的渲染分辨率
    --pos 0x0 \           # 左侧屏幕左上角的位置
    --scale 1.25x1.25 \   # 左侧屏幕的缩放倍数
  --output DP1 \
    --panning 2560x1440 \ # 右侧屏幕的渲染分辨率
    --pos 2560x0 \        # 右侧屏幕左上角的位置
  --fb 4960x1440          # 整个 framebuffer 的大小

这里的一些数值都是我这里的参数,不同的多显示器配置可能需要稍微自己算一下,没啥难度的。

完成后,重启 Xorg 即可完成调整,不出意外两块屏幕就能比较正常的工作了。效果如下图:

MORE

ARM v7 交叉编译笔记

2018 年 5 月 16 日分类:Linux#SDL#Linux

busybox,产生一个最小的可用 coreutils 等工具,并充当新系统的 init,毕竟这种嵌入式场景要是跑 systemd,开机速度什么的就走远了(

$ wget https://busybox.net/downloads/busybox-1.28.3.tar.bz2
$ tar xjvf busybox* && cd busybox*
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j64
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- install CONFIG_PREFIX=/root/basefiles

SDL 1.2,把除了 fbcon 之外的 video 和 audio 都关了。SDL 支持的东西真多啊,居然还有 PS2 PS3的。

./configure --host=arm-linux-gnueabihf \
            --prefix=/root/basefiles/usr \
            --disable-audio \
            --disable-threads \
            --disable-x11 \
            --disable-dga \
            --disable-video-photon \
            --disable-video-cocoa \
            --disable-video-directfb \
            --disable-video-ps2gs \
            --disable-video-ps3 \
            --disable-video-svga \
            --disable-video-vgl \
            --disable-video-wscons \
            --disable-video-xbios \
            --disable-video-gem \
            --disable-video-opengl
make && make install

zlib,作为 libpng 和 freetype2 的依赖。

CC=arm-linux-gnueabihf-gcc LD=arm-linux-gnueabihf-ld AS=arm-linux-gnueabihf-as ./configure --prefix=/root/basefiles/usr
make && make install 

libpng 1.6,资源文件保存格式,SDL_image 依赖该库。

必须注意的是头文件目录一定要放在 CPPFLAGS 这个变量里,否则会报错。同时如果 已经报错了记得 make clean 了之后再编译,否则这个错误不会被修正。

./configure --host=arm-linux-gnueabihf \
            --prefix=/root/basefiles/usr \
            CPPFLAGS="-I/root/basefiles/usr/include" \
            LDFLAGS="-L/root/basefiles/usr/lib"
make && make install

SDL_image 1.2,去掉了所有其他用不到的格式,只保留 PNG 的支持。

./configure --host=arm-linux-gnueabihf \
            --prefix=/root/basefiles/usr/ \
            --with-sdl-prefix=/root/basefiles/usr/ \
            --disable-jpg \
            --disable-tif \
            --disable-webp \
            CFLAGS="-I/root/basefiles/usr/include" \
            LDFLAGS="-L/root/basefiles/usr/lib"
make && make install

Freetype2 会通过 pkg-config 命令来判断系统内是否安装了 libpng 和 zlib,所以我们需要手动指定这个 PKG_CONFIG_PATH ,或者干脆去掉对 libpng 的支持。

./configure --host=arm-linux-gnueabihf \
            --prefix=/root/basefiles/usr/ \
            --with-png=yes \
            CFLAGS="-I/root/basefiles/usr/include" \
            LDFLAGS="-L/root/basefiles/usr/lib" \
            PKG_CONFIG_PATH=/root/basefiles/usr/lib/pkgconfig/

SDL_ttf,需要把 include/SDL 内的 SDL_opengl.h 给删掉或者改名,因为 configure 内没有提供任何方法来关闭 OpenGL,只能破坏这个检测机制来避免让 autoconf 认为我需要使用 libGL 进行链接。

[ -e /root/basefiles/usr/include/SDL/SDL_opengl.h ] && mv /root/basefiles/usr/include/SDL/SDL_opengl.h /root/basefiles/usr/include/SDL/SDL_opengl.fucked.h
./configure --host=arm-linux-gnueabihf \
            --prefix=/root/basefiles/usr/ \
            --with-freetype-prefix=/root/basefiles/usr/ \
            CFLAGS="-I/root/basefiles/usr/include -I/root/basefiles/usr/include/freetype2" \
            LDFLAGS="-L/root/basefiles/usr/lib -lfreetype" \
            PKG_CONFIG_PATH=/root/basefiles/usr/lib/pkgconfig/

OpenCV3,测试算法使用,正式代码中使用的部分将被重构

cmake -DCMAKE_TOOLCHAIN_FILE=../arm-gnueabi.toolchain.cmake ../../.. -DCMAKE_INSTALL_PREFIX=/opt/rootfs/usr -DENABLE_NEON=ON

使用 systemd-nspawn 快速创建 Linux 容器

2017 年 12 月 21 日分类:Linux#Linux#systemd

使用 systemd-nspawn 这个命令我们可以很方便的创建一个 Linux 容器,需要的只是一个使用 systemd 作为 init 的 Linux 发行版的根文件系统。通过创建容器,我们可以获得一个可以随便折腾而不用担心损坏的 Linux 环境。这里用 Ubuntu 16.04 和 CentOS 7 为例,整个过程可以说是非常简单(虽然比起 Docker 还是麻烦了点)

对于 Ubuntu,可以直接从源里下载到它的根文件系统。下载一份,并解压到 /var/lib/machines/ubuntu1604:

MORE

在 Linux 下使用 SVP 4 播放视频

2017 年 9 月 22 日分类:Linux#Arch Linux#MPV#SVP
提示:在继续阅读之前,请注意此文章最后更新于 1257 天前,其中的部分内容可能已经无效或过时。

SVP 作为一个插帧神器,是我们看番的好伙伴。从 SVP 4 开始,Smooth Video Project 开始提供对 Linux/macOS 的支持(vapoursynth is GOOD)。今天尝试了一下效果还不错~

首先是按惯例安装一些必备的软件包,我使用的是 Arch Linux,其他平台自行处理一下就行了

MORE
  • «
  • 1
  • 2
  • »
Copyright © 2016-2019 ntzyz. All rights reserved.
Except where otherwise noted, content on this blog is licensed under CC-BY 2.0.