2024年9月10日星期二

UFW 防火墙安装

快速指南:

1、更新软件包。
sudo apt update
2、安装 UFW。
sudo apt install ufw
3、如果你在远程位置连接你的服务器,在启用 UFW 防火墙之前,你必须先允许进来的 SSH 连接。否则,你将永远都无法连接到机器上。
sudo ufw allow 22/tcp

sudo ufw allow 22
如果 SSH 运行在非标准端口,你需要将上述命令中的 22 端口替换为对应的 SSH 端口。

设置默认策略。

允许所有入站(自定义)
sudo ufw default allow incoming
拒绝所有入站(默认)
sudo ufw default deny incoming
查看防火墙状态
sudo ufw status verbose

4、启动 UFW

sudo ufw enable


详细指南:

第 1 步 — 将 IPv6 与 UFW 一起使用(可选)

本教程是在考虑 IPv4 的情况下编写的,但只要您启用它,它就适用于 IPv6。 如果您的 Ubuntu 服务器启用了 IPv6,请确保将 UFW 配置为支持 IPv6,以便除了 IPv4 之外,它还将管理 IPv6 的防火墙规则。 为此,请使用 nano 或您喜欢的编辑器打开 UFW 配置。

sudo nano /etc/default/ufw

然后确保 IPV6 的值为 yes。 它应该如下所示:

/etc/default/ufw 摘录

IPV6=yes

保存并关闭文件。 现在,当启用 UFW 时,它将被配置为同时编写 IPv4 和 IPv6 防火墙规则。 但是,在启用 UFW 之前,我们需要确保您的防火墙配置为允许您通过 SSH 连接。 让我们从设置默认策略开始。

第 2 步 — 设置默认策略

如果您刚刚开始使用防火墙,首先要定义的规则是您的默认策略。 这些规则控制如何处理不明确匹配任何其他规则的流量。 默认情况下,UFW 设置为拒绝所有传入连接并允许所有传出连接。 这意味着任何试图访问您的服务器的人都无法连接,而服务器内的任何应用程序都可以访问外部世界。

让我们将您的 UFW 规则设置回默认值,这样我们就可以确保您能够按照本教程进行操作。 要设置 UFW 使用的默认值,请使用以下命令:

sudo ufw default deny incoming
sudo ufw default allow outgoing

您将收到如下输出:

OutputDefault incoming policy changed to 'deny'
(be sure to update your rules accordingly)
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)

这些命令将默认设置为拒绝传入并允许传出连接。 仅这些防火墙默认值可能足以满足个人计算机的需要,但服务器通常需要响应来自外部用户的传入请求。 我们接下来会研究这个。

第 3 步 — 允许 SSH 连接

如果我们现在启用我们的 UFW 防火墙,它将拒绝所有传入的连接。 这意味着如果我们希望我们的服务器响应这些类型的请求,我们将需要创建明确允许合法传入连接(例如 SSH 或 HTTP 连接)的规则。 如果您使用的是云服务器,您可能希望允许传入的 SSH 连接,以便您可以连接和管理您的服务器。

要将您的服务器配置为允许传入的 SSH 连接,您可以使用以下命令:

sudo ufw allow ssh

这将创建防火墙规则,允许端口 22 上的所有连接,这是 SSH 守护程序默认侦听的端口。 UFW 知道端口 allow ssh 的含义,因为它在 /etc/services 文件中列为服务。

但是,我们实际上可以通过指定端口而不是服务名称来编写等效规则。 例如,此命令与上述命令的工作方式相同:

sudo ufw allow 22

如果您将 SSH 守护程序配置为使用不同的端口,则必须指定适当的端口。 例如,如果您的 SSH 服务器正在侦听端口 2222,您可以使用以下命令来允许该端口上的连接:

sudo ufw allow 2222

现在您的防火墙已配置为允许传入的 SSH 连接,我们可以启用它。

第 4 步 - 启用 UFW

要启用 UFW,请使用以下命令:

sudo ufw enable

您将收到一条警告,指出该命令可能会中断现有的 SSH 连接。 您已经设置了允许 SSH 连接的防火墙规则,因此可以继续。 使用 y 响应提示并点击 ENTER

防火墙现在处于活动状态。 运行 sudo ufw status verbose 命令查看设置的规则。 本教程的其余部分将更详细地介绍如何使用 UFW,例如允许或拒绝不同类型的连接。

第 5 步 — 允许其他连接

此时,您应该允许服务器需要响应的所有其他连接。 您应该允许的连接取决于您的特定需求。 幸运的是,您已经知道如何编写允许基于服务名称或端口的连接的规则; 我们已经在端口 22 上为 SSH 执行了此操作。 您也可以这样做:

  • 端口 80 上的 HTTP,这是未加密的 Web 服务器使用的,使用 sudo ufw allow http 或 sudo ufw allow 80
  • 端口 443 上的 HTTPS,这是加密 Web 服务器使用的,使用 sudo ufw allow https 或 sudo ufw allow 443

除了指定端口或已知服务之外,还有其他几种方法可以允许其他连接。

特定端口范围

您可以使用 UFW 指定端口范围。 一些应用程序使用多个端口,而不是单个端口。

例如,要允许使用端口 6000-6007 的 X11 连接,请使用以下命令:

sudo ufw allow 6000:6007/tcp
sudo ufw allow 6000:6007/udp

使用 UFW 指定端口范围时,您必须指定规则应适用的协议(tcp 或 udp)。 我们之前没有提到这一点,因为不指定协议会自动允许两种协议,这在大多数情况下是可以的。

特定 IP 地址

使用 UFW 时,您还可以指定 IP 地址。 例如,如果要允许来自特定 IP 地址的连接,例如 203.0.113.4 的工作或家庭 IP 地址,则需要指定 from,然后 IP 地址:

sudo ufw allow from 203.0.113.4

您还可以通过在端口号后添加 to any port 来指定允许 IP 地址连接的特定端口。 例如,如果要允许 203.0.113.4 连接到端口 22 (SSH),请使用以下命令:

sudo ufw allow from 203.0.113.4 to any port 22

子网

如果要允许 IP 地址的子网,可以使用 CIDR 表示法指定网络掩码。 例如,如果要允许从 203.0.113.1 到 203.0.113.254 的所有 IP 地址,可以使用以下命令:

sudo ufw allow from 203.0.113.0/24

同样,您也可以指定允许子网 203.0.113.0/24 连接的目标端口。 同样,我们将使用端口 22 (SSH) 作为示例:

sudo ufw allow from 203.0.113.0/24 to any port 22

与特定网络接口的连接

如果要创建仅适用于特定网络接口的防火墙规则,可以通过指定“allow in on”后跟网络接口名称来实现。

在继续之前,您可能需要查找网络接口。 为此,请使用以下命令:

ip addr
Output Excerpt2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state
. . .
3: enp0s4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
. . .

突出显示的输出指示网络接口名称。 它们通常被命名为 eth0ens1 或 enp3s2

因此,如果您的服务器有一个名为 ens3 的公共网络接口,您可以使用以下命令允许 HTTP 流量(端口 80)到它:

sudo ufw allow in on ens3 to any port 80

这样做将允许您的服务器接收来自公共互联网的 HTTP 请求。

或者,如果您希望您的 MySQL 数据库服务器(端口 3306)侦听专用网络接口 eth1 上的连接,例如,您可以使用以下命令:

sudo ufw allow in on eth1 to any port 3306

这将允许您专用网络上的其他服务器连接到您的 MySQL 数据库。

第 6 步 — 拒绝连接

如果您尚未更改传入连接的默认策略,则 UFW 配置为拒绝所有传入连接。 通常,这通过要求您创建明确允许特定端口和 IP 地址通过的规则来简化创建安全防火墙策略的过程。

但是,有时您会希望根据源 IP 地址或子网拒绝特定连接,这可能是因为您知道您的服务器正在从那里受到攻击。 此外,如果您想将默认传入策略更改为 allow(不推荐),则需要为您不使用的任何服务或 IP 地址创建 deny 规则想要允许连接。

要编写 deny 规则,可以使用上述命令,将 allow 替换为 deny

例如,要拒绝 HTTP 连接,您可以使用以下命令:

sudo ufw deny http

或者,如果您想拒绝来自 203.0.113.4 的所有连接,您可以使用以下命令:

sudo ufw deny from 203.0.113.4

现在让我们看看如何删除规则。

第 7 步 — 删除规则

知道如何删除防火墙规则与知道如何创建它们一样重要。 有两种不同的方式来指定删除哪些规则:通过规则编号或通过实际规则(类似于在创建规则时指定规则的方式)。 我们将从 按规则编号 删除方法开始,因为它更容易。

按规则编号

如果您使用规则编号来删除防火墙规则,那么您要做的第一件事就是获取防火墙规则列表。 UFW status 命令具有在每个规则旁边显示数字的选项,如下所示:

sudo ufw status numbered
Numbered Output:Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22                         ALLOW IN    15.15.15.0/24
[ 2] 80                         ALLOW IN    Anywhere

如果您决定要删除规则 2,即允许端口 80 (HTTP) 连接的规则,您可以在 UFW 删除命令中指定它,如下所示:

sudo ufw delete 2

这将显示一个确认提示,然后删除允许 HTTP 连接的规则 2。 请注意,如果您启用了 IPv6,您还需要删除相应的 IPv6 规则。

按实际规则

规则编号的替代方法是指定要删除的实际规则。 例如,如果你想删除 allow http 规则,你可以这样写:

sudo ufw delete allow http

您还可以通过 allow 80 指定规则,而不是通过服务名称:

sudo ufw delete allow 80

此方法将删除 IPv4 和 IPv6 规则(如果存在)。

第 8 步 — 检查 UFW 状态和规则

您可以随时使用以下命令检查 UFW 的状态:

sudo ufw status verbose

如果 UFW 被禁用(默认情况下),您将看到如下内容:

OutputStatus: inactive

如果 UFW 处于活动状态(如果您按照步骤 3 进行操作,则应该处于活动状态),输出将显示它处于活动状态,并且会列出所有设置的规则。 例如,如果防火墙设置为允许来自任何地方的 SSH(端口 22)连接,则输出可能如下所示:

OutputStatus: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), deny (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22 (v6)                    ALLOW IN    Anywhere (v6)

如果要检查 UFW 如何配置防火墙,请使用 status 命令。

第 9 步 - 禁用或重置 UFW(可选)

如果您决定不想使用 UFW,可以使用以下命令禁用它:

sudo ufw disable

您使用 UFW 创建的任何规则都将不再有效。 如果您以后需要激活它,您可以随时运行 sudo ufw enable

如果您已经配置了 UFW 规则,但您决定要重新开始,您可以使用 reset 命令:

sudo ufw reset

这将禁用 UFW 并删除之前定义的任何规则。 请记住,如果您在任何时候修改默认策略,它们都不会更改为其原始设置。 这应该让您重新开始使用 UFW。

2024年8月23日星期五

Windows 11 上运行Android软件(Windows Subsystem for Android)

Windows 11 上运行Android软件

Windows 11的新功能中,“Windows Subsystem for Android”(简称WSA),即「Android子系统」,是最受期待的功能之一。它可以让你在Win11 PC上直接安装运行各种安卓手机APP应用与游戏,无需安装第三方模拟器或者虚拟机。

Android子系统的要求

确保Windows 11版本为22000或更高版本。

硬件必须支持并启用BIOS/UEFI虚拟化

确保微软商店版本为22110.1402.6.0或更高版本,并单击“获取更新”按钮升级其版本。

安卓子系统默认会分配4G内存,建议16G内存以上的电脑使用。

一、在Windows 11电脑上启用虚拟化:

选择 “开始”,输入“Windows 功能”,然后从结果列表中选择“打开或关闭 Windows 功能 ”。

 在刚刚打开的 “Windows 功能”窗口中,找到“虚拟机平台 ”并将其选中。

选择“确定”。 可能需要重启电脑。

二、应用准备及安装:

应用页面:

https://apps.microsoft.com/detail/9p3395vx91nr?hl=en-us&gl=US

商店地址:

https://www.microsoft.com/store/productId/9P3395VX91NR?ocid=pdpshare

抓包网址:

https://store.rg-adguard.net/

操作方法:

打开抓包地址,输入商店地址,选择show,点击对钩,这个页面会出现好多广告,关闭所有广告就是如上图那样,在最下面有子系统的安装包,和上面的依赖文件,抓包直接下载

MicrosoftCorporationII.WindowsSubsystemForAndroid_2407.40000.0.0_neutral_~_8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMT0647e123685e41b9fe4ac1a9b7eae965be86a4541.65 MB
MicrosoftCorporationII.WindowsSubsystemForAndroid_2407.40000.0.0_neutral_~_8wekyb3d8bbwe.msixbundle

Microsoft.UI.Xaml.2.8_8.2310.30001.0_arm64__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMTe8bd89fcbfe2ff603ca593ac45454db8276891236.94 KB
Microsoft.UI.Xaml.2.8_8.2310.30001.0_arm64__8wekyb3d8bbwe.appx2024-08-23 15:32:22 GMT7dcef4c53399ae09ca0a7988acf0fa7bc00d251c4.85 MB
Microsoft.UI.Xaml.2.8_8.2310.30001.0_arm__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMTd8bf65026506e9e94dbdf0e7eafaf24d1c086ad66.81 KB
Microsoft.UI.Xaml.2.8_8.2310.30001.0_arm__8wekyb3d8bbwe.appx2024-08-23 15:32:22 GMTee25befd9aabd4ae71818280b01043e38a5f41484.77 MB
Microsoft.UI.Xaml.2.8_8.2310.30001.0_x64__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMT79f148959c10bf7df3e7ef156ae1271aeb548cdd6.98 KB
Microsoft.UI.Xaml.2.8_8.2310.30001.0_x64__8wekyb3d8bbwe.appx2024-08-23 15:31:20 GMT4bf7cc0762db6df1088c4d6142f0a93b9b268a914.88 MB
Microsoft.UI.Xaml.2.8_8.2310.30001.0_x86__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMTc0cf7058bee5079658112aa4ef1ae37adaa6b10c6.52 KB
Microsoft.UI.Xaml.2.8_8.2310.30001.0_x86__8wekyb3d8bbwe.appx
Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_arm64__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMTff9843e0e4f98c5742d6e67192559c3ec9e8bdbd14.41 KB
Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_arm64__8wekyb3d8bbwe.appx2024-08-23 15:34:22 GMT4584ca2651562b2cebc62d2a46ce740a13121e5a10.64 MB
Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_arm__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMT3f19c0a14b1765085a33e2fdf82f728707909d648.6 KB
Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_arm__8wekyb3d8bbwe.appx2024-08-23 15:33:02 GMT485502d5cb34b7d2782ec93f43210df25d9966e36.15 MB
Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x64__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMT2ea30fcae937b8b7504c937c7b95c3fe6a1d372a9 KB
Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x64__8wekyb3d8bbwe.appx2024-08-23 15:32:30 GMT0e32b620de82cc8fb6ad067af0d22de7f8e73b6d6.44 MB
Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x86__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMTe1e319d7ce5d7ff73797441983317924729890cb8.11 KB
Microsoft.VCLibs.140.00.UWPDesktop_14.0.33728.0_x86__8wekyb3d8bbwe.appx2024-08-23 15:32:13 GMT8765690e29d119449163d7f4e1925b268403583f5.77 MB
Microsoft.VCLibs.140.00_14.0.33519.0_arm64__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMT3cbda789dee60a590124b1d6101f14119766e24f2.47 KB
Microsoft.VCLibs.140.00_14.0.33519.0_arm64__8wekyb3d8bbwe.appx2024-08-23 15:30:24 GMT14db2b39eda03ed3f4f66540858faea7eb8ccf761.5 MB
Microsoft.VCLibs.140.00_14.0.33519.0_arm__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMT799f7135ecbf7e8d722a77dd8db3d4115a67d0961.55 KB
Microsoft.VCLibs.140.00_14.0.33519.0_arm__8wekyb3d8bbwe.appx2024-08-23 15:30:34 GMT41cbe825eaf03d9a951e101eb7bd98519bd7fde2816.03 KB
Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMTa9f44104d0b78a11cfdecbd17709800773e921ae1.63 KB
Microsoft.VCLibs.140.00_14.0.33519.0_x64__8wekyb3d8bbwe.appx2024-08-23 15:30:42 GMT00c5a18b3243c99296724d4c02975ba8fc3ff353875.57 KB
Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb3d8bbwe.BlockMap1970-01-01 00:00:00 GMT477c0a243daa358c6d76ec39d04cdcc6fe81960e1.46 KB
Microsoft.VCLibs.140.00_14.0.33519.0_x86__8wekyb3d8bbwe.appx

 根据电脑体系下载对应版本。(如日后更新,你下载到的文件命名/版本号可能会不同)

默认双击msixbundle应用包会自动安装。

如果msixbundle包无法直接使用App Installer安装,需要我们在powershell里面手动执行命令进行安装
win+X 使用管理员身份运行powershell,输入命令 add-appxpackage "xxx",(引号里的xxx是你的msix安装包所在的位置),然后按回车执行就行了
# 安装命令方式如下:
add-appxpackage 安装包路径
# 示例,请确保你的路径正确:
add-appxpackage "E:\下载\MicrosoftCorporationII.WindowsSubsystemForAndroid_2407.40000.0.0_neutral_~_8wekyb3d8bbwe.msixbundle"
# 然后回车开始进行安装

三、在 Android 的 Windows 子系统上进行文件共享及安装apk文件

 安装完成后,可以在Windows开始菜单中找到适用于Android™的Windows子系统「Windows Subsystem for Android」的应用图标。

在 Android 的 Windows 子系统上进行文件共享,将安装包传入共享文件夹进行安装。

1. 打开适用于 Android 应用程序的 Windows 子系统。

2.转到设置并找到文件夹共享选项

3. 切换开关以启用文件夹共享。 启用后,您的 Windows 用户配置文件文件夹(例如,“C:\Users\User”)将在子系统中共享为“/sdcard/Windows”。

4.重启使文件共享生效。

2024年8月12日星期一

设置Docker服务在系统启动后延时启动

要设置Docker服务在启动后延时30秒启动,可以通过systemd服务配置来实现。以下是具体步骤:

1. 创建或编辑Docker服务配置文件

首先,你需要编辑或创建一个Docker服务的配置文件。这个文件通常位于/etc/systemd/system/docker.service.d/ 目录下。如果该目录不存在,你需要创建它。

bash
复制
sudo mkdir -p /etc/systemd/system/docker.service.d sudo nano /etc/systemd/system/docker.service.d/override.conf

2. 添加延时启动配置

override.conf 文件中,添加以下内容以设置延时启动:

ini
复制
[Service] ExecStartPre=/bin/sleep 30

3. 重新加载systemd配置并重启Docker服务

保存并关闭文件后,你需要重新加载systemd的配置,并重启Docker服务以应用更改。

bash
复制
sudo systemctl daemon-reload sudo systemctl restart docker

4. 验证配置是否生效

你可以通过查看Docker服务的状态来验证配置是否生效。

bash
复制
sudo systemctl status docker

总结

通过上述步骤,可以在系统启动后延时30秒启动Docker服务。这种方法利用了systemd的特性,通过在服务启动前执行一个延时命令来实现延时启动。

2024年7月23日星期二

2024年7月13日星期六

使用jq格式化 Amazon可使用的 IP 地址范围

下载 ip-ranges.json

所有IP 下载 ip-ranges.json

CloudFront CDN 下载 list-cloudfront-ips 

下载jq


在windows计算机上,可以使用工具(例如 GitHub 网站上的 jq)来解析 JSON 响应。

下载jq

解压并重命名执行文件为jq.exe

提取准备

新建文件夹,使jq.exe与ip-ranges.json在同一文件夹

在文件夹内使用Shift+鼠标右键,点击在此处打开Powershell窗口

使用以下命令解析 JSON 文件:

提取IPV6

.\jq -r '.ipv6_prefixes | .[].ipv6_prefix' Get-Content ip-ranges.json >>ipv6.txt

.\jq -r '.ipv6_prefixes | .[].ipv6_prefix' Get-Content ip-ranges.json | Out-File -FilePath ipv6.txt -Append

提取IPV4

.\jq -r '.prefixes | .[].ip_prefix' Get-Content ip-ranges.json >>ipv4.txt

.\jq -r '.prefixes | .[].ip_prefix' Get-Content ip-ranges.json | Out-File -FilePath ipv4.txt -Append

2024年7月12日星期五

以服务方式运行微力同步

Windows环境:

本文简单介绍微力同步安装为服务运行的方式,本文环境假设verysync.exe位于D:\Program Files\verysync\verysync.exe,如果您的verysync.exe在别的路径下,做对应的修改即可。

服务安装示例:

在开始菜单中找到命令行提示符程序(CMD), 右键以管理员方式运行。
打开执行文件目录

cd “D:\Program Files\verysync”

允许远程访问执行

.\verysync.exe -service install -gui-address :8886 -home config

仅本地访问执行

.\verysync.exe -service install -home config

服务启动执行

.\verysync.exe -service start

服务卸载执行

.\verysync.exe -service uninstall

1、 在系统服务中,可以看到微力同步_verysync 服务已经安装成功,可以进行服务管理了,如启动暂停等。
2、为了防止微力服务意外退出导致同步服务停止,我们可以双击微力服务条目,在弹出的选项卡中,点击恢复选项卡, 将第一次失败,第二次失败,第三次失败动作都修改为重新启动服务。
3、默认的配置存储在 %localappdata%/verysync 可以复制出来用-home指定,所有数据不影响。

高级参数:

服务相关的命令行参数:

-servce 服务控制 支持 install, uninstall, status, start, stop
-service-name 服务名称 默认为verysync
-service-user 用指定的用户运行服务
-watch-files 监控文件变化最大的数值 默认20W

服务安装示例:

以下命令安装为Windows服务,并使用\config目录作为数据库索引存放位置,使用 -gui-address :8886 启用远程访问
.\verysync.exe -service install -gui-address :8886 -home config