惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
月光博客
月光博客
量子位
大猫的无限游戏
大猫的无限游戏
Stack Overflow Blog
Stack Overflow Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
P
Proofpoint News Feed
B
Blog RSS Feed
美团技术团队
腾讯CDC
C
Check Point Blog
Engineering at Meta
Engineering at Meta
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
J
Java Code Geeks
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享

atpX

自建 S3 兼容对象存储服务 Garage 听风的歌 偶尔是深夜就好了 新玩具 AirPods Pro 3 公交车上的时间 从 WHOIS 到 RDAP 通过 WireGuard 访问 NFS 共享文件 自建音乐串流服务探索 我停止了探索 Fediverse 互联网背景噪音 我的数字生活降级 小城与确定性的墙 一只特立独行的猪 Fediverse 与社交 承认的勇气 mediaX - 轻量书影音记录管理工具 我的博客写作流程 网站新增 Misc 页面 擅长对线的鲍勃 在 Chroot 环境下使用 Rsync 同步 再见 JavaScript 当我玩博客时我在玩什么 为什么我的博客没有友链页面 小熊猫与大熊猫 (HDR 照片测试) 是时候为网站开启 HTTP/3 支持了吗 使用 AdGuard Home 搭建自用 DoH 服务 谈谈读书与消遣 2023 年终总结 西安两日游 从 AirPods「升级」到 EarPods
Linux 使用过程中的一些记录
ATP · 2020-06-02 · via atpX

检查当前系统发行版本:

# Debian
cat /etc/os-release

修改主机名:

hostnamectl set-hostname [hostname]

查看修改时区:

timedatectl
timedatectl list-timezones
timedatectl set-timezone Asia/Shanghai
# timedatectl set-timezone Asia/Hong_Kong
# timedatectl set-timezone Asia/Singapore

设置时间同步:

apt install systemd-timesyncd
# vim /etc/systemd/timesyncd.conf
# [Time]
# NTP=time.cloudflare.com time.google.com
# FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org time.windows.com time.apple.com
systemctl restart systemd-timesyncd

修改默认语言环境为 en_US.UTF-8:

# apt install locales
dpkg-reconfigure locales
# 空格勾选/取消指定语言,找到并勾选 en_US.UTF-8
source /etc/default/locale

临时修改 DNS 服务器:

vim /etc/resolv.conf
# 修改自定义 NS:
nameserver 1.1.1.1
nameserver 8.8.4.4

强制退出用户:

pkill -kill -t pts/[序号]

查看端口占用:

apt install net-tools
netstat -ntlp

新建用户不允许登录:

useradd -s /usr/sbin/nologin <new username>

查看文件/文件夹大小:

du [文件/文件夹名称] -h

查看指定目录下文件大小:

du -sh /home
# 或
du -h --max-depth=1 /home

查看大于 800M 的文件:

find / -size +800M -exec ls -lh {} \;

Debian 双栈网络下 IPv4 优先,编辑 /etc/gai.conf 文件,找到 #precedence ::ffff:0:0/96 100 一行取消注释,或者直接使用命令:

sed -i 's/#precedence ::ffff:0:0\/96  100/precedence ::ffff:0:0\/96  100/' /etc/gai.conf

Shell 命令行彩色显示 vim ~/.bashrc,添加下面代码之后 source ~/.bashrc 即可生效。

if [ -z "$PS1" ]; then
    return
fi
alias ls='ls --color=auto'
alias ll='ls --color=auto -lAF'
PS1='\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h:\[\033[01;33m\]\w\[\033[01;35m\]\$ \[\033[00m\]'

升级系统内核

# Updated on 2023-11-05: removed.

查看线路与测速

开启 BBR 拥塞控制算法

你可以使用下面的命令检查当前可用的拥塞算法:

sysctl net.ipv4.tcp_available_congestion_control

Linux 内核在 2.6.19 后使用 Cubic 算法作为默认的 TCP 拥塞算法,它是一种较为温和的拥塞算法,使用三次函数作为其拥塞窗口的算法,并且使用函数拐点作为拥塞窗口的设置值。这里为了更好的体验,建议开始谷歌 BBR 算法(只支持内核 4.9 及以后的版本),多数情况下使用 BBR 可以获得显著的网络吞吐量的提升和延迟的降低:

vim /etc/sysctl.conf

添加下列内容:

net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr

加载参数:

sysctl -p

之后可以确认一下当前使用了哪一种拥塞算法:

sysctl net.ipv4.tcp_congestion_control

路由与速度测试

  1. 使用 mtr 或者更直观的 besttrace 查看回程线路;

  2. 使用 Unixbench 测试 CPU 性能;

  3. 使用 bench.sh 或者 superbench 测试到不同运营商的下载速度:

wget -qO- bench.sh | bash

或者

wget -qO- git.io/superbench.sh | bash -s info
wget -qO- git.io/superbench.sh | bash -s io
wget -qO- git.io/superbench.sh | bash -s speed
wget -qO- git.io/superbench.sh | bash -s fast
wget -qO- git.io/superbench.sh | bash -s share

而更准确测试 VPS 到本地速度的方法是使用 iperf3,VPS 和本地都需要安装:

apt install iperf3

一些常用命令,完整的命令可通过 iperf3 --help 查看

  • -s, –server:iperf 服务端模式,默认启动的监听端口为 5201,eg:iperf -s
  • -c, –client host:iperf 客户端模式,eg:iperf -c x.x.x.x
  • -i, –interval:每次打印报告的时间间隔,单位为秒,eg:iperf3 -c x.x.x.x -i 2
  • -p, –port:指定服务端监听的端口或客户端所连接的端口
  • -u, –udp:采用 UDP 协议测试,不带该参数表示采用 TCP 协议
  • -t, –time:指定测试数据传输的总时间,默认为 10 秒
  • -P, –parallel:指定并发连接数,越高越能测试到速度极限
  • -R, –reverse:运行反向测试,即下载测试(服务端发送数据,客户端接收数据)

例如在本地测试 10 个并发的下载速度,测试时间为 60 秒(服务端运行 iperf3 -s,并且记得防火墙打开相应的端口):

iperf3 -c x.x.x.x -p 5201 -t 60 -P 10 -R
  1. 使用 YABS (Yet-Another-Bench-Script) 测试综合性能:
curl -sL yabs.sh | bash -s -- -{fdighr459}
  • -f/-d 跳过磁盘 io 测试
  • -i 跳过 iperf 网络速度测试
  • -g 跳过 Geekbench 性能测试
  • -h 查看帮助信息和本地测试环境情况
  • -r 减少 iperf 网络测试的节点以节省流量
  • -4 替换默认的 Geekbench 6 性能测试为 Geekbench 4 版本
  • -5 替换默认的 Geekbench 6 性能测试为 Geekbench 5 版本
  • -9 同时进行 Geekbench 4 和 Geekbench 5 性能测试

挂载硬盘

使用 fdisk -l 开查看当前磁盘情况

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     1026047      512000   83  Linux
/dev/sda2         1026048    41943039    20458496   8e  Linux LVM
# 这个就是新的硬盘
# 记下 /dev/sdb 这个名称
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

1. 分区

使用过 fdisk /dev/sdb 来进行分区操作

  1. n: 添加一个分区
  2. p: 设置为主分区,最多可以 4 个主分区 (分区序号默认 1)
  3. sector: 直接回车默认
  4. w: 写入磁盘

2. 格式化分区

再次 fdisk -l 查看新建好的分区,例如为 /dev/sdb1,使用命令:

mkfs.ext4 /dev/sdb1

* 也可根据需求使用 xfs、btrfs、ntfs 等格式,命令相应改为 mkfs.xfsmkfs.btrfsmkfs.ntfs,如果是大容量硬盘,可适当增加参数防止等待时间过长,这里不再提及。

3. 挂载使用

在根目录下创建 data 目录:

mkdir /data

将 /dev/sdb1 挂载到 /data 下:

mount /dev/sdb1 /data

使用 df 命令查看是否挂载成功,新创建的分区不能开机自动挂载,每次重启机器都要手动挂载,设置开机自动挂载需要先获取硬盘 UUID:

blkid /dev/sdb1

然后修改 /etc/fstab 文件,在最后添加一行:

UUID=123e4567-e89b-12d3-a456-426614174000  /data  ext4  defaults  0  2

* 注,后三个参数:

  • 挂载选项: defaults = rw, suid, dev, exec, auto, nouser, and async
  • dump: 是否备份,一般设置为 0
  • fsck:开机时检查顺序,非 boot 文件系统为 1,其它文件系统为 2,swap 为 0

添加 SWAP 交换分区

首先使用 dd 命令创建一个 1G 大小的 swapfile 文件作为 swap 区:

dd if=/dev/zero of=/swapfile bs=1M count=1024

将其转化为 swap 文件:

mkswap /swapfile

修改所有者和权限:

chown root:root /swapfile
chmod 0600 /swapfile

激活 swap:

swapon /swapfile

设置系统重启后依旧生效,打开 /etc/fstab 文件,在最后面加上一行:

/swapfile  none  swap  sw  0  0

验证交换空间是否处于活动状态:

swapon --show

如果想要删除 swap 交换分区,首先停用运行交换空间:

swapoff -v /swapfile

/etc/fstab 中删除前面添加的交换文件启动设置:

/swapfile  none  swap  sw  0  0

最后,删除实际的文件:

rm /swapfile

unzip 解压中文乱码

zip 格式中并没有指定编码格式,Linux 下的默认编码是 UTF8,而在 Windows 下生成的 zip 文件中的编码是 GBK/GB2312 等,因此,这些 zip 文件在 Linux 下解压时会出现乱码问题,解决办法是加上 -O 参数,但多数 Linux 发行版本中安装的 unzip 并不支持,因为官方太高冷(xx),所以只有通过补丁的方式添加:

git clone https://github.com/ikohara/dpkg-unzip-iconv
cd dpkg-unzip-iconv
make source
make build-dep
make
make install

安装好后就可以通过以下命令进行解压了:

unzip -O cp936 file.zip