-
如何在Debian桌面/服务器上安装Syncthing
本教程将向您展示如何在Debian上安装Syncthing。Syncthing是一个免费的点对点连续文件同步程序,允许您跨多个设备同步文件,可用于Linux、BSD、macOS、Windows、Android和Solaris。 它是流行的Resilio Sync(以前称为BitTorrent Sync)应用程序的开源替代方案。在一台机器上创建、修改或删除文件将自动复制到其他设备。Syncthing不会将文件上传到Nextcloud这样的中央服务器,而是直接在设备之间交换数据。在设备之间传输时,所有数据都会使用TLS加密。 通过Deb官方存储库在Debian上安装Syncthing 使用curl下载GPG密钥,然后使用apt密钥导入密钥。 sudo apt get安装curl-shttps://syncthing.net/release-key.txt| sudo apt按键添加- 如果在终端中看到OK,则表示GPG密钥已成功导入。然后使用以下命令添加正式的deb存储库。 回声“黛布”https://apt.syncthing.net/syncthing stable“| sudo tee/etc/apt/sources.list.d/syncthing.list 由于该存储库使用https,我们需要安装apt transport https包,以便apt包管理器可以与该存储库建立https连接。 sudo apt get安装apt传输https 更新本地包索引并在Debian上安装syncthing。 sudo-apt-get-update sudo-apt-get-install-syncthing 使用Systemd将Syncthing设置为系统服务 官方Syncthing deb包附带所需的systemd服务文件。在/lib/systemd/system/directory下,您将找到一个[email ;protected]文件。通过运行以下命令,使syncthing在启动时自动启动。用实际用户名替换用户名。 sudo systemctl启用[电子邮件和#160;受保护]用户名。服务 上述命令将创建指向[email ;protected]文件的符号链接。 从/etc/systemd/system/multi-user创建符号链接。目标想要/[email ;protected]到/lib/systemd/system/[email ;protected] 现在,我们可以使用以下命令启动Syncthing服务。 sudo systemctl start[电子邮件和#160;受保护]用户名。服务 检查状态 systemctl状态[电子邮件和#160;受保护]用户名。服务 输出: 提示:如果上述命令没有立即退出,请按Q键重新控制终端。 我们可以看到Syncthing autostart已启用并且正在运行。 syncthing systemd服务在/home/username/下创建配置文件。config/syncthing/和一个文件夹/home/username/Sync作为默认的同步文件夹。主配置文件是/home/username/。config/syncthing/config。xml。 在其他操作系统上安装Syncthing 转到Syncthing下载页面,在Windows、macOS、BSD、Android等其他操作系统上安装Syncthing。 打开防火墙中的端口22000 Syncthing使用端口22000与对等方通信。如果您的计算机或服务器启用了UFW防火墙,则需要使用以下命令允许端口22000。 sudo ufw允许22000/tcp 访问Debian Syncthing Web界面 默认情况下,Syncthing服务监听127.0.0.1:8384。现在,在Web浏览器的地址栏中,键入127.0.0.1:8384以访问Syncthing Web界面。您可以添加其他同步设备并与它们共享文件夹。 如果在远程Debian服务器上安装Syncthing,则可以通过编辑配置文件来启用对Syncthing web界面的远程访问。 nano/home/username/。config/syncthing/config。xml 找到下面两行。 <;gui enabled=“true”tls=“false”debug=“false”>&书信电报;地址>;127.0.0.1:8384</地址>; 将tls=“false”更改为tls=“true”,这样HTTP通信将被加密。并将127.0.0.1更改为Debian服务器的公共IP地址。保存并关闭文件。重新启动Syncthing以使更改生效。 sudo systemctl start[电子邮件和#160;受保护]用户名。服务 现在在web浏览器中键入服务器ip地址:8384以访问Syncthing web界面。显然,您需要使用Debian服务器的真实IP地址。您将被要求设置用户名和密码以保护Syncthing web界面。 您还可以使用Nginx或Apache设置反向代理以访问web用户界面,本教程稍后将对此进行解释。 开始在设备之间同步文件 一旦有两台设备运行Syncthing,我们就可以开始在它们之间同步文件了。 在Syncthing web界面中,单击操作>;在右上角显示ID。您将看到设备ID,它是一长串字母和数字。QR码也是设备ID,用于在智能手机上配置Syncthing。 复制设备ID,然后打开第二台设备的Syncthing Web界面,单击右下角的添加远程设备。然后粘贴设备ID并为设备命名。点击保存按钮。 现在,第二台设备将尝试连接到第一台设备。在第一台设备上刷新Web界面,您将看到以下消息。单击“添加设备”将第二个设备添加到第一个设备的设备列表中。 现在,这两个设备已连接。 Web界面左侧的一个窗格是默认的同步文件夹(/home/username/sync)。单击“添加文件夹”按钮添加新文件夹。为此文件夹指定一个描述性标签,并设置文件夹路径。 Syncthing作为您自己的用户帐户运行,因此您需要对共享文件夹具有写入权限。如果在共享文件夹时看到以下错误消息,则表示您没有该文件夹的写入权限。 2020-06-21 20:05:49:无法创建文件夹标记:mkdir。stfolder:只读文件系统 您可以使用setfacl授予写入权限。 sudo apt安装acl sudo setfacl-R-mu:username:rx/folder/path/ 在共享选项卡中,选择其他同步设备。 在“高级”选项卡中,可以选择文件夹类型、重新扫描间隔等。 单击“保存”按钮开始同步。另一台设备的Web界面上将显示一条消息。单击“添加”以接收文件。 现在这两台设备正在同步文件。在右边,你可以看到下载速率、上传速率、本地文件夹大小等。 设置反向代理 由于它监听127.0.0.1:8384,Syncthing Web界面仅对来自同一台计算机的连接可用。为了能够从远程计算机访问Syncthing Web界面,我们可以使用Nginx或Apache为Syncthing设置反向代理。 Nginx Nginx是一个非常流行的web服务器和反向代理。如果您更喜欢使用Nginx,请运行以下命令进行安装。 sudo apt安装nginx 然后创建一个服务器配置文件。 sudo nano/etc/nginx/conf.d/syncthing。形态 将以下内容添加到此文件。更换同步器。实例com与您首选的域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;server_name syncthing.example.com;access_log/var/log/nginx/syncthing.access.log;error_log/var/log/nginx/syncthing.error.log;location/{proxy_passhttp://127.0.0.1:8384; proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$scheme;} 保存并关闭文件。测试Nginx配置并重新加载Nginx。 sudo nginx-t sudo systemctl reload nginx 将域名指向Debian的IP地址后,在浏览器地址栏中键入域名,就会看到Syncthing Web界面。 如果浏览器无法连接到Syncthing web界面,可能需要在防火墙中打开端口80。例如,如果使用UFW,则运行以下命令。 sudo ufw允许80/tcp 阿帕奇 Apache是众所周知的web服务器,也可以用作反向代理。如果您更喜欢Apache而不是Nginx,请使用以下软件安装: sudo apt安装apache2 启动Apache并启用自动启动。 sudo systemctl启动apache2 sudo systemctl启用apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 现在为Syncthing创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/同步。形态 将以下行复制并粘贴到文件中。更换同步器。实例使用你的真实域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 <;虚拟主机*:80>;服务器名同步。实例com错误文件404/404。html ProxyPass/http://127.0.0.1:8384/ProxyPassReverse/http://127.0.0.1:8384/ErrorLog${APACHE_LOG_DIR}/syncthing_错误。log CustomLog${APACHE_log_DIR}/syncthing_访问。日志合并</VirtualHost>; 保存并关闭文件。然后启用这个虚拟主机。 sudo是一个敏感的东西。形态 重启Apache sudo systemctl重启apache2 现在,您可以通过syncthing访问Web UI。实例通用域名格式。 如果浏览器无法连接到Syncthing web界面,可能需要在防火墙中打开端口80。例如,如果使用UFW,则运行以下命令。 sudo ufw允许80/tcp 使用HTTPS保护Syncthing Web UI 为了在通过域名访问Syncthing web UI时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。首先,打开防火墙中的端口443。 sudo ufw允许443/tcp 然后运行以下命令安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stype ocsp--email[email ;protected]-d syncthing。实例通用域名格式 如果使用Apache,请安装Certbot Apache插件。 sudo apt安装python3 certbot apache 并运行此命令以获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d syncthing。实例通用域名格式 哪里 --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 刷新Syncthing Web GUI,您会发现HTTP连接自动重定向到HTTPS安全连接。 启用用户身份验证 默认情况下,任何人都可以在设置反向代理后访问Syncthing web界面。我们可以启用用户身份验证来限制访问。单击右上角的操作按钮,然后选择设置->;桂。 在GUI身份验证用户字段中输入用户名,在GUI身份验证密码字段中输入密码。然后保存你的设置。 请注意,您不需要在Use HTTPS for GUI框上打勾,这使Syncthing能够使用自签名证书。我们已经在Apache/Nginx中安装了一个受主流Web浏览器信任的有效证书。 保存更改后,请重新启动Syncthing systemd服务,否则在重新加载页面时可能会看到502坏网关错误。 sudo systemctl restart[email ;protected]用户名。服务 现在使用新用户名和密码登录Syncthing Web界面。 仅发送&;只接收文件夹 在Syncthing中共享文件夹时,可以转到“高级”选项卡,从三种文件夹类型中选择一种: 发送&;接收(默认) 只发送 只收 您可能希望选择仅发送或仅接收。例如,如果您有三台计算机:A、B和C,并且希望将计算机A和B上的文件夹聚合到计算机C上的单个文件夹中。则可以将文件夹类型设置为仅在计算机C上接收。这样,计算机C将所有文件都放在单个文件夹中。计算机A和B仍保留原始文件。不多也不少。 当您在计算机C上使用相同的文件夹路径时,Syncthing可能会警告您“此路径是现有文件夹的子目录”。您可以忽略此警告,因为您有一个只接收文件夹。不会删除文件夹中的现有文件。 通过中继服务器同步 如果两个Syncthing实例无法相互连接,则Syncthing将尝试使用中继服务器传输文件。 它们无法相互连接的一个常见原因是其中一个位于NAT设备后面,并且没有配置端口转发。配置端口转发后,可以禁用中继服务器。下面是方法。单击编辑按钮并选择高级选项卡,将地址从动态更改为tcp://ip-address:22000.当然,你需要使用你真正的IP地址。 故障排除 如果Syncthing实例无法相互连接,可以使用ss(socket stats)实用程序检查Syncthing是否正在TCP端口22000上侦听。 sudo ss-lnpt | grep syncthing 从下面的屏幕截图可以看到,我的Syncthing正在监听端口8384(web界面)和22000(对等连接)。 如果没有,您可以编辑配置文件。 纳米~/。config/syncthing/config。xml 找到下面这行。 <;listenAddress>;违约</listenAddress>; 将默认值更改为tcp://your-IP-address. <;listenAddress>;tcp://12.34.56.78</listenAddress>; 保存并关闭文件。然后重启同步。 sudo systemctl restart[email ;protected]用户名。服务 错过了比赛。stfoler文件 这个Syncthing需要stfoler文件才能工作。这是一个空文件。你不需要添加任何内容。如果。同步文件夹下缺少stfolder文件,则同步将停止。您可以创建以下Cron作业来自动创建文件。 @每小时触摸/path/to/sync/folder/。stfolder 如果文件丢失,触摸命令将创建该文件。如果文件已经存在,它将更新文件时间戳。 收尾 我希望本教程能帮助您在Debian上安装和使用Syncthing。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?
-
在Debian 10 Buster上设置OpenStreetMap(OSM)平铺服务器
OpenStreetMap(OSM)是一个用户贡献的、可自由编辑的世界地图。你可以把它看作是谷歌地图的开源和自托管替代品。本教程将向您展示如何在Debian 10上构建自己的OpenStreetMap tile服务器,这样您就不必使用专有的地图服务。 OpenStreetMap功能 OpenStreetMap的数据覆盖了全世界,因此可以方便地支持任何国家或每个国家的用户。 OpenStreetMap每天每小时每分钟都会更新,您可以实时获得这些更新。 OpenStreetMap数据是免费和开放的,不收取订阅费和页面浏览费。 OpenStreetMap数据丰富而详细,包含大量与地面人员相关的数据——收集数据的人员。 先决条件/硬件要求 所需的RAM和磁盘空间取决于要使用哪个国家的地图。例如 英国地图至少需要12G内存和100GB磁盘空间。 整个行星地图至少需要32G RAM和1TB SSD(固态驱动器)。用旋转硬盘来绘制整个地球地图是不可行的。 如果要在web浏览器中预渲染分幅以加快地图加载速度,则需要更多磁盘空间,这是强烈建议的。查看此磁贴磁盘使用情况页面,查看预渲染磁贴需要多少磁盘空间。例如,如果要为行星地图预渲染从缩放级别0到缩放级别15的平铺,则需要额外的460 GB磁盘空间。 另外需要注意的是,将大型地图数据(如整个地球)导入PostgreSQL数据库需要很长时间。考虑添加更多的RAM,特别是使用SSD,而不是旋转硬盘来加速导入过程。 如果你打算主持整个世界地图,我建议你从康塔博购买超大VPS,康塔博以 10核CPU 60 GB内存 1.6 TB英特尔Optane SSD 每月只需26.99欧元。 第一步:升级软件 在服务器上进行任何主要工作之前,更新服务器软件始终是一种好的做法。通过SSH登录服务器并运行以下命令。 sudo-apt更新;sudo-apt升级 如果遇到以下错误, perl:警告:退回到备用语言环境(“en_US.UTF-8”)。perl:警告:设置区域设置失败。perl:警告:请检查您的区域设置:LANGUAGE=(unset)、LC_ALL=(unset)、LC_MONETARY=“zh_CN.UTF-8”、LC_ADDRESS=“zh_CN.UTF-8”、LC_TELEPHONE=“zh_CN.UTF-8”、LC_NAME=“zh_CN.UTF-8”、LC_IDENTIFICATION=“zh_CN.UTF-8”、LC_NUMERIC=“zh_CN.UTF-8”、LC_PAPER=“zh_CN.UTF-8”,LANG=“en_US.UTF-8”支持并安装在您的系统上。perl:警告:退回到备用语言环境(“en_US.UTF-8”)。 这意味着您的本地计算机正在尝试将locale环境变量发送到debian VPS,但debian没有安装locale。要解决此问题,请编辑SSH守护程序配置文件。 sudo nano/etc/ssh/sshd_config 向下滚动到最后,您将看到下面一行,它告诉SSH守护进程从SSH客户端接受环境变量。 接受朗信用证_* 将其更改为以下内容,使SSH守护进程不接受环境变量。 接受号 保存并关闭文件。然后重启SSH守护进程。 sudo systemctl重启ssh 注销并重新登录。您将不再看到区域设置错误。 第2步:安装PostgreSQL数据库服务器和PostGIS扩展 我们将使用PostgreSQL存储地图数据。PostGIS是PostgreSQL的地理空间扩展。运行以下命令来安装它们。 sudo apt安装postgresql postgresql contrib postgis postgresql-11-postgis-2.5 PostgreSQL数据库服务器将自动启动并侦听127.0.0.1:5432。安装过程中将在操作系统上创建postgres用户。它是PostgreSQL数据库服务器的超级用户。默认情况下,该用户没有密码,也不需要设置密码,因为您可以使用sudo切换到postgres用户并登录到PostgreSQL server。 sudo-u postgres-i 现在可以创建PostgreSQL数据库用户osm。 createuser osm 然后创建一个名为gis的数据库,同时让osm成为数据库的所有者-UTF8指定数据库中使用的字符编码方案为UTF8。 createdb-E UTF8-O osm gis 接下来,为gis数据库创建postgis和hstore扩展。 psql-c“创建扩展postgis-d gis psql-c“创建扩展存储-三维地理信息系统 将osm设置为表所有者。 psql-c“将表空间参考系统所有者更改为osm-三维地理信息系统 退出postgres用户。 出口 在操作系统上创建osm用户,以便平铺服务器可以作为osm用户运行。以下命令将创建一个没有密码的系统用户。 sudo adduser——系统osm 第3步:下载地图样式表和地图数据 切换到osm的主目录。 cd/home/osm/ 使用git将最新的CartoCSS地图样式表下载到osm用户的主目录。 sudo apt安装git git克隆https://github.com/gravitystorm/openstreetmap-carto.git 如果在运行上述命令时看到“权限被拒绝”错误,则可以使用以下命令授予权限。用真实用户名替换用户名。 sudo apt install acl sudo setfacl-R-mu:username:rwx/home/osm/ 接下来,运行以下命令以PBF(ProtoBufBinary)格式下载整个行星(50G)的地图数据。 wget-chttp://planet.openstreetmap.org/pbf/planet-latest.osm.pbf 请注意openstreetmap的下载速度。org当前限制为2048kb/s。您可以从另一个镜像下载植物地图,如 wget-chttps://download.bbbike.org/osm/planet/planet-latest.osm.pbf 如果你想要一张各个国家/州/省/市的地图,请访问http://download.geofabrik.de.还有,自行车。org以不同的格式提供了全球200多个城市和地区的摘录。例如,使用以下命令下载英国地图数据(1.1G)。 wget-chttp://download.geofabrik.de/europe/great-britain-latest.osm.pbf 第4步:优化PostgreSQL Server性能 导入过程可能需要一些时间。为了加快这个过程,我们可以调整一些PostgreSQL server设置以提高性能。编辑PostgreSQL主配置文件。 sudo nano/etc/postgresql/11/main/postgresql。形态 首先,我们应该更改共享缓冲区的值。默认设置为: 共享缓冲区=128MB 这个太小了。经验法则是将其设置为总RAM的25%(不包括交换空间)。例如,我的VPS有60G RAM,所以我将其设置为: 共享缓冲区=15GB 找到下面这行。 #工作_内存=4MB#维护_工作_内存=64MB 同样,该值太小。我使用以下设置。 工作记忆=1GB维护记忆=8GB工作记忆=8GB 然后找到下面一行。 #有效缓存大小=4GB 如果你像我一样有很多RAM,你可以为有效的缓存大小设置一个更高的值,比如20G。 有效缓存大小=20GB 保存并关闭文件。重新启动PostgreSQL以使更改生效。 sudo systemctl重启postgresql 默认情况下,PostgreSQL会尝试在RAM中使用巨大的页面。然而,Linux默认情况下不会分配巨大的页面。检查PostgreSQL的进程ID。 sudo head-1/var/lib/postgresql/11/main/postmaster。pid 样本输出: 7031 然后检查该进程ID的峰值。 grep^VmPeak/proc/7031/status 样本输出: 峰值:16282784 kB 这是PostgreSQL将使用的峰值内存大小。现在检查Linux中巨大页面的大小。 cat/proc/meminfo | grep-i巨大 样本输出: AnonHugePages:0 kB ShmemHugePages:0 kB HugePages_总计:0 HugePages_免费:0 HugePages_Rsvd:0 HugePages_剩余:0 HugePages大小:2048 kB Hugetlb:0 kB 我们可以计算出我们需要多少巨大的页面。将VmPeak值除以巨大页面的大小:16282784KB/2048KB=7950。编辑/etc/sysctl。conf文件。 sudo nano/etc/sysctl。形态 添加以下行以分配7950个大页面。 虚拟机。nr_hugepages=7950 保存并关闭文件。然后应用更改。 sudo sysctl-p 如果你再次查看meminfo, cat/proc/meminfo | grep-i巨大 我们可以看到有7950个巨大的页面可用。 AnonHugePages:0 kB ShmemHugePages:0 kB HugePages_总计:7950 HugePages_免费:7950 HugePages_Rsvd:0 HugePages_剩余:0 HugePages大小:2048 kB Hugetlb:16281600 kB 重新启动PostgreSQL以使用大型页面。 sudo systemctl重启postgresql 在远程服务器上使用屏幕 由于导入过程可能需要很长时间,并且您的计算机可能已断开与Internet的连接,因此建议使用screen实用程序使会话保持活动状态。Debian 10服务器上的安装屏幕: sudo apt安装屏幕 然后启动屏幕: 屏幕 第一次启动时,您将看到一个介绍文本,只需按Enter键即可结束。然后你就可以像往常一样运行命令了。 步骤5:将地图数据导入PostgreSQL 要导入地图数据,我们需要安装osm2pgsql,将OpenStreetMap数据转换为支持postGIS的PostgreSQL数据库。 sudo apt安装osm2pgsql 向postgres用户授予权限。 sudo setfacl-R-mu:postgres:rwx/home/osm/ 切换到postgres用户。 sudo-u postgres-i 运行以下命令将地图样式表和地图数据加载到gis数据库中。最新取代英国。奥斯曼。pbf与您自己的地图数据文件。 osm2pgsql--slim-dGIS--hstore--multi-geometry--number processs 10--tag transform script/home/osm/openstreetmap carto/openstreetmap carto。lua——style/home/osm/openstreetmap carto/openstreetmap carto。款式-C 32000/家居/osm/英国最新款。奥斯曼。pbf 哪里 --苗条模式:在苗条模式下运行,而不是在正常模式下运行。如果希望将来使用OSM更改文件(OSC)更新地图数据,则需要此选项。 -d gis:选择数据库。 --hstore:将不带列的标记添加到PostgreSQL表的另一个hstore(key/value)列中 --多重几何图形:在postgresql表中生成多重几何图形特征。 --样式:指定样式文件的位置 --进程数:服务器上的CPU核心数。我有10个。 -C标志以兆字节为单位指定缓存大小。它应该是你机器上可用内存的70%左右。缓存大小越大,导入速度越快。例如,我的服务器有60GB的空闲RAM,所以我可以指定-C 32000。请注意,PostgreSQL将需要用于共享缓冲区的RAM。使用此公式计算缓存大小应该有多大:(总RAM-PostgreSQL共享_缓冲区)*70% 最后,需要指定地图数据文件的位置。 命令输出: 如果要导入完整的行星地图数据,请使用--drop选项和--flat nodes选项来提高导入速度。请注意--flat nodes选项不适用于小贴图。 osm2pgsql--slim-dGIS--drop--flat nodes/home/osm/nodes。cache--hstore--multi-geometry--number processs 10--tag transform script/home/osm/openstreetmap carto/openstreetmap carto。lua——style/home/osm/openstreetmap carto/openstreetmap carto。款式-C 32000/家居/osm/planet最新款式。奥斯曼。pbf 在导入过程中,RAM的使用将逐渐增加。 现在,您可能不需要在服务器上执行其他操作。由于您使用的是Screen,所以可以按Ctrl+A,释放这些键,然后按D键从当前屏幕会话中分离。您将看到如下消息。 [与32113.pts-1.buster分离] 这告诉我之前的屏幕会话ID是32113。您可以从SSH会话中注销,甚至可以关闭计算机。别担心,OSM导入过程仍在运行。当需要返回并检查导入进度时,请将SSH连接到服务器并运行以下命令以获取上一个屏幕会话ID。 屏幕-ls 样本输出: 屏幕显示:32113。pts-1。buster(2020年5月19日03:45:29下午)(已分离)1个插座插入/运行/屏幕/S-linuxbabe。 然后可以重新连接到上一个屏幕会话。 屏幕-r 32113 这样你就能继续工作了。导入完成后,将gis数据库的所有权限授予osm用户。 psql-c“将模式公共中所有表的所有权限授予osm-三维地理信息系统 退出postgres用户。 出口 注意:如果osm2pgsql导入尚未完成,请不要继续执行步骤6。 第6步:安装mod_tile和Renderd mod_tile是一个Apache模块,需要为tiles提供服务,renderd是渲染OpenStreetMap tiles的渲染守护进程。默认的Debian Buster存储库不包括mod_tile和renderd,因此我们需要编译源代码。 首先,安装构建依赖项。 sudo apt安装git autoconf libtool libmapnik dev apache2 dev 然后从Github克隆存储库。 git克隆https://github.com/openstreetmap/mod_tile.gitcd mod_瓷砖/ 编辑一个文件。 纳米debian/compat 默认情况下,兼容性级别设置为7。但是,您应该使用兼容性级别9,所以将数字7更改为9。保存并关闭文件。 然后编辑另一个文件。 nano debian/changelog 找到第一行。 libapache2 mod tile(0.4-12~精度2)精确;紧急程度=低 将其更改为以下内容。0.4-12应改为0.4.12,精度2应改为buster。 libapache2 mod tile(0.4.12~buster)精确;紧急程度=低 保存并关闭文件。然后编译源代码包。 /自动发电。sh sudo dpkg建筑包-加州大学-美国 现在将有两个。deb包在上层目录中。用apt安装它们。 光盘sudo-apt-install/libapache2-mod-tile_0.4.12~buster_amd64。黛布/renderd_0.4.12~buster_amd64。黛布 在安装过程中,它将安装Apache web服务器,并询问您是否希望在Apache配置中启用mod_tile。选择Yes并按Enter键。这将为mod_tile(/etc/apache2/sites available/tileserver_site.conf)创建一个Apache配置文件。 渲染守护进程将自动启动,如下所示: systemctl状态呈现 第7步:生成Mapnik样式表 安装所需的软件包。 sudo apt install curl解压gdal bin mapnik utils libmapnik dev python3 pip python3-psycopg2 我们还需要使用以下命令从上游存储库安装nodejs和npm。 curl-sLhttps://deb.nodesource.com/setup_12.x| sudo-E bash-sudo apt get install-y nodejs 然后用npm安装carto软件包。 sudo npm安装-g carto 安装yaml Python模块。 sudo-H pip3安装pyyaml 切换到postgres用户。 sudo-u postgres-i 将Cd放入carto style目录。 cd/home/osm/openstreetmap carto/ 获取形状文件。 脚本/获取外部数据。py 如果在运行上述命令时遇到以下错误消息,则说明您存在DNS问题。只需等待几分钟,然后再次运行Python脚本。 未能建立新连接:[Errno-3]名称解析暂时失败 现在使用carto map样式表编译器构建Mapnik XML样式表。 carto项目。mml>;风格xml 将gis数据库的所有权限授予osm用户。 psql-c“将模式公共中所有表的所有权限授予osm-三维地理信息系统 退出postgres用户。 出口 第8步:安装字体 您需要安装ttf dejavu软件包。 sudo apt安装ttf dejavu 要显示非拉丁字符,请安装以下软件包。 sudo apt安装字体noto cjk字体noto cjk额外字体noto提示字体noto未连接ttf unifont 步骤9:配置renderd 编辑渲染配置文件。 sudo nano/etc/renderd。形态 在[renderd]部分,根据服务器上的CPU内核数更改线程数。 线程数=10 在[default]部分,将XML和HOST的值更改为以下值。请注意,以分号(;)开头的行这些都是评论。 XML=/home/osm/openstreetmap carto/style。xml HOST=tile。你的领域。通用域名格式 在[mapnik]部分,将plugins_dir的值更改为以下值。 plugins_dir=/usr/lib/mapnik/3.0/input/ 您可以使用以下命令打印默认的输入插件目录。 mapnik config——输入插件 如果要显示非拉丁字符,最好将字体设置更改为以下内容。 font_dir=/usr/share/fonts/truetype font_dir_recurse=true 保存并关闭文件。然后编辑init脚本文件 sudo nano/etc/init。d/renderd 找到下面这行。 RUNASUSER=www数据 将用户更改为osm。这是从PostgreSQL数据库加载地图数据所必需的。 RUNASUSER=osm 还要设置renderd配置文件的路径。 DAEMON_ARGS=“-c etc/renderd.conf” 保存并关闭文件。将osm设置为/var/lib/mod_tile/目录的所有者,该目录将保存渲染的tile文件。 sudo chown osm/var/lib/mod_tile/-R 然后重新启动renderd服务。 sudo systemctl守护进程重新加载sudo systemctl restart renderd 你需要查看renderd的日志。 sudo journalctl-欧盟趋势 确保renderd在重启后不会在日志中产生任何错误,否则地图将不会显示。 第10步:配置Apache 编辑OSM虚拟主机文件。 sudo nano/etc/apache2/sites available/tileserver_site。形态 将服务器名更改为您自己的域名,如tile。你的领域。通用域名格式。您还需要为此子域创建DNS记录。 服务器名互动程序。你的领域。通用域名格式 保存并关闭文件。重启Apache。 sudo systemctl重启apache2 然后在web浏览器地址栏中键入 瓦片你的领域。com/osm/0/0/0。巴布亚新几内亚 你应该看到世界地图的瓷砖。恭喜!您刚刚成功构建了自己的OSM磁贴服务器。 如果已启用UFW防火墙,请确保使用以下命令打开端口80和443。 sudo ufw允许80443/tcp 如果您看到404 not found错误,只需等待几分钟,在浏览器中刷新页面,它应该能够加载世界地图的平铺。如果仍然无法加载,则重新启动renderd服务(sudo systemctl restart renderd)。 第11步:显示平铺的网络地图 平铺网络地图在OpenStreetMap术语中也称为slippy地图。有两个免费的开源JavaScript地图库可用于tile服务器:OpenLayer和传单。传单的优点是使用简单,而且地图便于移动。 露天层 要使用OpenLayer显示你的slippy地图,请从OpenLayer下载JavaScript和CSS。组织并将其解压缩到webroot文件夹。 cd/var/www/sudo wgethttps://github.com/openlayers/openlayers/releases/download/v5.3.0/v5.3.0.zipsudo解压v5。3.0.拉链 接下来,创建索引。html文件。 sudo nano/var/www/index。html 在文件中粘贴以下HTML代码。替换红色文本,并根据需要调整经度、纬度和缩放级别。 <;!DOCTYPE html>&书信电报;html>&书信电报;头>&书信电报;meta charset=“UTF-8”大于&书信电报;标题>;无障碍地图</标题>&书信电报;link rel=“stylesheet”href=”http://tile.your-domain.com/v5.3.0/css/ol.css“type=“text/css”>;<;script src=”http://tile.your-domain.com/v5.3.0/build/ol.js“>;<;/script>;<;style>;a.skipling{位置:绝对;剪辑:rect(1px,1px,1px,1px);填充:0;边框:0;高度:1px;宽度:1px;溢出:隐藏;}”a、 skiplink:focus{clip:auto;height:auto;width:auto;background color:#fff;padding:0.3em;}#地图:焦点{轮廓:#4A74A8固体0.15em;}</风格></头>&书信电报;车身>&书信电报;a class=“skipling”href=“#map”>;转到地图</a>&书信电报;div id=“map”class=“map”tabindex=“0”></部门>&书信电报;按钮id=“缩小”>;缩小</按钮>&书信电报;按钮id=“放大”>;放大</按钮>&书信电报;脚本>;var map=新ol。Map({layers:[new ol.layer.Tile({source:new ol.source.OSM({url:'http://tile.your-domain.com/osm/{z} /{x}/{y}。png'})}),目标:'map',控件:ol。控制默认值({attributeoptions:/**@type{olx.control.attributeoptions}*/({collapsable:false})),视图:new ol。视图({center:[244780.245088823557386452.183179816],zoom:5});文件getElementById(“缩小”)。onclick=function(){var view=map.getView();var zoom=view.getZoom();view.setZoom(zoom-1);};文件getElementById(“放大”)。onclick=function(){var view=map.getView();var zoom=view.getZoom();view.setZoom(zoom+1);}</脚本></车身></html>; 保存并关闭文件。现在你可以通过在浏览器地址栏中输入你的子域来查看你的拖拉地图。 瓦片你的领域。通用域名格式 或 瓦片你的领域。com/index。html 传单 要使用Leftlet显示slippy地图,请从leftletjs下载JavaScript和CSS。com并将其解压缩到webroot文件夹。 cd/var/www/sudo wgethttp://cdn.leafletjs.com/leaflet/v1.7.1/leaflet.zipsudo解压传单。拉链 接下来,创建索引。html文件。 sudo nano/var/www/index。html 在文件中粘贴以下HTML代码。替换红色文本,并根据需要调整经度、纬度和缩放级别。 <;html>&书信电报;头>&书信电报;meta charset=“UTF-8”大于&书信电报;标题>;我的第一个osm</标题>&书信电报;link rel=“stylesheet”type=“text/css”href=“传单.css”/>&书信电报;script type=“text/javascript”src=“ployate.js”></脚本>&书信电报;风格>#地图{宽度:100%;高度:100%}</风格></头>&书信电报;车身>&书信电报;div id=“map”></部门>&书信电报;脚本>;var map=L.map('map')。setView([55,8],5);蒂莱莱耶http://tile.your-domain.com/osm/{z} /{x}/{y}。png',{maxZoom:18})。addTo(地图)</脚本></车身></html>; 保存并关闭文件。现在,您可以通过在浏览器中键入服务器IP地址来查看拖沓的地图。 瓦片你的领域。通用域名格式 或 瓦片你的领域。com/index。html 步骤12:预渲染瓷砖 动态渲染平铺将增加在web浏览器中加载地图的时间。要预渲染平铺而不是动态渲染,请使用以下render_list命令。使用-z和-z标志指定缩放级别,并根据服务器上的CPU内核数替换线程数。Render_list通过向渲染守护进程发送请求来渲染贴图分幅列表。预渲染的磁贴将缓存在/var/lib/mod_tile目录中。 render_list-m default-a-z 0-z 19--num threads=10 如果以后更新了贴图数据,可以使用--force选项再次预渲染所有分片。 render_list-m default-a-z 0-z 19--num threads=10--force 要在背景中渲染贴图分幅,请添加&;结尾的符号。 render_list-m default-a-z 0-z 19--num threads=10&; 现在你可以关闭终端窗口了。要检查呈现进度,请打开另一个SSH会话,然后运行以下命令。 sudo journalctl-欧盟趋势 上面的命令将显示renderd服务的最新日志。以下几行显示我的OSM服务器现在正在以缩放级别12渲染地图分幅。 renderd[20838]:调试:开始平铺默认值12 1008-1015 4056-4063,新metatile renderd[20838]:渲染投影坐标12 1008 4056->-10175297.205328 |-19724422.274944-10097025.688364 |-19646150.757980到一个8 x 8平铺渲染[20838]:调试:在0.799秒内完成平铺默认12 1008-1015 3984-3991渲染[20838]:调试:将协议版本2的渲染命令(3默认12/1008/3984)发送到fd 18渲染[20838]:调试:使用协议版本2 renderd[20838]获得传入请求:调试:获得命令RenderBulk fd(18)xml(默认),z(12),x(1008),y(4064),mime(图像/png),选项()渲染[20838]:调试:开始平铺默认值12 1008-1015 4064-4071,新metatile渲染[20838]:渲染投影坐标12 1008 4064->-10175297.205328 |-19802693.791908-10097025.688364 |-19724422.274944至8 x 8瓷砖 步骤13:启用HTTPS 为了加密HTTP流量,我们可以从Let's encrypt获得并安装免费的TLS证书。首先,在Debian 10上安装Let's Encrypt客户端(certbot)。 sudo apt安装certbot 因为我们使用的是ApacheWeb服务器,所以我们还需要安装Apache插件。 sudo apt安装python3 certbot apache 然后运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--stalke ocsp--must stalke--email[email ;protected]-d tile。你的领域。通用域名格式 安装证书后,刷新网页,您将在地址栏中看到一个锁。 如果你在Firefox地址栏中看到一个黄色的三角形,这意味着tile URL仍在使用HTTP。你需要编辑索引。html文件,并使用以下命令将所有HTTP协议替换为HTTPS。 sudo sed-i's/http/https/g'/var/www/index。html 步骤14:启用HTTP2 为了进一步提高映射加载性能,可以启用HTTP2协议。首先,需要启用HTTP2模块。 sudo a2enmod http2 然后打开SSL虚拟主机文件。 sudo nano/etc/apache2/sites enabled/tileserver_site-le-ssl。形态 在打开后放置以下指令<;VirtualHost*:443>;标签 协议h2 http/1.1 保存并关闭文件。然后重启Apache,使更改生效。 sudo systemctl重启apache2 使用HTTP Referrer标头限制对OSM磁贴服务器的访问 默认情况下,任何人都可以使用OpenLayer或传单创建一个带有tile服务器URL的滑动地图。要限制对tile服务器的访问,请编辑Apache虚拟主机文件。 sudo nano/etc/apache2/sites enabled/tileserver_site-le-ssl。形态 在<;VirtualHost>;标签。 <;位置/osm>;SetEnvIf Referer example/。com trusted_referer Order deny,allow deny from all allow from env=trusted_referer</地点>; 上面的代码检查HTTP referer头是否包含您自己的域。否则,将拒绝访问/osm目录。反斜杠用于转义点字符。要将多个主机名添加为受信任的引用程序,请使用以下语法。 SetEnvIf Referer(example/.com | www/.example/.com | map/.example/.com)可信的_Referer 保存并关闭文件。然后测试语法。 sudo apache2ctl-t 如果语法正确,请重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。只需打开root用户的crontab文件。 sudo crontab-e 在文件底部添加以下行。 @每日certbot更新——安静与&;systemctl重新加载apache2 不同主机上的PostgreSQL数据库和Web服务器 如果PostgreSQL和Apache web服务器位于不同的主机上,则需要编辑该项目。Apache主机上的mml文件。 nano/home/osm/openstreetmap-carto-4.20.0/project。嗯 找到以下几行: osm2pgsql:&;osm2pgsql类型:“postgis”dbname:“gis”键字段:“几何体”字段:“方式”范围:“-20037508,-200375082003750820037508” 指定PostgreSQL数据库服务器的IP地址。 osm2pgsql:&;osm2pgsql类型:“postgis”主机:“10.0.0.2”数据库名:“gis”键字段:“几何体”字段:“方式”范围:“-20037508,-200375082003750820037508” 保存并关闭文件。然后使用carto map样式表编译器构建Mapnik XML样式表。 carto项目。mml>;风格xml 在PostgreSQL数据库服务器上,编辑主配置文件。 sudo nano/etc/postgresql/11/main/postgresql。形态 添加以下行,将PostgreSQL设置为在所有接口上侦听。 听_addresses='*' 保存并关闭文件。然后编辑PostgreSQL客户端身份验证配置文件。 sudo nano/etc/postgresql/11/main/pg_hba。形态 在文件末尾添加以下行,以允许osm用户从Apache主机登录。将10.0.0.1替换为Apache主机的IP地址。 主机gis osm 10.0.0.1/32信任 保存并关闭文件。然后重新启动PostgreSQL。 sudo systemctl重启postgresql 在Apache主机上重新启动渲染守护程序。 sudo systemctl重新启动renderd 你需要查看renderd的日志。确保renderd不会在日志中产生任何错误,否则地图将不会显示。 sudo journalctl-欧盟趋势 还应限制对PostgreSQL数据库服务器端口5432的访问。例如,您可以使用以下UFW命令只允许Apache主机的IP地址。 sudo ufw允许从10.0.0.1进入任何端口5432 下一步 我希望本教程能帮助您在Debian 10上设置OpenStreetMap tile服务器。您可能还需要设置Namingm地理编码服务器以提供搜索功能。 在Debian 10上设置OSM Namingm地理编码服务器 和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?
-
在Debian 10 Buster上设置Apache Guacamole远程桌面
本教程将向您展示如何在Debian 10服务器上设置鳄梨酱远程桌面。GuaCAMOLE是由Apache软件基金会开发的一个免费的开源远程桌面网关。 鳄梨酱特色 它允许您从web浏览器访问远程桌面。不需要在客户端安装其他软件。 支持VNC、RDP、SSH和Kubernetes等标准协议。 VNC会话可以以图形方式记录。 使用CAS、OpenID Connect或SAML 2.0进行单点登录 唤醒局域网 轻松管理多个远程桌面会话。 支持TOTP双因素身份验证。 支持剪贴板(复制和粘贴)和通过SFTP传输文件。 支持音频输入和输出 还有更多。 鳄梨酱本身不是远程桌面协议。它是远程桌面和客户端之间的代理,因此可以在web浏览器中显示和控制远程桌面。 步骤1:从源代码构建鳄梨酱服务器 登录Debian 10服务器并安装依赖软件包。 sudo apt安装build essential libcairo2 dev libjpeg62 turbo dev libpng dev libtool bin libossp uuid dev libvncserver dev freerdp2 dev libssh2-1-dev libtelnet dev libwebsockets dev libpulse dev libvorbis dev libwebp dev libssl dev libpango1。0-dev libswscale dev libavcodec dev libavutil dev libavformat dev 下载最新稳定版本的鳄梨酱服务器。 wgethttp://mirror.cc.columbia.edu/pub/software/apache/guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz 提取档案。 tar-xvf鳄梨酱-server-1.2.0。焦油广州 切换到提取的目录。 cd鳄梨酱-server-1.2.0 配置构建环境。 ./configure--with init dir=/etc/init。D 然后编译鳄梨酱服务器。 sudo make 安装鳄梨酱服务器。 sudo make安装 更新已安装库的系统缓存。 sudo ldconfig 重新加载systemd,这样就可以找到安装在/etc/init中的Guacamole代理守护进程(Guacamole proxy daemon)服务。d/目录。 sudo systemctl后台程序重新加载 开始吃鳄梨酱。 sudo systemctl启动guacd 启动时启用自动启动。 sudo systemctl enable guacd 检查它的状态。 系统控制状态表 如你所见,它处于活动状态(正在运行)。 Guacd在127.0.0.1:4822上监听,如ss实用程序所示。 sudo ss-lnpt | grep guacd 第2步:安装鳄梨酱Web应用程序 鳄梨酱web应用程序是用Java编写的,所以我们需要安装一个Java Servlet容器,比如ApacheTomcat。 sudo apt安装tomcat9 tomcat9 admin tomcat9 common tomcat9 user Apache Tomcat将在端口8080上监听,如下所示: sudo ss-lnpt | grep java 如果有其他软件监听端口8080,那么Tomcat无法绑定到端口8080。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat(sudo systemctl restart tomcat9)。 接下来,下载鳄梨酱web应用程序。 wgethttps://downloads.apache.org/guacamole/1.2.0/binary/guacamole-1.2.0.war 将文件移动到web应用程序目录(/var/lib/tomcat9/webapps),同时重命名文件(删除版本号)。 sudo mv鳄梨酱-1.2.0。war/var/lib/tomcat9/webapps/guacamole。战争 重启Tomcat和guacd。 sudo systemctl重启tomcat9 guacd 第3步:配置鳄梨酱 为鳄梨酱创建一个配置目录。 sudo mkdir/etc/鳄梨酱/ 创建一个配置文件。 sudo nano/etc/鳄梨酱/鳄梨酱。属性 在此文件中添加以下行。有些人可能会说不需要添加这些行,因为它们是默认值。我向您展示了一个基本配置,以便您可以在需要时对其进行自定义。 #guacamole代理的主机名和端口guacd主机名:localhost guacd端口:4822#身份验证提供程序类(验证用户/密码组合,如果使用提供的登录屏幕,则需要)身份验证提供程序:net。sourceforge。鳄梨酱。网基本的BasicFileAuthenticationProvider基本用户映射:/etc/guacamole/user mapping。xml 保存并关闭文件。Guacamole中的默认身份验证模块从XML文件:/etc/Guacamole/user mapping中读取用户名和密码。xml。在创建此文件之前,我们需要使用以下命令为您的密码生成MD5哈希。将_密码替换为首选密码。 echo-n您的|密码| openssl md5 样本输出: (标准数据)=1060b7b46a3bd36b3a0d66e0127d0517 接下来,创建用户映射XML文件。 sudo nano/etc/guacamole/user mapping。xml 添加以下行。这里我们指定后端将使用VNC(虚拟网络计算)协议。替换用户名和密码哈希。稍后我们将创建一个VNC密码。 <;用户映射><;!——每用户身份验证和配置信息-->&书信电报;授权用户名=“您的首选用户名”密码=“1060b7b46a3bd36b3a0d66e0127d051”编码=“md5”>&书信电报;连接名称=“默认值”>&书信电报;协议>;vnc</协议>&书信电报;param name=“hostname”>;localhost</param>&书信电报;param name=“port”>;5901</param>&书信电报;param name=“password”>;vnc_密码</param></连接></授权></用户映射>; 保存并关闭文件。重启Tomcat和guacd。 sudo systemctl重启tomcat9 guacd 第4步:在Debian 10服务器上安装桌面环境 因为我们要设置一个远程桌面,所以我们需要一个桌面环境。在安装桌面环境之前,确保服务器有足够的RAM。有许多桌面环境。我发现轻量级XFCE桌面环境在VNC中运行良好,所以使用以下命令安装它。 sudo apt更新sudo apt安装xfce4 xfce4 goodies 在安装过程中,可能会要求您选择默认的显示管理器。这个选择无关紧要,因为在VNC会话中,您不会看到登录屏幕。 由于服务器上运行的是桌面环境,因此强烈建议您使用UFW之类的防火墙来限制访问,并仅向公众打开必要的端口。您可以阅读以下教程,了解如何在Debian上启用和使用UFW。 如何在Debian、Ubuntu、Linux Mint上使用UFW防火墙 步骤5:在Debian 10服务器上安装VNC服务器 Linux用户可以使用几种VNC服务器软件。我们将使用TigerVNC服务器,因为它最适合鳄梨酱。 sudo apt安装tigervnc独立服务器 运行以下命令以启动VNC服务器。 vncserver 当TigerVNC首次启动时,它会要求您设置VNC密码。请注意,密码不应超过8个字符。然后,您可以选择是否需要仅查看密码。 现在,您应该编辑/etc/guacamole/user映射。xml文件并更改VNC密码。然后重启Tomcat和Guad。 sudo systemctl重启tomcat9 guacd tigervnc独立服务器包附带一个文件/etc/X11/Xvnc会话,该会话告诉tigervnc在启动X服务器时启动X服务器。 TigerVNC服务器不附带任何systemd服务单元。为了在启动时启动,我们需要创建一个systemd服务单元。 sudo nano/etc/systemd/system/[电子邮件和#160;受保护] 在文件中添加以下行。用真实用户名替换用户名。 [Unit]Description=在=syslog之后为VNC启动X服务器的包装器。目标网络。target[Service]Type=forking User=username Group=username WorkingDirectory=/home/username ExecStartPre=-/usr/bin/vncserver-kill:%i>/开发/空2>&;1 ExecStart=/usr/bin/vncserver-depth 24-geometry 1280x800-localhost:%i ExecStop=/usr/bin/vncserver-kill:%i[Install]WantedBy=multi-user。目标 保存并关闭文件。停止当前的VNC服务器实例。 vncserver-kill:1 用systemd启动VNC服务器。 sudo systemctl start[电子邮件和#160;受保护] 启动时启用自动启动。 sudo systemctl启用[电子邮件和#160;受保护] 检查其状态: systemctl状态[电子邮件和#160;受保护] 如你所见,它处于活动状态(正在运行)。 现在TigerVNC服务器监听端口5901。 sudo ss-lnpt | grep vnc 步骤6:为鳄梨酱Web应用程序设置反向代理 Apache Tomcat正在监听端口8080。为了方便地访问Guacamole web应用程序,我们可以使用Apache或Nginx设置反向代理,以便最终用户能够使用域名访问web应用程序。它还允许我们轻松安装TLS证书来加密连接。 阿帕奇 如果您更喜欢使用Apache,那么从默认的Debian软件存储库安装Apache。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 然后为鳄梨酱创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/鳄梨酱。形态 在文件中添加以下行。更换鳄梨酱。实例使用你自己的域名。记住在DNS管理器中为子域创建A记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 <;虚拟主机*:80>;ServerName鳄梨酱。实例com ErrorLog${APACHE_LOG_DIR}/guacamole_error。log CustomLog${APACHE_log_DIR}/guacamole_访问。日志合并<;地点/>;要求所有授予的ProxyPasshttp://localhost:8080/guacamole/flushpackets=在ProxyPassReverse上http://localhost:8080/guacamole/</地点>&书信电报;位置/websocket隧道>;需要所有授予的代理权限ws://localhost:8080/guacamole/websocket tunnel代理权限ws://localhost:8080/guacamole/websocket tunnel</地点>;标题始终未设置X帧选项</VirtualHost>; 保存并关闭文件。测试语法。 sudo apachectl-t 如果Syntx正常,则启用此虚拟主机。 sudo a2ensite鳄梨酱。形态 重启Apache sudo systemctl重启apache2 现在,您可以通过鳄梨酱访问Apache鳄梨酱登录页面。实例通用域名格式。如果看到“无效请求”或类似的错误消息,则可能意味着Apache Tomcat无法绑定到端口8080,因为该端口已被服务器上的另一个进程占用。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat。 Nginx 如果您更喜欢使用Nginx,那么从默认的Debian软件存储库安装Nginx。 sudo apt安装nginx 为鳄梨酱创建服务器块文件。 sudo nano/etc/nginx/conf.d/guacamole。形态 在文件中添加以下行。更换鳄梨酱。实例使用你自己的域名。记住在DNS管理器中为子域创建A记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;listen[:]:80;服务器名guacamole.example.com;access_log/var/log/nginx/guac_access.log;error_log/var/log/nginx/guac_error.log;location/{proxy_passhttp://127.0.0.1:8080/guacamole/; 缓冲;proxy_http_版本1.1;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;代理设置头升级$httpU升级;代理设置头连接$httpU连接;代理_cookie_path/guacamole/;} 保存并关闭此文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在,您可以通过鳄梨酱访问Apache鳄梨酱登录页面。实例通用域名格式。如果看到“无效请求”或类似的错误消息,则可能意味着Apache Tomcat无法绑定到端口8080,因为该端口已被服务器上的另一个进程占用。您应该将另一个进程配置为使用不同的端口,然后重新启动Tomcat。 启用HTTPS 为了在访问鳄梨酱web界面时加密HTTP流量,我们可以通过安装Let's encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian 10上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d鳄梨酱。实例通用域名格式 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stapple ocsp--email[email ;protected]-d鳄梨酱。实例通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 您可以通过HTTPS访问鳄梨酱web界面。(https://guacamole.example.com). 登录后,您将能够使用远程桌面。 收尾 我希望本教程能帮助您在Debian 10服务器上设置Apache Guacamole远程桌面。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?
-
如何在Debian 10 Buster上安装Jellyfin媒体服务器
本教程将向您展示如何在Debian 10服务器/桌面上安装Jellyfin media server。Jellyfin是一款免费的开源应用程序,允许您在一个漂亮的界面中组织电影、电视节目、音乐和照片,并在网络或互联网上将这些媒体文件传输到PC、平板电脑、手机、电视、Roku等设备上。Jellyfin可以安装在Linux、MacOS和Windows上。 水母特征 Jellyfin是Emby媒体服务器的分支。它包含许多与Plex和Emby相同的功能。 与Plex或Emby不同,Jellyfin是100%免费和开源的。没有广告,移动应用没有播放限制。(尽管iOS应用程序不能在后台播放视频。) 观看电视直播并设置自动录音,以扩展您的库。 自动从DVDB、MovieDB、OpenMovie数据库和烂番茄中获取艺术品、元数据。 支持DLNA。 可以安装可选插件以提供附加功能。 支持使用FFMpeg对视频编码/解码进行硬件加速。 还有更多。 在Debian 10上安装Jellyfin媒体服务器 Jellyfin不包括在默认的Debian存储库中,但它有自己的存储库。运行以下命令将Jellyfin存储库添加到Debian 10系统。 echo“deb[arch=$(dpkg——打印架构)] main“| sudo tee/etc/apt/sources.list.d/jellyfin.list 接下来,运行以下命令将Jeffyfin GPG密钥导入Debian系统,以便APT可以在安装期间验证包的完整性。 wget-O-https://repo.jellyfin.org/jellyfin_team.gpg.key| sudo apt按键添加- 由于该存储库使用HTTPS连接,我们还需要安装apt传输HTTPS和ca证书包。 sudo apt安装apt传输https ca证书 最后,在Debian系统上更新包索引并安装Jellyfin。 sudo apt更新sudo apt安装jellyfin 此命令还将安装3个其他软件包作为依赖项: jellyfin ffmpeg:用于视频转码。 jellyfin服务器:后端服务器。 jellyfin web:前端web界面。 现在安装了Jellyfin media server,我们可以通过以下方式检查其状态: 系统控制状态 正如你所见,它正在我的Debian 10系统上运行。(按q键恢复对终端的控制。) 如果Jellyfin媒体服务器未运行,可以通过以下方式启动: sudo systemctl启动果冻 Jellyfin媒体服务器初始设置 基于网络的管理界面可在8096端口获得。您可以通过以下URL访问Jellyfin web界面。 如果在远程Debian服务器上安装了Jellyfin,则需要使用Nginx或Apache设置反向代理才能访问web UI,本教程稍后将对此进行解释。 第一步是选择你喜欢的语言。 在下一个屏幕上,创建一个用户帐户。 现在可以添加库了。单击添加媒体库按钮。 选择内容类型(电影、音乐、电视节目等)和显示名称。 然后单击加号(+)按钮选择内容文件夹。 请注意,jellyfin用户需要对您的媒体目录具有读取和执行权限。例如,我的2T外部硬盘安装在root所有的/media/linuxbabe/下。不在root组中的用户无法访问它,所以我运行以下命令来授予用户jellyfin读取和执行权限。(我不建议使用chown或chgrp命令更改所有权。使用setfacl命令就足够了。) sudo setfacl-MU:jellyfin:rx/media/linuxbabe/ 您可能还需要分配对各个媒体目录的权限,如下所示。 sudo setfacl-mu:jellyfin:rx/media/linuxbabe/目录名 添加递归标志(-R)很有诱惑力,该标志赋予jellyfin对驱动器上每个文件和子目录的读取和执行权限。 sudo setfacl-R-mu:jellyfin:rx/media/linuxbabe/ 如果您的外部硬盘仅用于存储媒体文件,那么您可以这样做,但如果您的外部硬盘上有敏感文件,请不要这样做。 添加完媒体文件夹后,可以配置库设置。选择你的语言、国家等。 点击Ok和Next按钮。以后可以添加更多库。下一步允许您选择是否启用远程访问。我不建议启用本机远程访问方法,因为它不提供HTTPS加密,所以请取消选中这两个复选框。如果您需要远程访问,请阅读本文后面的如何设置反向代理。 单击下一步并完成按钮。最后,登录你的Jellyfin帐户。 重做初始设置 如果在初始设置中出错,可以重新开始。首先,编辑Jellyfin配置文件。 sudo nano/etc/jellyfin/system。xml 改变 <;IsStartupWizardCompleted>;真的</IsStartupWizardCompleted>; 到 <;IsStartupWizardCompleted>;假</IsStartupWizardCompleted>; 保存并关闭文件。然后重启果冻。 sudo systemctl重启果冻 现在访问localhost:8096/web,您将再次看到安装向导。 在哪里下载电影和电视节目 使用像Florge这样的洪流客户端。 了解如何从Usenet下载。 Usenet的优势 因为其他人看不到你下载的内容,所以它给了你更好的隐私。 超高速下载速度。 文件的保存时间通常比torrent文件长得多。例如,Newsdemon将文件存储4430天(超过12年),因此您可以以非常快的速度下载旧内容。 设置反向代理 因为它监听127.0.0.1:8096,所以Jellyfin Web界面只对来自同一台计算机的连接可用。为了能够从远程计算机访问Jellyfin Web界面,我们可以使用Nginx或Apache为Jellyfin设置反向代理。 Nginx Nginx是一个非常流行的web服务器和反向代理。如果您更喜欢使用Nginx,请运行以下命令进行安装。 sudo apt安装nginx 然后为Jellyfin创建一个服务器块文件。 sudo nano/etc/nginx/conf.d/jellyfin。形态 将以下内容添加到此文件。更换鱼翅。实例使用你自己的域名。您还应该为此子域添加DNS a记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;listen[:]:80;服务器名jellyfin.example.com;访问日志/var/log/nginx/jellyfin.access;错误日志/var/log/nginx/jellyfin.error;设置$jellyfin 127.0.0.1;位置/{proxyu passhttp://127.0.0.1:8096; 代理设置头主机$Host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$方案;代理集头X转发协议$方案;proxy_set_header X-Forwarded-Host$http_Host;#当nginx代理在流媒体代理缓冲关闭时资源非常紧张时,禁用缓冲;}#/web的位置块-这纯粹是为了美观,所以/web/#!/可以工作,而不必转到/web/index。html/#!/地点~^/web/${#Proxy main Jellyfin traffic Proxy_pass http://$Jellyfin:8096/web/index.html/;Proxy_set_header Host$Host;Proxy_header X-Real-IP$remote_addr;Proxy_set_header X-Forwarded$Proxy_add_X_-Forwarded$Proto;Proxy_set_header X-Forwarded$scheme;Proxy_set_header X-Forwarded$Protocol$schemer X-Forwarded-Host$http_Host;}位置/套接字{#代理Jellyfin Websockets流量代理pass http://$127.0.0.1:8096;代理http version 1.1;代理set header Upgrade$http Upgrade;代理set header Connection“Upgrade”; 代理设置头主机$Host;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$方案;代理集头X转发协议$方案;proxy_set_header X-Forwarded-Host$http_Host;}安全/XSS缓解标题添加标题X-Frame-Options“SAMEORIGIN”;添加_头X-XSS-Protection“1;模式=块”;添加标题X-Content-Type-Options“nosniff”;} 保存并关闭此文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 现在,您可以通过Jellyfin访问Jellyfin媒体服务器。实例通用域名格式。 阿帕奇 如果您更喜欢Apache而不是Nginx,那么使用以下命令安装ApacheWeb服务器。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块和头模块。 sudo a2enmod代理u http头代理u wstunnel 然后为Jellyfin创建一个虚拟主机文件。 sudo nano/etc/apache2/网站可用/jellyfin。形态 将以下配置放入该文件。更换鱼翅。实例com与您的实际域名。别忘了为这个子域创建DNS记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 <;虚拟主机*:80>;服务器名jellyfin。实例com错误文件404/404。html#HTTP代理ProxyPass/http://localhost:8096/ProxyPassReverse/http://localhost:8096/#Websocket代理SSLProxyEngine on<;位置/:/websockets/notifications>;ProxyPasswss://localhost:8096/:/websockets/notificationsProxyPassReversewss://localhost:8096/:/websockets/notifications</地点>;标题始终未设置X帧选项</VirtualHost>; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite果冻。形态 重启Apache sudo systemctl重启apache2 现在,您可以使用域名Jellyfin访问Jellyfin媒体服务器。实例通用域名格式。 启用HTTPS 为了在您从外部访问Jellyfin服务器时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian 10上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d jellyfin。实例通用域名格式 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d jellyfin。实例通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 您可以通过HTTPS访问Jellyfin web界面:https://jellyfin.example.com. 如何在Debian 10上升级Jellyfin 当新版本的Jellyfin media server问世时,您可以通过执行以下命令对其进行升级。 sudo apt更新sudo apt升级 然后重启果冻。 sudo systemctl重启果冻 故障排除 如果Debian服务器运行WireGuard VPN,您可能会在Jellyfin日志(sudo journalctl-eu Jellyfin)中看到以下错误。 [ERR]从10.0.0.102向239.255.255.250:1900系统发送套接字消息时出错。网插座。SocketException(0xFFFFFFFF):ai_标志的错误值 此错误意味着无法将消息从WireGuard接口发送到239.255.255.250,这是SSDP(简单服务发现协议)多播地址。这是因为您的WireGuard接口不允许访问IP地址。 要解决此问题,请编辑WireGuard接口配置文件。 sudo nano/etc/wireguard/你的界面。形态 查找AllowedIPs参数。我的像下面。 AllowedIPs=10.0.0.0/8 如您所见,VPN客户端只允许连接到10.0.0.0/8网络。现在添加239.255.255.250地址。 AllowedIPs=10.0.0.0/8239.255.255.250 保存并关闭文件。重新启动WireGuard。 sudo systemctl重启[电子邮件和#160;受保护] 重启果冻。 sudo systemctl重启果冻 再次查看Jellyfin日志(sudo journalctl-eu Jellyfin)。上述错误应该消失。 收尾 我希望本教程能帮助您在Debian 10上安装Jellyfin media server。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?
-
如何在Debian服务器/桌面上安装SABnzbd Usenet客户端
SABnzbd是一个免费的开源和基于网络的Usenet客户端,用于在Usenet上下载二进制内容(图像、音频、视频、电子书等)。它是跨平台的,可用于Linux、BSD、macOS、UNIX、Windows、Synology、QNAP等。本教程将向您展示如何在Debian上安装SABnzbd。 SABnzbd功能 你可以通过网络浏览器从任何地方访问它。 响应迅速的网络界面。 支持多个Usenet服务器(提供程序)。 Android和iOS都提供移动应用程序 Sonar、Sickrage、Couch土豆和耳机等应用程序可以与SABnzbd集成,实现下载过程的自动化。 SABnzbd还可以读取和处理RSS提要,激活自定义脚本,并通过邮件、咆哮、徘徊、推送和推弹通知您。 NZB(Newz二进制)索引器集成。NZB文件类似于torrent文件,NZB索引器类似于torrent站点。 还有更多 如何在Debian上安装SABnzbd Usenet客户端 SABnzbd可从默认的Debian存储库获得。您需要启用contrib组件才能安装它。 sudo apt install软件属性公共sudo add apt repository contrib sudo apt update sudo apt install sabnzbdplus python sabyenc par2 SABYenc模块可以帮助提高CPU有限设备的下载速度。 为SABnzbd创建Systemd服务单元 尽管sabnzbdplus包提供了一个传统的Init脚本(/etc/Init.d/sabnzbdplus),但我发现它不起作用。我运行了以下命令来启动服务。 sudo服务sabnzbdplus启动 如果我用下面的命令列出Debian系统上的监听端口,那么找不到端口8080(默认情况下,SABnzbd监听端口8080)这表明它没有运行。 sudo ss-lnpt | grep 8080 启动SABnzbd的更好方法是使用Systemd服务单元。我们可以使用命令行文本编辑器(如Nano)为SABnzbd创建Systemd服务。 sudo nano/etc/systemd/system/sabnzbd。服务 将以下文本放入文件中。 [Unit]Description=SABnzbd Usenet Client After=网络。target[Service]Type=simple User=sabnzbd Group=sabnzbd ExecStart=/usr/bin/python-OO/usr/bin/sabnzbdplus--browser 0 ExecStop=/usr/bin/pkill sabnzbdplus Restart=always syslogidentier=sabnzbd Usenet Client[Install]WantedBy=multi-User。目标 默认情况下,SABnzbd监听端口8080。如果系统上的另一个进程正在使用这个端口,那么SABnzbd将自动选择另一个端口。我建议直接在ExecStart参数中选择一个端口,如下所示,这将使SABnzbd监听端口8081。 ExecStart=/usr/bin/python-OO/usr/bin/sabnzbdplus-s127.0.0.1:8081——浏览器0 保存并关闭文件。(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要关闭文件,请按Ctrl+X。) 然后重新加载系统D。 sudo systemctl后台程序重新加载 请注意,SABnzbd不需要root权限才能运行。所以我们已经在。SABnzbd应该作为没有根权限的SABnzbd用户和组运行的服务文件。使用以下命令创建sabnzbd系统用户和组。主目录将用于保存配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)。 sudo adduser——系统——home/home/sabnzbd——组sabnzbd 现在我们可以使用systemd服务启动sabnzbd。 sudo systemctl启动sabnzbd 启动时启用自动启动。 sudo systemctl启用sabnzbd 现在检查sabnzbd状态。 系统控制状态sabnzbd 样本输出: 启动安装向导 您可以在任何web浏览器中输入127.0.0.1:8080/sabnzbd/wizard以启动快速启动向导。如果在远程Debian服务器上安装了SABnzbd,则需要使用Nginx或Apache设置反向代理,以便访问web UI,本教程稍后将对此进行解释。 选择一种语言。在下一个屏幕中,输入Usenet提供商的服务器详细信息。我使用NewsDemon,它提供15天的免费试用期。这些服务器详细信息可以从您的Usenet提供商处获得。如果您的Usenet支持SSL,请确保勾选SSL。 为了从Usenet下载内容(图像、音频、视频、电子书等),您需要向SABnzbd提供一个NZB文件。NZB文件,类似于。torrent文件,可以从像nzbfinder这样的Usenet索引网站下载。ws。这些网站大多基于免费模式。你可以选择建立自己的免费Usenet indexer,但是现在对于一个Usenet初学者来说,在这些Usenet索引站点注册免费帐户是一个好主意,看看你能得到什么。从截图中可以看出,下载速度非常快。(16.8 MB/s=134.4 Mbit/s) 如何更改下载目标文件夹 默认的下载文件夹是/home/sabnzbd/Downloads。如果要将其更改为另一个目录,例如外部硬盘,请单击SABnzbd web界面中的文件夹菜单。然后单击浏览器按钮进行更改。 请注意,sabnzbd用户需要对下载目标文件夹具有读写权限。如果使用外部USB硬盘,可以运行以下命令授予权限。 sudo setfacl-R-mu:sabnzbd:rwx/media/linuxbabe/ 我的外部USB硬盘安装在/media/linuxbabe/,请根据需要进行更改。 设置反向代理 要使用域名从远程连接(例如局域网外)访问SABnzbd web界面,可以使用Nginx或Apache设置反向代理。 如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 Nginx 在Debian上安装Nginx。 sudo apt安装nginx 启动Nginx web服务器。 sudo systemctl start nginx 然后在/etc/nginx/conf.d/目录中创建一个新的服务器块文件。 sudo nano/etc/nginx/conf.d/sabnzbd。形态 将以下文本粘贴到文件中。替换sabnzbd。你的领域。com与您首选的域名,不要忘记为其创建DNS记录。如果使用不同的端口,请将8080更改为自己的端口号。 服务器{listen 80;listen[::]:80;服务器名sabnzbd.your-domain.com;位置/{proxy_passhttp://127.0.0.1:8080; 代理设置头主机$httpU主机;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$scheme;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx。 sudo systemctl重新加载nginx 现在,您可以通过SABnzbd访问SABnzbd Web界面。你的领域。通用域名格式。如果您看到以下错误: 访问被拒绝-主机名验证失败 然后需要编辑配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)并添加sabnzbd。你的领域。进入白名单。 host_whitelist=sabnzbd。你的领域。通用域名格式 然后重启SABnzbd。 sudo systemctl重启sabnzbd 阿帕奇 如果使用ApacheWeb服务器而不是Nginx,请按照以下说明设置反向代理。 安装Apache web服务器。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理模块,还需要启用重写模块。 sudo a2enmod代理服务器u http重写 然后为SABnzbd创建一个虚拟主机文件。 sudo nano/etc/apache2/sites available/sabnzbd。形态 将以下文本放入文件中。替换sabnzbd。你的领域。com与您的实际域名,不要忘记为其创建DNS a记录。如果使用不同的端口,请将8080更改为自己的端口号。 <;虚拟主机*:80>;服务器名sabnzbd。你的领域。com ProxyPass/http://127.0.0.1:8080/ProxyPassReverse/http://127.0.0.1:8080/</VirtualHost>; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite sabnzbd。形态 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 现在,您可以通过在浏览器地址栏中输入域名(SABnzbd.your-domain.com)远程访问SABnzbd。如果您看到以下错误: 访问被拒绝-主机名验证失败 然后需要编辑配置文件(/home/sabnzbd/.sabnzbd/sabnzbd.ini)并添加sabnzbd。你的领域。进入白名单。 host_whitelist=sabnzbd。你的领域。通用域名格式 然后重启SABnzbd。 sudo systemctl重启sabnzbd 启用HTTPS 为了在您从外部访问SABnzbd web界面时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Debian上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果您使用Nginx,那么您还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d sabnzbd。你的领域。通用域名格式 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d sabnzbd。你的领域。通用域名格式 哪里: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。 限制访问 如果可以从公共互联网访问SABnzbd,那么设置用户名和密码非常重要,这可以在配置中完成>;通用>;保安科。 收尾 就这样!我希望本教程能帮助您在Debian上安装SABnzbd。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?
-
如何使用纯FTPd在Debian 10上设置安全的FTP服务器
Pure FTPd是一款免费的开源FTP服务器,其设计考虑了安全性。在本教程中,我们将学习如何使用纯FTPd在Debian 10上设置FTP服务器,以及如何实施TLS加密。 纯FTPd功能: 它支持SSL/TLS加密,因此可以保护密码和命令。 它可以在大多数类Unix系统上运行:Linux、BSDs、Solaris、Darwin、HPUX、AIX,甚至iPhone。 有21种语言可供选择。 允许您监视活动会话。 支持虚拟配额系统。 还有更多 有关完整的功能列表,请访问Pure FTPd官方网站。 步骤1:在Debian 10服务器上安装Pure FTPd 它位于软件存储库中,因此发出以下命令来安装FTP服务器。 sudo apt安装纯ftpd 一旦安装,Pure FTPd将自动启动,如下命令所示: systemctl状态纯ftpd 输出: ● 纯ftpd。已加载服务:已加载(/etc/init.d/pure-ftpd;已生成)活动:自2021-06-16 13:15:52 UTC周三起活动(运行);23秒前的文档:man:systemd sysv generator(8)任务:1(限制:558)内存:972.0K CGroup:/system。切片/纯ftpd。服务└─9223纯ftpd(服务器) 如果它没有运行,请用以下代码启动: sudo systemctl启动纯ftpd 它在TCP端口21上监听,这是控制端口,可以从中看到 sudo ss-lnpt |格雷普纯ftpd 另一个端口是数据端口(TCP端口20),用户通过FTP传输文件时将使用该端口。 默认情况下禁用匿名访问。从现在起,您可以使用系统帐户登录,但纯文本FTP是不安全的,强烈建议不要使用。为了有一个安全的FTP服务器,我们需要加密与TLS的通信。 第2步:实施TLS加密 要同时启用纯文本和TLS加密,请运行以下命令,创建/etc/pure-ftpd/conf/TLS文件,并将数字1放入该文件中。 echo 1 | sudo-tee/etc/pure-ftpd/conf/TLS 但建议禁用纯文本,只使用TLS加密,因此将数字2改为文件。 echo 2 | sudo-tee/etc/pure-ftpd/conf/TLS 现在我们实施了TLS,我们需要获得有效的TLS证书。不建议使用自签名证书,因为用户会看到如下屏幕截图所示的警告消息。 步骤3:从Let's Encrypt获取受信任的TLS证书 运行以下命令,从默认的Debian 10存储库安装Let's Encrypt client(certbot)。 sudo apt安装certbot 我建议使用standalone或webroot插件获取纯FTPd的TLS证书。 独立插件 如果Debian 10服务器上没有运行web服务器,可以使用独立插件。运行以下命令。别忘了为你的子域设置DNS记录。 sudo certbot certonly--独立--首选挑战http--同意tos--电子邮件[email ;protected]-d ftp。实例通用域名格式 哪里: certonly:获取证书,但不要安装它。 --standalone:使用standalone插件获取证书 --首选挑战http:执行http-01挑战以验证我们的域,该域将使用端口80。 --同意:同意让我们加密服务条款。 --电子邮件:电子邮件地址用于帐户注册和恢复。 -d:指定你的域名。 从下面的截图可以看出,我成功地获得了证书。 使用webroot插件 如果Debian 10服务器有一个web服务器,那么最好使用webroot插件来获取证书,因为webroot插件几乎适用于所有web服务器,我们不需要在web服务器中安装证书。 首先,您需要为ftp创建一个虚拟主机。实例通用域名格式。 阿帕奇 如果您使用的是Apache,那么 sudo nano/etc/apache2/sites available/ftp。实例通用域名格式。形态 并将以下行粘贴到文件中。 <;虚拟主机*:80>;服务器名ftp。实例com DocumentRoot/var/www/Pure-FTPd</VirtualHost>; 保存并关闭文件。然后创建web根目录。 sudo mkdir/var/www/Pure-FTPd 将www数据(Apache用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/Pure-FTPd-R 启用此虚拟主机。 sudo a2ensite ftp。实例通用域名格式 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email ;protected]-d ftp。实例com-w/var/www/Pure-FTPd Nginx 如果您使用的是Nginx,那么 sudo nano/etc/nginx/conf.d/ftp。实例通用域名格式。形态 将以下行粘贴到文件中。 服务器{listen 80;listen[:]:80;server_name ftp.example.com;root/var/www/Pure-FTPd/;location~/.well-known/acme challenge{allow all;} 保存并关闭文件。然后创建web根目录。 sudo mkdir-p/var/www/Pure-FTPd 将www数据(Nginx用户)设置为web根目录的所有者。 sudo chown www-data:www-data/var/www/Pure-FTPd-R 重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 创建并启用虚拟主机后,运行以下命令以获取使用webroot插件加密证书。 sudo certbot certonly--webroot--agree tos--email[email ;protected]-d ftp。实例com-w/var/www/Pure-FTPd 步骤4:安装证书 Pure FTPd要求将证书和私钥合并到一个名为Pure FTPd的文件中。pem并存储在/etc/ssl/private/目录下。 更改为/etc/letsencrypt/live/ftp。实例com/directory。 sudo su-cd/etc/letsencrypt/live/ftp。实例com/ 您可以使用cat命令将两个文件合并为一个文件,如下所示。 猫全链。佩姆·普列夫基。pem | sudo-tee/etc/ssl/private/pure-ftpd。佩姆 确保只有root用户才能读取该文件。 sudo chmod 600/etc/ssl/private/pure-ftpd。佩姆 我们需要生成Diffie-Hellman参数: sudo openssl dhparam-out/etc/ssl/private/pure-ftpd dhparams。pem 4096 如果您的服务器只有一个CPU核心,那么这将需要很长时间(大约10分钟)。 完成后,重新启动纯FTPd。 sudo systemctl重新启动纯ftpd 检查状态以查看它是否正在运行。 systemctl状态纯ftpd 现在,您可以通过TLS连接到FTP服务器。 第5步:在防火墙中打开FTP端口 如果使用UFW防火墙,则运行以下命令打开TCP端口20和21。 sudo ufw允许20,21/tcp 第6步:连接到FTP服务器 如果您使用Nautilus file manager通过纯文本FTP://协议连接到FTP服务器 连接将被拒绝。 您必须使用ftps://,而不是ftp://。 默认情况下,FTP用户将被带到服务器上的/root目录。 请注意,Filezilla默认情况下不信任任何证书(自签名或CA签名)。用户必须选择为自己信任证书。 FileZilla未知证书警告 您需要使用FTP显式TLS协议(ftpes://ftp.example.com)在菲齐拉。 自动更新TLS证书 您可以创建Cron作业来自动续订TLS证书。只需打开根用户的crontab文件。 sudo crontab-e 在文件底部添加以下行。 @每日certbot更新——安静与&;cd/etc/letsencrypt/live/ftp。实例com/&&;猫全链。佩姆·普列夫基。pem | tee/etc/ssl/private/pure ftpd。pem&&;systemctl重新加载纯ftpd 有必要重新加载纯ftpd,使其获取新的证书和私钥。 收尾 我希望本教程能帮助您在Debian 10上使用纯FTPd设置一个安全的FTP服务器。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯。你也可以在Twitter或Facebook上关注我们。
-
如何使用Apache/Nginx在Ubuntu 20.04上安装FileRun
本教程将向您展示如何使用Apache/Nginx web服务器在Ubuntu 20.04 LTS上安装FileRun。FileRun是一款自托管的Google Drive/Photos/Music替代产品。 文件运行功能 不需要索引。它可以直接访问文件系统上的文件。 与NextCloud兼容。 自动文件版本控制。 100%可品牌化。上传你自己的标志。 可扩展。有很多插件可以让你创建和编辑office文件、CAD文件等。 访客用户。 整理、同步和共享您的照片。 内置音乐播放器和组织者 要求 要学习本教程,您需要域名和服务器。我在namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。一台1G内存的服务器足以运行FileRun。一旦你有了一台服务器,就在上面安装Ubuntu,并按照下面的说明操作。 FileRun是用PHP编写的,使用MySQL/MariaDB数据库。为了学习本教程,假设您已经在Ubuntu20.04上设置了LAMP或LEMP堆栈。如果没有,请查看以下教程之一: 如何在Ubuntu 20.04服务器上安装LAMP stack 如何在Ubuntu 20.04服务器上安装LEMP堆栈 当你设置完LAMP或LEMP堆栈后,回到这里继续阅读。 第一步:在Ubuntu 20.04上下载FileRun 通过SSH登录到服务器。您始终可以使用以下命令在服务器上下载最新版本的FileRun。 wget-O文件运行。拉链https://filerun.com/download-latest 下载后,使用解压功能提取归档文件。 sudo apt安装unzip sudo mkdir-p/var/www/filerun/sudo unzip filerun。zip-d/var/www/filerun/ -d选项指定目标目录。FileRun web文件将被提取到/var/www/FileRun/。然后我们需要将该目录的所有者更改为www数据,以便web服务器可以写入该目录。 sudo chown www-data:www-data/var/www/filerun/-R 第2步:在MariaDB中创建数据库和用户 使用以下命令登录MariaDB数据库服务器。 sudo mysql 或者,您也可以使用此命令登录。 sudo mariadb 然后为FileRun创建一个数据库。本教程将数据库文件命名为run。你可以用任何你喜欢的名字。 创建数据库文件运行; 创建数据库用户。同样,您可以使用此用户的首选名称。用首选密码替换密码。 创建用户filerun@localhost由“您的密码”标识; 授予此用户在filerun数据库上的所有权限。 授予filerun的所有权限。*到filerun@localhost; 刷新权限并退出。 同花顺特权;出口 步骤3:创建Apache或Nginx配置文件 阿帕奇 如果您更喜欢使用Apache web服务器,那么在/etc/apache2/sites available/目录中创建一个虚拟主机配置文件。 sudo nano/etc/apache2/sites available/filerun。形态 将以下文本放入文件中。替换filerun。实例使用你自己的域名。别忘了在DNS管理器中设置域名记录。 <;虚拟主机*:80>;服务器名文件运行。实例com DocumentRoot/var/www/filerun<;目录“/var/www/filerun”>;选项索引如下Symlinks AllowOverride All需要全部授予</目录>;ErrorLog${APACHE_LOG_DIR}/filerun。错误log CustomLog${APACHE_log_DIR}/filerun。通道日志合并</VirtualHost>; 保存并关闭文件。然后启用重写模块。 sudo a2enmod重写 然后启用这个虚拟主机。 sudo a2ensite文件运行。形态 重新启动Apache web服务器,使更改生效。 sudo systemctl重启apache2 Nginx 如果您更喜欢使用Nginx web服务器,那么创建一个filerun。conf文件位于/etc/nginx/conf.d/目录中。 sudo nano/etc/nginx/conf.d/filerun。形态 将以下文本放入文件中。替换filerun。实例使用你自己的域名。别忘了在DNS管理器中设置域名记录。 server{listen[:]:80;listen 80;server_name filerun.example.com;access_log/var/log/nginx/filerun.access.log;error_log/var/log/nginx/filerun.error.log;root/var/www/filerun/;index.php index.html;location/{try_files$uri$uri//index.php;}错误_第404/404页。html;错误_第500页502 503 504/50x。html;客户最大身体尺寸500米;位置=/50x。html{root/usr/share/nginx/html;}地点~/。php${fastcgi_pass unix:/run/php/php7.4-fpm.sock;fastcgi_-param SCRIPT_FILENAME$document_root$fastcgi_-SCRIPT_-name;include fastcgi_-params;include snippets/fastcgi-php.conf;}#启用gzip压缩gzip on;gzip_随时间而变化;gzip_min_长度1000;gzip_comp_5级;gzip_类型application/json text/css application/x-javascript application/javascript image/svg+xml;gzip#u代理任何;#较长的浏览器缓存寿命可以加快对页面位置的重复访问~*/。(jpg | jpeg | gif | png | webp | svg | woff | woff2 | ttf | css | js | ico | xml)${accesslog off log_not found off;expires 360d;}禁用对隐藏文件位置~//的访问。ht{access_log off;log_not_found off;deny all;} 保存并关闭文件。测试Nginx配置,然后重新加载Nginx以使更改生效。 sudo nginx-t sudo systemctl reload nginx 第4步:安装并启用PHP模块 运行以下命令来安装FileRun所需或推荐的PHP模块。 sudo apt安装imagemagick ffmpeg php imagick php7。4-mysql php7。4-fpm php7。4-常见php7。4-gd php7。4-json php7。4-卷曲php7。4-zip php7。4-XMLPHP7。4-Mb字符串php7。4-bz2 php7。4-intl Filerun使用ionCube加密其PHP文件,因此我们需要安装ionCube PHP加载程序来解密PHP文件。Dowload ionCube装载机。 wgethttps://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz 将其解压缩到/usr/lib/php/。 sudo tar-xzf ioncube装载机xzf lin x86-64。焦油gz-C/usr/lib/php 现在我们需要启用ioncube PHP扩展。 阿帕奇 如果使用Apache,则为ionCube创建PHP ini文件。 sudo nano/etc/php/7.4/apache2/conf.d/00-ioncube。伊尼 将以下行添加到此文件。 zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_7.4。所以 保存并关闭文件。我们需要创建第二个PHP ini文件。 sudo nano/etc/php/7.4/apache2/conf.d/filerun。伊尼 添加以下行。这是为了更改一些默认的PHP配置。 expose_php=Off error_reporting=E_ALL&~E_NOTICE display_errors=Off display_startup_errors=Off log_errors=On ignore_repeated_errors=Off allow_url_fopen=On allow_url_include=Off variables_order=“GPCS”allow_webdav_methods=On memory_limit=128M max_execution_time=300输出_缓冲=Off输出_handler=”“zlib。输出压缩=关闭zlib。output_handler=”“safe_mode=Off register_globals=Off magic_quotes_gpc=Off upload_max_filesize=20M post_max_size=20M enable_dl=Off disable_functions=”“disable_classes=”“session。save_handler=文件会话。使用u cookies=1个会话。仅使用u cookies=1个会话。自动启动=0个会话。cookie_lifetime=0会话。cookie_httponly=1个日期。时区=“UTC” 保存并关闭文件。重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 Nginx 如果使用Nginx,请编辑php。ini文件。 sudo nano/etc/php/7.4/fpm/php。伊尼 在[PHP]行的正下方添加以下行。 zend_extension=/usr/lib/php/ioncube/ioncube_loader_lin_7.4。所以 保存并关闭文件。我们需要创建第二个PHP ini文件。 sudo nano/etc/php/7.4/fpm/conf.d/10-ioncube。伊尼 添加以下行。这是为了更改一些默认的PHP配置。 expose_php=Off error_reporting=E_ALL&~E_NOTICE display_errors=Off display_startup_errors=Off log_errors=On ignore_repeated_errors=Off allow_url_fopen=On allow_url_include=Off variables_order=“GPCS”allow_webdav_methods=On memory_limit=128M max_execution_time=300输出_缓冲=Off输出_handler=”“zlib。输出压缩=关闭zlib。output_handler=”“safe_mode=Off register_globals=Off magic_quotes_gpc=Off upload_max_filesize=20M post_max_size=20M enable_dl=Off disable_functions=”“disable_classes=”“session。save_handler=文件会话。使用u cookies=1个会话。仅使用u cookies=1个会话。自动启动=0个会话。cookie_lifetime=0会话。cookie_httponly=1个日期。时区=“UTC” 保存并关闭文件。然后重启Nginx和PHP7。4-FPM。 sudo systemctl重启nginx php7。4-fpm 现在,您应该可以访问以下位置的FileRun基于web的安装向导:http://filerun.example.com,但在输入任何信息之前,让我们启用HTTPS。 第5步:启用HTTPS 为了在访问FileRun web界面时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Ubuntu 20.04上安装Let's Encrypt client(certbot)。 sudo apt更新sudo apt安装certbot 如果使用Nginx,还需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 然后运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d filerun。实例通用域名格式 如果使用Apache,还需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 然后运行此命令以获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d filerun。实例通用域名格式 说明: --nginx:使用nginx插件。 --apache:使用apache插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。  ; 第6步:在Web浏览器中完成安装 去https://filerun.example.com启动基于web的安装向导。然后点击下一步按钮。 它将检查您的系统是否满足PHP扩展等要求。如果满足所有要求,请单击“下一步”。 在下一步中,输入您在步骤2中创建的MariaDB用户名、密码和数据库名称。 单击“下一步”后,安装向导将自动创建用户帐户。单击“下一步”继续。 在下一个屏幕上,您可以使用超级用户帐户登录。首次登录时,您需要为超级用户帐户创建一个主文件夹。 可以使用以下命令为超级用户创建主文件夹。 sudo mkdir/var/www/superuser sudo chown www-data/var/www/superuser/-R 然后在FileRun web界面中输入文件夹路径。并保存更改。 下一步,转到安全->;API来启用API,以便客户端应用程序可以与服务器同步。 安装FileRun桌面同步客户端 在桌面上,FileRun使用Nextcloud客户端与服务器同步。在Ubuntu桌面上,您可以通过以下方式安装Nextcloud客户端: sudo apt安装nextcloud桌面 有关如何在其他平台上安装客户端应用程序,请查看FileRun下载页面。 如何设置电子邮件通知 如果有多个用户,那么最好让FileRun能够发送密码重置电子邮件等电子邮件通知。有关如何设置电子邮件服务器,请查看以下教程。请注意,我强烈建议在全新干净的操作系统上运行iRedMail邮件服务器。在具有其他web应用程序的操作系统上安装iRedMail可能会失败,并可能破坏现有的应用程序。 如何使用iRedMail在Ubuntu20.04上轻松设置功能齐全的邮件服务器 如果您不想运行自己的电子邮件服务器,可以设置SMTP中继。请参阅以下教程。 如何在Ubuntu20.04服务器上设置后缀SMTP中继 收尾 就这样!我希望本教程能帮助您使用Apache或Nginx在Ubuntu20.04服务器上安装FileRun。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?
-
在Ubuntu上设置自动安全更新(无人参与升级)
本教程将向您展示如何在Ubuntu上设置自动安全更新,即无人值守升级。如果你不是住在洞穴下,那么你可能知道Equifax的大规模数据泄露。2017年5月至7月期间,1.43亿Equifax客户信息被盗,包括姓名、社保号、出生日期、驾照、20万个信用卡号码。 在2017年3月,Apache结构中的一个关键漏洞被发现,Apache基金会发布了一个修复程序,当他们宣布存在漏洞时。然而,Equifax有两个月没有修补该漏洞,导致了大规模数据泄露。运行复杂应用程序的公司可能需要在安装更新之前进行大量测试,但如果您有一台供个人使用的简单Linux服务器,则可以启用自动安全更新以尽快修补漏洞。 在Ubuntu服务器上配置自动安全更新(无人参与升级) 首先,安装无人值守升级包。 sudo apt更新sudo apt安装无人值守升级 您需要安装update notifier common软件包才能设置自动重新启动。 sudo-apt-install-update-notifier-common 然后编辑文件。 sudo nano/etc/apt/apt.conf.d/507-upgrades 在这个文件中,您可以配置应该自动更新的包。默认情况下,只会自动安装安全更新,如下行所示。所以没有必要改变这一部分。 无人参与升级::允许的来源{“${distro_id}:${distro_codename}”;“${distro_id}:${distro_codename}-安全”;//延长安全维护;不一定存在于//每个版本,并且此系统可能没有安装它,但是如果//可用,更新的策略是,默认情况下,无人参与的升级//也应该从这里安装。“${distro_id}ESMApps:${distro_codename}-应用程序安全”;“${distro_id}ESM:${distro_codename}-基础安全”//“${distro_id}:${distro_codename}-更新”//“${distro_id}:${distro_codename}-建议”//“${distro_id}:${distro_codename}-后端口”;}; 第一个来源“${distro_id}:${distro_codename}”是必需的,因为安全更新可能会从非安全源引入新的依赖项。此来源不提供软件更新。 第二个来源是定期的安全更新。 第三个和第四个来源(ESMaps和ESM)用于扩展安全维护,也就是说,对于那些运行Ubuntu版本的人来说,它已经到了生命的尽头。你可以保持原样。 电子邮件通知 有时Ubuntu可能无法安装安全更新,因此需要手动更新。如果您希望在每次安全更新后收到电子邮件通知,请查找下面的行并取消注释。(删除开头的双斜线。) Ubuntu 18.04 //无人参与升级::邮件“root”; Ubuntu 20.04 //无人参与升级::邮件“”; 您可以指定接收通知的电子邮件地址,如下所示。 无人参与升级::邮件“[email ;受保护]”; 如果您希望仅在安全更新过程中出现错误时接收电子邮件通知,请取消对以下行的注释。 Ubuntu 18.04 //无人参与升级::MailOnlyOnError“true”; 在Ubuntu20.04上,您需要找到以下行 //无人参与升级::MailReport“on change”; 取消注释,并在更改为时进行更改 无人参与升级::MailReport“仅在出错时”; 自动删除未使用的依赖项 您可能需要在每次更新后执行sudo apt autoremove,因此请查看以下行: //无人参与升级::删除未使用的依赖项“false”; 取消对此行的注释,并将false更改为true。 无人参与升级::删除未使用的依赖项“true”; 自动重启 安装Linux内核的安全更新后,需要重新启动Ubuntu服务器才能应用内核更新。如果服务器仅由您或少数人使用,则启用自动重新启动会很方便。找到下面这行。 //无人参与升级::自动重新启动“错误”; 取消对其注释,并将false更改为true以启用自动重新启动 无人参与升级::自动重启“真”; 您还可以指定执行重新启动的时间。默认情况下,在安装内核更新后立即重新启动。我将其设置为凌晨4点重新启动。确保为服务器设置了正确的时区。 无人值守升级:自动重启时间“04:00”; 保存并关闭文件。 如果服务器正在被许多用户使用,或者需要很长的正常运行时间(比如这个博客),那么不应该启用自动重启。相反,您可以使用Canonical livepatch来修补Linux内核,而无需重新启动。 Canonical LivePatch服务:在不重新启动的情况下在Ubuntu上修补Linux内核 启用自动安全更新 现在已经配置了自动安全更新,我们需要通过创建20auto upgrades文件来启用它。 sudo nano/etc/apt/apt.conf.d/20auto-upgrades 将以下两行复制并粘贴到文件中。 APT::定期::更新包列表“1”;APT::定期::无人值守升级“1”; 第一行使apt每天自动执行“apt get update”。如果设置为2,则每隔一天。(0=禁用) 第二行使apt能够自动安装安全更新。(1=已启用,0=已禁用) 保存并关闭文件。 在特定时间运行无人值守升级 无人值守升级在上午12点到7点之间随机运行,以防止由于每个人同时运行更新而导致镜像服务器负载激增。您可以通过以下方式手动运行无人值守升级: sudo无人值守升级-v 还可以将此命令添加到Cron作业中。 sudo crontab-e 在Crontab文件的底部添加以下行,这样无人参与的升级将在每天凌晨2点运行。 0 2***sudo/usr/bin/无人值守升级-v 设置SMTP中继 为了在每次安全更新后接收电子邮件通知,您的服务器需要能够发送电子邮件。如果这是您的电子邮件服务器,那么唯一要做的就是安装bsd mailx包。 sudo apt安装bsd mailx 如果这不是电子邮件服务器,则需要设置SMTP中继。我们可以安装Postfix SMTP服务器,然后通过电子邮件服务提供商转发电子邮件。 有几个电子邮件服务提供商(ESP)可以充当中继主机。有些收取一点费用,有些每月提供免费配额。在本文中,我想向您展示如何使用Sendinblue,这是一家电子邮件服务提供商,允许您每天免费发送300封电子邮件。 在sendinblue创建一个免费帐户。通用域名格式。完成用户配置文件后,单击事务选项卡,您将获得SMTP设置。如果没有SMTP设置,您需要联系Sendinblue客户服务以激活事务性电子邮件服务。 现在,您需要配置Postfix SMTP服务器以使用Sendinblue SMTP设置。 让我们用下面的命令在Ubuntu上安装Postfix SMTP服务器。 sudo apt安装后缀libsasl2模块 当您看到以下消息时,按Tab键并按Enter键。 然后选择第二个选项:互联网站点。 接下来,设置系统邮件名称。例如,我输入我的域名linuxbabe。通用域名格式。 安装Postfix后,使用命令行文本编辑器(如Nano)打开主配置文件。 sudo nano/etc/postfix/main。查阅 找到下面这行。 relayhost= 默认情况下,其值为空。将relayhost的值设置为[smtp relay.sendinblue.com]:587。 relayhost=[smtp relay.sendinblue.com]:587 然后将以下行添加到此文件的末尾。 #出站中继配置smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_sasl_security_options=noanonymous smtp_tls_security_level=may header_size_limit=4096000 保存并关闭文件。然后创建/etc/postfix/sasl_passwd文件。 sudo nano/etc/postfix/sasl_passwd 将SMTP中继主机和SMTP凭据添加到此文件,如下所示。用SendinBlue提供的您自己的用户名和密码替换smtp_用户名和smtp_密码。注意用户名和密码之间有一个冒号。 [smtp relay.sendinblue.com]:587 smtp_用户名:smtp_passowrd 保存并关闭文件。然后用postmap创建相应的hash db文件。 sudo postmap/etc/postfix/sasl_passwd 现在你应该有一个文件/etc/postfix/sasl_passwd。db。重新启动Postfix以使更改生效。 sudo systemctl重启后缀 默认情况下,sasl_passwd和sasl_passwd。数据库文件可以被服务器上的任何用户读取。将权限更改为600,这样只有root用户才能读写这两个文件。 sudo chmod 0600/etc/postfix/sasl_passwd/etc/postfix/sasl_passwd。分贝 从现在起,Postfix将通过Sendinblue发送电子邮件。 添加发件人地址 单击Sendinblue account仪表板右上角的下拉菜单,然后选择发件人&;“IP”选项卡以添加您的域和发件人地址。 发送测试电子邮件 现在我们可以使用mailx命令发送测试电子邮件,如下所示。 sudo apt install bsd mailx echo“这是一封测试电子邮件。”|mailx-r from address-s hello to address 如果SMTP配置正确,您将收到一封电子邮件。 电子邮件不发送? 您可以查看邮件日志(/var/log/mail.log)来调试电子邮件不发送的原因。 如果在/etc/postfix/main中用括号包装中继主机。cf文件。 relayhost=[smtp relay.sendinblue.com]:587 然后还需要将主机名包装在/etc/postfix/sasl_passwd文件中。 [smtp relay.sendinblue.com]:587[email ;protected]:YourGmail密码 记住重新生成hash db文件。 sudo postmap/etc/postfix/sasl_passwd 重新启动Postfix以使更改生效。 sudo systemctl重启后缀 禁止接收电子邮件 默认情况下,Postfix配置为接受传入邮件。您可以将Postfix配置为仅发送电子邮件,但不接受传入的电子邮件。在/etc/postfix/main中找到以下行。cf文件。 inet_接口=全部 将其更改为以下文本,以便Postfix只在本地主机上侦听。 inet_接口=仅环回 电子邮件报告 无人值守升级可能会发送3封电子邮件: 无人参与升级返回:True。这意味着软件包安装成功。 无人参与升级返回:False。这意味着在安装更新时发生了一些错误。通常需要人工干预。如果您收到此电子邮件,您需要手动运行sudo apt升级。 无人参与升级返回:无。有可用的更新,但系统拒绝安装。 日志 日志可以在/var/log/Understand upgrades/目录中找到。 检查重启 checkrestart命令可以帮助您确定升级后需要重新启动哪些进程。可从debian goodies package购买。 sudo apt安装debian goodies sudo checkrestart 收尾 我希望本教程能帮助你在Ubuntu服务器上进行无人值守的升级。和往常一样,如果你觉得这篇文章有用,订阅我们的免费时事通讯,获取更多提示和窍门?
-
如何在Ubuntu 20.04服务器上安装Webmin
Webmin是一个免费的开源控制面板,用于管理Unix/Linux服务器。本教程将向您展示如何在Ubuntu 20.04服务器上安装Webmin。 本教程也适用于Ubuntu 20.10。 Webmin为用户提供基于web的图形用户界面,以配置常见的系统任务和设置。如果您不喜欢使用命令行管理服务器,那么Webmin是一个很好的图形化替代方案。以下是Webmin提供的功能列表。 绑定DNS解析程序和权威DNS服务器 档案伺服器 FTP服务器 Postfix SMTP服务器和Dovecot IMAP/POP3服务器。 文件系统备份 配置日志文件旋转。 编辑软件包存储库,安排自动软件更新,并通过电子邮件接收更新报告。 管理用户和组 安排Cron作业。 配置iptables防火墙 还有更多。 从Webmin存储库在Ubuntu20.04上安装Webmin 自1997年以来,Webmin一直存在。在撰写本文的时候,最新的稳定版本是1.970,它是在2021年1月6日发布的。Webmin不在Ubuntu软件库中。建议您从其官方存储库安装Webmin,以便始终获得最新版本。 要添加Webmin存储库,请使用命令行文本编辑器(如Nano)创建源列表文件。 sudo nano/etc/apt/sources。列表d/webmin。列表 在文件中添加以下行。 黛布http://download.webmin.com/download/repository特雷布中士 保存并关闭文件。要在Nano文本编辑器中保存文件,请按CTRL+O,然后按Enter确认。要关闭文件,请按CTRL+X。接下来,我们需要运行以下命令下载Webmin PGP签名密钥并将其导入APT keyring,以便APT软件包管理器可以验证从Webmin存储库下载的软件包的完整性。 wgethttp://www.webmin.com/jcameron-key.asc 然后将其导入: sudo apt键添加jcameron键。asc 现在我们可以更新本地包索引并安装Webmin。 sudo apt更新sudo apt安装webmin-y 一旦安装,Wemin内置web服务器将自动启动,可以通过运行下面的systemctl命令看到: systemctl状态webmin 输出: 提示:如果上述命令没有立即退出,您可以按Q键重新控制终端。 如果它没有运行,可以从以下内容开始: sudo systemctl start webmin Webmin服务器监听端口10000。如果在服务器上使用UFW之类的防火墙,则需要打开TCP端口10000。 sudo ufw允许10000/tcp 现在,您可以通过 https://your-server-ip:10000 因为它在HTTPS模式下运行,并且使用自签名TLS证书,所以浏览器会告诉您连接不安全。 但你知道这是你自己的服务器,所以只需点击Firefox中的Advanced选项卡并添加exception。如果您使用的是谷歌Chrome,您可以单击高级->;继续 现在,您将看到Webmin登录屏幕。你可以在Ubuntu20.04系统上使用root或sudo组中的任何用户帐户登录。 如果您不喜欢导航菜单上的默认颜色,可以通过单击导航菜单底部的主题配置图标将其更改为其他颜色, 然后选择导航菜单选项并设置调色板。例如,我选择了午夜蓝色。 把零钱存起来。 设置反向代理 如果在生产服务器上安装Webmin,则可能需要使用Apache或Nginx设置反向代理,以便在不指定端口号(10000)的情况下使用域名访问Webmin接口。这还允许您为Webmin获取并安装有效的Let's Encrypt TLS证书。 如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 阿帕奇 如果您更喜欢使用ApacheWeb服务器,请按照以下说明设置反向代理。 安装Apache web服务器。 sudo apt安装apache2 要使用Apache作为反向代理,我们需要启用代理、代理和重写模块。 sudo a2enmod代理服务器u http重写 然后为Webmin创建一个虚拟主机文件。 sudo nano/etc/apache2/sites available/webmin。形态 将以下文本添加到文件中。替换webmin。你的领域。com与您的实际域名,别忘了为它创建DNS记录。 <;虚拟主机*:80>;服务器名webmin。你的领域。com ProxyPass/http://127.0.0.1:10000/ProxyPassReverse/http://127.0.0.1:10000/</VirtualHost>; 保存并关闭文件。然后启用这个虚拟主机。 sudo a2ensite webmin。形态 重新加载Apache以使更改生效。 sudo systemctl重新加载apache2 现在,您可以通过在浏览器地址栏中输入域名(Webmin.your-domain.com)远程访问Webmin。 Nginx 如果您更喜欢使用Nginx web服务器,请按照以下说明设置反向代理。 在Ubuntu上安装Nginx。 sudo apt安装nginx 启动Nginx web服务器。 sudo systemctl start nginx 然后在/etc/nginx/conf.d/目录中创建一个新的服务器块文件。 sudo nano/etc/nginx/conf.d/webmin。形态 将以下文本粘贴到文件中。替换webmin。你的领域。com与您首选的域名,不要忘记为其创建DNS记录。 服务器{listen 80;listen[:]:80;服务器名webmin.your-domain.com;访问日志/var/log/nginx/webmin.access;错误日志/var/log/nginx/webmin.error;位置/{proxyu passhttp://127.0.0.1:10000; #代理设置头主机$httpU主机;proxy_set_header X-Real-IP$remote_addr;proxy_set_header X-Forwarded-For$proxy_add_X_Forwarded_For;proxy_set_header X-Forwarded-Proto$scheme;} 保存并关闭文件。然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx。 sudo systemctl重新加载nginx 现在,您可以通过Webmin访问Webmin Web界面。你的领域。通用域名格式。 启用HTTPS 为了在访问Webmin web界面时加密HTTP流量,我们可以通过安装Let’s encrypt颁发的免费TLS证书来启用HTTPS。运行以下命令在Ubuntu上安装Let's Encrypt client(certbot)。 sudo apt安装certbot 如果使用Apache,则需要安装Certbot Apache插件。 sudo apt安装python3 certbot apache 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--apache--agree tos--redirect--hsts--StapleOCSP--email[email ;protected]-d webmin。你的领域。通用域名格式 如果使用Nginx,则需要安装Certbot Nginx插件。 sudo apt安装python3 certbot nginx 接下来,运行以下命令获取并安装TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--staple ocsp--email[email ;protected]-d webmin。你的领域。通用域名格式 哪里: --apache:使用apache插件。 --nginx:使用nginx插件。 --同意:同意服务条款。 --重定向:通过301重定向强制HTTPS。 --hsts:为每个HTTP响应添加严格的传输安全头。强制浏览器始终对域使用TLS。防止SSL/TLS剥离。 --装订ocsp:启用ocsp装订。有效的OCSP响应被绑定到服务器在TLS期间提供的证书上。 现在应获得证书并自动安装。您将能够通过安全的HTTPS连接访问Webmin web界面。 添加受信任的推荐人 因为Webmin本身是在HTTP模式下运行的,我们在Apache/Nginx中启用了HTTPS,所以Webmin会认为https://webmin.your-domain.com在Webmin服务器之外。所以我们需要添加可信的推荐人。 编辑Webmin配置文件。 sudo nano/etc/webmin/config 在末尾添加以下行。 referers=webmin。你的领域。通用域名格式 保存并关闭文件。然后重启Webmin。 sudo systemctl重启webmin 在Webmin中禁用HTTPS模式 既然TLS连接在Apache/Nginx上终止,我们需要在Webmin的内置web服务器中禁用HTTPS模式。编辑Webmin配置文件。 sudo nano/etc/webmin/miniserv。形态 找到下面这行。 ssl=1 将其更改为以下内容,以在Webmin中禁用HTTPS模式。 ssl=0 我们还可以在这个文件中添加以下行,这样内置的web服务器只允许从localhost进行访问。使用http://public-ip:10000这个计划将被禁止。 允许=127.0.0.1 保存并关闭文件。然后重启Webmin。 sudo systemctl重启webmin 故障排除 如果发现任何错误,可以查看Webmin错误日志(/var/Webmin/miniserv.error)以进行故障排除。 收尾 我希望本教程能帮助你在Ubuntu 20.04上安装Webmin。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门?
-
使用Nginx(LEMP堆栈)在Ubuntu20.04上安装ProjectSend
本教程将向您展示如何使用Nginx web服务器在Ubuntu 20.04 LTS上安装ProjectSend。 ProjectSend是什么? ProjectSend是一个免费的开源自托管文件共享解决方案。ProjectSend功能: 实时统计 创建客户端组 自我注册和社交登录 自定义电子邮件模板 先决条件 ProjectSend是用PHP编程语言编写的。要学习本教程,首先需要在Ubuntu 20.04上安装LEMP stack。如果您还没有这样做,请查看以下教程。 如何在Ubuntu 20.04上安装LEMP堆栈(Nginx、MariaDB、PHP7.4-FPM) 您可以在家庭服务器或VPS(虚拟专用服务器)上安装ProjectSend。您还需要一个域名,以便以后能够启用HTTPS来加密HTTP流量。我从namescape注册了我的域名,因为价格低廉,而且他们终身免费保护whois的隐私。ProjectSend可以在没有域名的情况下安装,但如果不加密HTTP连接以防止窥探,那么它真的没有意义。如果你真的想修补服务器软件并充分利用它们,我建议你买一个域名。 现在让我们安装ProjectSend。 第一步:在Ubuntu 20.04上下载ProjectSend 登录你的Ubuntu 20.04服务器。然后将ProjectSend zip存档下载到服务器上。撰写本文时,最新的稳定版本是r1295。您可能需要更改版本号。去https://www.projectsend.org/#download查看最新版本。 可以运行以下命令将其下载到服务器上。 wget-O projectsend。拉链https://www.projectsend.org/download/387/ 下载后,使用解压功能提取归档文件。 sudo apt安装解压sudo mkdir-p/usr/share/nginx/projectsend/sudo解压projectsend。zip-d/usr/share/nginx/projectsend/ -d选项指定目标目录。ProjectSend web文件将被提取到/usr/share/nginx/ProjectSend/。然后,我们需要将该目录的所有者更改为www数据,以便web服务器(Nginx)可以写入该目录。 sudo chown www-data:www-data/usr/share/nginx/projectsend/-R 第2步:在MariaDB数据库服务器中为ProjectSend创建数据库和用户 使用以下命令登录MariaDB数据库服务器。由于MariaDB现在使用unix_socket插件来验证用户登录,因此无需输入MariaDB根密码。我们只需要在mysql命令前面加上sudo。 sudo mysql 然后为ProjectSend创建一个数据库。本教程将数据库命名为projectsend。你可以用任何你喜欢的名字。 创建数据库projectsend; 创建数据库用户。同样,您可以使用此用户的首选名称。用首选密码替换密码。 创建用户projectsenduser@localhost由“您的密码”标识; 授予此用户在projectsend数据库上的所有权限。 授予projectsend的所有权限。*到projectsenduser@localhost; 刷新权限并退出。 同花顺特权;出口 第3步:配置ProjectSend 转到includes目录。 cd/usr/share/nginx/projectsend/includes/ 复制示例配置文件并将其重命名为sys。配置。php。 sudo cp系统。配置。样品php系统。配置。php 现在使用命令行文本编辑器(如Nano)编辑新的配置文件。 sudo nano sys。配置。php 找到以下几行,将红色文本替换为您在步骤2中创建的数据库名称、用户名和密码。 /**数据库名称*/define('DB_name','Database');/**数据库主机(大多数情况下是localhost)*/define('DB_host','localhost');/**数据库用户名(必须分配给数据库)*/define('DB_USER','username');/**数据库密码*/define('DB_password','password'); 保存并关闭文件。要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。接下来,按Ctrl+X退出。 步骤4:为ProjectSend创建Nginx配置文件 创建一个projectsend。conf文件位于/etc/nginx/conf.d/目录中,带有命令行文本编辑器,如Nano。 sudo nano/etc/nginx/conf.d/projectsend。形态 将以下文本复制并粘贴到文件中。替换projectsend。实例com与您自己的首选子域。不要忘记在DNS区域编辑器中为此子域创建DNS记录。如果你没有一个真正的域名,我建议你去买一个便宜的域名。价格低廉,而且他们终身免费为whois提供隐私保护。 服务器{listen 80;listen[:]:80;server_name projectsend.example.com;#添加头以服务安全相关头添加_头X-Content-Type-Options nosniff;添加_头X-XSS-Protection“1;mode=block”; 添加标题X-Robots-Tag none;添加标题X-Download-Options noopen;添加_头X-允许-跨域-无策略;添加标题推荐人策略无推荐人;#安装根目录的路径/usr/share/nginx/projectsend/;索引。php索引。html;访问u log/var/log/nginx/projectsend。通道错误u log/var/log/nginx/projectsend。错误位置=/机器人。txt{allow all;log_not_found off;access_log off;}地点~/。著名/极致挑战{allow all;}#设置最大上传大小客户端u最大u正文u大小512M;fastcgi_缓冲区64 4K;#禁用gzip以避免删除ETag头gzip off;#如果您的服务器是使用ngx_pagespeed模块构建的,请取消注释。该模块目前不受支持#页面速度关闭;错误_第403页/core/templates/403。php;错误_第404页/core/templates/404。php;位置/{try_files$uri$uri//index.php;}地点~/。php${include fastcgi_params;fastcgi_split_path_info^(.+/.php)(/.*)$; 试试_files$fastcgi_script_name=404;fastcgi_参数SCRIPT_FILENAME$document_root$fastcgi_SCRIPT_name;fastcgi_参数路径信息$fastcgi_路径信息#避免发送两次安全头fastcgi_param modHeadersAvailable true;fastcgi_参数前控制器_激活真;fastcgi_pass unix:/run/php/php7。4-fpm。短袜fastcgi_截获_错误开启;fastcgi_请求_缓冲关闭;}地点~*/。(?:svg | gif | png | html | ttf | woff | ico | jpg | jpeg)${try_files$uri/index.php$uri$is_args$args;#可选:不登录其他资产访问_注销;} 保存并关闭文件。(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认。要退出,请按Ctrl+X。) 然后测试Nginx配置。 sudo nginx-t 如果测试成功,请重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx 第5步:安装并启用PHP模块 运行以下命令安装ProjectSend所需或推荐的PHP模块。 sudo apt安装imagemagick php Imageick php7。4-常见php7。4-mysql php7。4-fpm php7。4-gd php7。4-json php7。4-卷曲php7。4-zip php7。4-XMLPHP7。4-Mb字符串php7。4-bz2 php7。4-intl php7。4-bcmath php7。4-gmp 第6步:启用HTTPS 现在,通过输入ProjectSend安装的域名,您可以在web浏览器中访问ProjectSend web安装向导。 projectsend。实例com/install/index。php 如果网页无法加载,您可能需要在防火墙中打开端口80。 sudo iptables-I输入-p tcp-dport 80-j接受 还有443端口。 sudo iptables-I输入-p tcp-dport 443-j接受 在输入任何敏感信息之前,我们应该在ProjectSend上启用安全的HTTPS连接。我们可以从Let's Encrypt获得免费的TLS证书。从Ubuntu20.04存储库安装Let's Encrypt client(certbot)。 sudo apt安装certbot python3 certbot nginx Python3 certbot nginx是nginx插件。接下来,运行以下命令,使用Nginx插件获取免费的TLS证书。 sudo certbot--nginx--agree tos--redirect--hsts--stype ocsp--email[email ;projectsend]受保护。实例通用域名格式 哪里: –nginx:使用nginx验证器和安装程序 –同意:同意让我们加密服务条款 –重定向:通过添加301重定向来强制HTTPS。 –hsts:启用HTTP严格的传输安全性。这可以抵御SSL/TLS剥离攻击。 –装订ocsp:启用ocsp装订。 –电子邮件:用于注册和恢复联系的电子邮件。 -d标志后面是域名列表,以逗号分隔。你最多可以添加100个域名。 你会被问到是否想收到来自EFF(电子前沿基金会)的电子邮件。选择Y或N后,将自动获取并为您配置TLS证书,如下消息所示。 第7步:在Web浏览器中完成安装 现在,您可以使用HTTPS连接访问ProjectSend web安装向导。 要完成安装,您需要给它一个站点名并创建一个管理员帐户。 单击安装按钮,您将能够登录到ProjectSend Web界面。 如何设置项目发送电子邮件通知 如果您的ProjectSend实例将由多人使用,则ProjectSend服务器可以发送事务性电子邮件,例如密码重置电子邮件,这一点很重要。转到选项->;电子邮件通知。您将找到电子邮件服务器设置。有四种发送模式: PHP邮件(基础) SMTP Gmail 发送邮件 如果ProjectSend主机运行SMTP服务器,则可以选择sendmail模式。其他字段留空。 如果要使用在另一台主机上运行的SMTP服务器,请选择SMTP模式并输入SMTP服务器地址和登录凭据,如下所示。选择STARTTLS进行加密。 有关如何设置电子邮件服务器,请查看以下教程。请注意,我强烈建议在全新干净的操作系统上运行iRedMail邮件服务器。在具有其他web应用程序的操作系统上安装iRedMail可能会失败,并可能破坏现有的应用程序。 如何使用iRedMail在Ubuntu20.04上轻松设置功能齐全的邮件服务器 第8步:增加PHP内存限制 默认的PHP内存限制是128MB。ProjectSend建议512MB以获得更好的性能。要更改PHP内存限制,请编辑PHP。ini文件。 sudo nano/etc/php/7.4/fpm/php。伊尼 找到下面这行。(第409行) 内存限制=128M 更改值。 内存限制=512M 保存并关闭文件。或者,您可以运行以下命令来更改值,而无需手动打开文件。 sudo sed-i's/memory_limit=128M/memory_limit=512M/g'/etc/php/7.4/fpm/php。伊尼 然后重新加载PHP-FPM服务,使更改生效。 sudo systemctl重新加载php7。4-fpm 第9步:增加上传文件大小限制 Nginx设置的默认最大上传文件大小限制为1MB。要允许将大型文件上载到ProjectSend服务器,请编辑ProjectSend的Nginx配置文件。 sudo nano/etc/nginx/conf.d/projectsend。形态 我们已经在此文件中设置了最大文件大小,如所示 客户_max_body_尺寸512M; 如果你愿意,你可以改变它,比如1G。 客户最大尺寸为1024M; 保存并关闭文件。然后重新加载Nginx以使更改生效。 sudo systemctl重新加载nginx PHP还设置了上传文件大小的限制。上传的默认最大文件大小为2MB。要增加上传大小限制,请编辑PHP配置文件。 sudo nano/etc/php/7.4/fpm/php。伊尼 找到下面一行(第846行)。 上传最大文件大小=2M 更改值,如下所示: 上传最大文件大小=1024M 保存并关闭文件。或者,您可以运行以下命令来更改值,而无需手动打开文件。 sudo sed-i's/upload_max_filesize=2M/upload_max_filesize=1024M/g'/etc/php/7.4/fpm/php。伊尼 然后重启PHP-FPM。 sudo systemctl重启php7。4-fpm 添加本地DNS条目 建议在ProjectSend服务器上编辑/etc/hosts文件并添加以下条目,这样ProjectSend本身就不必查询公共DNS,这可以提高整体稳定性。如果您的ProjectSend服务器无法解析ProjectSend。实例com主机名,则可能会遇到504网关超时错误。 127.0.0.1 localhost projectsend。实例通用域名格式 /etc/hosts文件中的IP地址可以有多个主机名,因此如果在同一个框中安装了其他应用程序,也可以在同一行中添加其他主机名或子域,如下所示: 127.0.0.1 localhost focus ubuntu projectsend。实例com nextcloud。实例通用域名格式 故障排除提示 如果遇到错误,可以检查以下日志文件之一,以找出问题所在。 Nginx错误日志:/var/log/Nginx/error。日志 ProjectSend虚拟主机的Nginx错误日志:/var/log/Nginx/ProjectSend。错误 收尾 我希望本教程能帮助您在带有Nginx的Ubuntu 20.04服务器上安装ProjectSend。和往常一样,如果你觉得这篇文章很有用,那么订阅我们的免费时事通讯以获得更多提示和窍门。当心?