作者归档:francis

辛丑牛年新春快乐

今天已经正月初七了,恰逢雨水节气,给大家拜个晚年。

回顾前几年的寒假:2018年从科大回来的寒假被老师喊到所里工作了两个礼拜,寒假既不完整也不开心;2019年正常放了20天,但是前前后后都在干活感觉很累,趁着假期刷了jojo;2020年疫情爆发导致了一个超长的假期。今年2月5号回来,预定了25号的票,也整整是20天假期。

春走亲访友,同辈中催婚压力已经转移到了我的头上,然而尚可用还在念书进行辩解。但是博士研究生阶段既像是念书,却又不完全是。偷偷懒划划水,假期竟然还能维持在20天左右;但是工资微薄也远离业界,仿佛打了一份注定会失业的零工。表哥们都已结婚,结婚之后就是一个新的家庭,小孩也快要满周岁,更多的精力也放在了下一代身上。除了催婚之外,聚餐的话题也已经慢慢从我辈身上转移,大家都称赞日子越过越好,买什么车,买哪里的房,赚多少钱。

前两天下载了QQ游戏,从斗地主打到麻将,还玩了八球斯诺克,一条一条的刷抖音,用毫无意义的事情去killing time,感到难受,只能回避。和假期开始之初预计的学习计划相差甚远,唯一把邸志雄老师的MOOC草草的过了一遍,然而不做练习,最后啥也没学会,过不了多久就忘了。想着手做细致的东西,又怕大框架大方向错了;想去看些考公、招聘信息,又觉得没有落到实处,虚无缥缈。心理健康遇到了强烈的问题。

年轻时候的十年和年老时候的十年一样吗?往回数十年和未来十年一样吗?看着饱受病痛的老人,感觉健康和青春尤为宝贵。

最后还是要祝大家新春快乐,开工大吉!

使用密钥登陆ssh

生成密钥对

在远程服务器上运行 ssh-keygen

在/root/.ssh 文件夹下生成了两个文件,公钥id_rsa.pub和私钥id_rsa

部署公钥

cd .ssh/
cat id_rsa.pub >> authorized_keys
chmod 400 authorized_keys

vim /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes

并确保当前配置允许root用户登陆

PermitRootLogin yes

分发私钥

使用scp命令从远程vps上下载公钥文件到window上

scp [-P port] user_name@vps_IP:[file_path_for_id_rsa] [local_path]

即下载 .ssh 文件夹下的 id_rsa文件

使用xshell中,重新设置属性,用户身份验证选择public key,导入id_rsa文件

或mobaXterm中的 “高级SSH设置” 中 导入private key,即id_rsa文件

使用密钥登陆成功后,禁用ssh的密码登录

vim /etc/ssh/sshd_config
修改其中 PasswordAuthentication no
重启sshd服务 service sshd restart 或 systemctl restart sshd.service

参考

https://p3terx.com/archives/configure-ssh-keyfree-login-for-vps.html

锁相放大器(Lock-In Amplifier)杂谈

前言

很久没有更新 科研笔记 这个专栏,最近在一篇 Nature Communications 的实验方法上读到了使用锁相测试噪声,仿佛突然打开了思路。锁相放大器(lock-in amplifier)这个常见而强大的仪器,配合合适的外围电路实现许多实用的测量。

去科大代培前的那个暑假(2017-08),老师就让我们学习使用锁相,虽然我从没见过这个东西,但是通过阅读手册,大概了解了锁相的原理和基本使用方法,并曾在组会上做PPT向大家介绍。在后来的实验中,成功的使用了这个设备,来采集微弱的光电信号。

这篇文章不想按部就班的、像教科书般的讲述锁相放大器的前世今生,只是寻章摘句的随心记录一下自己在使用中的心得体会。

相关概念

在本科学习中,总有许多“高深莫测”的概念,例如:

  1. 通信原理中又是根据什么分别将信号分为 基带传输频带传输 呢?
  2. 在电子电路中,有一种利用负反馈,实现频率和相位同步的电路:锁相环(Phase-locked loops,PLL)
  3. 傅里叶变换(Fourier transform),这个世界上最美的公式之一,沟通了时域和频域的信号。

一直苦于将抽象的概念形象化,但是在锁相放大器的实验中能够很好的实现对于这些概念的理解。

基本原理

Lock-in amplifiers modulate a signal, then demodulate it before applying a narrow-band filter to reduce noise.

一开始,我对于锁相的理解是一个信号接收器,通过解调将信号还原出来。模拟锁相的本质一个模拟乘法器,将调制的信号搬移到低频,再接入低通滤波器,把交流分量变成相应的直流信号输出。

Perform cross-spectrum analysis by vector summing one complex FFT output with the complex conjugate of another identical channel. If the additive noise is uncorrelated in both analog channels, then the noise will cancel with averaging. Given enough averages, this technique can enhance the noise floor by 20 dB or more.

现在大多是数字锁相,核心是DSP,所以也可以看作对时域信号进行傅里叶变换,由于是相敏检测,所以可以获得对应参考频率的分量。

后来,从黑盒的观念出发,锁相放大器实现了一个高Q的滤波器,将同频率的微弱信号提取出来,并且强烈的抑制其他频率的噪声。 但是同频率的噪声实际上是被叠加在检出信号中的。

在思考如果使用示波器采集一段信号,再做使用内置的FFT方法,是不是也能达到相同的效果呢?那么频谱仪呢?

原理上应该是相同的,但是性能差别出现在外围电路的定制优化,包括滤波器、输入输出等。

所以实际上,测试中我们需要关注始终是在时域或者频域的信号,无论是那种仪器。

实际操作

讲完上面一些理论化的感悟,下面介绍实验中的一些个小经验:

时间常数(Time Constant)的设置和后端的低通滤波器有关,通常时间常数越大,信号变化越缓慢;时间常数越小,信号变化越灵敏。也决定了噪声测量时的等效噪声带宽。

动态存储(Dynamic Reserve)的设置决定了系统对噪声的容忍程度,因为实操中可能信号的波动远大于微弱的调制信号幅度。例如Full scale 为1μV,60dB的reserve意味着可以在输入端容忍1mV的噪声。

数字锁相实际上并没有DC amplifer,对于固定reserve的模拟锁相,经过运算后的的输出信号可能很小,需要通过放大还原到Full scale的范围内。

当然最方便的是使用三个auto 功能,包括PhaseGainReserve

常用的输出包括XYRθ,读数测需要乘以一个系数(π/sqrt(2)≈2.2)。

参考文献

  1. Difference between a digital lock-in amplifier and a FFT when extracting phase of a signal? – stackexchange
  2. Principles of Lock-in Detection – Zurich Instruments
  3. Digital Lock-In Amplifiers: Theory and Design
  4. 微弱信号检测教学实验讲义 – SYSU
  5. 微弱信号检测技术 高晋占 第二版
  6. Manual – MODEL SR830 DSP Lock-In Amplifier

《怪诞行为学》——Predictably Irrational

前段时间碰巧在B站看智能路障的视频,提到了这本书,所以下载下来,擦一擦落灰地kindle,用每晚睡前地时间将这本书读完了。

部分kindle笔记:

我们的非理性行为既不是任意所致、又不是毫无目的,它有规律可循而且可以预测。

多数情况下,一旦拥有了某物,它在我们心目中就更值钱了。

为了眼前的满足而放弃长远的目标,这就是拖沓。

一旦社会规范与市场规范发生碰撞,社会规范就会退出。换言之,社会规范很难重建。

那就是要让人们渴望做一件事,只需使做这件事的事机会难以获得即可。

煮蛋器悖论

在旧宿舍,买了一个没有定时功能的煮蛋器,但是由于经常起床迟,起床后再煮蛋,用起来很不方便。新宿舍后,又买了一个带有定时功能的煮蛋器,希望能够提前在晚上放好水和蛋,并且设好定时在起床的时候煮好。

但是奇怪的是,在新宿舍每每起床后,再去准备煮蛋的东西也都来得及,并不会很不方便。原因是因为旧宿舍,舍友作息不同,回来的有早有晚,经常晚睡晚起。但是在新宿舍是单人间,作息相对规律,而且宿舍有独卫离自来水也更近了。

在外部环境变化时,采取原定的优化策略,可能并不能起到优化效果,即煮蛋器悖论。

参考:

百度百科-电梯效应

记梦(其二)

今晨亦复梦,梦中梦醒。口内察异物,血流不止,舌舐之,右下两磨牙已松,复舐之,然尽落。其一完好,而另一裂三瓣,以手探查,其因乃智齿侧顶冒出所致。牙落无痛,亦呼快哉。复梦醒,我用手摸摸牙都还在。

记梦

做了一个未来变态学校的梦,那里的里人通常反智,为了维稳表面平和,但是一旦有人接触到真正的知识,就会接到不明来电,意识瞬间穿越回到过去,并失去这部分记忆。在梦里我做了一个梦,意识到这并不简单,尝试突破系统的bug,最后在梦的指引中,来到了现实中对应的地方,没有接任何电话,爬上了学校里教学楼最高处的白色调像,找到了中国历代高考考卷和五年高考三年模拟

yum 升级遇到的内存不足问题

一、不明killed

安装完Fail2ban,比较耗内存,这个VPS只有512M,还运行了Trojan,wordpress和frp

运行 yum check-update 时遇到了killed的问题

Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。

参考 Linux进程被杀掉(OOM killer),查看系统日志

grep "Out of memory" /var/log/messages

二、yum修复

参考 CentOS: how to fix error: BDB2053 Freeing read locks for locker

三、为Linux 增加swap空间

参考

  1. Vultr VPS增加SWAP交换分区解决内存不足问题
  2. VPS添加Swap交换分区解决虚拟内存不足的问题

遭遇到了SSH暴力破解攻击

今天下午,打开博客的时候很卡,页面提示数据库错误或者服务器负载过高。

打开VPS后台,发现CPU和磁盘负载很高。

然后使用Xshell登录查看,提示:

Last failed login: Fri Dec 11 23:14:56 CST 2020 from 221.131.165.85 on ssh:notty
There were 26 failed login attempts since the last successful login.

意识到可能遭到攻击,查看ssh登录日志

cat /var/log/secure |more

第一步,先使用封IP的方法,将可疑的IP添加到 /etc/hosts.deny 中

第二步,安装 Fail2ban 辅助封IP。

yum install epel-release 
yum install fail2ban -y
# 安装fail2ban 完成后
systemctl enable fail2ban # 设置fail2ban开机启动
systemctl start fail2ban # 启动fail2ban
systemctl status fail2ban # 查看fail2ban的运行状态
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
vim /etc/fail2ban/jail.local
[sshd]
enabled = true
filter = sshd
action = iptables[name=sshd,port=22,protocol=tcp]
maxretry = 3
findtime = 60
bantime = 7200
logpath = /var/log/secure

安装和配置完成后,使用命令查看,一会儿不到一个小时的时间,又被尝试了这么多次,还有这么多不同的IP,是被谁盯上了吗?

>> fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 10
| |- Total failed: 157
| - Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd - Actions
|- Currently banned: 12
|- Total banned: 12
`- Banned IP list: 112.85.42.194 40.124.5.76 46.101.164.33 117.50.36.137 221.181.185.19 119.28.178.61 222.187.232.73 221.131.165.124 218.92.0.223 221.181.185.200 221.181.185.199 190.171.133.10

今天时间比较紧,当初也没有想到被经常SSH暴力破解攻击的问题,从根源上还是应该更换ssh端口,关闭账号密码登录等来实现更安全的ssh。

参考

  1. Linux入*侵分析(二)分析SSH登录日志
  2. Linux VPS禁止某个IP访问
  3. CentOS安装Fail2ban之小白攻略
  4. 自动IP拦截工具fail2ban使用教程