2025-10-04 00:00:00
NodePass 是一个开源网络隧道工具,其基于 Go 语言开发,目标是让两台机器之间的通信变得简单又安全。想象一下,您有一台内网 Web 服务器,想让远在千里之外同事访问,NodePass 就能搭一座隐形的桥,把数据安全送过去。
它的工作方式非常巧妙,用一个未加密 TCP 通道来传递信号,然后通过另一个支持加密的数据通道把实际内容传过去。
您可以把它跑在服务器模式,接受外来连接,也可跑客户端模式,去连别人的服务器。
整个过程配置简单,资源占用较低,还支持 Docker 部署。
作为 GitHub 上开源项目,NodePass 用 MIT 许可证,代码全部公开,社区也挺活跃。
项目官网地址:
开源免费:代码全在 Github 上,透明并且省钱。
简单易用:不用编写配置文件,命令行一敲就能跑。
轻量省心:从树莓派到服务器,在哪里都能跑。
功能硬核:支持 TCP 以及 UDP,多种加密。
NodePass 提供 Docker 镜像,可以使用下面命令部署,以服务器模式运行:
1 |
docker run -d --name nodepass-server -p 10101:10101 -p 8080:8080 \ |
以客户端模式运行:
1 |
docker run -d --name nodepass-client \ |
2025-09-28 00:00:00
在计算机网络的学习与研究领域,Mininet 是款极具价值的工具。它就像是一个迷您网络世界的构建者,为我们提供便捷的网络实验环境。本文将带您深入了解 Mininet 魅力所在,并手把手教您安装与使用它。
Mininet 是一个用于创建虚拟化网络环境的平台。
它能够在一台计算机上快速构建出包含多个交换机、主机、路由器等网络设备拓扑结构。
对于网络研究人员、开发者以及网络课程的学生来说,Mininet 是一个理想实验平台。
通过它可以模拟大规模网络环境,进行各种网络协议研究、网络应用的开发测试以及网络教学演示等。
例如,如果您想研究一种新的网络路由算法,借助 Mininet 就可以轻松搭建出实验所需的网络场景,无需搭建实体网络设备,大大节省了成本和时间。
它的核心优势在于轻量级以及灵活性。Mininet 是基于 Linux 的用户模式 Linux 网络命名空间技术实现的,这使得它能很方便地在各种 Linux 系统上运行。
而且,Mininet 的网络拓扑结构可以灵活定制,无论是简单的链式拓扑、树形拓扑,还是复杂的自定义拓扑,都能通过简单的配置文件或命令行参数来实现。
同时,Mininet 还支持多种网络仿真工具集成,例如 Wireshark 等,方便针对网络流量进行分析。
安装 Mininet 的过程相对简便,但需要确保您的系统满足一定的前提条件。以下是基于 Ubuntu 系统安装步骤。
首先,需要更新系统的软件包列表。在终端输入命令 sudo apt update
,让系统获取最新软件包信息。
然后安装必要的依赖库。可通过运行 sudo apt -y install build-essential autoconf automake libtool pkg-config gawk git python python-pip python-dev tcpdump wireshark sqlite3 curl bzip2 openvswitch-datapath-dkms openvswitch-switch openvswitch-common
命令,可一次性安装这些依赖,它们是 Mininet 正常运行和后续功能扩展的基础。
接下来就是安装 Mininet 本身。可从 Mininet 的官方仓库克隆代码,可使用命令 git clone git://github.com/mininet/mininet
,然后进入 Mininet 目录中,再运行 mininet/util/install.sh -a
命令进行安装。这个安装脚本会自动完成编译和安装过程,在安装完成后,系统会提示安装成功的相关信息。
安装 Mininet 后,就可以开始体验它强大的功能了。最基本的使用方式是通过命令行来创建和操作网络拓扑。
创建网络拓扑。Mininet 提供了简单的命令行参数来快速创建常见的网络拓扑。
如运行命令 sudo mn
,就会自动创建一个包含两个主机、一个交换机和一个控制器的简单网络拓扑。
主机间通过交换机进行通信,控制器用于管理交换机行为。
如果想要创建更复杂的拓扑,可使用--topo
参数。如使用命令 sudo mn --topo linear,4
,就会创建四个主机呈线性连接的拓扑,主机 1 连接到交换机 1,交换机 1 连接到主机 2,依此类推,形成一条链式结构。
操作网络设备。创建好网络拓扑后,Mininet 会进入交互式命令行界面。在这个界面中,可对网络设备进行各种操作。
例如,可以通过 h1
命令进入主机 1 的命令行界面,在主机 1 上执行网络相关的命令,如 ping h2
来测试主机 1 和主机 2 之间的连通性。如果网络配置正确,应该可以看到主机 1 向主机 2 发送 ICMP 请求并收到回复的信息,这就表明网络通信是正常的。
对于交换机可以使用 ovs-vsctl
命令来查看和配置交换机的端口信息、流表等等。例如,ovs-vsctl show
命令可显示交换机的详细信息,包括交换机的名称、连接主机、端口号等。
可自定义脚本。当然,Mininet 也支持使用 Python 脚本来自定义更复杂的网络行为和实验场景。您可以编写自己的 Python 脚本来定义网络拓扑、配置网络设备参数及实现特定的网络功能。
例如,您可以通过继承 Mininet 的拓扑类,创建个包含多个子网络、不同带宽和延迟设置的复杂拓扑,并在脚本中对交换机的流表进行编程,实现特定流量转发策略,例如负载均衡、流量过滤等等。这种方式为用户提供了极大的自由度,能够满足各种个性化的网络实验需求。
总之,Mininet 可作为一款网络实验工具,凭借简单易用、功能强大特点,在网络领域有着广泛的应用。
无论是初学者入门网络知识,还是专业研究人员进行深度网络研究,Mininet 都是一个不可或缺的得力助手。通过掌握 Mininet 安装与使用方法,就可以开启一段精彩的网络实验之旅,探索网络世界无限奥秘。
2025-09-22 00:00:00
为了更好的执行 Python 脚本,杜老师习惯使用 Ubuntu 系统,不过在安装 Python 库时经常报错。收集了安装 Python 库的报错信息,并整理了解决办法,供需要的小伙伴们参考。
这里以上一篇《使用 Python 脚本实现图片相似度匹配》文中代码为例,首次执行时的报错信息如下:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ python3 1.py |
根据报错信息,提醒找不到 imagehash
模块,使用 pip3
命令安装需要的模块,结果又出现了错误信息。这个信息表明正在尝试在一个由操作系统管理的 Python 环境中直接安装 Python 相关的包,为了保证系统 Python 环境的稳定性和安全性而采取限制措施:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ pip3 install imagehash |
解决的方法有很多,这里推荐使用虚拟环境。因为使用虚拟环境可以避免直接修改系统的 Python 环境,同时方便管理依赖。按照提示创建一个虚拟环境,使用 python3 -m venv myenv
来创建虚拟环境,使用 source myenv/bin/activate
激活虚拟环境:
1 |
penn@penn-VMware-Virtual-Platform:~/图片$ python3 -m venv myenv |
在激活虚拟环境后,使用以下命令安装所需的包。安装完成后运行命令 deactivate
,退出虚拟环境:
1 |
(myenv) penn@penn-VMware-Virtual-Platform:~/图片$ pip install imagehash |
2025-09-16 00:00:00
随着相机像素越来越大,图片体积也变大了。在图片处理中,较大的文件体积会影响性能,因此杜老师会先生成缩略图,筛选完成后再通过 Python 脚本实现图片相似度匹配。这里是一个简单的示例,供需要的小伙伴们参考。
以下是个基于 Python 的脚本,使用 PIL
以及 imagehash
库来实现。
遍历目录 A 中所有图片。
在目录 B 中查找相似的图片「通过感知哈希算法判断」
如找到匹配项,则将图片复制到目录 C,并以目录 A 图片的名字命名。
1 |
pip install pillow imagehash |
注意:在运行脚本前,需安装所需的 Python 库。
1 |
import os |
注意:将 dir_a
, dir_b
和 dir_c
替换为实际路径;threshold
控制图像相似度阈值,可以根据需要调整;支持多种常见格式图片文件;使用 imagehash.phash
进行感知哈希的比较,适合用于识别视觉上接近的图片。
1 |
(myenv) penn@penn-VMware-Virtual-Platform:~/图片$ python3 1.py |
注意:脚本运行过程可能会有错误提示,需要根据提示进行修复。
2025-09-10 00:00:00
北京这边天气不错,特别适合骑行。杜老师拿出了压箱底的全景相机,打算录制一段沿途景色,结果压制出的文件体积很大。之前分享过通过 FFmpeg 来压缩视频的方法,这次整理了更多的方法,供需要的小伙伴们参考!
如果需要了解 FFmpeg 的安装方法,可以浏览《如何使用 FFmpeg 来压缩视频》一文,里面有详细介绍如何在 Linux 系统安装 FFmpeg。
如果需要在 Windows 系统上安装 FFmpeg,可以直接至官方下载安装包「或在评论区中留言」
原理:CRF 是 H.264 编码器中用于控制视频质量的一个参数,数值越小画质越高,体积越大,一般取值范围为 18-28,默认值 23,18 是视觉无损。
命令示例:ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset veryslow -c:a copy output.mp4
此命令指定了视频编码器为 libx264
,设置 CRF 的参数为 18
,且使用 veryslow
预设以进一步提高编码质量,音频部分直接复制。
原理:在不改变媒体编码的情况下,改变媒体封装格式,通常转换后的大小基本相同,一般不会出现过大差距,如果大小差距过大,需要检查媒体文件的完整性。
命令示例:ffmpeg -i input.mp4 -codec copy output.mp4
可直接更改封装格式,无需重新编码。
原理:降低视频分辨率可显著减小文件体积,对于对视频画质要求不是特别高,或需要在低分辨率设备上播放的场景比较适用。
命令示例:ffmpeg -i input.mp4 -vf scale=1280:720 -c:a copy output.mp4
该命令会将视频的分辨率调整为 1280×720 像素,音频的部分不进行重新编码,从而实现压缩体积目的。
原理:降低视频比特率可以在保持原始分辨率的同时减小文件体积,适当减少比特率能够有效的减少文件大小。
命令示例:ffmpeg -i input.mp4 -b:v 2500k -c:a copy output.mp4
此命令将视频比特率设置为 2500kbps,音频流则直接复制。
原理:HEVC 是一种更高效的视频编码格式,在同等画质下,相较于 H.264 编码,可使文件体积更小。
命令示例:ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -c:a aac -b:a 128k output.mp4
其中-c:v libx265
指定输出的视频编码器为 libx265
,-crf 28
指定 CRF 参数为 28
,-preset medium
平衡视频质量和压缩速度,-c:a aac -b:a 128k
表示音频部分使用 AAC 编码,并设置了音频码率为 128kbps。
2025-09-04 00:00:00
刚从合肥返京,就收到了天津出差任务。虽然京津距离不远,但杜老师平时工作较忙,周末一般都在家睡懒觉,所以也是想着趁此机会游玩一下!分享给未来过天津的小伙伴,大家来云旅游~
天津是中国北方的一座历史文化名城,同样是直辖市之一,有着丰富的历史底蕴和独特城市风貌。
天津建筑风格多样,中西合璧,例如五大道保存着众多西式建筑,意大利风情街则充满了浓郁异国情调。
此外,天津还有着众多的名胜古迹,例如盘山、独乐寺等等自然与人文景观,展现了其深厚文化底蕴。
天津的旅游特色主要体现在其独特的文化韵味和美食文化上,是体验津味文化与北方风情绝佳之地。
天津美食文化源远流长,如狗不理包子、煎饼果子等等传统小吃闻名全国,散发着独特的魅力。
此外,天津的相声文化也独具特色,古文化街、泥人张彩塑等更是让人感受到天津的艺术之美。
天津的民国时代的建筑较多,也是别有一番风味:
张学良故居的餐厅:
张学良和赵四小姐卧室:
顶层是个舞厅,本来拍了歌厅整体,结果有个大爷入镜了,所以只有观众席给大家看看:
这叫聚丰当铺,可以清楚的观察到民国时代当铺格局:
这个是鹤竹堂药铺,据说是曾给慈禧光绪看病的御医所开:
皇宫舞厅,为什么杜老师想到依萍:
天津市特别警察局,杜老师也想拍亮堂点的,这里边就是暗光线,可能是想震慑罪犯:
瑞蚨祥成衣店,里边格局也很大气漂亮,就是衣服看着有一点少,毕竟都叫成衣店了,怎么衣服比杜老师的都要少:
成衣店顾客等待位,本来不想放这张的,但是这个窗和格局吸引了杜老师,所以还是放上来了:
这个是鼎章照相馆,杜老师除了会说漂亮外,不会说别的了,原谅杜老师言辞的匮乏:
民国时代诊所,不过感觉杜老师小时候诊所也长这个样子,可能杜老师也挺老的了:
这个是商会俱乐部,有很多张,但里边的光线不是很好,只有这张看起来还是不错的:
国父孙中山办公室,右上角露出来的点点就是他照片,不过相机没有全部收录进去,右侧还有一个很好看的壁炉,哈哈:
头一次看见民国的封条,必须拍照一张,杜老师一直以为封条只要有个封字就可以,没想到要写这么多东西:
这个是春和大戏院,张学良故居进门开始可以玩剧本杀的,好多人在走来走去的找线索,杜老师没有好意思参与进去,不过感觉很好玩的,大家有兴趣的可以参观的同时玩这个游戏。这个戏院里还有相声表演的,不过是固定的时间,杜老师忙着赶下一个参观地,所以并没有听相声,可惜:
最后用民国画报小广告来做结尾,张学良故居以及范竹斋故居之旅就结束啦:
全都是人,大家都在门口想拍出满意的照片,杜老师就只匆匆闪过了,毕竟杜老师没有高超的运镜技术:
这个是最后的晚餐,教堂里也好多的人,想找出一张没人的照片实在是太难了:
感觉这个吊灯和玻璃都漂亮的很,但是杜老师对宗教理解不深,不知道这个里边画面的含义,要是有解说就好了:
这个好像就是主教传教的地方吧,用隔离带围着,杜老师进不去,不过感觉就很神圣:
据说是溥仪和妃子们被从故宫赶出来之后住的地方,感觉就是个小洋楼:
溥仪和妃子们的小餐厅:
这个是溥仪妃子文绣的卧室:
这个是皇后婉容的卧室,感觉他们的床都好小啊,杜老师睡在上边都怕掉下来:
这个是溥仪的书房:
张园里也有剧本杀,每个时间段也有节目表演的,但是杜老师依然没赶上,时间太紧张了,下次一定要试试看:
最后用杜老师们伟大领袖毛主席给这段旅程做结尾,这个展区是爸爸妈妈他们那个年代结婚的布景,感觉爸爸妈妈他们来看肯定很有感触: