每天学习一个命令:qmv 在文本编辑器中对文件及目录进行编辑

在给 tldr review 提交时,有一个命令引起了我的兴趣,那就是 qmv,当时简单的尝试了一下,浏览了一下 man page。没有仔细的深入,但昨天突然遇到一个需求,我要批量修改一个目录下文件的大小写,需要将大写部分修改成小写,一下子就想起了这个命令。虽然这个命令是作为移动来介绍的,但它也可以作为重命名来使用,毕竟重命名也算是移动的一种嘛。

命令的使用特别简单,直接使用 qmv 后面接目录名即可,然后会打开默认的文本编辑器, 比如vi,然后在其中能看到两列,左边是原始名字,后面是目标名,如果要批量修改重命名那就直接对后面一列进行编辑即可。最后保存退出,那么 qmv 会自动把所作的修改应用到文件中。

asciicast

延展

qmv 是属于renameutils 这个包,这个包中还有 qcpqcmd,看名字应该比较好猜,cpcmd,复制和执行。

reference


2020-04-13 qmv , linux , command

Github Actions 使用

GitHub Actions 是 GitHub 推出的 CI/CD 工具,通过简单的语法可以做一些 build, deploy 等等的事情。

Workflow

放在仓库根目录 .github/workflows 文件夹下。yaml 格式。语法规则见:

寻找 Actions

官方的 Actions 都放在 https://github.com/actions 仓库中。


2020-04-12 github , github-actions , ci-cd , continuous-integration

在命令行下给 socks 或者 http 代理测速

在国内不可避免的要用到代理,这些年陆陆续续从 GAE 上的代理,到自己购买 VPS 搭建,从 Shadowsocks 到 V2ray,自己花费了不少的时间,而现在虽然手上也有两台 VPS,但是已经不拿他们作为主要的代理了,我一台 Directspace 的 VPS,线路没有优化过,到国内的延迟略高,而另一台 AWS 的 EC2,虽然地理位置在韩国,也只勉强到能用的阶段。所以这两年陆陆续续不再自己维护代理服务,之前有购买过因为 Ingress 结缘的 Shadowsocks 服务,一直用到现在,虽然有些情况下会发生断流,倒也一直没有放在心上。直到尝试了一周的 V2ray 服务提供商,我想是回不去 SS 了。

那么有什么方法来对一个代理服务的提供商的速度进行测试呢?这就是这篇文章的最主要的内容。

YouTube

我知道很多的人拿 YouTube,右击查看 Stats for nerds.

youtube stats for nerds

可以看到其中有一条 Connection Speed,这个图片中的速度大概在 15~18Mbps,转换一下大概在 2~3MB/s 的速度,这个速度看个 1080p,大概是可以了,如果要追求更高的画质那么还需要更高的比特率,不过对于我来说,这已经足够了,毕竟我的 MSI 显示屏也只有 1080p 而已。

speedtest-cli

但 YouTube 毕竟只是一种方式,如果想要更加精确的测速,有一个网站叫做 speedtest,一般我用来测试都用这个,或者还有一个 Netflix 提供的 fast.com.

speedtest web

结果:

speedtest web result

但其实 speedtest 可以在命令行下进行。

首先要先安装 pip, 然后在安装:

pip install speedtest-cli

运行:

➜ speedtest-cli
Retrieving speedtest.net configuration...
Testing from China Mobile Guangdong (xxx.xxx.xxx.13)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Beijing Broadband Network (Beijing) [1.67 km]: 11.141 ms
Testing download speed................................................................................
Download: 124.99 Mbit/s
Testing upload speed......................................................................................................
Upload: 4.17 Mbit/s

speedtest 的测速的时候会根据位置选择不同的节点,不同的节点会对结果有一定的影响。

对代理进行测试

既然有了上面的基础 speedtest-cli 命令,那么在 Linux 下,HTTP 代理也好,socks 代理也好都可以通过 speedtest-cli 来直接在终端下进行测试。

首先要知道本地的 socks 代理地址,Shadowsocks 一般的本地 socks 地址是:

socks://127.0.0.1:1080

对 socks 代理进行测速

要对 socks 代理进行测试则先要安装 proxychains,然后通过

sudo apt install proxychains4

proxychains4 curl ip.gs

来验证已经走了代理。再通过如下命令进行测速:

proxychains4 speedtest-cli

在输出的一大堆日志中可以查看到下载和上传的速度:

Download: 18.65 Mbit/s
Upload: 4.01 Mbit/s

对 HTTP 代理进行测速

对 HTTP 代理的测试相对要简单一些。开启 V2ray 代理,我用的 Linux 下 V2rayL 的客户端,在配置中可以看到 HTTP 的代理端口是 1081.

export http_proxy=http://127.0.0.1:1081
curl ip.gs
# 确保自己的 IP 已经变成代理的 IP,然后运行
speedtest-cli

老版本的 speedtest-cli 中对 http_proxy 支持可能有问题,确保自己的的是最新的版本:

➜ speedtest-cli --version
speedtest-cli 2.1.2

推广时刻

这里提供我测试用的一个是我以前用的 SSR 服务,一个便是新的 V2ray 的服务:

当然拿两者对比速度是没有意义的,服务器不同,协议也不同,只是提供一个方法让大家的选择服务商的时候能够对自己所用的服务有一个基本的了解。对于我的情况新的 wujievpn 几乎提供了我翻了一倍的下行速度。Download 从 18.65 Mbit/s 提高到了 34.5 Mbit/s。所以还是值得一提的。

如果有人想要尝试,欢迎使用我的邀请链接:

reference

  • 感谢 @sivel 提供这么好用的命令行测速工具 speedtest-cli

2020-04-06 speedtest , socks , http_proxy , proxy , vps , v2ray

OpenWrt 学习笔记

硬件

CPU

  • Atheros/QualCom 高通 (QCA)
  • BroadCom 博通 (BCM)
  • MediaTek 联科发 (MTK)
  • RealTek 瑞昱

RAM

  • SDRAM
  • DDR, DDR2, DDR3

ROM(Flash)

  • SPI Flash
  • NOR Flash
  • NAND Flash

WiFi 芯片

  • USB(速度相对较慢)
  • PCI-e

软件

BootLoader

Wiki

CPU, 网卡数据库 Wiki:

reference

  • 《跟着佐大学 OpenWrt 开发入门》

2020-04-05 openwrt , wrt , router , linux , cpu

小米路由器 3G 刷机及固件

记录一下小米路由器 3G 的刷机历程,过程步骤是比较简单,但就是配置过程有点心酸,理论上是应该直接就能工作的,但是我的情况比较特殊,想用 OpenWrt 的无线中继来着,但是用别人的固件,和我自己编译的固件都无法在小米路由器 3G 上实现无线中继。

OpenWrt 固件

我的另一台 WNDR 3800 直接配置就可以无线中继,但是小米的配置后就各种问题。

无线未开启或未关联

最一开始就是,开启无线中继后 5G 信号显示,“无线未开启或未关联”。

网上查到解决方法是需要将国家修改为美国,2.4G 信道设置为 11, 5G 信道设置为 149(如果是无线中继,那么和主路由保持一致即可),然后重启路由器。

重启路由器后确实看到一块网卡已经可以,但总是有一块还是报错。

查看内核日志

[  246.611715] wlan1: deauthenticated from fc:7c:01:dd:5b:7a (Reason: 15=4WAY_HANDSHAKE_TIMEOUT)

去查看这个日志也找不到原因。故放弃转下载了 Padavan 的固件。

Padavan

Padavan 是俄罗斯开发者在华硕的路由器系统中延伸而来。Padavan 针对 mtk 芯片,梅林固件是针对博通芯片。功能相似。

在 Padavan 的固件中,直接 5G,设置无线桥接

  • 无线 AP 工作模式: AP-Client + AP
  • 无线 AP-Client 角色:这里我选 LAN Bridge(因为我想要我这台接入的设备 IP 和主路由 IP 在同一个网段),而如果你想要 Padavan 连接的设备有一个新的 IP 段,这里可以选择 WAN(Wireless ISP)
  • 然后选择上级 SSID,自动获取信道,授权方式,密码,应用

到这里就完成了 Padavan 中设置无线中继。另外我还去 LAN 设置中把 LAN 的 DHCP 关了。

然后再在 LAN 设置中将 LAN IP 地址,也就是 Padavan 的管理后台设置一个在主路由中的静态 IP,我的主路由网关是 192.168.2.1 所以我给 Padavan 设定了一个 192.168.2.2

另外要注意的是 Padavan 固件中有一个路由器运行模式,如果像我一样作为无线中继使用,也别尝试接入点模式 (AP) 模式,除非你一定要把路由器当成交换机使用。

接入点模式的介绍:

MI-R3G 连接到外部有线 / 无线路由器并且提供无线网络共享。 该模式下 NAT、防火墙、UPnP、DHCP 服务不可用,并且 WAN 端口直接连接到 LAN 端口。

在该模式下 WAN 口的作用也和 LAN 口一样。那么假如安装我上面的配置,Padavan 就无法进入管理后台了,因为 Padavan 只作为一个无线交换机在发挥功能。所以如果要使用该模式,一定把 LAN 口地址改成和无线中继的网段不一样的网段,这样了解网线,然后使用静态 IP 地址连接电脑还能上管理后台,否则就只能恢复出厂设置了。

如何进入 Breed

Breed 下载地址:https://breed.hackpascal.net/

刷入 Breed 的方法就不说了,网上太多了。这里记录一下怎么进入 Breed,因为我总是忘记。

  • 断电
  • 按住 reset
  • 通电
  • 指示灯先黄色闪烁,然后蓝色闪烁
  • 用网线连接 LAN,和电脑
  • 进入 192.168.1.1

几大路由器固件的历史

思科发布 wrt54 路由后未遵循开源协议被告,之后迫于压力发遵循 GPL 发布了 wrt,再之后 wrt 延伸出社区版的 openwrt、HyperWRT 等,华硕也发布了 asuswrt(GPL 开源协议)。在华硕开源 asuswrt 后,开发者们基于此开发了梅林和 Padavan (老毛子)。

而开源社区这边,openwrt 又衍生出 dd-wrt、石像鬼、lede 等。其实现在用 arm 架构的路由器基本上全是 wrt 系统,包括 newifi, 极路由等等。


2020-04-04 xiaomi , router , wifi , openwrt , linux

个人的局域网网络设置整理

最近因为想要调查我屋里网络带宽的瓶颈,把整个家里的网络环境整理了一番,也把本来乱七八糟的各种 IP 也梳理了一下。纯粹整理,如果不关心的可以跳过。

现在我有两台路由器,准确来说是三台,一台主路由基本不动,负责接入互联网,稳定为主,千兆。一台房间的副路由,无线中继主路由,IP 由主路由分配,还有一台本来做了无线桥接,有一个新的网段,现在想逐渐弃用,转移到同一个网段,便于管理。

路由器设置 DHCP

主路由和副路由的网络设置,就不赘述,主路由没有什么设置,主要是副路由需要设置无线中继 +AP,我这里没有用主路由的 SSID,新产出了一个新的 SSID,如果在个人家中其实用同一个 SSID 即可,可以无缝切换。

QNAP static ip

QNAP 设置静态地址

网络与虚拟环境中,找到之前设定的对应的接口,QNAP 中叫做虚拟交换机,直接通过 UI 界面修改即可。

Proxmox static ip

Proxmox 的网络接口配置在 /etc/network/interfaces 文件中。

类似这样:

auto lo
iface lo inet loopback

iface enp3s0 inet manual

auto vmbr0
iface vmbr0 inet static
        address 192.168.2.100
        netmask 255.255.255.0
        gateway 192.168.2.1
        bridge_ports enp3s0
        bridge_stp off
        bridge_fd 0

修改其中的 address, netmask, gateway 即可。修改保存后重启,或者 systemctl restart networking.service

Raspberry Pi static ip

树莓派是网线接入,所以需要设置 eth0 的静态地址。

如果是用网线,eth0 端口,编辑 /etc/dhcpcd.conf

interface eth0
static ip_address=192.168.2.4/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1 8.8.8.8

重启:

sudo reboot

如果使用的是无线网卡,那么需要设置 wlan0 网卡:

# 查看当前配置
ifconfig -a
# 查看 wifi 配置
less /etc/wpa_supplicant/wpa_supplicant.conf
# 修改配置
sudo vi /etc/dhcpcd.conf

修改内容,和上面类似,注意把 IP 替换成对应内网的地址,别直接复制使用:

interface wlan0
static ip_address=192.168.2.4/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1 8.8.8.8

注意配置 Raspberry Pi 网卡地址的时候千万要小心,否则一旦配置错误,如果又是作为服务器使用的话,可能造成无法获取局域网地址从而无法连接,那么就可能需要键盘和显示器来登录重新配置,所以谨慎。

Other devices

其他的 Linux PC 可以选择 DHCP,也可以配一个静态的 IP,因为不需要连接所以不知道自动获取的 IP 也关系不大。

为什么路由器的设置地址都是 192.168 开头

IPv4 地址协议中预留了 3 个 IP 段,作为保留地址给专有网络使用。

  • A 类地址:10.0.0.0–10.255.255.255
  • B 类地址:172.16.0.0–172.31.255.255
  • C 类地址:192.168.0.0–192.168.255.255

那么回到这个问题上,为什么家用的路由器默认分配的地址都是 192.168.1.x 或者 192.168.2.x 等等,举一个简单的例子,假如路由器使用 192.168.1.1/24 网段,那么在这个网络中可以容纳的机器数是 192.168.1.2-255 共 254 多个可用的 IP,一般家庭的设备连接足够。当然能够带动这么多设备的路由器性能也需要足够好了。

而假如你的局域网中可预期将会有几千几万太设备那么必然 192.168.1.x 的网段是不能用的,必须用到

  • 172.16.0.0/12 可容纳 1048576 个地址
  • 10.0.0.0/8 可容纳 16777216 个地址

下面两个地址自然个人是用不这么多的。

reference


2020-04-04 network , linux , dhcp , ip

没有反思的哀悼聊胜于无

每次禁止娱乐都会让我想起《无限挑战》,最近在系统性了解韩国近代史后,再回来看《无限挑战》,2014 年发生震惊全韩国的世越号沉船事件后,整个韩国陷入巨大的悲痛,当然《无挑》也停播两周,但是两周后播出了长达一个月的《选择特辑》,我经常把他称之为选举特辑,因为 PD 就是用选举人制度让每一个 MC 都体验了一把总统候选人的角色。金 PD 对于这件事情没有直接的回击,反而用一种独特的视角去切入,悲剧既然发生了,我们有办法做到下一次不再犯错吗,有办法弥补当前的过失吗。金 PD 用自己的节目向世人宣告:”有“,那就是“选择”。 每一个人都有选择的权利,只有每一个人都参与到整个社会的运行中,才能阻止这样的事情再此发生。于是后面的事情似乎大多数中国人都比较清楚 —- 朴槿惠被弹劾,新的总统被选上任。当然每个国家都有其自身的问题,但要看整个国家的历史向着哪一边前进。 今天所有的娱乐节目停止,所有线上线下都在哀悼,可是我们哀悼什么呢?不幸染病的普通人?还是连名字都不能提的吹哨人?还是因为病毒而奋战在一线的医护工作者?对我们当然要哀悼,还要铭记。不仅要哀悼当下,还要哀悼这样的事情这已经发生了多少次。为什么每一次都去哀悼,然后再忘记,然后有发生悲剧,然后再哀悼吗?还有多少人还记得 SARS 的吹哨人?还有多少人还记得 SARS 感染的后遗症患者?还有多少人还记得 SARS 第一线的工作人员?说好的不要忘记他们呢?说好的会照顾他们呢?然而当历史车轮碾过的时候,这些曾经的哀悼就像是从来没有存在过。 如今我们要哀悼,我们当然要哀悼,我们不仅要哀悼不幸逝去的人,还有哀悼消失的文字,消失的声音。太多的文字还没有被世人所阅便从虚拟的二进制世界消失了,太多的声音还没被听见就被掐断了声带。于是我反而羡慕起世越号后韩国所保留下的史料,从文字,图像,声音,到画面,每一年都被拿到聚光灯下被审阅,即使已经过去 6 年的今天,依然还有人在为这件事情发声,2020 的奥斯卡大部分的媒体的目光都被《寄生虫》所吸引,但实际还有一部短片《In the Absence》获得了提名。6 年过去了,他们还记得。并且提醒我们这需要被记住。可我们谁还记得长江之上的”东方之星号客轮”的事故,这也是有 442 人死亡的大型事故啊,并且这件事情正好发生在世越号之后一年啊。

movie in the absence poster

我们有反思吗?哀悼真的有用吗?禁止娱乐就真的能让人记住这个事情吗?满屏的黑白真的能给留下的人一点心里安慰吗?有的时候反而通过娱乐 —- 综艺,歌曲,影视 —- 一遍一遍的告诫后来的人,我们不能犯下同样的错误才真的有用。

如果真的就这样哀悼过去了,我真的害怕很多年以后,如果被记住的只有“果断的封城”,“英明的决策”,那如果病毒再来一次,我怕我就可能是那个被历史车轮碾过的人了。


2020-04-04 covid-19 , sars , virus , movie , korea

IntelliJ IDEA vmoptions 设置

IntelliJ IDEA 运行在 JVM 上,JVM 有很多的选项和开关配置可以用来调整性能,也就是说,可以通过手动的调整这些 JVM 参数来优化 IntelliJ IDEA 的性能。这篇文章主要是总结一下我的学习过程。

打开 memory indicator

首先打开 Memory Indicator

memory indicator

可以在设置中设定:

memory indicator settings

可以看到普通使用 IntelliJ IDEA 大概就使用了 800M 左右的内存。

Edit VM Options

在菜单 Help | Edit Custom VM Options 中可以设置。

VM options

下载安装包后一定要把压缩包下的 README 读完,里面有详细的路径及配置说明。这里先给一个全部内容的预览,下面再一一解释。

-ea
-Xms2g
-Xmx2g
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-Dfile.encoding=UTF-8
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Dawt.useSystemAAFontSettings=lcd
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine

heap size

-Xms-Xmx 配置堆内存,也就是 IntelliJ 可以使用的内存。

  • -Xms 初始堆内存,调大该内存可以让启动速度更快,以省去分配内存的时间
  • -Xmx 最大堆内存,如果遇到 OutOfMemoryError 可以调大该数值,最大不要超过系统 1/4.

GC Algorithm

-XX:+UseConcMarkSweepGC 参数用来调整 GC 算法。使用该算法利用多个线程在后台进行 GC,以避免应用程序停止。

当分配超过 4GB 的堆内存时,可以尝试使用 -XX:+UseG1GC.

Other

-ea 选项开启 assertions。如果调试 IntelliJ 或者开发插件时可能用到,对 IntelliJ 性能并没有影响。

-server 虚拟机的解释执行模式。

-XX:SoftRefLRUPolicyMSPerMB=[value] 参数用来控制每 M 空间中 soft reference 保证存活的毫秒数。默认的时间是 1000,JetBrains 推荐 50。

-XX:ReservedCodeCacheSize=510m 设置编译器最大的 code cache,另外一个相关的 JVM 参数是 -XX:InitialCodeCacheSize JetBrains 推荐这里使用 240m. 1

-Dsun.io.useCanonCaches=[boolean] 该参数是否开启文件名及路径缓存,默认 java 会缓存文件名 30 秒 2,JetBrains 建议关闭。

-XX:+OmitStackTraceInFastThrow JetBrains 官方推荐的参数。

-XX:MaxJavaStackTraceDepth=-1 JVM 在实现 java.lang.Throwable.fillInStackTrace() 时把整个调用栈上的所有 Java 栈帧消息记录下来

-XX:+HeapDumpOnOutOfMemoryError 当发生 OutOfMemoryError 时 dump 堆内容。3

reference


2020-04-03 intellij , idea , jvm , java

每天学习一个命令:使用 rz sz 向服务器发送文件

搜索 rz sz 命令使用方式进来的,可以不用往下看了,直接学习 scp 或者 rsync 吧, rz sz 看了一下还是有很多限制的。

虽然它可以实现向服务器发送文件,或者接受服务器的文件,但是限制条件必须在 screen 中执行,另外如果要在 Tmux 中使用还需要特殊的 hack 1

使用

所以最基本的使用就是:

rz -be

2020-04-01 rz , sz , linux , server , scp , command

分析家里局域网 WiFI 瓶颈

目前我的情况是,家中有一个千兆主路由放在客厅接外面的宽带,而我自己的房间有一台比较老的 Netgear 3800 路由来无线桥接连接外面的主路由,因为我不想我的 3800 路由中的设备暴露到主路由的设置中,所以用了 OpenWrt 的桥接模式。但是随着我在 3800 这台路下接的设备增多,导致目前 3800 这台路由不堪重负,已经影响到了我日常 streaming 局域网 NAS 中的电影。所以最近想更换一下这台已经 8 年历史的 WNDR 3800 路由器。

首先我了解了一下,WNDR3800 标称的是 300Mbps 双频千兆路由器,WiFi 下 5GHz,理论传输速率应该有 37.5MB/s,但实际应该是达不到的,但即使只有一半的速率 10MB/s ,理论上串流局域网的视频应该是问题不大的,而现在的问题就出现在局域网中用 WiFi 连接的设备,理论上只能达到 4MB/s 的峰值速度。

网线比较老

首先细想了想理论上我的 WNDR3800 路由下面四个 LAN 口都是千兆网口,有线速度不应该那么差的,所以我先用我现有的几根网线连接了设备,但发现速度依然不够理想。

用 iperf 测试两台使用网线连接的设备,测试的速度大致只有在 30~45 Mbits/s 左右,换算成传输的速度除以 8,那就比较可怜了。

我就有点怀疑我的网线,可能是比较老的网线(这几根网线已经跟随我差不多快 6 年了,所以应该就是一个最高百兆的网线),所以立即下单了两根六类网线。

网线区别

如何识别五类网线,超五类网线?

  • 五类网线,会标注 「CAT5」字样,传输带宽为 100MHz,用于语音传输和最高传输速率为 100Mbps 的数据传输
  • 超五类网线:标注 「CAT5e」 字样,传输带宽可高达 1000Mb/s,但一般只应用在 100Mb/s 的网络中,只实现桌面交换机到计算机的连接,因为超五类非屏蔽网线要借助价格高昂的特殊设备的支持
  • 六类网线:标注 「CAT6」字样,一般指的都是非屏蔽网线,主要应用在千兆网络中,在传输性能上远远高于超五类网线标准

设备网卡

在怀疑完网线之后,就想是不是设备接口的限制,于是就从路由器开始排查。

路由器

确定是千兆网口

盒子

查了一下 T1 盒子的无线网卡:

  • 双频 WiFi,支持 ac,单天线,2.4G 连接速率 65Mbps,5G 连接速率 433 Mbps

而一查有线网卡,竟然是一个百兆网卡,怪不得比无线还慢。既然有线不能用,那就只能上无线了。

WIFI 带宽不够

首先盒子的无线网卡是支持 802.11 ac 协议的,理论上是没有跑满带宽的,那么就是无线路由器到了上限。300Mbps 是 WNDR3800 标称的传输速度,但是实际即使靠的最近也不大可能达到理论速度的。再者我的 WNDR3800 有线连着一台 NAS,一台 Proxmox 服务器,本来传输压力就有些大,所以我期望无线能达到理论的一半就已经很好了,但实际上我测试,用一台 WNDR3800 有线连接的设备开启 iperf -s,再用一台无线连接,iperf -c IP,测试的结果是 60 Mbits/s 左右。

然后我想起来我还有一台小米路由器 (Mi Wifi 3G),之前因为总是断线所以就收起来了,然后去官网 查了一下配置,发现配置要比我的 WNDR3800 好不少,并且用 Android 连接后可以达到 800Mpbs。

  • 处理器 MT7621A MIPS 双核 880MHz
  • ROM 128MB SLC Nand Flash
  • 内存 256MB DDR3-1200
  • 2.4G 2X2(支持 IEEE 802.11N 协议,最高速率可达 300Mbps)
  • 5G 2X2(支持 IEEE 802.11AC 协议,最高速率可达 867Mbps)
  • 外置全向高增益天线 4 根(2.4G 最大增益 5dBi 2 根 5G 最大增益 6dBi 2 根)
  • 1 个 USB 3.0 接口(DC output:5V/1A)
  • 1 个千兆 WAN 口,两个千兆 LAN 口,LAN 稍微少了点

miwifi 3g specs

所以现在就是要找一个比较稳定的固件了,官方的固件,无疑就是 OpenWrt 了。

IEEE 802.11 a/b/g/n/ac

Protocol

20MHz vs 40MHz 信道宽度

在 OpenWrt

  • 对于 2.4 G 和 20 MHz,最好的 channel band 是 1,6,11
  • 对于 2.4 G 和 40 MHz,最好的 channel band 是 3,11
  • 对于 5G 和 20 MHz, 如果设备都支持最好使用 40 MHz,或者如果路由设备支持可以使用混合模式
  • 对于 5G 和 40 MHz,任何少量信道的 channel 都可以。或者考虑让路由器自动选择最好的 Channel。

Further More

  • Android 上可以使用 WiFiAnalyzer 查看
  • 对于 Windows 可以使用 NetStumbler 来查看附近的网络。

reference


2020-03-31 router , bandwidth , wifi , network

电子书

最近文章

  • Obsidian 未来的笔记应用 看过我过去文章的人都知道在此之前我都使用 WizNote 来作为本地笔记应用,但是这两年在记笔记这件事情上出现了非常多的可能性,虽然我本人一直在关注着不同类型的笔记应用,从传统的 Evernote,OneNote 到 Notion 等等模块化的笔记应用,多多少少也尝试了一下,但是一直没有深入的去用,因为就我目前的需求,WizNote + 本地的 markdown + vim + git 基本就满足了,直到昨天晚上我在豆瓣上阅读了笔记类软件的双向链新浪潮 这篇文章,然后我发现原来我在记笔记的时候遇到的一些问题原来还有这样一种解决方式。
  • 在 Trello 中使用 Pomodoro 工作法 我的 Trello 中有这样一张卡片 —- 学习在 Trello 中使用 Pomodoro —- 已经很久了,这期间也看了一些《番茄工作法》的书,重要的是我开始重度依赖于 Trello 来作为我的任务管理以及时间管理工具。这期间也尝试用 Plus for Trello 来提高使用 Trello 的效率。当然也得到一些体验,但到现在我依然觉得有哪个地方不太对,我很多时候没有严格按照 Pomodoro 约定的 25-5 分钟来执行一些任务,而正是这些任务,可能耗费太长时间所以在我的 Trello 看板中想生根了一样,很久很久没有移动。虽然每天都想要移动一下,但终究没有结果。所以我想写这篇文章来回顾一下我的使用方式,以及想在回顾的过程中发现存在的问题。
  • 使用 Prometheus 和 Grafana 监控 Proxmox 服务器 虽然 Proxmox 自身已经有一个比较简单的系统监控,但对于我来说每一次都需要登录到其后台才能看到,而且它自身的监控视图是没有报警策略的。所以我想着这两天反正在学习 Prometheus 这不是正好是一个不错的契机来在具体环境中使用一下,所以才有了这篇文章。Prometheus 和 Proxmox 相关的内容可以参考之前的文章。
  • Proxmox Web 界面停止工作解决 今天想把 Proxmox 的静态地址改一下的,但是重启后发现 Web UI 竟然不工作了。SSH 登录后台 netstat -tupln 看 8006 端口也没有起来。这一下子突然不知所措,只能一点点 Google,不过幸好问题不算太大。
  • 各个职业的誓言 最近因为《太阳的后裔》中姜暮烟的医生宣誓再一次把医生的誓言放到了观众面前,而之前在《浪漫医生金师傅》、《라이프》中都或多或少的提到医术的誓言。我脑海突然一下子浮现了韩剧中各色职业的誓言,编剧都把他们融合到了台词,或者主人公的性格中。《Live》中的警察誓言,《秘密森林》、《检察官内传》中检察官的誓言,到《辅佐官》中议员的誓言。韩剧用一种理想化的方式来表现这些公职角色的形象,而最近《You quiz on the block》中的法医,警察,犯罪心理侧写师则是实实在在的于现实中履行自己的义务。