分类目录归档:云乞讨

OpenEuler 22.03 SP4网络,双链路主备配置 2024-08-19

前缀、文档修改记录

20240819 初始化编辑此文章,完稿

章节1、需求描述

项目里,有台主机必须安装国产化系统openeuler 22.03 SP4 版本,为了稳定,配置网络为双网卡的主备。

注: 官方说,这个版本,只能支持到主备模式,截至本文时间2024-08-19,暂不支持动态LACP的端口聚合。

章节2、操作步骤

2.1、创建bond接口

在操作系统内,使用nmcli命令创建bond接口,并设置其管辖的物理网卡。‌bond接口目前仅支持mode=active-backup(‌主备模式)‌。‌

假设2个网口的名称分别为 enp3s0 enp4s0

root@SERVER:~# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup

root@SERVER:~# nmcli con add type bond-slave ifname enp3s0 master bond0

root@SERVER:~# nmcli con add type bond-slave ifname enp4s0 master bond0

root@SERVER:~# mv /etc/sysconfig/network-scripts/ifcfg-enp3s0 /etc/sysconfig/network-scripts/bak-ifcfg-enp3s0-202408  

root@SERVER:~# mv /etc/sysconfig/network-scripts/ifcfg-enp4s0   /etc/sysconfig/network-scripts/bak-ifcfg-enp4s0-202408

2.2、修改配置文件,设置IP地址信息

手动修改或自动生成配置文件 /etc/sysconfig/network-scripts/ifcfg-bond ,‌设置BOOTPROTO=none,‌以及指定IP地址(IPADDR)、‌子网掩码(PREFIX=24)、‌网关(GATEWAY)和DNS服务器(DNS1= DNS2=)。‌

BOOTPROTO=none
IPADDR=192.168.10.100    // 自定义IP地址
PREFIX=24    // 自定义掩码长度
GATEWAY=192.168.10.254    // 自定义网关地址
DNS1=192.168.10.254    // 自定义DNS1地址
DNS2=192.168.10.253    // 自定义DNS2地址

2.3、重启网络服务和激活bond

使用 shutdown -r now / reboot now重启一次操作系统(推荐)

使用systemctl restart NetworkManager重启网络管理服务以应用新的配置。‌
使用nmcli con up bond0激活bond接口。‌
使用nmcli device status检查网卡的状态,‌确保bond接口和其他相关网卡都处于活动状态。‌

2.4、配置上联的接入交换机

上联的接入交换机, 接入模式,设置一个默认的端口VLAN。

参考链接 https://docs.openeuler.org/en/docs/22.03_LTS_SP3/docs/Administration/configuring-the-network.html

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

服务器到交换机的nic-teeaming/bond配置 2024-08-06

前缀、文档修改记录

20240806 初始化编辑此文章,完稿

章节1、需求描述

服务器考虑到单链路故障的可能性,一般需要配置为双链路的接入。在实际商用层面,一般需要配置2个同等速率的网口或者电口,因成本因素及部分生产环境的历史因素,目前市面上,设备使用居多的为 千兆电口或者万兆的光口。

章节2、连线

服务器设备,通过2个链路上联到2台堆叠的接入交换机。

章节3、配置

服务器01如果是Windows系统,特别是Windows Server 2012 R2后的版本,可以使用Windows系统自带的NIC Teeaming功能,常用可选模式为 主备、动态链路聚合(推荐,如果交换机支持),如果Windows系统版本较旧,一般看网卡厂家是否带该版本系统的高级特性的驱动包,部分intel网卡是能支持旧系统的。

服务器01如果是CentOS/Ubuntu等Linux系统,常用可选模式为 主备、动态链路聚合(推荐,如果交换机支持)。

章节4、常见配置1则(主机CentOS双口聚合动态LACP,交换机双口端口聚合LACP动态)

Linux网卡的bond配置配置其实比较简单,就是建立一个bond组,下管辖2个网口即可

交换机上,起端口组,模式动态链路聚合,ACCESS模式,默认一个业务VLAN。

章节5、模式 mode

  • balance-rr or 0 :: Round-robin policy: Transmit packets in sequential order from the first available slave through the last. This mode provides load balancing and fault tolerance.
  • active-backup or 1 ::Active-backup policy: Only one slave in the bond is active. A different slave becomes active if, and only if, the active slave fails. The bond’s MAC address is externally visible on only one port (network adapter) to avoid confusing the switch. In bonding version 2.6.2 or later, when a failover occurs in active-backup mode, bonding will issue one or more gratuitous ARPs on the newly active slave. One gratutious ARP is issued for the bonding master interface and each VLAN interfaces configured above it, provided that the interface has at least one IP address configured.
    Gratuitous ARPs issued for VLAN interfaces are tagged with the appropriate VLAN id. This mode provides fault tolerance. The primary option, documented below, affects the behavior of this mode.
  • balance-xor or 2 ::XOR policy: Transmit based on the selected transmit hash policy. The default policy is a simple Alternate transmit policies may be selected via the xmit_hash_policy option. This mode provides load balancing and fault tolerance.
  • broadcast or 3 ::Broadcast policy: transmits everything on all slave interfaces. This mode provides fault tolerance.
  • 802.3ad or 4 ::IEEE 802.3ad Dynamic link aggregation. Creates aggregation groups that share the same speed and duplex settings. Utilizes all slaves in the active aggregator according to the 802.3ad specification.
    Slave selection for outgoing traffic is done according to the transmit hash policy, which may be changed from the default simple XOR policy via the xmit_hash_policy option, documented below. Note that not all transmit policies may be 802.3ad compliant, particularly in regards to the packet mis-ordering requirements of section 43.2.4 of the 802.3ad standard. Differing peer implementations will have varying tolerances for noncompliance.
    Prerequisites:
    Ethtool support in the base drivers for retrieving the speed and duplex of each slave.
    A switch that supports IEEE 802.3ad Dynamic link aggregation.
    Most switches will require some type of configuration to enable 802.3ad mode.
  • balance-tlb or 5 ::Adaptive transmit load balancing: channel bonding that does not require any special switch support. The outgoing traffic is distributed according to the current load (computed relative to the speed) on each slave. Incoming traffic is received by the current slave. If the receiving slave fails, another slave takes over the MAC address of the failed receiving slave. Prerequisite: Ethtool support in the base drivers for retrieving the speed of each slave.
  • balance-alb or 6 ::Adaptive load balancing: includes balance-tlb plus receive load balancing (rlb) for IPV4 traffic, and does not require any special switch support. The receive load balancing is achieved by ARP negotiation. The bonding driver intercepts the ARP Replies sent by the local system on their way out and overwrites the source hardware address with the unique hardware address of one of the slaves in the bond such that different peers use different hardware addresses for the server. Receive traffic from connections created by the server is also balanced. When the local system sends an ARP Request the bonding driver copies and saves the peer’s IP information from the ARP packet.
    When the ARP Reply arrives from the peer, its hardware address is retrieved and the bonding driver initiates an ARP reply to this peer assigning it to one of the slaves in the bond. A problematic outcome of using ARP negotiation for balancing is that each time that an ARP request is broadcast it uses the hardware address of the bond. Hence, peers learn the hardware address of the bond and the balancing of receive traffic collapses to the current slave. This is handled by sending updates (ARP Replies) to all the peers with their individually assigned hardware address such that the traffic is redistributed. Receive traffic is also redistributed when a new slave is added to the bond and when an inactive slave is re-activated. The receive load is distributed sequentially (round robin) among the group of highest speed slaves in the bond.
    When a link is reconnected or a new slave joins the bond the receive traffic is redistributed among all active slaves in the bond by initiating ARP Replies with the selected mac address to each of the clients. The updelay parameter (detailed below) must be set to a value equal or greater than the switch’s forwarding delay so that the ARP Replies sent to the peers will not be blocked by the switch. Prerequisites: Ethtool support in the base drivers for retrieving the speed of each slave. Base driver support for setting the hardware address of a device while it is open. This is required so that there will always be one slave in the team using the bond hardware address (the curr_active_slave) while having a unique hardware address for each slave in the bond. If the curr_active_slave fails its hardware address is swapped with the new curr_active_slave that was chosen.

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

图形化,安卓投屏工具Escrcpy 2024-06-02

前缀、文档修改记录

20240602 初始化编辑此文章,完稿

章节1、需求描述

对于很多普通人而言,安卓的投屏工具,需要图形化的,简单易用的。

https://dasmz.com/?p=823 我这篇博客中,介绍了scrcpy这款高效稳定的开源安卓投屏工具,但是,它是运行于命令行的,对很多普通用户而言,有一定的上手难度。

今天介绍的就是基于scrcpy的一款图形工具,名字叫 Escrcpy,其中E表示 Electron 驱动。

项目地址:https://github.com/viarotel-org/escrcpy

官方中文说明:https://github.com/viarotel-org/escrcpy/blob/main/README-CN.md

章节2、使用

此工具属于开箱即用的工具,没有什么上手的难度,不过安卓的投屏和一些功能需要开启adb调试,这样才能最大发挥它的功能。

目前,因为版本更迭,需要在 Windows系统 >= 10的环境上运行。

Windows系统下,推荐下载 Escrcpy-1.19.1-win-x64.zip 这下载解压即可使用的版本(时间戳 2024-06-02的最新稳定版本)

支持USB 或WIFI两种安卓投屏的工作模式,我这里比较推荐大家使用USB线连接的模式,会比较稳定

USB连接

注意:如果手机上提示调试授权请点击允许

安卓手机需开启开发者模式并打开 USB 调试
打开 Escrcpy 并将安卓手机连接到你的电脑
这时 Escrcpy 设备列表应该已经检测到你的手机,点击开始镜像

WIFI连接

注意:如果首次无线连接失败,你可能需要无线配对请参阅 常见问题
注意:需同时开启无线调试功能,并在无线调试页面中获取你的当前设备的无线地址(通常为你连接 WIFI 时分配的 IP 地址)及端口号(默认为 5555)

同 USB 连接中的 1-2 步骤
将获取到的设备 IP 地址及端口号填写到 Escrcpy 中,然后点击连接设备
这时 Escrcpy 设备列表应该已经检测到你的手机,点击开始镜像
开始享受吧

可以为不同安卓手机,设备不同的别名,点击开始镜像,即可电脑上操作安卓手机,可以同时投屏多个安卓手机。

让旧安卓手机又可以发挥余热了。

附录1、视频操作演示

https://youtu.be/uaBusKknl78

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

CVE-2024-22120 基础设施级软件Zabbix漏洞处理 2024-05-21

前缀、文档修改记录

20240521 初始化编辑此文章,完稿

章节1、需求描述

说真的zabbix作为基础设施级的资源监控系统,目前普及度已经非常的高了,它支持在服务端执行对客户端的检测操作,检查脚本在命令执行后,会将审计记录数据入库。由于audit.c代码中的“clientip”字段未经过有效的真实值过滤,就存在本应该是一个IP字段的数值,可被精心构造为一段SQL,填入到“clientip”中,形成SQL注入,并利用时间盲注攻击,进行数据库提权的操作。

官方的漏洞说明链接 https://www.zabbix.com/cn/security_advisories

https://www.zabbix.com/cn/security_advisories#ZBV-2024-05-17

https://support.zabbix.com/browse/ZBX-24505

https://github.com/W01fh4cker/CVE-2024-22120-RCE?tab=readme-ov-file 这里有将zabbix普通用户提权为admin用户的python脚本。

因为确实形成了SQL注入,且普通账号可以提权为admin账号,此次漏洞,标记为9.1的高危漏洞,影响的版本,我看官方贴的

6.0.0-6.0.27
6.4.0-6.4.12
7.0.0alpha1-7.0.0beta1

不包含旧的4.0/5.0版本,也是惊奇,可能是6.0版本之后代码功能带进来的漏洞吧,影响范围是有数据库的zabbix-server环境。

章节2、处理方式,版本升级

根据官方的建议,还是优先升级到zabbix最新的已修Bug漏洞的版本为妙

Fixed in
6.0.28rc1 c8ac414ff44
6.4.13rc1 78899da0e1b
7.0.0beta2 9013ff74985

打个快照,升级安装一下zabbix-server,完成版本升级就行。

参照官方:https://www.zabbix.com/documentation/6.0/en/manual/installation/upgrade/packages/debian_ubuntu

我在上次部署的是6.0 LTS的一个小版本, https://dasmz.com/?p=3654 ,因为这次的漏洞,都在同一个6系列的版本下,只要对zabbix-server组件进行小规模升级即可。

root@ZabbixServer:~# systemctl stop zabbix-server
root@ZabbixServer:~# apt update
root@ZabbixServer:~# apt install --only-upgrade zabbix-server-mysql zabbix-sql-scripts
root@ZabbixServer:~# systemctl start zabbix-server 

截至本文书写的2024-05-21,能更新到的zabbix-server版本是6.0.30,就OKAY了

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

编译安装python3 2024-05-13

前缀、文档修改记录

20240513 初始化编辑此文章,完稿
20250514 编译测试通过

章节1、需求描述

时至今日2024-05-13,python3的稳定版本已经是3.12了,在部分环境上,可能有旧的版本,为了一个系统内兼容多个版本,可能需要进行venv方式进行多版本协同。

这里写编译安装到最新的版本python3的3.12版本

章节2、Ubuntu系统下可apt源方式安装python3的3.12版本

root@server:~# add-apt-repository ppa:deadsnakes/ppa -y
root@server:~# apt update
root@server:~# apt install python3.12 -y
root@server:~# python3.12 --version

章节3、Debian11&12环境下编译安装python3的3.12.3版本

// 2024-05-14 编译测试通过

root@server:~# apt update
root@server:~# apt install gcc make
root@server:~# apt install build-essential libbz2-dev libffi-dev liblzma-dev libncurses5-dev libreadline-dev libsqlite3-dev libssl-dev tk-dev zlib1g-dev
root@server:~# apt install wget
root@server:~# wget https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tar.xz
root@server:~# tar xvf Python-3.12.3.tar.xz
root@server:~# cd Python-3.12.3
root@server:~# mkdir -p /usr/local/python3.12.3
root@server:~# ./configure --prefix=/usr/local/python3.12.3 --enable-optimizations --with-lto --enable-shared --with-dbmliborder=gdbm --without-ensurepip

//参数释义,配置选项的含义:
--enable-optimizations --with-lto
性能选项,推荐用此选项配置python3,启用以配置文件主导的优化(PGO)

--enable-shared
该选项防止安装静态库。

--without-ensurepip
该选项禁止构建 Python 软件包安装器,它在当前阶段没有必要。

--with-dbmliborder
覆盖 dbm 模块的 db 后端检查顺序。合法值是用冒号(:)分隔的字符串,包含后端名称。

root@server:~# make -j4
root@server:~# make install
root@server:~# echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3.12.3/lib"  >> /root/.bashrc  //增加到环境变量
root@server:~# source .bashrc
root@server:~# /usr/local/python3.12.3/bin/python3.12            // 检查版本
root@server:~# mv  /usr/bin/python3   /usr/bin/bak.python3.old
root@server:~# ln -s /usr/local/python3.12.3/bin/python3.12  /usr/bin/python3
root@server:~# ln -s /usr/local/python3.12.3/bin/python3.12  /usr/bin/python

pip软件的安装,最好搭配venv来,这样可以做到隔离,版本管理。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

Windows系统上,电脑端,微信多开,2024-05-09

前缀、文档修改记录

20240509 初始化编辑此文章,完稿

章节1、需求描述

在Windows系统的电脑上,多开微信,一般个人可能有2个微信,那就开2个,有需要3个,就开3个。

章节2、操作描述

右击微信图标,属性,目标这个参数,就是微信在本机电脑的安装位置,把这个位置的字符串复制。

在桌面,写一个txt文本文件,内容为

start "" "C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"
start "" "C:\Program Files (x86)\Tencent\WeChat\WeChat.exe"

写完如上两行内容后,就可以保存,并修改文件后缀,从 .txt 修改为 .bat

备注:如果需要3开,那就上面写三行,其他数量类似。

运行桌面这个bat批处理文件,就可以轻松打开两个微信窗口了,不用再靠手速了。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

X99主板,R730显卡,装机Proxmox VE 8.1-2.iso 2024-4-11

前缀、文档修改记录

20240411 初始化编辑此文章,完稿
20240415 完稿,R730 命令行方式装机测试成功

章节1、需求描述

设备配置如下:

精粤X99-M-PLUS D4 V5.3主板,1 * E5 2683v4处理器,4 * DDR4 @2666MHz内存,4 * 512GB SSD,1 * GT730 1G亮机显卡

在安装最新版本的Proxmox VE (proxmox-ve_8.1-2.iso)的时候,出现如下的报错,画面会一直卡住,无法正常安装继续。

这个报错,问题其实非常清晰,就是加载驱动的时候,加载了nvidiafb这个驱动,导致系统卡住了。

更直白的说,就是,当前这个亮机卡,太旧了,属于 Nvidia Kepler-based GPUs时代的,已属于淘汰产品了。

章节2、问题的解决办法

办法1、钞能力

动用钞能力,既然只是英伟达显卡驱动无法加载,那就不用英伟达的卡作为亮机卡,使用一个AMD亮显卡,或者GTX/RTX等的新一点的英伟达款式,来进行装机过程的显示即可

办法2、转进

先安装7.4版本,再在线升级到8.1版本,无非就是一个 dist-upgrade操作,花费更久的装机时间而已

办法3、特殊版本选择

据说8.0版本的高级里,有一个nomodeset选项的装机,用它安装即可,也算是8.0大版本了,虽然不是最新版本,应该也可以将就用的

办法4、官方建议(2024-04-15 Dasmz测试成功,亮机卡R730)

主板里,关闭参数,Disabling CSM (Compatibility Support Mode)

引导至初始安装程序 grub 菜单,Install Proxmox VE (Terminal UI),按 e 键编辑启动项,使用箭头键导航到以 linux 开头的行,移动到这行的最右侧,增加添加参数 nomodeset ,按CTRL + X 去启动装机

参考 https://pve.proxmox.com/wiki/Installation#nomodeset_kernel_param

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

从Windows远程登录,CentOS主机GnomeDesktop原生态桌面 2024-04-08

前缀、文档修改记录

20240408 初始化编辑此文章,完稿

章节1、需求描述

项目,有一个需求,CentOS的主机,必须要能远程桌面操作,这么奇怪的要求,我也见的少,因为一般的Linux类服务器主机,都是通过SSH登录的,都是命令行交互,很少用桌面进行操作的。

以前,也有通过VNC方式的远程桌面,不过并不优雅,这次查了一下谷歌,居然发现,真的可以有如下优雅的方式远程桌面到CentOS主机。

章节2、环境、工具

2.1、PVE环境下、CentOS-7-x86_64-DVD-2009.iso 安装的带桌面的系统

2.2、MobaXterm 工具,官网, https://mobaxterm.mobatek.net/

章节3、操作演示过程

3.1、安装演示用途的CentOS系统

安装CentOS系统的过程,不是本页博客的重点,默认大家是会的,这里值得注意的是,安装的时候,确保安装了桌面(GNOME或KDE)的组件。

在安装页面 INSTALLATION SUMMARY / SOFTWARE / SOFTWARE SELECTION 里面,

一般来说,推荐安装对新手比较友好的GNOME Desktop,环境组件,除了邮件聊天、办公文档套件这俩,其他的我全部勾上了。

确保,服务器上SSH已经安装,并开启

root@centos~# yum update
root@centos~# yum install openssh-server   # 安装openssh
root@centos~# systemctl stop firewalld    # 功能演示需要、简单临时关闭防火墙

3.2 远程桌面的客户端软件MobaXterm

普通的SSH设置,需要服务器IP地址,用户名,SSH服务端口号,这个是常规的。

在SSH会话页面,点击高级SSH设置,Remote Env参数选择: Gnome Desktop

连接,就正常输入密码即可

一般来说,直接需要使用Linux远程桌面的场景比较少,这个远程的方式,需要了解一下即可。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

开源多平台支持的局域网文件分享工具 Localsend 2024-03-31

前缀、文档修改记录

20240331 初始化编辑此文章,完稿

章节1、需求描述

一般来说,局域网内,分享文件,传输内容,是不需要经过公网的。且通过某一些聊天工具发送内容,都是会经过平台的审核。

在一些特定的场景下,我们需要这样的一款工具,它可以支持纯局域网共享信息内容。

章节2、项目信息

Localsend项目,Github地址 https://github.com/localsend/localsend

章节3、日常使用

该项目,支持完全自主化编译各平台的客户端程序,各位量力而行,本篇博客仅做开箱介绍,不做编译指导。

目前,该软件,已经支持 文件/文件夹/文本/剪贴板,多维度的局域网共享,支持URL链接方式的局域网分享。

  • Windows系统,直接下载对应版本的exe文件,执行即可,如:LocalSend-1.14.0-windows-x86-64.exe
  • 安卓系统,直接下载安装对应版本的apk文件,执行即可,如:LocalSend-1.14.0.apk
  • 苹果MAC系统,直接下载安装对应版本的dmg文件,如:LocalSend-1.14.0.dmg
  • 苹果手机iPhone,直接在苹果商店,下载LocalSend 应用程序

作为一款开箱即用的工具,它的使用几乎是无学习成本的,只需要保证你需要互传文件或信息的两台/多台设备,在同一个局域网下。

如果内网有防火墙设备,记得放行如下端口。放行,入站/TCP&UDP/53317,出/Any/Any。

截止当前日期的版本V1.14.0,已完成支持通过链接分享文件,这样,一些单次分享任务,就可以不必安装客户端软件了,非常棒!这对于我常分享文件到Linux系统,有非常大的用处。

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨

基于netcat/nc命令,检测地址端口是否通 2024-03-11

前缀、文档修改记录

20240311 初始化编辑此文章,完稿
20240311 在录制视频后,修正部分内容及描述

章节1、需求描述

业务侧,经常需要检测业务地址,业务端口是否能通,这样的需求,就需要配套的工具来排查。

章节2、检查主机是否存活

常规来说,检测一个业务,是否可达,先检测其云主机ECS是否存活,处于开机状态。一般基于ping其IP地址的路由是否可通的方式来判断。一般来说,优先使用ICMP的ping 方式进行检测排查问题

ping xxx.xxx.xxx.xxx    # 其中xxx.xxx.xxx.xxx为一个有效IP地址

如果IP地址不通,可能为网络真实不通,或可能存在对端防火墙屏蔽ICMP的包

亦可通过mtr / tracert / traceroute 相关命令,测试路由点,是否为中间某个路由点有误。

章节3、检查端口是否可通

一般来说,如果上一个章节的云主机IP地址都不通,优先检查主机故障/防火墙规则/IP地址的路由问题。或者,如果路由正确且明确知道是对端已关闭ICMP包响应,则可进行TCP/UDP端口检查。

本次推荐使用netcat/nc命令,进行端口TCP/UDP是否可达的检查。

3.1、安装netcat

Debian/Ubuntu 安装netcat/nc的命令,且推荐优先安装的版本为 netcat-openbsd,而非netcat-traditional

// OS: Debian 12
root@server:~# apt update
root@server:~# apt-get install netcat-openbsd     
root@server:~# 

3.2、netcat参数释义

root@server:~# nc -h
OpenBSD netcat (Debian patchlevel 1.206-1ubuntu1)
usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-M ttl]
	  [-m minttl] [-O length] [-P proxy_username] [-p source_port]
	  [-q seconds] [-s source] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout]
	  [-X proxy_protocol] [-x proxy_address[:port]] 	  [destination] 

参数清单:
-4		Use IPv4/仅使用IPv4

-6		Use IPv6/仅使用IPv6

-b		Allow broadcast/允许广播

-C		Send CRLF as line-ending

-D		Enable the debug socket option/启用对套接字的调试

-d		Detach from stdin/不尝试从stdin进行读取

-F		Pass socket fd

-h		This help text/帮助文档

-I length	TCP receive buffer length

-i interval	Delay interval for lines sent, ports scanned/指定发送和接收的文本行之间的延迟时间interval

-k		Keep inbound sockets open for multiple connects/nc在接收完一个请求后不会立即退出,而是会继续监听其他请求

-l		Listen mode, for inbound connects/监听模式

-M ttl		Outgoing TTL / Hop Limit

-m minttl	Minimum incoming TTL / Hop Limit

-N		Shutdown the network socket after EOF on stdin

-n		Suppress name/port resolutions/不使用域名

-O length	TCP send buffer length

-P proxyuser	Username for proxy authentication

-p port		Specify local port for remote connects/为远程连接定义的本地端口号

-q secs		quit after EOF on stdin and delay of secs

-r		Randomize remote ports

-S		Enable the TCP MD5 signature option

-s source	Local source address/指定用于发送数据包的接口的IP地址

-T keyword	TOS value

-t		Answer TELNET negotiation

-U		Use UNIX domain socket

-u		UDP mode/使用UDP,而不是缺省选项TCP

-V rtable	Specify alternate routing table

-v		Verbose/指定详细输出

-W recvlimit	Terminate after receiving a number of packets

-w timeout	Timeout for connects and final net reads/如果连接和stdin空闲超过了timeout秒,则无提示地关闭连接

-X proto	Proxy protocol: "4", "5" (SOCKS) or "connect"/与代理服务器通信时,使用该指定协议。受支持的协议为4(SOCKSv4)、5(SOCKSv5)和connect(HTTP代理)。如果未指定协议,则使用SOCKSv5

-x addr[:port]	Specify proxy address and port/使用proxy_address和port上的代理请求到addr的连接。如果未指定port,则使用代理协议的已知端口(SOCKS为1080,HTTP为3128)

-Z		DCCP mode

-z		Zero-I/O mode [used for scanning]/执行端口扫描。对于TCP端口(缺省),尝试在不发送数据的情况下执行连接扫描(完整三路信号握手)。对于UDP(–u),缺省情况下会发送空UDP包

Port numbers can be individual or ranges: lo-hi [inclusive]
root@server:~# 

3.3、用netcat检测TCP端口

nc -nvz 93.150.241.210 8000-9999    

3.4、用netcat检测UDP端口

nc -nvzu 93.150.241.210 123

端口如果是通的,会类似如下的显示

root@debian12:~# nc -nvz 10.11.11.200 22
Connection to 10.11.11.200 22 port [tcp/*] succeeded!
root@debian12:~# 

3.5、用netcat临时启动一个服务端TCP/UDP监听

如果是为了验证端口,需要自己在服务器上临时启动一个监听,也可以使用netcat临时启动一个服务端的TCP/UDP端口监听。

nc -n -l -k -u 123    # 监听UDP/123
nc -l -k 3389    # 监听TCP/3389

-l 代表netcat 将以监听模式运行;
-k 表示netcat 在接收完一个请求后不会立即退出,而是会继续监听其他请求
-u 使用UDP,而不是缺省选项TCP

附录1、视频操作演示

附录2、@Dasmz

博客内,所有教程为手打原创教程,如果技术教程对您有所帮助,欢迎打赏作者。技术层面,闻道有先后,如有疏漏、错误,欢迎指正。技术博客的内容,一般具有一定的环境依赖,具有一定的年代依赖,酌情参考其中的内容,请勿完全照搬照抄。

对于博客内已提及的专业知识,如果需要技术指导,欢迎联系我,仅需支付工时费

Twitter: Dasmz

Youtube: @DasmzStudio

Telegram: @Dasmz

Donate
云乞讨